Compare commits

..

1551 Commits

Author SHA1 Message Date
Kamran Ahmed
0c628925ae Update messaging 2025-02-11 12:35:38 +00:00
Kamran Ahmed
96de50e15b Responsiveness 2025-02-11 12:17:03 +00:00
Kamran Ahmed
f94c11d1ea Add guides and videos on dashboard 2025-02-11 11:54:07 +00:00
Kamran Ahmed
d02f0e5d54 Add questions listing on dashboard 2025-02-11 10:52:01 +00:00
Kamran Ahmed
53bb1d922a Add profile button 2025-02-11 10:31:48 +00:00
Kamran Ahmed
8ebc67baa1 Add empty message 2025-02-11 09:25:12 +00:00
Kamran Ahmed
94231874b0 Empty screen handling 2025-02-11 01:52:08 +00:00
Kamran Ahmed
d7f74b34a6 Fix spacing 2025-02-11 01:33:40 +00:00
Kamran Ahmed
e3361f96c1 Update hero title 2025-02-11 01:30:52 +00:00
Kamran Ahmed
eb0dac034d Remove global collapse expand 2025-02-11 01:08:28 +00:00
Kamran Ahmed
9e352be949 Collapse expand 2025-02-11 00:50:21 +00:00
Kamran Ahmed
452c10a893 Style updates 2025-02-11 00:38:16 +00:00
Kamran Ahmed
71c4a7d072 Add collapse expand of groups 2025-02-11 00:28:04 +00:00
Kamran Ahmed
1d3a785027 Add expand collapse in hero title 2025-02-10 23:48:10 +00:00
Kamran Ahmed
c0d4faa385 Collapse expand 2025-02-10 23:38:34 +00:00
Kamran Ahmed
0bd4c0af03 Refactor hero items group 2025-02-10 23:33:43 +00:00
Kamran Ahmed
6abc5ff916 Move to separate files 2025-02-10 23:21:20 +00:00
Kamran Ahmed
a143b0ec20 Collapse and expand 2025-02-10 23:15:12 +00:00
Kamran Ahmed
d9c25d8dff Add builtin roadmaps and best practices 2025-02-10 22:53:39 +00:00
Kamran Ahmed
3101d8ae5d Improve UI for AI roadmaps 2025-02-10 18:18:32 +00:00
Kamran Ahmed
576c307a5f Add projects toggle 2025-02-10 18:12:35 +00:00
Kamran Ahmed
393022c826 Improve personal dashboard design 2025-02-10 18:04:09 +00:00
Shayan Shojaei
932b513d98 fix: topic file name 2025-02-07 22:43:15 +06:00
Kamran Ahmed
e0ae5dd309 Add new guide data science vs machine learning 2025-02-06 19:29:29 +00:00
Kamran Ahmed
70bc2a1038 Update guide authors 2025-02-06 19:15:43 +00:00
Kamran Ahmed
86c1120559 Add new guide data science vs data analytics 2025-02-06 19:13:56 +00:00
Kamran Ahmed
c3135e1470 Add new guide data science vs computer science 2025-02-06 19:05:30 +00:00
Kamran Ahmed
23346ec007 Add course author messageg 2025-02-06 15:46:30 +00:00
Kamran Ahmed
c92a183ef8 Add course author messageg 2025-02-06 14:32:43 +00:00
Jinhwan Kim
ca7888aa37 feat: bubble tea content 2025-02-06 18:34:30 +06:00
Klexus1
33b36a7017 fix: topic content
This change is to emphasize that container can be stopped without data loss.
2025-02-06 17:46:24 +06:00
Mohammed Hafeez
bff98e6448 feat: add rust interactive book
* Update index.md

Added an interactive web doc form which im learning rust.

* Update src/data/roadmaps/rust/content/100-introduction/index.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-02-06 17:11:01 +06:00
github-actions[bot]
5dd2bc439f chore: update roadmap content json (#8173)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-02-06 17:08:59 +06:00
Kamran Ahmed
24d10d212f Add devops projects on homepage 2025-02-04 18:06:54 +00:00
Kamran Ahmed
4127f77aac Add sql course changelog entry 2025-02-04 18:05:26 +00:00
Kamran Ahmed
dbebf593fc Fix z-index issues 2025-02-04 13:32:39 +00:00
Kamran Ahmed
0e0b550f98 Add how to become a fullstack developer guide 2025-02-04 12:53:34 +00:00
Kamran Ahmed
80741df13b Add go vs java guide 2025-02-04 02:17:25 +00:00
Kamran Ahmed
14b6aea3b1 Update messaging for course 2025-02-04 02:01:53 +00:00
Kamran Ahmed
e0da1e4f0e Fix issue where share solution is shown without submitting 2025-02-04 02:01:15 +00:00
Kamran Ahmed
5cc4b834d1 Improve UI for project solutions 2025-02-03 23:03:32 +00:00
Kamran Ahmed
314eb5d7d2 Refactor project solutoin row 2025-02-03 21:17:06 +00:00
Kamran Ahmed
ad2597f610 Update banner message 2025-02-03 19:57:18 +00:00
Kamran Ahmed
8d25eabe3a Add sorting to project solution listing 2025-02-03 19:45:42 +00:00
Kamran Ahmed
6186e12b05 Improve language filtering 2025-02-03 18:05:59 +00:00
Kamran Ahmed
158857c928 Add sql course banner 2025-02-03 14:22:20 +00:00
Kamran Ahmed
8e6959cc60 Fix z-index issue 2025-02-03 13:34:24 +00:00
Kamran Ahmed
e351f653a1 Add banner on top 2025-02-03 13:29:12 +00:00
Arik Chakma
83e315aef7 feat: add first login flag (#8161) 2025-02-03 11:06:22 +00:00
github-actions[bot]
b15bdd5f78 chore: update roadmap content json (#8154)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-02-02 09:40:01 +06:00
github-actions[bot]
0783330a70 chore: update roadmap content json (#8145)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-02-01 21:18:11 +06:00
Rikuya Osawa
7ec56fd1ff fix: replace unavailable resource link (#8152) 2025-02-01 13:14:07 +00:00
Kamran Ahmed
201632941a Handle redirect on purchase 2025-01-31 17:37:07 +00:00
Kamran Ahmed
126501b40a Add course page to index 2025-01-31 16:59:27 +00:00
Arik Chakma
34ba9162b2 feat: add course GA tracking (#8150) 2025-01-31 16:52:06 +00:00
Kamran Ahmed
e093eddabc Update course slug 2025-01-31 16:13:45 +00:00
Kamran Ahmed
1e4a4c96b8 Fix type issue 2025-01-31 14:50:59 +00:00
Kamran Ahmed
0c3ea981cb Add announcement 2025-01-31 12:50:53 +00:00
Kamran Ahmed
5de9539af5 Add platform demo 2025-01-31 12:43:41 +00:00
gavhu10
3722e5f3bd Added a resource concerning Python Modules and Packages (#8095) 2025-01-30 22:01:01 +00:00
Vedansh
7f90b8a0b0 fix topic link type. (#8098) 2025-01-30 22:00:06 +00:00
Rikuya Osawa
2bafd61f71 add article resource (#8125) 2025-01-30 21:54:25 +00:00
OLODiman11
adc66cf97c Fixed some typos on redis rodemap (#8131)
* fix: wrong link to redis rpop command

* fix: links not properly displaying because of a typo
2025-01-30 21:52:57 +00:00
Jérémy
c754a971c3 Fix typo in Symfony detail description (#8132) 2025-01-30 21:52:26 +00:00
Jovan Ivošević
dbda69fc23 Fix EPA definition (#8134)
* Updated EPA text for game-developer roadmap

* Removed reduntant whitespace
2025-01-30 21:52:09 +00:00
DombleGames
6f1087981c Fix array_fill example (#8138)
Fix: Use correct parameter name "count" instead of "num" in array_fill()

Updated the array_fill() function to use "count" as the second parameter, aligning with the official PHP documentation.
2025-01-30 21:51:47 +00:00
github-actions[bot]
ec8a0917c1 chore: update roadmap content json (#8140)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-30 21:50:54 +00:00
Kamran Ahmed
60e5e38a55 Update greetings workflow message 2025-01-30 21:48:14 +00:00
Mahesh Ravariya
5d77d36236 Updated correct tag for more resources (#8142)
More resources had wrong tag "@articles". Changed it to "@course"
2025-01-30 21:44:27 +00:00
Sergio V
37b3140516 Fix typo (#8141) 2025-01-30 21:40:34 +00:00
Ed Lan
34b68478cc Add guide link (#8143) 2025-01-30 21:40:11 +00:00
Ed Lan
9bb86408c5 Add link to ai data scientist guide (#8144) 2025-01-30 21:39:56 +00:00
Kamran Ahmed
d07fd3d183 Update pricing section 2025-01-30 21:39:29 +00:00
Kamran Ahmed
9aa363a01e Add java vs javascript guide 2025-01-30 18:57:33 +00:00
Kamran Ahmed
9f2a33f078 Add full-stack questions 2025-01-30 12:31:39 +00:00
Kamran Ahmed
91cfa88b3d Fix broken course url 2025-01-29 19:31:43 +00:00
Kamran Ahmed
d87ea1c972 Add full-stack questions 2025-01-29 15:49:48 +00:00
Kamran Ahmed
dbf2353a41 Add fullstack questions 2025-01-29 15:49:48 +00:00
Vedansh
8d78c17c77 fix: update nodejs exit topic links 2025-01-29 19:10:54 +06:00
github-actions[bot]
698dbbd7d8 chore: update roadmap content json (#8135)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-29 19:08:30 +06:00
Kamran Ahmed
25216d4052 Add data scientist lifecycle guid 2025-01-29 12:17:17 +00:00
Kamran Ahmed
2be0d61a1e Course cache clearing 2025-01-29 00:17:06 +00:00
Kamran Ahmed
f3ee75e92d Add ai data science tools guide 2025-01-28 22:15:19 +00:00
Kamran Ahmed
db0b5e77ad Add guide for data science skills 2025-01-28 18:13:10 +00:00
Kamran Ahmed
c239886049 Add guide for data science career path 2025-01-28 17:12:07 +00:00
Meher
aab03074f8 Add authorization types link (#8130)
Link to API Authentication types was provided instead of authorization types.
2025-01-28 11:42:39 +00:00
Rikuya Osawa
433302b910 fix: resource link on Outliers (#8126) 2025-01-28 07:58:12 +06:00
Alice
a583937f5c fix: file name typo 2025-01-28 07:57:39 +06:00
Arik Chakma
412e3b5935 feat: add subscribe to changelog (#8012)
* feat: add subscribe to changelog

* Add subscribe to changelog

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-01-27 23:23:19 +00:00
Arik Chakma
1ffa292c98 feat: new user flag (#8070)
* feat: new user flag

* feat: share icon event

* fix: upload the query tag

* fix: name and label

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-01-27 22:00:24 +00:00
Kamran Ahmed
0bef28fa20 Update flag issue 2025-01-27 16:13:23 +00:00
github-actions[bot]
1af013d5f8 chore: update roadmap content json (#8121)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-27 22:12:16 +06:00
Kamran Ahmed
28af19cd1c Add SQL course landing page (#8127)
* wip: courses

* fix: update course sidebar

* wip

* fix: merge lessons

* wip

* wip: course footer

* wip

* fix: refactor layout

* fix: refactor

* feat: course progress

* fix: update current lesson store

* fix: refactor props

* wip

* wip

* feat: course certificate

* wip: course rating

* wip: course notes

* wip

* feat: implement course notes

* feat: make card clickable

* fix: add hover background

* fix: refactor course layout

* fix: resizeable

* fix: go back on save

* feat: delete confimation

* wip

* feat: chat UI

* fix: lesson complete guard issue

* wip: add public json files

* wip: course ai

* fix: loading card

* Fix failing dev without internet

* Light mode and UI changes

* Update UI

* Update course UI

* Add chapter page

* Improve sidebar of course

* Update navigation:

* Update quiz view

* Improve UI for quiz attempts

* Remove unnecessary console.logs

* Add progress loading skeletons

* Update UI

* Change background color of editor

* Fix line color not applied on editor

* UI updates

* feat: empty view

* feat: course ai token limit

* feat: handle auth users

* wip

* feat: course landing page

* wip

* Add first chapter of SQL

* Add introduction chapter

* Add quiz for introduction

* Add expressions in select

* Add content for DISTINCT

* Add filter with where

* Add lesson about limit and offset

* Add lesson for handling null values

* Add lesson about comments

* Add challenges

* Add challenge

* Add challenge

* Add challenge

* Add challenge 7

* Add creating tables lesson

* Add common data types lesson

* Add data types in sqlite

* Add more on data types lesson

* feat: course landing page

* Add more on numeric types

* Update

* Add lesson about temporal data types

* Add constraints

* Add primary keys chapter

* Add modifying tables

* Add dropping and truncating

* Rewrite for PostgreSQL

* Update numeric types to PostgreSQL

* Improve temporal data type content

* Improve temporal data type content

* Add setup for temporal data

* Improve challenges in SQL basics

* Update challenge names

* Add new challenges

* Add temporal validation challenge

* Add new constraint

* Add modifying tables query

* Removing table

* Add insert operations lesson

* Add updating data lesson

* Add delete operations

* Add inserting and updating challenges

* Add lesson for cleaning up data

* Update course title

* Add relation data lesson

* Add relationships and types

* Add relationships and types

* wip

* Add joins lesson

* Joins in queries

* Add inner join details

* Add join queries

* Add inner join details

* Add foreign key constraint lesson

* Update composite foreign keys

* Add lesson about foreign keys

* Add lesson about set operation queries

* Add lesson about set operation queries

* Add set operator challenges

* Add new challenge

* Add view lesson

* Add notes in views

* Add inactive customer challenge

* Add high value order challenge

* gst

* Add new challenges

* Add readers like you challenge

* Update inactive customer query

* Update inactive customer query

* Update inactive customer query

* Update inactive customer query

* Update inactive customer query

* add challenge for same price books

* Add aggregate functions introduction

* Add basic aggregation lesson

* Add basic aggregation lesson

* Add introduction quiz

* Add grouping lesson

* Add grouping gotchas

* Add grouping and filtering lesson

* Add note for lesson

* Add challenges for aggregate

* Update aggregate challenge

* Rearrange chapters

* Add scalar functions lessons

* Add numeric functions

* Add date functions

* Add conversion functions

* Add conversion functions

* Add logical functions chapter

* Add exercises

* Add new challenges

* Add monthly sales analysis

* Add subqueries and ctes

* Update

* Add correlated subqueries

* Add common table expressions

* Add common-table expressions

* Add example

* Add recursive CTEs

* Add subquery challenge

* Add latest category books challenge

* Add challenges

* Add bestseller rankings challenge

* Add new customer analysis

* Add daily sales report

* Improve queries

* Add introduction to window functions

* Add over and partition

* wip: billing page

* Add ranking functions

* Improve ranking functions

* Add order by

* Add window frames lesson

* Add window frames explanation

* Add challenges for window functions

* Add price range analysis challenge

* wip

* wip: course enroll

* fix: start learning

* wip

* wip

* Enrollment changes

* wip

* wip

* feat: mobile responsive

* Changelog banner refactor

* Update

* Header for course

* Header for what to expect

* UI color

* Table of contents

* Icons on chapters

* Change design for road to sql

* Add sql course page

* Add lesson content

* Update UI

* Expanded chapter row

* Add course page

* Refactor

* Add spotlight

* Improve features

* Add course features

* Add certificate note

* Zoom in on the image

* Update

* Add floating purchase

* Floating purchase indicatorg

* Add about section

* Update about section

* Add FAQ section

* Update UI

* Add purchase power parity

* Show purchasing power pricing

* Add course login popup

* Add course login popup

* Add account button

* Add trigger for course purchase

* Course purchase param

* Buy button changes

* Add faqs

* Add purchase trigger on reload

* Landing verification

* Make header responsive

* Make course page upper half responsive

* Full page is responsive

* Fix login height bug

* Responsiveness

* Implement login after checkout

* Remove unused code

* Update dependenciesg

* Update

* fix: refetch mount to false

* Remove unused code

* Remove unused code

* Remove unused code

* Remove unused code

* Remove unused code

* Remove unused code

* Remove unused

* Add quizzes to chapters

* Update course slug

* Update dependencies

* Add header for sql course

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-27 15:32:13 +00:00
Ed Lan
4696af9c6a feat: update topic content 2025-01-27 00:45:23 +06:00
Ed Lan
e2dece0e6a feat: update topic content 2025-01-27 00:45:07 +06:00
Ed Lan
a5f483c335 feat: update topic content 2025-01-27 00:44:50 +06:00
Vedansh
4552d3f9c8 refractor: improve data analyst roadmap (#8104)
* refractor 36 topics

* refractor remaining topics - 16
2025-01-27 00:44:14 +06:00
Rikuya Osawa
f213bd9604 fix: inappropriate resource tags (#8112) 2025-01-27 00:38:58 +06:00
ZIT2050
de65909357 fix: replace topic resource
* Update csrf-protection@J9yIXZTtwbFzH2u4dI1ep.md

@official@Security Guide page not found 404

* Update src/data/roadmaps/php/content/csrf-protection@J9yIXZTtwbFzH2u4dI1ep.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-27 00:38:07 +06:00
niibuthelezi
9a77ca8a17 feat: add topic resource 2025-01-27 00:35:27 +06:00
github-actions[bot]
7ab3f758fd chore: update roadmap content json (#8096)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-26 06:33:16 +06:00
gavhu10
bcf4126b3a fix: add a tuple resource (#8089) 2025-01-22 22:39:33 +06:00
gavhu10
f9dbd16afe feat: add resource for dictionaries (#8090) 2025-01-22 22:10:31 +06:00
cepjant
21ed4a647f fix: update topic content 2025-01-22 22:09:44 +06:00
github-actions[bot]
68cf2c00c6 chore: update roadmap content json (#8092)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-22 22:05:55 +06:00
Michal Freriks
d3b0c32eb7 fix: topic content
The statement was not true, as technically, global variables are also able to be declared
2025-01-21 23:22:50 +06:00
Karim Safan
37ca08f956 feat: add topic content resources
* Update dml@tcQSH-eAvJUZuePTDjAIb.md

adding two resource for DML

* Update src/data/roadmaps/computer-science/content/dml@tcQSH-eAvJUZuePTDjAIb.md

* Update src/data/roadmaps/computer-science/content/dml@tcQSH-eAvJUZuePTDjAIb.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-21 23:17:52 +06:00
Said-BT
b40ec83137 fix: add topic content resources
* Update tuples@i7xIGiXU-k5UIKHIhQPjE.md

added 2 resources as this section has nothing.

* Update tuples@i7xIGiXU-k5UIKHIhQPjE.md

* Update src/data/roadmaps/python/content/tuples@i7xIGiXU-k5UIKHIhQPjE.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-21 23:13:34 +06:00
psychobioMACHINE
edc7de8226 feat: add topic content resource
Added "freeCodeCamp | Responsive Web Design Certification" to HTML and CSS. [url: "

https://www.freecodecamp.org/learn/2022/responsive-web-design/

"]
It is a free certification with step-by-step guided projects in HTML & CSS.
The final project is even your first webpage portfolio.
2025-01-21 23:12:14 +06:00
psychobioMACHINE
5bffdebeb8 feat: add topic content resource
Added "freeCodeCamp | Responsive Web Design Certification" to HTML and CSS. [url: "

https://www.freecodecamp.org/learn/2022/responsive-web-design/

"]
It is a free certification with step-by-step guided projects in HTML & CSS.
The final project is even your first webpage portfolio.
2025-01-21 23:11:36 +06:00
Jawher Kl
e5e902a268 fix: topic content resource 2025-01-21 23:03:07 +06:00
Milen Todev
5842b0a692 fix: typo in backend-beginner (#8002)
This pull request corrects a typo in the instructions on the right-hand side. The word "knowledge" was incorrectly spelled as "konwledge."

Changes:
Corrected the typo from "konwledge" to "knowledge" in the instructions.
2025-01-21 22:59:16 +06:00
mrlane51
f1592571db feat: add topic content resources
Added a useful detailed video of Resource Management that is easily digestible.
2025-01-21 22:54:30 +06:00
xaviduds
4058dff406 fix: grammar typo Priviliges -> Privileges (#8016)
Commits done in PostgreSQL Roadmap
2025-01-21 22:35:15 +06:00
Abhay Shukla
5a813eea04 feat: add topic content resources
* Update how-computers-calculate@GDLKJkKgB-i7n0YcV2NDa.md

I have added short description so that learner should not roam and can get overview of the topic.

* Update src/data/roadmaps/computer-science/content/how-computers-calculate@GDLKJkKgB-i7n0YcV2NDa.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-21 22:16:18 +06:00
Shivam Kumar
e577ba095f feat: add topic content resource
Added Design Guidelines to the title and resources from IxD Foundation regarding User Interface design guidelines.
2025-01-21 22:12:17 +06:00
Attila Maraz
069cb6fc06 fix: topic content resources 2025-01-21 22:01:50 +06:00
Priyanshu Maurya
b0a3cdc8c4 fix: add topic content resource
* Update 101-docker-compose.md

* Added type (Update 101-docker-compose.md)
2025-01-21 22:00:08 +06:00
Priyanshu Maurya
536a79ef59 fix: topic content resources
previous link

https://www.docker.com/blog/docker-cli-commands-cheat-sheet/

has been expired 

I replaced it with this 

https://docs.docker.com/get-started/docker_cheatsheet.pdf
2025-01-21 21:58:16 +06:00
Anshuman Singh
5a132b6f07 fix: typo mistake 'Fareness' changed to 'Fairness' #8041 (#8043)
Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-21 21:31:29 +06:00
任跃兵
e3b56ab716 fix: topic content resources 2025-01-21 21:29:04 +06:00
任跃兵
2d8030a175 fix: topic content resources 2025-01-21 21:28:33 +06:00
Rikuya Osawa
dca2ba5fac feat: add resource for linux service management (#8053)
Added hands-on resource for Linux service management. LabEx is an excellent guide which explores Linux service management through systemd and systemctl.
2025-01-21 21:27:19 +06:00
LaralenaV
16fc4b08ff fix: add top content resources
Added resources: article and video
2025-01-21 21:26:24 +06:00
Fuchen Shi
7a7590d872 fix: incorrect descriptions of the P = NP problem (#8084) 2025-01-21 21:23:56 +06:00
Glitchagon
073708e7e9 fix: resource content grammar
Fixed a couple spelling errors in the Use Delimiters section of the Prompt Engineering course.
2025-01-21 21:22:22 +06:00
Glitchagon
66a8c2e73c fix: resource content grammar
Fixed grammar and spelling errors in the Types of LLM's page of Prompt Engineering course.
2025-01-21 20:55:39 +06:00
github-actions[bot]
34425019b7 chore: update roadmap content json (#8083)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-21 20:54:48 +06:00
Arik Chakma
699e05a3b4 fix: user progress modal percentage (#8082) 2025-01-20 17:44:41 +00:00
Kamran Ahmed
3bd379692f Add AI roadmap link 2025-01-20 17:27:38 +00:00
Arik Chakma
22f29a12f9 feat: add copy content (#8001) 2025-01-20 11:09:39 +00:00
Abraham J. Olaobaju
2640c82167 Add content to patterns (#8074)
* Update patterns--design-principles@_U0VoTkqM1d6NR13p5azS.md

* Update src/data/roadmaps/software-architect/content/patterns--design-principles@_U0VoTkqM1d6NR13p5azS.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-01-20 11:06:52 +00:00
Rikuya Osawa
9ff560b1fd fix: replace unavailable resource and add more description (#8079) 2025-01-20 11:06:05 +00:00
github-actions[bot]
e16866009a chore: update roadmap content json (#8077)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-20 11:05:27 +00:00
Alberto Belalcazar
2085a31894 fix: updated link - Redis URL Docs (#8081) 2025-01-20 10:47:48 +00:00
Ed Lan
0534e99093 Fix typo (#8067) 2025-01-18 01:36:30 +00:00
za4g
19a6cb20ec fix: resource content title typo
Typo - Spelling of Fairness
2025-01-18 07:33:57 +06:00
SangHyun Kim
7b59b5862e fix: dedupe the same redirect link (#8065) 2025-01-18 07:26:48 +06:00
github-actions[bot]
3d2db1b46e chore: update roadmap content json (#8062)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-18 07:20:51 +06:00
Kamran Ahmed
8cf272431d Fix spacing in license 2025-01-17 20:06:55 +00:00
Kamran Ahmed
b05f6148ac Add devops vs devsecops guide 2025-01-17 16:06:33 +00:00
Kamran Ahmed
19dd7f7f4f Add devops vs agile guide 2025-01-17 15:46:12 +00:00
Kamran Ahmed
a22867bd96 Add devops job description guide 2025-01-17 15:36:54 +00:00
Kamran Ahmed
23eb9b6626 Fix code formatting 2025-01-17 12:12:25 +00:00
Kamran Ahmed
2d3c86ceff Add guide 2025-01-17 12:12:25 +00:00
Vedansh
5e97ded10d Fix formatting of backend questions (#8014) 2025-01-17 01:39:52 +00:00
Vedansh
cbd290baa2 Improve devops questions formatting (#8015)
* refractor complete

* fix url
2025-01-17 01:39:26 +00:00
Vedansh
da968b6d5b Improve devops guides (#8035) 2025-01-17 01:39:04 +00:00
Vedansh
07ebf3585d Improve backend guides (#8036) 2025-01-17 01:38:44 +00:00
Kamran Ahmed
26b5ccd10f Add tutorial about making golang rest api 2025-01-17 01:16:01 +00:00
Kamran Ahmed
3c03cb46f7 Add faq for devops and new guide 2025-01-16 23:35:34 +00:00
github-actions[bot]
514edea44e chore: update roadmap content json (#8050)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-17 04:33:37 +06:00
Rikuya Osawa
f0b740bfb2 fix: remove unavailable video resource (#8054) 2025-01-17 04:29:48 +06:00
任跃兵
8e68f7230c feat: add topic content resource 2025-01-17 04:29:12 +06:00
任跃兵
090100d784 feat: add topic content resource 2025-01-17 04:28:40 +06:00
任跃兵
e9e100d46e feat: add topic content resource 2025-01-17 04:27:48 +06:00
任跃兵
c2a206ac37 feat: content resource 2025-01-17 04:22:55 +06:00
Vedansh
05d36c898e refractor: optimize remaining guides 2025-01-15 22:27:08 +06:00
任跃兵
d4c33930b5 fix: content resource
* Update v-on@hVuRmhXVP65IPtuHTORjJ.md

* Update src/data/roadmaps/vue/content/v-on@hVuRmhXVP65IPtuHTORjJ.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-15 22:25:39 +06:00
Vedansh
7a931f2f3b refractor: cleanup and optimize few guides. (#8039)
* cleanup both frontend and full stack guides.

* Update src/data/guides/frontend-languages.md

* Update src/data/guides/full-stack-vs-software-engineer.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-01-14 11:12:58 +00:00
github-actions[bot]
565ec779dc chore: update roadmap content json (#8027)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-13 14:00:26 +06:00
Alan Klimowski
e716765f01 fix: topic content resource issue
Fixing visual bug due to a link getting into the main list and not being parsed correctly
2025-01-13 01:04:53 +06:00
github-actions[bot]
3b274f3b0a chore: update roadmap content json (#8006)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-13 01:02:37 +06:00
Vedansh
1623d09de6 fix: refractor frontend questions (#8017) 2025-01-13 01:01:51 +06:00
J. Degand
d2bf09b405 fix: remove unused import (#8022) 2025-01-13 00:58:02 +06:00
coderhxjin
f3110e99f6 fix: content resource type
the CS 61B Lecture is a video instead of an article
2025-01-09 16:59:18 +06:00
github-actions[bot]
cdc6591765 chore: update roadmap content json (#7999)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-09 16:57:48 +06:00
Max Culley
96db3e3920 fix: spelling error on system design roadmap (#7992) 2025-01-08 11:06:58 +06:00
Gertscc
f7df0acc90 fix: remove unrelated content
Deleted content which had nothing to do with this topic.
2025-01-08 11:06:14 +06:00
ACHMAD IRIANTO EKA PUTRA
1480b20dcb feat: add GoFiber in web frameworks
Add GoFiber
2025-01-08 10:54:47 +06:00
github-actions[bot]
e11ce51b09 chore: update roadmap content json (#7990)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-07 21:54:15 +06:00
coderhxjin
3c7761cbe8 fix: content typo
fix typo: endianess->endianness

Add two articles(one from MDN; another from freecodecamp)
2025-01-06 22:32:06 +06:00
github-actions[bot]
65996a6982 chore: update roadmap content json (#7987)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-06 22:30:17 +06:00
Ty
99b1859de2 fix: roadmap topic typo
Co-authored-by: = <=>
2025-01-05 18:22:58 +06:00
Ivan Delgado
7b2a047046 fix: content typo
Typo. "xxplainability" should be "explainability".
2025-01-05 18:21:04 +06:00
Mohammed Hafeez
6bbf384b73 feat: add content resources
* Update index.md

Added a resource which i felt is important.

* Update index.md

fixing following guidelines

* Update index.md based on guide.
2025-01-05 18:20:24 +06:00
Omkar Shisode
4bd1c4aebc feat: add observer resource
Best document that explain very well design patterns
2025-01-05 18:18:50 +06:00
Ivan Delgado
14835464de fix: content typo 2025-01-05 18:17:28 +06:00
Jawher Kl
020def730d fix: replace broken link
* Update index.md

* fix: title

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2025-01-05 18:14:41 +06:00
github-actions[bot]
ca1cad9bfc chore: update roadmap content json (#7969)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-03 22:53:12 +06:00
Rikuya Osawa
5ac086036e fix: resource tag inconsistencies (#7922)
* fix: apply@-BtF34cEzI6J8sZCDRlRE.md

* fix: bind@dbercnxXVTJXMpYSDNGb2.md
2025-01-01 16:59:08 +06:00
Fuchen Shi
5fbec97c8d fix: incorrect descriptions of asymptotic notations (#7929) 2025-01-01 16:58:34 +06:00
Atharva Shah
94bc36d67e fix: unnecessary code blocks on opengraph data(#7958) 2025-01-01 16:56:48 +06:00
Nicolás Ramírez
98997800b9 fix: deprecated link in React Native roadmap (#7964) 2025-01-01 16:55:01 +06:00
github-actions[bot]
9b32685e88 chore: update roadmap content json (#7957)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-01-01 16:53:35 +06:00
Albin David C
9d0c2667fc fix: Angular and history (#7928)
* Update angular-and-history@hpShWwL0M57ZAzqkB4I8t.md

* Update angular-and-history@hpShWwL0M57ZAzqkB4I8t.md
2024-12-30 12:33:20 +06:00
Blossom Woo
aa3c065b51 fix: typo in System Design roadmap (#7953) 2024-12-30 12:31:26 +06:00
github-actions[bot]
657ee41900 chore: update roadmap content json (#7954)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-30 12:30:44 +06:00
Kamran Ahmed
ad203cca4e Update contribution guidelines 2024-12-29 15:35:23 +00:00
Tom
b83eedbb68 Update content for docker for desktop (#7948) 2024-12-29 15:32:30 +00:00
Kamran Ahmed
0d8b039114 Prepare for 2025 2024-12-29 15:31:49 +00:00
Durgeshhirani
0a1705fdc1 fix: PHP intro URL
Fix php introduction URL
2024-12-29 21:28:08 +06:00
Vedansh
a2063c2822 Improve AI engineer content (#7924) 2024-12-29 15:27:19 +00:00
Vedansh
4c6f0a1234 Improve backend roadmap content (#7949) 2024-12-29 15:26:34 +00:00
Kamran Ahmed
b1d87ae639 Prepare for 2025 2024-12-29 15:24:23 +00:00
github-actions[bot]
609faeacef chore: update roadmap content json (#7927)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-26 04:36:24 +06:00
Vedansh
6469ef3078 feat: improve full-stack roadmap 2024-12-22 22:25:00 +06:00
github-actions[bot]
721456a82e chore: update roadmap content json (#7920)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-22 07:29:43 +06:00
RemyyS
ef958779d6 fix: typo in Sphinx (#7918)
Fixed Typo in roadmaps/python/content/sphinx 
-line 7
Changed "Spihnx" to "Sphinx"
2024-12-22 02:37:49 +06:00
Arman Toreniyazov
77ca038e8c Typo in TS docs (#7869) 2024-12-21 13:25:57 +00:00
Hunter Beckmann
e52608a48a Add functional programming in python course (#7873) 2024-12-21 13:24:08 +00:00
Gildas Quéméner
85cc58b85e Add DDD modeling guide (#7907)
* Guide DDD newcomers towards the Starter Modelling Process

* Update src/data/roadmaps/software-architect/content/ddd@IIelzs8XYMPnXabFKRI51.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-12-21 13:23:01 +00:00
Mohammed Bahumaish
d9ec7b71ec Fix broken link (#7910) 2024-12-21 13:20:03 +00:00
James Teddy
80d4d37e5c Rewrite pick a language (#7914) 2024-12-21 13:19:39 +00:00
Kamran Ahmed
c584325a7d Add changelog entry 2024-12-21 13:16:38 +00:00
Kamran Ahmed
942050e56c Add php and postgre roadmap assets 2024-12-21 11:19:37 +00:00
github-actions[bot]
7cfdfaab1f chore: update roadmap content json (#7911)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-21 02:51:16 +06:00
Maxat Akbanov
8148cb23ad Fix typo in word "IMAPS" in DevOps roadmap (#7909)
* Fix broken link in Kubernetes Roadmap (#6343)

* Add missing naming for Cloud Design Patterns link in DevOps roadmap

* DevOps roadmap: Fix typo in ECS official link

* Change title to IMAP in devops roadmap

* Change label name to IMAP

* Change name to imap
2024-12-20 09:05:07 +00:00
Kamran Ahmed
9e15f59660 fix: typo in imaps in devops roadmap 2024-12-20 09:04:50 +00:00
Vedansh
2b07b2d4cd Add workflow to refactor new contributors (#7912) 2024-12-20 09:03:26 +00:00
Kamran Ahmed
00c288855e Remove redundant link 2024-12-19 12:20:17 +00:00
Brian Travis
b7848fd73c Fix typo in getting started page Engineering Manager card title (#7905) 2024-12-19 07:23:11 +00:00
github-actions[bot]
de1f9fc2d2 chore: update roadmap content json (#7904)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-19 06:13:25 +06:00
Rikuya Osawa
8cf5765349 fix: replace the missing resource with another resource (#7887) 2024-12-18 14:52:35 +00:00
github-actions[bot]
b4621733be chore: update roadmap content json (#7892)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-18 12:33:20 +00:00
fellalli
b7eb3166ed Make logo clickable (#7891)
Clickable logo
2024-12-18 10:55:30 +00:00
Kamran Ahmed
534a27e7a7 Add devops FAQ and related guides 2024-12-18 08:12:45 +00:00
Aleks Henderson
0c355f3cef Add content for cross functional collaboration (#7898)
Added text from Cross-functional collaboration part
2024-12-18 08:05:17 +00:00
Kamran Ahmed
3a72911bc6 Add new guide 2024-12-17 22:08:26 +00:00
Vedansh
6c099db875 Add content to PHP roadmap (#7895)
* Section 1

* Section 2

* Section 3

* Section 4

* Section 5
2024-12-17 21:40:19 +00:00
Kamran Ahmed
8b80f4b00b Add missing content for system design roadmap 2024-12-17 15:30:55 +00:00
Kamran Ahmed
7abe4ab91d Revamp system design content 2024-12-17 12:04:36 +00:00
Jayaram R
c5f1e383c7 feat: add resource (#7876)
* Update 100-inodes.md

* Update src/data/roadmaps/linux/content/110-disks-filesystems/100-inodes.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-12-16 15:08:01 +06:00
Vedansh
2b5134e0a5 Refractor DevOps Roadmap (#7883)
* Refractor Every Topic.

* Update src/data/roadmaps/devops/content/drone@TsXFx1wWikVBVoFUUDAMx.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-12-16 15:06:16 +06:00
github-actions[bot]
f3b325e72f chore: update roadmap content json (#7881)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-14 23:51:13 +06:00
Vedansh
78084be9a4 fix: rollback a previously deleted file. (#7879)
* Spawn Required File.

Spawn programming-language@v5FGKQc-_7NYEsWjmTEuq.md

* fix: minor formatting

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-12-14 15:26:10 +06:00
Arik Chakma
bfcb32bd57 fix: schedule learning time frequency (#7871) 2024-12-13 20:19:59 +05:00
Jawher Kl
2623d7abeb Fix 404 error on content file (#7877) 2024-12-13 19:49:54 +05:00
github-actions[bot]
90e20fcd8f chore: update roadmap content json (#7866)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-11 17:57:40 +06:00
Kamran Ahmed
78f28fb18e Add PHP roadmap content 2024-12-10 17:46:12 +05:00
Kamran Ahmed
412676b0c7 Add projects to php roadmap 2024-12-10 15:09:20 +05:00
github-actions[bot]
c45314c991 chore: update roadmap content json (#7862)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-10 10:25:59 +05:00
duds
d8aab6180c Fix typo in TypeScript roadmap (#7854)
* Fix typo roadmap/typescript/namespace-a[gu -> ug]mentation

tldr: fix typo: namespace-agumentation....md -> namespace-augmentation....md

Long Version:
Rename namespace-agumentation@16TT8R4N-9tCfWmPetqMP.md to namespace-augmentation@16TT8R4N-9tCfWmPetqMP.md

Fixes english typo in topic name.

* typescript.json: label change for namespace-augmentation typofix

changed "label": "Namespace A[gu -> ug]mentation"
2024-12-10 10:25:25 +05:00
Kamran Ahmed
3727b33000 Add PHP roadmap references 2024-12-10 10:23:42 +05:00
Kamran Ahmed
fd97b2810e Add directory structure for PHP roadmap 2024-12-09 17:40:30 +05:00
Kamran Ahmed
62a8a5836c Add PHP roadmap 2024-12-09 17:40:30 +05:00
SantiagoN
ca696e6f01 fix: typo in data analyst roadmap
I discovered a grammatical error where "Analaysis" was written instead of "Analysis"
2024-12-09 13:38:47 +06:00
Vedansh
64b5bdfbe2 Improve content in terraform roadmap (#7852) 2024-12-09 10:25:52 +05:00
github-actions[bot]
6c9b0c1fb8 chore: update roadmap content json (#7847)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-08 00:51:09 +06:00
Kamran Ahmed
03c85f29c8 Make the question on the roadmap top sticky 2024-12-06 11:59:11 +05:00
Kamran Ahmed
c96886c929 Fix canonical tag issue 2024-12-06 08:02:13 +05:00
Hermes
f3584f8af6 Fix spelling mistake (#7836)
spelling correction
2024-12-05 20:14:55 +05:00
Jayaram R
7daf1e213b Add resource for Uptime Load in Linux (#7838)
* Resource for Uptime Load in Linux

Added 2 article link.

* Update src/data/roadmaps/linux/content/105-server-review/100-uptime-load.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-12-05 20:14:37 +05:00
Ed Lan
7d461a44b4 Reference tweaks for new guides (#7845)
* Update faqs.astro

* Update devops-shift-left-testing.md

* Update devops-principles.md

* Update devops-best-practices.md

* Update frontend-job-description.md

* Update how-to-become-frontend-developer.md

* Update frontend-languages.md

* Update frontend-developer-skills.md

* Update frontend.md

* Update css-variables.md

* Update devops-automation.md

* Update faqs.astro

* Update how-to-become-devops-engineer.md

* Update devops-career-path.md

* Update devops-vs-full-stack.md

* Update devops-principles.md

* Update devops-automation.md

* Update devops-lifecycle.md

* Update devops-shift-left-testing.md

* Update backend-languages.md

* Update backend-developer-skills.md

* Update backend-project-ideas.md

* Update backend-job-description.md

* Update devops-best-practices.md

* Update devops-career-path.md

* Update devops-lifecycle.md

* Update devops-principles.md

* Update devops-shift-left-testing.md

* Update devops-shift-left-testing.md

* Update devops-skills.md

* Update devops-vs-full-stack.md

* Update how-to-become-devops-engineer.md

* Update frontend-developer-skills.md

* Update frontend-job-description.md

* Update frontend-languages.md

* Update frontend-web-developer-portfolio.md

* Update how-to-become-frontend-developer.md
2024-12-05 20:11:50 +05:00
Kamran Ahmed
e2926012f4 Remove links from images 2024-12-05 20:10:52 +05:00
Vedansh
a5afac7d6d Improve QA roadmap content (#7842)
* Part E

* Part F

* Part G
2024-12-05 17:32:16 +05:00
Vedansh
e734563996 wip: refractor QA roadmap (#7841)
* Part C

* Part D

* Update src/data/roadmaps/qa/content/espresso@stMeB1U3SfuefZ-yS8wGF.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-12-05 18:01:44 +06:00
Vedansh
cc3db36fc2 wip: refractor QA roadmap (#7840)
* Part A

* Part B
2024-12-05 11:43:31 +06:00
Chaitanya Shimpi
d6e842169a Fix spelling mistakes (#7839) 2024-12-04 21:51:55 +05:00
Maxat Akbanov
96de0f98df Fix typo in ECS official link (#7835)
* Fix broken link in Kubernetes Roadmap (#6343)

* Add missing naming for Cloud Design Patterns link in DevOps roadmap

* DevOps roadmap: Fix typo in ECS official link
2024-12-04 21:51:26 +05:00
Kamran Ahmed
4c05f135f0 feat: remember authenticated redirect URL after login (#7832)
* feat: remember authenticated redirect URL after login

* feat: remember authenticated redirect URL after login
2024-12-03 22:27:45 +05:00
github-actions[bot]
a81c435500 chore: update roadmap content json (#7813)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-12-03 14:27:24 +06:00
Vedansh
add174a69b Refractor Entire Roadmap. (#7828) 2024-12-02 20:47:12 +05:00
Mauricio Pasten
9023073f9b Adding article of design patterns guide with examples (#7815)
* Adding article of design patterns guide with examples

* Update src/data/roadmaps/backend/content/gof-design-patterns@6XIWO0MoE-ySl4qh_ihXa.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-12-02 09:55:26 +05:00
Jayaram R
e8082ae75e Add resources for text processing (#7817)
Added Some Resources for Linux -> Text Processing
2024-12-02 09:52:48 +05:00
Himanshu Pareek
e43bb2c1f8 Adds resource for scrypt (#7824)
* Corrects resources

Existing resources point to sCrypt, which is a Web3 Development Platform

* Update scrypt@kGTALrvCpxyVCXHRmkI7s.md

* Update scrypt@kGTALrvCpxyVCXHRmkI7s.md
2024-12-02 09:50:39 +05:00
Joshi Prashant
d9cbc2f56e fix: correct link for client side game development (#7823) 2024-12-01 21:37:16 +06:00
Vedansh
6158d4def8 Improve software architect roadmap content (#7821)
* Phase A

* Phase B

* Phase C

* Phase D

* Phase E

* Phase F

* Phase - G

* Phase H

* Phase - I

* Phase - J

* Phase - <K>
2024-12-01 20:12:47 +05:00
Vedansh
a317d90f14 Improve PostgreSQL DBA roadmap (#7822) 2024-12-01 20:08:30 +05:00
Maxat Akbanov
8e1ba1eae2 DevOps roadmap: Missing name for the official link of Cloud Design Patterns (#7811)
* Fix broken link in Kubernetes Roadmap (#6343)

* Add missing naming for Cloud Design Patterns link in DevOps roadmap
2024-11-30 16:38:53 +05:00
Viktor Kolev
fa3312f70c Fix typo in AI roadmap (#7804) 2024-11-29 15:49:38 +05:00
github-actions[bot]
d7ed3a1cb5 chore: update roadmap content json (#7805)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-29 15:49:07 +05:00
shresth-kumar-lal
68675d6c16 Replace obsolete links (#7809)
Updated the obsolete link with new and maintained one.

Old link contents had been obsoleted since (02/2023) and contents are migrated to https://btrfs.readthedocs.io and https://btrfs.docs.kernel.org

New links also include new changes and features.
2024-11-29 14:27:05 +05:00
Kamran Ahmed
7ba2d22463 Remove the "Feature" button from AI generated roadmaps 2024-11-29 11:55:17 +05:00
Kamran Ahmed
18f77a01f8 Add devops tools guide 2024-11-29 11:48:05 +05:00
Kamran Ahmed
faf70f6e35 Add frontend technologies guide 2024-11-29 11:22:26 +05:00
Kamran Ahmed
bf734b0294 Update project announcement 2024-11-28 08:58:45 +05:00
Kamran Ahmed
266d357e2a Make TOC sticky on guides 2024-11-27 21:44:33 +05:00
Kamran Ahmed
addf973c81 Add related guides on mobile 2024-11-27 21:44:33 +05:00
Ed Lan
8d841b1bf2 Update guides (#7802)
* Update faqs.astro

* Update devops-shift-left-testing.md

* Update devops-principles.md

* Update devops-best-practices.md

* Update frontend-job-description.md

* Update how-to-become-frontend-developer.md

* Update frontend-languages.md

* Update frontend-developer-skills.md

* Update frontend.md

* Update css-variables.md

* Update devops-automation.md

* Update faqs.astro

* Update how-to-become-devops-engineer.md

* Update devops-career-path.md

* Update devops-vs-full-stack.md

* Update devops-principles.md

* Update devops-automation.md

* Update devops-lifecycle.md

* Update devops-shift-left-testing.md

* Update backend-languages.md

* Update backend-developer-skills.md

* Update backend-project-ideas.md

* Update backend-job-description.md
2024-11-27 19:59:34 +05:00
Ni Jannasch
c099f341b5 Update title from Infrastructure as Cloud to Infrastructure as Code (#7801)
* Rename understand-the-concept-of-infrastructure-as-cloud@RJctUpvlUJGAdwBNtDSXw.md to understand-the-concept-of-infrastructure-as-code@RJctUpvlUJGAdwBNtDSXw.md

Fix the name of the page

* Update cyber-security.json
2024-11-27 18:11:23 +05:00
Kamran Ahmed
6f38dcccb8 Refactor related guides functionality (#7800) 2024-11-27 15:52:23 +05:00
Arik Chakma
9d65c49b8d fix: hide loading screen on error (#7798) 2024-11-27 13:27:51 +06:00
Ed Lan
64a31481e7 Various touch ups for frontend and devops guides (#7793)
* Update faqs.astro

* Update devops-shift-left-testing.md

* Update devops-principles.md

* Update devops-best-practices.md

* Update frontend-job-description.md

* Update how-to-become-frontend-developer.md

* Update frontend-languages.md

* Update frontend-developer-skills.md

* Update frontend.md

* Update css-variables.md
2024-11-27 12:12:28 +05:00
Abderrahmane Lazraq
d1edda8940 What is engineering management? (#7794)
* What is engineering management?

* Update src/data/roadmaps/engineering-manager/content/what-is-engineering-management@_hYN0gEi9BL24nptEtXWU.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-27 12:11:15 +05:00
Arik Chakma
43849e758e feat: showcase roadmap (#7791)
* wip

* wip

* fix: status issue

* feat: update UI

* wip

* wip: showcase status

* wip: showcase listing

* feat: update showcase status

* chore: update roadmap content json (#7738)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Fix issue in sticky top ad

* Add preloading of ad image

* feat(backend): update unit testing node resources (#7743)

* feat: container orchestration

* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

Simplified content and added working links to resources for better clarity and learning.

* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

Replace content and added working links to resources for better clarity and learning.

* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

* Update src/data/roadmaps/devops/content/container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>

* docs: fix typos and improve grammar in documentation (#7747)

Corrects typos and grammatical errors in various markdown files to enhance clarity and readability.

* feat: add PearAI code editor

Added PearAI to the list of AI Code Editors (An Open Source Option for developers!)

* chore: update roadmap content json (#7751)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* feat: center of mass explain video (#7754)

video addition explaining COM better

* Ad new changelog entry

* Update C# link to correct URL (#7757)

* Add engineering manager roadmap

* chore: update roadmap content json (#7758)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Update frontend FAQs (#7764)

Tweaked the first two Qs

* Update DevOps skills (#7763)

Added internal refs

* Add ref to DevOps roadmap in guide (#7762)

Added roadmap ref.

* Add engineering manager roadmap

* Update engineering manager roadmap content

* Update engineering manager roadmap

* Add content to engineering manager roadmap

* chore: update roadmap content json (#7768)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* fix: postgresql link (#7766)

* fix(typo): comma todo-list-api.md (#7772)

* Add new link of Redis in FullStack (#7771)

* chore: update roadmap content json (#7778)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Add content to vue.js performance (#7777)

* Update performance@f7N4pAp_jBlT8_8owAcbG.md

* Update src/data/roadmaps/vue/content/performance@f7N4pAp_jBlT8_8owAcbG.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update resources for Authentication (#7745)

* Update authentication-vs-authorization@WG7DdsxESm31VcLFfkVTz.md

replaced a wrong article with one about biometrics

* Update understand-common-exploit-frameworks@Lg7mz4zeCToEzZBFxYuaU.md

link redirects to a Thai gambling game site

* Add resource for rest-assured (#7737)

## Content

I’ve added a beginner-friendly article, A Guide to REST-assured, from Baeldung to the REST Assured section. If there’s anything that doesn’t meet the format, please feel free to comment. Thanks😊.

## Issue
Fixed #7736

* Add UX design resource (#7710)

* Update conceptual-design@r6D07cN0Mg4YXsiRSrl1_.md

I have added an article by Dan Nessler on How to apply a design thinking, HCD, UX or any creative process from scratch which is a how-to article aims at providing designers, creative thinkers or even project managers with a tool to set up, frame, organise, structure, run or manage design challenges, and projects: The Double Diamond revamped.

* Update conceptual-design@r6D07cN0Mg4YXsiRSrl1_.md

I have added an article by Dan Nessler on How to apply a design thinking, HCD, UX or any creative process from scratch which is a how-to article aims at providing designers, creative thinkers or even project managers with a tool to set up, frame, organise, structure, run or manage design challenges, and projects: The Double Diamond revamped.

* Add user personas resource to UX design (#7709)

Added more resources from IxD Foundation and NN group.

Co-authored-by: Shivam Kumar <85393390+TinyTijil@users.noreply.github.com>

* Add linked in content (#7695)

* Update linkedin@6UR59TigEZ0NaixbaUIqn.md

* Update src/data/roadmaps/devrel/content/linkedin@6UR59TigEZ0NaixbaUIqn.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Added article on AuthN vs AuthZ (#7694)

Added a guide on the difference between authentication and authorization, since these terms are often confused.

* Add a video to the Decentralization section (#7692)

* adding a video to the Decentralization section

* adding a video to the Decentralization section

* Fixes typo in 104-proc-priorities.md (#7684)

Old: renice +5
New: renice -5

From my research, after reading the topic in the Linux roadmap, it didnt make sense that increasing the priority of a process was made by +5, the topic said that a negative number makes the priority higher, so do many articles on the internet.

* Add bastion host and file integrity checker idea

* Add pomodoro timer project idea

* Add project idea for quiz app

* chore: update roadmap content json (#7785)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* fix typo in dockerhub alternatives (#7780)

Co-authored-by: Fabio Stabile <fabio.stabile@mia-platform.eu>

* Add content to engineering manager roadmap (#7779)

* Update system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

* Update src/data/roadmaps/engineering-manager/content/system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

* Update src/data/roadmaps/engineering-manager/content/system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Add project idea for stories feature

* Add weather app project idea

* Update project ideas

* Add engineering manager roadmap content

* Update engineering manager roadmap content

* Add DevOps best practices guide

* Add AI Engineer introduction video (#7788)

* Added Introduction Video

* Changed formatting

* Update src/data/roadmaps/ai-engineer/content/introduction@_hYN0gEi9BL24nptEtXWU.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* chore: update roadmap content json (#7789)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Add devops automation tools

* Add featuring functionality

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Co-authored-by: Rogério Ferreira de Souza <rogeriofrsouza@gmail.com>
Co-authored-by: Jawher Kl <kalleljawher4@gmail.com>
Co-authored-by: garyellow <gary20011110@gmail.com>
Co-authored-by: Nang <nathanang2000@gmail.com>
Co-authored-by: FormerlyWD <156501761+FormerlyWD@users.noreply.github.com>
Co-authored-by: dudi vaichledere <117650526+dudi-w@users.noreply.github.com>
Co-authored-by: Ed Lan <165309301+Edlan01@users.noreply.github.com>
Co-authored-by: elias_sisay <87943132+eliassisay@users.noreply.github.com>
Co-authored-by: feelsgoodfrog <gudrb963@gmail.com>
Co-authored-by: Gustavo Martins Pereira <gustavo.martins.pereira.main@gmail.com>
Co-authored-by: Maksymilian <maxsapa@gmail.com>
Co-authored-by: b4haa7 <69992780+88BahaaAdel88@users.noreply.github.com>
Co-authored-by: Wick Dynex <1328032567@qq.com>
Co-authored-by: Shivam Kumar <85393390+kshivam14@users.noreply.github.com>
Co-authored-by: Shivam Kumar <85393390+TinyTijil@users.noreply.github.com>
Co-authored-by: Yanbo Wang <yanbotravelaroundworld@gmail.com>
Co-authored-by: Lisa Dziuba <lisa@flawlessapp.io>
Co-authored-by: Karamoko Israël Abdelaziz Axel <72276211+karamokoisrael@users.noreply.github.com>
Co-authored-by: duds <xaviduds@gmail.com>
Co-authored-by: Fabio Stabile <93452841+fabioS24@users.noreply.github.com>
Co-authored-by: Fabio Stabile <fabio.stabile@mia-platform.eu>
Co-authored-by: Naresh Thakur <122244033+thinklikeacto@users.noreply.github.com>
Co-authored-by: Gustaf <79180496+GGyll@users.noreply.github.com>
2024-11-27 12:07:59 +05:00
Umut
ee95280452 fix: a broken link, an image, and punctuation (#7795)
* introduction-to-llms.md - editing a broken link and an image, and punctuation

- Editing the URL of the image, it was broken.
- Editing the URL of BERT, it was broken.
- Some punctuation corrections

* Reverted the URL update 

Because the URL of BERT was broken, I had updated it. But the previous URL works now.
2024-11-27 08:09:31 +06:00
github-actions[bot]
d01678ad56 chore: update roadmap content json (#7796)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-27 08:07:51 +06:00
Kamran Ahmed
1cf9adab25 Remove author from base layout 2024-11-26 21:02:26 +05:00
Kamran Ahmed
a837f9b0a1 Add devops automation tools 2024-11-26 10:09:57 +05:00
github-actions[bot]
e48c57e205 chore: update roadmap content json (#7789)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-26 07:43:12 +05:00
Gustaf
436d0580b4 Add AI Engineer introduction video (#7788)
* Added Introduction Video

* Changed formatting

* Update src/data/roadmaps/ai-engineer/content/introduction@_hYN0gEi9BL24nptEtXWU.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-26 07:42:59 +05:00
Kamran Ahmed
ecd0624d51 Add DevOps best practices guide 2024-11-26 07:41:35 +05:00
Kamran Ahmed
7f97085b2c Update engineering manager roadmap content 2024-11-25 18:11:27 +05:00
Kamran Ahmed
f4f74df5d4 Add engineering manager roadmap content 2024-11-25 18:01:37 +05:00
Kamran Ahmed
8845c05dd3 Update project ideas 2024-11-25 10:10:11 +05:00
Kamran Ahmed
35a48f9a28 Add weather app project idea 2024-11-25 09:36:47 +05:00
Kamran Ahmed
b41caff321 Add project idea for stories feature 2024-11-25 09:32:33 +05:00
Naresh Thakur
77c2b59d0b Add content to engineering manager roadmap (#7779)
* Update system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

* Update src/data/roadmaps/engineering-manager/content/system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

* Update src/data/roadmaps/engineering-manager/content/system-design-and-architecture@iX4HPgoiEbc_gze1A01n4.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-25 07:34:28 +05:00
Fabio Stabile
4a43c4748a fix typo in dockerhub alternatives (#7780)
Co-authored-by: Fabio Stabile <fabio.stabile@mia-platform.eu>
2024-11-25 07:32:34 +05:00
github-actions[bot]
8247a1661a chore: update roadmap content json (#7785)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-25 07:32:21 +05:00
Kamran Ahmed
9948873866 Add project idea for quiz app 2024-11-24 10:14:22 +05:00
Kamran Ahmed
67d8fcccb1 Add pomodoro timer project idea 2024-11-24 09:54:19 +05:00
Kamran Ahmed
f629987064 Add bastion host and file integrity checker idea 2024-11-24 08:54:33 +05:00
duds
902aa1c7a6 Fixes typo in 104-proc-priorities.md (#7684)
Old: renice +5
New: renice -5

From my research, after reading the topic in the Linux roadmap, it didnt make sense that increasing the priority of a process was made by +5, the topic said that a negative number makes the priority higher, so do many articles on the internet.
2024-11-24 08:17:10 +05:00
Karamoko Israël Abdelaziz Axel
1008d22a22 Add a video to the Decentralization section (#7692)
* adding a video to the Decentralization section

* adding a video to the Decentralization section
2024-11-24 08:16:34 +05:00
Lisa Dziuba
165d2a870b Added article on AuthN vs AuthZ (#7694)
Added a guide on the difference between authentication and authorization, since these terms are often confused.
2024-11-24 08:15:36 +05:00
Yanbo Wang
f2946d2b31 Add linked in content (#7695)
* Update linkedin@6UR59TigEZ0NaixbaUIqn.md

* Update src/data/roadmaps/devrel/content/linkedin@6UR59TigEZ0NaixbaUIqn.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-24 08:14:33 +05:00
Shivam Kumar
30f7705c93 Add user personas resource to UX design (#7709)
Added more resources from IxD Foundation and NN group.

Co-authored-by: Shivam Kumar <85393390+TinyTijil@users.noreply.github.com>
2024-11-24 08:10:54 +05:00
Shivam Kumar
58f7e3e579 Add UX design resource (#7710)
* Update conceptual-design@r6D07cN0Mg4YXsiRSrl1_.md

I have added an article by Dan Nessler on How to apply a design thinking, HCD, UX or any creative process from scratch which is a how-to article aims at providing designers, creative thinkers or even project managers with a tool to set up, frame, organise, structure, run or manage design challenges, and projects: The Double Diamond revamped.

* Update conceptual-design@r6D07cN0Mg4YXsiRSrl1_.md

I have added an article by Dan Nessler on How to apply a design thinking, HCD, UX or any creative process from scratch which is a how-to article aims at providing designers, creative thinkers or even project managers with a tool to set up, frame, organise, structure, run or manage design challenges, and projects: The Double Diamond revamped.
2024-11-24 08:09:59 +05:00
Wick Dynex
c28fffcbfd Add resource for rest-assured (#7737)
## Content

I’ve added a beginner-friendly article, A Guide to REST-assured, from Baeldung to the REST Assured section. If there’s anything that doesn’t meet the format, please feel free to comment. Thanks😊.

## Issue
Fixed #7736
2024-11-24 08:07:49 +05:00
b4haa7
9b1848d504 Update resources for Authentication (#7745)
* Update authentication-vs-authorization@WG7DdsxESm31VcLFfkVTz.md

replaced a wrong article with one about biometrics

* Update understand-common-exploit-frameworks@Lg7mz4zeCToEzZBFxYuaU.md

link redirects to a Thai gambling game site
2024-11-24 08:07:02 +05:00
Maksymilian
39d64df330 Add content to vue.js performance (#7777)
* Update performance@f7N4pAp_jBlT8_8owAcbG.md

* Update src/data/roadmaps/vue/content/performance@f7N4pAp_jBlT8_8owAcbG.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-24 08:01:16 +05:00
github-actions[bot]
f22afb4708 chore: update roadmap content json (#7778)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-24 07:56:41 +05:00
Gustavo Martins Pereira
e0cbb69710 Add new link of Redis in FullStack (#7771) 2024-11-23 20:03:08 +06:00
feelsgoodfrog
7ea7ae68c4 fix(typo): comma todo-list-api.md (#7772) 2024-11-22 18:03:48 +06:00
elias_sisay
6c86cc4a30 fix: postgresql link (#7766) 2024-11-20 22:42:49 +06:00
github-actions[bot]
7c55761380 chore: update roadmap content json (#7768)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-20 06:12:44 +06:00
Kamran Ahmed
39791a98a8 Add content to engineering manager roadmap 2024-11-19 13:18:17 -08:00
Kamran Ahmed
c193510f95 Update engineering manager roadmap 2024-11-19 08:49:00 -08:00
Kamran Ahmed
0c59ce24c1 Update engineering manager roadmap content 2024-11-19 08:47:21 -08:00
Kamran Ahmed
00383f4142 Add engineering manager roadmap 2024-11-19 07:25:11 -08:00
Ed Lan
b4b9311601 Add ref to DevOps roadmap in guide (#7762)
Added roadmap ref.
2024-11-19 05:16:03 -08:00
Ed Lan
cdbf2b3afd Update DevOps skills (#7763)
Added internal refs
2024-11-19 05:15:41 -08:00
Ed Lan
17615c68c5 Update frontend FAQs (#7764)
Tweaked the first two Qs
2024-11-19 05:10:53 -08:00
github-actions[bot]
b6eb3f38a6 chore: update roadmap content json (#7758)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-19 17:43:05 +06:00
Kamran Ahmed
4180ecd30f Add engineering manager roadmap 2024-11-18 18:19:39 -08:00
dudi vaichledere
a567425bf3 Update C# link to correct URL (#7757) 2024-11-18 15:46:50 -08:00
Kamran Ahmed
e387204802 Ad new changelog entry 2024-11-18 12:55:27 -08:00
FormerlyWD
96c2b84c71 feat: center of mass explain video (#7754)
video addition explaining COM better
2024-11-18 21:32:55 +06:00
github-actions[bot]
9add3d9dc1 chore: update roadmap content json (#7751)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-18 21:28:52 +06:00
Nang
1d9cdb2b9c feat: add PearAI code editor
Added PearAI to the list of AI Code Editors (An Open Source Option for developers!)
2024-11-18 01:57:12 +06:00
garyellow
3601b025a3 docs: fix typos and improve grammar in documentation (#7747)
Corrects typos and grammatical errors in various markdown files to enhance clarity and readability.
2024-11-17 18:44:00 +06:00
Jawher Kl
d7a9df3533 feat: container orchestration
* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

Simplified content and added working links to resources for better clarity and learning.

* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

Replace content and added working links to resources for better clarity and learning.

* Update container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

* Update src/data/roadmaps/devops/content/container-orchestration@Yq8kVoRf20aL_o4VZU5--.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-11-17 06:36:29 +06:00
Rogério Ferreira de Souza
37c504b6cf feat(backend): update unit testing node resources (#7743) 2024-11-17 06:31:59 +06:00
Kamran Ahmed
75a6c9133c Add preloading of ad image 2024-11-15 07:18:31 -07:00
Kamran Ahmed
1d1541386f Fix issue in sticky top ad 2024-11-15 07:09:57 -07:00
github-actions[bot]
8de3b5eb38 chore: update roadmap content json (#7738)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-15 16:39:33 +06:00
Jawher Kl
8e5e8ce0b6 fix: git clone link (#7735)
Fix broken link in Git & GitHub Roadmap
2024-11-14 17:21:23 +06:00
github-actions[bot]
c81cdf87c3 chore: update roadmap content json (#7732)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-14 17:19:26 +06:00
gavhu10
b28834ee3b feat: add a resource for python functions (#7724) 2024-11-14 03:42:17 +06:00
icoderarely
c3c9e8dd9a Fix color mismatch between legend and roadmap sections (#7729) 2024-11-13 07:20:02 -07:00
Jawher Kl
8788aabba7 Fix bug in file name (#7730)
I encountered a bug today while attempting to select the 'virtualenv' panel in the Python Roadmap. After investigating, it appears that the generated ID, virutalenv@_IXXTSwQOgYzYIUuKVWNE, is incorrect. The correct ID should be virtualenv@_IXXTSwQOgYzYIUuKVWNE.
2024-11-13 07:18:42 -07:00
Kamran Ahmed
9dcde9d2fc Add missing alt tag to backend job template guide 2024-11-12 16:15:18 -07:00
Kamran Ahmed
d9a161c876 Add backend job description template 2024-11-12 16:14:16 -07:00
Kamran Ahmed
41397b7960 Remove new badge from old guides 2024-11-12 15:37:17 -07:00
Kamran Ahmed
92ec666d3b Add related guides to devops guides 2024-11-12 15:28:46 -07:00
Kamran Ahmed
9d17dcc27f Add related guides to frontend guides 2024-11-12 15:22:34 -07:00
Kamran Ahmed
f8e6e8cf92 Add related guides to backend guides 2024-11-12 15:14:17 -07:00
ASIIMWE GRACE NOBLE
684c103aa2 fix(expense tracker): logical error in description (#7720)
If we are referencing by id and not index then --id 1 would remove the first element making the summary 10 and not 20

Solution: delete the second element instead to make the summary add up correctly.
2024-11-12 11:26:50 +06:00
Kamran Ahmed
322dea30d0 Remove new badge from old guides and videos 2024-11-11 15:31:35 -08:00
Kamran Ahmed
c6d96d8fa9 Remove actively maintained from unrelated pages 2024-11-11 15:29:41 -08:00
Kamran Ahmed
7b28484679 Remove AI roadmaps from indexing 2024-11-11 15:29:41 -08:00
Rudin Maxim
d5fae890a6 fix: empty buttons in profile update (#7717)
* Empty buttons in profile update

* fix: filtering in one call

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-11-12 01:21:36 +06:00
Tanishk Bansode
76474bd604 fix: protocol buffers video (#7712)
* Update 107-buffer.md

* Update 105-protocol-buffers.md

* Update 105-protocol-buffers.md
2024-11-11 06:32:24 +06:00
github-actions[bot]
316d265fef chore: update roadmap content json (#7704)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-09 19:27:38 +06:00
Kamran Ahmed
112c1d4672 Add calendar event 2024-11-09 11:20:50 +05:00
Arik Chakma
2a6c1bfce8 feat: implement calendar scheduling (#7574)
* wip

* feat: add calendar scheduling

* fix: update names

* UI Changes for calendar scheduling

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-08 21:48:09 +05:00
Brendan Chia
e4c863bbf4 fix: Update color ticks hexcode from #2d72d2 to #874efe (#7699) 2024-11-08 16:34:38 +05:00
Prasanna Kotyal
d7a390213c fix: broken gitignore link (#7696)
fix: update gitignore documentation link
Closes #7693
2024-11-08 08:05:04 +06:00
Georgios Drivas
ae54bac820 Update Toast.tsx to remove unsued interface (#7698) 2024-11-07 23:44:27 +05:00
Dan
a60da85876 add devops automation guide (#7680) 2024-11-07 17:02:42 +05:00
Arik Chakma
f47bf798d3 feat: related guides sidebar (#7682)
* feat: related guides sidebar

* fix: hide related guides on mobile
2024-11-07 17:01:18 +05:00
duds
a0addd1408 fix: typo handle to handled (#7686)
From handle to handled, I believe this is grammatically correct.
2024-11-06 21:25:50 +06:00
Aldiyar Dabarov
8fe9669fd4 fix: broken Docker Docs link (#7689) 2024-11-06 21:24:33 +06:00
Ed Lan
b8ea4d58ec Update how-to-become-frontend-developer.md (#7678)
Guide reference updates
2024-11-05 14:14:22 +00:00
Ed Lan
b4fa9fcf9e Update frontend-frameworks.md (#7677)
Guide reference touch ups
2024-11-05 14:14:02 +00:00
Ed Lan
ee83070507 Fix guide text (#7679)
Guide reference tweaks
2024-11-05 16:41:23 +05:00
Ed Lan
54809698ed Fix markdown link issue in guide (#7676)
* Update frontend-languages.md

Guide reference touch ups

* Update src/data/guides/frontend-languages.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-05 16:04:03 +05:00
github-actions[bot]
7ac0383769 chore: update roadmap content json (#7673)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-05 07:49:55 +06:00
Dan
e7ad915067 DevRel Roadmap Content. (#7512)
* copy for 40 topics

* 35 complete topics

* add 8 topics
2024-11-04 23:02:09 +05:00
Dan
b82d791b4e Add frontend job description guide (#7570)
* add frontend job description guide

* remove bold on h2

* Update src/data/guides/frontend-job-description.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-04 22:59:18 +05:00
Dan
a970359c7a Removed relational operators in favour of conditional (#7616)
* removed relational operators in favour of conditional as they're one in the same

* removed relational file
2024-11-04 22:58:28 +05:00
Dan
1e020de085 Add shift left devops guide (#7623)
* add shift-left devops guide

* add article to FAQs

* Update src/data/guides/devops-shift-left-testing.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-04 22:58:09 +05:00
Dan
55c35409e3 Add full stack job spec guide (#7654)
* add full stack job spec guide

* Update src/data/guides/full-stack-job-description.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-11-04 22:56:09 +05:00
Dan
fbc3b89aca Add devops lifecycle guide (#7655) 2024-11-04 22:54:52 +05:00
Dan
4730997e6e Removed the hacktoberfest contrib guide (#7670) 2024-11-04 22:53:45 +05:00
Arik Chakma
f6e244d52b fix: paragraph overflow (#7669) 2024-11-04 16:46:12 +06:00
Rogério Ferreira de Souza
e9647bbe92 feat(java): add official articles on basic syntax and update the content (#7665) 2024-11-04 09:53:12 +00:00
Charles J. Fowler
f69130e918 Improve Prompt Engineering - Pitfalls of LLMs - Content & Links (#7666)
* 📃 docs, data (Image Prompting) Update Topic/Sub Topics - In Place Edits.

- intent: Update topic from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/

- modify - 10X .ms
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs, data (Prompt Engineering Roadmap) Basic Concepts - In Place Edits.

- changes: single paragraphs (74-125 words)>
- concerns: if any more concise, topics looses fidelity, meaning and utility.

- data: src/data/roadmaps/prompt-engineering/content/
    - 📂 100-basic-llm

- modify: Topic
    - update content:
        - index.md
        - 100-what-are-llm.md
        - 101-llm-types.md
        - 102-how-llms-built.md
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.)  Basic LLM Concepts - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 100 basic-llm

- modify topics:
    - add links
        - 100-what-are-llms.md
        - 101-types-llms.md
        - 102-how-llms-are-bilt.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* docs: (Prompt Eng.) Prompting Introduction - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 101-prompting-introduction

- modify topics:
    - add links
        - index.md
        - 100-basic-prompting.md
        - 101-need-for-prompting.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.) Real World Uses - Content & Links.

- intent:
  - Update topic and links from May 2023 to Oct 2024.
  - Realword use cases are dynamic and evolving.
  - Remodelled existing examples.

- data: src/data/roadmaps/prompt-engineering/content/
  - 📂 103-real-world

   - modify: Content Improve, 1st paragraph.

    - modify: Expanded Content paragraphs
      - index.md
      - 100-structured-data.md
      - 101-inferring.md
      - 102-writing-emails.md
      - 103-coding-assistance.md
      - 104-study-buddy.md
      - 105-designing-chatbots.md

    - modify: Links New
      - index.md
      - 100-structured-data.md
      - 101-inferring.md
      - 102-writing-emails.md
      - 103-coding-assistance.md
      - 104-study-buddy.md
      - 105-designing-chatbots.md

BREAKINGCHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.) LLM Pitfalls - Links.

- intent: Insert Links from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/
  - 📂 104-llm-pitfalls

- modify: Links New
  - index.md
  - 100-citing-sources.md
  - 101-bias.md
  - 102-halluncinations.md
  - 103-math.md
  - 104-prompt-hacking.md

- modify: Copy Refresh
  - index.md
  - 100-citing-sources.md
  - 101-bias.md
  - 102-halluncinations.md
  - 103-math.md
  - 104-prompt-hacking.md

BREAKINGCHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* Apply suggestions from code review

spacing and styling fixes

---------

Co-authored-by: Dan <daniel.s.holdsworth@gmail.com>
2024-11-04 09:52:32 +00:00
Charles J. Fowler
779935cc60 Improve Prompt Engineering - Real World Examples - Content & Links (#7660)
* 📃 docs, data (Image Prompting) Update Topic/Sub Topics - In Place Edits.

- intent: Update topic from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/

- modify - 10X .ms
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs, data (Prompt Engineering Roadmap) Basic Concepts - In Place Edits.

- changes: single paragraphs (74-125 words)>
- concerns: if any more concise, topics looses fidelity, meaning and utility.

- data: src/data/roadmaps/prompt-engineering/content/
    - 📂 100-basic-llm

- modify: Topic
    - update content:
        - index.md
        - 100-what-are-llm.md
        - 101-llm-types.md
        - 102-how-llms-built.md
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.)  Basic LLM Concepts - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 100 basic-llm

- modify topics:
    - add links
        - 100-what-are-llms.md
        - 101-types-llms.md
        - 102-how-llms-are-bilt.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* docs: (Prompt Eng.) Prompting Introduction - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 101-prompting-introduction

- modify topics:
    - add links
        - index.md
        - 100-basic-prompting.md
        - 101-need-for-prompting.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.) Real World Uses - Content & Links.

- intent:
  - Update topic and links from May 2023 to Oct 2024.
  - Realword use cases are dynamic and evolving.
  - Remodelled existing examples.

- data: src/data/roadmaps/prompt-engineering/content/
  - 📂 103-real-world

   - modify: Content Improve, 1st paragraph.

    - modify: Expanded Content paragraphs
      - index.md
      - 100-structured-data.md
      - 101-inferring.md
      - 102-writing-emails.md
      - 103-coding-assistance.md
      - 104-study-buddy.md
      - 105-designing-chatbots.md

    - modify: Links New
      - index.md
      - 100-structured-data.md
      - 101-inferring.md
      - 102-writing-emails.md
      - 103-coding-assistance.md
      - 104-study-buddy.md
      - 105-designing-chatbots.md

BREAKINGCHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* Apply suggestions from code review

Just a couple of small spacing fixes

---------

Co-authored-by: Dan <daniel.s.holdsworth@gmail.com>
2024-11-04 09:47:25 +00:00
Charles J. Fowler
a09704baa2 Improve Prompt Engineering - Prompts & Techniques - Links (#7653)
* 📃 docs, data (Image Prompting) Update Topic/Sub Topics - In Place Edits.

- intent: Update topic from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/

- modify - 10X .ms
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs, data (Prompt Engineering Roadmap) Basic Concepts - In Place Edits.

- changes: single paragraphs (74-125 words)>
- concerns: if any more concise, topics looses fidelity, meaning and utility.

- data: src/data/roadmaps/prompt-engineering/content/
    - 📂 100-basic-llm

- modify: Topic
    - update content:
        - index.md
        - 100-what-are-llm.md
        - 101-llm-types.md
        - 102-how-llms-built.md
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.)  Basic LLM Concepts - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 100 basic-llm

- modify topics:
    - add links
        - 100-what-are-llms.md
        - 101-types-llms.md
        - 102-how-llms-are-bilt.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* docs: (Prompt Eng.) Prompting Introduction - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 101-prompting-introduction

- modify topics:
    - add links
        - index.md
        - 100-basic-prompting.md
        - 101-need-for-prompting.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs:  (Prompt Eng.) Prompting Techniques - New Links.

- intent: Update missing links from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/
  - 📂 102-prompts

- modify: Links New
  - prompts/index.md
  - prompts/100-parts-of-a-prompt.md

  - 📂 102-prompts/prompting-techniques

- modify: Content Modify
  - added a "Learn more" line to all files ahead of links.
  - removed duplicated text in a code fence.
      - 104-least-to-most.md

- modify: Links New
  - 100-role-prompting.md
  - 101few-shot-prompting.md
  - 102-chain-of-thought.md
  - 103-zeroshot-chain-of-thought.md
  - 104-least-to-most.md
  - 105-dual-prompt.md
  - 106-combining-technqiues.md

BREAKINGCHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>
2024-11-01 12:12:28 +00:00
github-actions[bot]
b9fdd0c82b chore: update roadmap content json (#7649)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-11-01 16:42:46 +06:00
Dan
e06f9ea461 remove dupe link (#7652)
* remove dupe link
2024-11-01 09:23:31 +00:00
github-actions[bot]
5a2101e244 chore: update roadmap content json (#7643)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-31 20:25:08 +06:00
Laurin Sorgend
e0ea600a14 Update cookies@UFuX8wcxZQ7dvaQF_2Yp8.md (#7636)
Fixed typo
2024-10-31 10:47:18 +00:00
Charles J. Fowler
cf5a7d055a Improve Prompt Engineering - Basic LLM & Prompt Introduction: Links (#7639)
* 📃 docs, data (Image Prompting) Update Topic/Sub Topics - In Place Edits.

- intent: Update topic from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/

- modify - 10X .ms
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs, data (Prompt Engineering Roadmap) Basic Concepts - In Place Edits.

- changes: single paragraphs (74-125 words)>
- concerns: if any more concise, topics looses fidelity, meaning and utility.

- data: src/data/roadmaps/prompt-engineering/content/
    - 📂 100-basic-llm

- modify: Topic
    - update content:
        - index.md
        - 100-what-are-llm.md
        - 101-llm-types.md
        - 102-how-llms-built.md
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs: (Prompt Eng.)  Basic LLM Concepts - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 100 basic-llm

- modify topics:
    - add links
        - 100-what-are-llms.md
        - 101-types-llms.md
        - 102-how-llms-are-bilt.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* docs: (Prompt Eng.) Prompting Introduction - New Links.

- intent: Update topic from May 2023 to Oct 2024
   - 📂 101-prompting-introduction

- modify topics:
    - add links
        - index.md
        - 100-basic-prompting.md
        - 101-need-for-prompting.md

BREAKING CHANGE: 
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>
2024-10-31 10:46:54 +00:00
Bartłomiej Galicki
44f1b01da3 chore(r-cs-subnetting): replace the video resource with better one (#7640)
Co-authored-by: bartgalicki <bartlomiej.galicki.sp@lhsystems.com>
2024-10-31 10:45:42 +00:00
Ikboljon Abdurasulov
7254a58328 fix: Improve grep command to filter files ending with .txt (#7627) 2024-10-30 14:17:05 +06:00
github-actions[bot]
0d3fdb2319 chore: update roadmap content json (#7633)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-30 14:16:08 +06:00
Aboody_01
5d4c7b8bac add a complete guide article about wiston logging at Nodejs Roadmap (#7634) 2024-10-30 08:10:54 +00:00
salocin-95
aca289b214 fix: desktop typo (#7625)
Fix a typo at line 31 from "desctop" to "desktop"
2024-10-29 19:45:42 +06:00
Bartłomiej Galicki
b395e4fc70 fix(r-cs-ldap): add missing video title (#7624) 2024-10-29 19:44:28 +06:00
github-actions[bot]
4a5c3d5786 chore: update roadmap content json (#7628)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-29 19:40:53 +06:00
Arik Chakma
8891404331 fix: roadmap node overflow (#7622) 2024-10-28 19:13:13 +06:00
Dan
a1371d552c added FAQs with TDS link for AI Eng (#7619) 2024-10-28 12:21:40 +00:00
Dan
25db2fdfda update SSL copy from the incorrect SSO one (#7618) 2024-10-28 10:57:33 +00:00
github-actions[bot]
c8250ae8bb chore: update roadmap content json (#7610)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-28 16:46:05 +06:00
Raf
7d9b10b2c6 Update data-structures--algorithms@VJSIbYJcy2MC6MOFBrqXi.md (#7607)
Updated the URL to visit the dedicated DSA Roadmap rather than leading to a page not found with the wrong URL.
2024-10-27 21:21:26 +00:00
github-actions[bot]
fe580b8da2 chore: update roadmap content json (#7603)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-27 16:04:02 +06:00
Kamran Ahmed
65f1c9ca50 feat: add support for sticky sponsor banner (#7602)
* Add sponsors functionality

* Fix overlapping issue

* Add sticky top sponsor
2024-10-26 23:34:50 +01:00
github-actions[bot]
7f399f5c7c chore: update roadmap content json (#7591)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-26 19:14:48 +06:00
Kamran Ahmed
414ce7afd9 Fix propagation issue on sponsor close 2024-10-26 11:01:23 +01:00
Murshal Akhtar Ansari
7e9de94b14 roadmap(DSA): added missing resouce links in problem solving techniques (#7586) 2024-10-26 09:02:20 +01:00
Hunter Greer
e34619c24b Update 102-big-omega.md (#7587)
Fixed inaccuracy with description
2024-10-26 08:59:51 +01:00
Aboody_01
65ab0f4f4f add an article about Web Storage API at Frontend Roadmap (#7592) 2024-10-26 08:52:14 +01:00
Eshaan Awasthi
50155c3ad0 Adding Kafka Streams documentation (#7578)
* Adding Kafka Streams documentations

* Adding detailed docs for Streams API

* Updating the changes

* Updating changes
2024-10-26 08:48:26 +01:00
Mohammad Mahdi Bahrami
8845af89e6 Update formatting@fU8Vnw1DobM4iXl1Tq6EK.md (#7590)
* Update formatting@fU8Vnw1DobM4iXl1Tq6EK.md

Added [BiomeJS](https://biomejs.dev) to formatting tools

* fix: update paragraph

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-10-26 04:28:09 +06:00
nigeisel
4910719d4e Fix content for terraform and aws roadmaps (#7589)
* Fix URLs to AWS docs: links pointed to portuguese version of documentation

* Fix URL to official process.env documentation (it pointed to an unrelated digital ocean article about command line args)

* Fix typo

* Add resource lifecycle node

* Fix @article@ tag case

* * Fix common but dangerous misconception: values, even if marked as sensitive, ARE written to state files in CLEAR text!
  * Source: https://developer.hashicorp.com/terraform/language/values/outputs#sensitive-suppressing-values-in-cli-output
* Fix minor display issue: "<sensitive>" is rendered to "", so it was changed to `<sensitive>`

* Fix missing space

* Update terraform plan & apply
* Fix link to terraform apply docs (pointed to terraform plan)
* Add link to official terraform plan docs to terraform plan node
2024-10-25 22:31:36 +01:00
Vedansh
5933413f3b Improve content of game developer roadmap (#7561)
* Phase 1 for Long Running...

* Phase - 2

* Phase - 3

* Phase - 4

* Phase - 5

* Phase - 6

* Phase - 7

* Phase - 8

* Phase - 9

* Phase - 10 (Final)
2024-10-25 22:14:28 +01:00
Charles J. Fowler
e4dcf5585e 📃 Prompt Eng Roadmap (Image Prompting) - Improve (2023, Q2 -> 2024, Q4) (#7571)
* 📃 docs, data (Image Prompting) Update Topic/Sub Topics - In Place Edits.

- intent: Update topic from May 2023 to Oct 2024

- data: src/data/roadmaps/prompt-engineering/content/

- modify - 10X .ms
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>

* 📃 docs, data (Prompt Engineering Roadmap) Basic Concepts - In Place Edits.

- changes: single paragraphs (74-125 words)>
- concerns: if any more concise, topics looses fidelity, meaning and utility.

- data: src/data/roadmaps/prompt-engineering/content/
    - 📂 100-basic-llm

- modify: Topic
    - update content:
        - index.md
        - 100-what-are-llm.md
        - 101-llm-types.md
        - 102-how-llms-built.md
---

Co-authored-by: @iPoetDev <ipoetdev-github-no-reply@outlook.com>
2024-10-25 19:16:52 +01:00
Alastair
85230cdb8b Fixing link to point to specific "Ambient Modules" anchor in TS Modules Reference (#7585)
The old link is improperly formatted--as such, it simply redirects the user to https://www.typescriptlang.org/docs/handbook/modules/introduction.html, rather than the more specific https://www.typescriptlang.org/docs/handbook/modules/reference.html#ambient-modules
2024-10-25 19:12:45 +01:00
github-actions[bot]
afdadf1efc chore: update roadmap content json (#7575)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-25 23:29:20 +06:00
megaqbit
4cb2994b13 fix: add space for Markdown links formatting (#7582) 2024-10-25 16:16:07 +01:00
Kamran Ahmed
03a974ad24 Add event value 2024-10-25 11:39:34 +01:00
Kamran Ahmed
171f1431c2 Move GA to head 2024-10-25 11:00:38 +01:00
Kamran Ahmed
f37ed9fab8 Migrate from UA -> GA4 2024-10-25 10:45:14 +01:00
Vedansh
687d3ee4da Improve Blockchain Roadmap (#7557)
* Phase - 1 (Common Fixes)

* Phase - 2 (Majors)

* Phase - 3 (Special Content)

* Phase - 4

* Phase - 5 (Final)

* Apply Suggested Changes from Dan.
2024-10-24 13:46:13 +01:00
github-actions[bot]
70c09f263c chore: update roadmap content json (#7567)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-24 17:53:04 +06:00
Vedansh
13ec5a7274 Update Few Topics in UX Design Roadmap (#7559)
* Phase - 1

* Phase - 2
2024-10-24 10:09:20 +01:00
dsh
5c5aa683b3 Add developer portfolioo guide (#7527) 2024-10-23 11:29:51 +01:00
dsh
f6e5901ae7 Add new fe overview video to video page (#7558) 2024-10-23 11:28:48 +01:00
github-actions[bot]
4b0b0fa5ca chore: update roadmap content json (#7563)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-23 15:20:29 +06:00
Aboody_01
346020829a add a video resource about API`s in Nodejs Roadmap (#7564) 2024-10-23 10:06:21 +01:00
github-actions[bot]
d7252f9a9c chore: update roadmap content json (#7552)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-23 00:38:14 +06:00
Artur
f1e552d085 Adding 2 videos links to Aws Roadmap - EC2 and VPC topics (#7533)
* adding official video from aws that resumes ec2

* adding video from freecodecamp that cover vpc service

* Add a newer video

Adding a video that give a overview and a tutorial on how to create a basic instance
2024-10-22 10:34:08 +01:00
Debajyati Dey
64931e0e0e Linux (#7541)
Adding links to Linux topics.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-22 10:25:19 +01:00
Aboody_01
eb44988a84 add a process stdin article to the Nodejs Roadmap (#7554) 2024-10-22 10:19:58 +01:00
Benjamin Yee
75b01dc212 Add resources to Technical Writer Roadmap (#7555)
I added two articles and two YouTube videos to explain more about the subject of technical writing.
2024-10-22 10:19:05 +01:00
ChocolateCharlie
3a6565d08c fix: friends typo (#7551) 2024-10-22 01:20:32 +06:00
Himanshu Jangid, हिमांशु जाँगिड़
b4545185a3 Add the curve definition and application examples for game development (#7543)
* Add the curve definition and application examples for game development

* chore: make the content concise and add links

There aren't much articles and videos for curves as a whole, most of them just have the definition. Creators prefer explaining individual curve types rather than all of them in one video but those should be linked into the sub-categories and that is already done.
2024-10-21 15:41:51 +01:00
github-actions[bot]
e40af763d7 chore: update roadmap content json (#7547)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-21 16:52:47 +06:00
Nkwi Cyril
70c7a7ee16 Fix/grammatical error (#7535)
* chore(src): fix grammatical error on headings

* chore(src): fix grammatical error on headings
2024-10-21 10:45:43 +01:00
Aboody_01
b0700a3273 add an article about react susbense at Reactjs Roadmap (#7534) 2024-10-21 10:19:24 +01:00
Himanshu Jangid, हिमांशु जाँगिड़
47741ca640 Add a video learning resource for bezier curve (#7544)
The attached video is one of the most simple to understand yet highly technical for bezier curves.
2024-10-21 10:14:03 +01:00
Murshal Akhtar Ansari
8663ba3969 roadmap: added missing resource links in DSA (#7545) 2024-10-21 10:13:19 +01:00
Vishnu Vardhan
a7b40f047c Fix typo in PgBouncer website URL (#7542)
* Fix typo in PgBouncer website URL

* Revert the JSON File for PgBouncer
2024-10-20 17:39:23 +06:00
Alastair
4a8ddf5687 Fixed typo, was consructor now constructor. (#7536)
Very minor typo in the Typescript "Constructor Overloading" section. For the paragraph beginning in "Note that, similar to function overloading . . ."
2024-10-20 10:55:37 +01:00
github-actions[bot]
4c54997bfb chore: update roadmap content json (#7532)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-19 11:25:45 +06:00
dsh
ceeaa91f62 Complete AI Engineer Roadmap (#7508)
* ai eng content

* 57 topics

* 44 topics

* 68 topics, need to add links to the final 15 or so

* final topics

* update copy and links

* Update ai-engineer-vs-ml-engineer@jSZ1LhPdhlkW-9QJhIvFs.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update code-completion-tools@TifVhqFm1zXNssA8QR3SM.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update development-tools@NYge7PNtfI-y6QWefXJ4d.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update introduction@_hYN0gEi9BL24nptEtXWU.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update what-is-an-ai-engineer@GN6SnI7RXIeW8JeD-qORW.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* resolve comments

* Update src/data/roadmaps/ai-engineer/content/image-understanding@fzVq4hGoa2gdbIzoyY1Zp.md

* Update src/data/roadmaps/ai-engineer/content/anomaly-detection@AglWJ7gb9rTT2rMkstxtk.md

* Update src/data/roadmaps/ai-engineer/content/chunking@mX987wiZF7p3V_gExrPeX.md

* Update src/data/roadmaps/ai-engineer/content/data-classification@06Xta-OqSci05nV2QMFdF.md

* Update src/data/roadmaps/ai-engineer/content/inference@KWjD4xEPhOOYS51dvRLd2.md

* Update src/data/roadmaps/ai-engineer/content/manual-implementation@6xaRB34_g0HGt-y1dGYXR.md

* Update src/data/roadmaps/ai-engineer/content/mongodb-atlas@j6bkm0VUgLkHdMDDJFiMC.md

* Update src/data/roadmaps/ai-engineer/content/video-understanding@TxaZCtTCTUfwCxAJ2pmND.md

* Update src/data/roadmaps/ai-engineer/content/performing-similarity-search@ZcbRPtgaptqKqWBgRrEBU.md

* Update src/data/roadmaps/ai-engineer/content/popular-open-source-models@97eu-XxYUH9pYbD_KjAtA.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-18 23:01:27 +01:00
fellalli
ee3736bd60 Fix broken link (#7530) 2024-10-18 22:37:05 +01:00
Kamran Ahmed
029e45c5c0 Fix canonical URLs (#7531) 2024-10-18 22:36:39 +01:00
Debajyati Dey
ad2095bcce Cs (#7526)
* Added relevant resources to learn the topic and changed the list of CPU scheduling algorithms

Multilevel Feedback Queue Scheduling Algorithm was present twice in the list. Removed the lines containing the duplicate.

Added HRRN (Highest Response Ratio Next) Algorithm in the list because it is a highly optimised and important CPU Scheduling Algorithm.

* Added video resource for processes and threads

* Restructured the Resource links based on Contributing.md
2024-10-18 14:30:44 +01:00
Matt Skovranek
0c1cd9decd add video link of full python course to Python Roadmap (#7520) 2024-10-18 08:27:00 +01:00
github-actions[bot]
f059d34e1f chore: update roadmap content json (#7521)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-18 12:36:35 +06:00
Arik Chakma
e1a56af631 feat: add frontend projects (#7356)
* wip: age calculator

* fix: update age calculator description

* wip: flash cards project

* wip: flash cards

* fix: remove JavaScript roadmap

* fix: remove JavaScript roadmap
2024-10-17 23:46:52 +01:00
dsh
49c3a67964 updated frontend roadmap question (#7484)
* updated fe question

* replace breaks with h2
2024-10-17 23:45:23 +01:00
dsh
0dc96ac7aa Add devops vs full-stack guide (#7518)
* add devops vs full-stack guide

* improve table
2024-10-17 21:49:36 +01:00
dsh
35dae76d26 Add FE vs BE for AI guide (#7519) 2024-10-17 21:49:20 +01:00
dsh
86e83652bf Add full stack vs backend guide (#7516) 2024-10-17 18:49:20 +01:00
Vedansh
ccc2cbd9c2 Improve Vue.js Roadmap (#7498)
* Phase - 1

* Phase - 2

* Phase - 3

* Phase - 4

* Phase - 6

* Phase - 7 (Final)

* Update src/data/roadmaps/vue/content/v-else-if@a9caVhderJaVo0v14w8WB.md

* Update src/data/roadmaps/vue/content/v-else@0CtAZQcFJexMiJfZ-mofv.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-17 15:16:59 +01:00
Aboody_01
5c0a5e2426 added an article link about linear search at DSA Roadmap (#7513) 2024-10-17 15:15:59 +01:00
Vedansh
4b63d17383 Update contribution docs (#7506) 2024-10-17 11:16:07 +01:00
Murshal Akhtar Ansari
3ca0a5c94c roadmap: added resource links in DSA for linear and binary search (#7505) 2024-10-17 10:27:17 +01:00
Aboody_01
523511c078 add an article about handling async errors at Nodejs Roadmap (#7495) 2024-10-17 10:24:45 +01:00
Astro
d4cb23b370 Update evm-based@tSJyp46rkJcOtDqVpJX1s.md (#7500)
Replace deprecated article link with a new one
2024-10-17 10:23:55 +01:00
Andrey Blazejuk
55255dbbb1 fix: refactor number utils (#7504) 2024-10-17 13:48:19 +06:00
github-actions[bot]
5033c89adf chore: update roadmap content json (#7503)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-17 13:47:06 +06:00
Kamran Ahmed
c481e8aa38 Add UTM registration tracking 2024-10-16 23:07:08 +01:00
fellalli
87ed33b330 Add C++ projects (#7497) 2024-10-16 21:14:09 +01:00
Kamran Ahmed
6837330be1 Add team dashboard 2024-10-16 16:55:12 +01:00
Kamran Ahmed
b1d97db2d2 Add change log 2024-10-16 16:51:55 +01:00
Akshay B
f20cf95592 OpenSource AI Engineer content (#7492)
* Update opensource-ai@a_3SabylVqzzOyw3tZN5f.md

Updating on AI Engineer roadmap
- OpenSource AI

* Update open-vs-closed-source-models@RBwGsq9DngUsl8PrrCbqx.md

Updating on AI Engineer Roadmap
- Open vs Closed Source Models

* Update open-vs-closed-source-models@RBwGsq9DngUsl8PrrCbqx.md

minor change (-)

* Update popular-open-source-models@97eu-XxYUH9pYbD_KjAtA.md

Updating on AI Engineer Roadmap
- Popular Open Source Models

* Update src/data/roadmaps/ai-engineer/content/popular-open-source-models@97eu-XxYUH9pYbD_KjAtA.md

cut down the topic

* Update ollama@rTT2UnvqFO3GH6ThPLEjO.md

Updating on AI Engineer Roadmap
- Ollama

* Update ollama-models@ro3vY_sp6xMQ-hfzO-rc1.md

Updating on AI Engineer Roadmap
- Ollama Models

* Update ollama-sdk@TsG_I7FL-cOCSw8gvZH3r.md

Updating on AI Engineer Roadmap
- Ollama SDK

* Update hugging-face@v99C5Bml2a6148LCJ9gy9.md

Updating on AI Engineer Roadmap
- Hugging Face

* Update hugging-face-tasks@YKIPOiSj_FNtg0h8uaSMq.md

Updating on AI Engineer Roadmap
- Hugging Face Tasks

* Update hugging-face-hub@YLOdOvLXa5Fa7_mmuvKEi.md

Updating on AI Engineer Roadmap
- Hugging Face Hub

* Update inference-sdk@3kRTzlLNBnXdTsAEXVu_M.md

Updating on AI Engineer Roadmap
- Inference SDK

* Update transformersjs@bGLrbpxKgENe2xS1eQtdh.md

Updating on AI Engineer Roadmap
- Transformers.js

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-16 15:51:42 +01:00
Kamran Ahmed
6e5e77c86b Revert "Remove Hacktoberfest (#7494)" (#7496)
This reverts commit 2410c89bde.
2024-10-16 15:48:43 +01:00
Kamran Ahmed
2410c89bde Remove Hacktoberfest (#7494) 2024-10-16 15:16:51 +01:00
github-actions[bot]
b513a48c2a chore: update roadmap content json (#7488)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-16 19:44:36 +06:00
Arik Chakma
b4990ae3cd fix: api design node id (#7493) 2024-10-16 19:43:42 +06:00
Nirator
c178749818 Add minipic to image compressor list (#7489)
* Add minipic to image compressor list

* Update src/data/best-practices/frontend-performance/content/compress-your-images.md

capitalized

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-16 11:58:13 +01:00
Aboody_01
88e7aa9d3f Add a Javascript error reference article to Nodejs roadmap (#7487)
* Add a Javascript error reference article to Nodejs roadmap

a Javascript error reference article from mdn web documents

* Add a reference article to the nodejs Roadmap
2024-10-16 09:35:31 +01:00
Akshay B
373068e713 Contribution to AI Engineer Roadmap (#7490)
* Update opensource-ai@a_3SabylVqzzOyw3tZN5f.md

Updating on AI Engineer roadmap
- OpenSource AI

* Update open-vs-closed-source-models@RBwGsq9DngUsl8PrrCbqx.md

Updating on AI Engineer Roadmap
- Open vs Closed Source Models

* Update open-vs-closed-source-models@RBwGsq9DngUsl8PrrCbqx.md

minor change (-)

* Update popular-open-source-models@97eu-XxYUH9pYbD_KjAtA.md

Updating on AI Engineer Roadmap
- Popular Open Source Models

* Update src/data/roadmaps/ai-engineer/content/popular-open-source-models@97eu-XxYUH9pYbD_KjAtA.md

cut down the topic

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-16 09:34:31 +01:00
github-actions[bot]
02eceacfe1 chore: update roadmap content json (#7479)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-15 21:24:00 +06:00
Deni Andreawan
9082f345da feat: added content to AI ​​Engineer Roadmap (#7464)
* feat: added content to AI ​​Engineer Roadmap

* fix: update content for AI Engineer vs ML Engineer
2024-10-15 15:42:02 +01:00
dsh
1df57aa83b fix libra/libre type (#7483) 2024-10-15 10:08:49 +01:00
Aboody_01
dcba12aca0 Update Node.js system errors (#7474)
Add an Article that explains system errors and fix them
2024-10-15 10:04:28 +01:00
Kamran Ahmed
7cf5071ee4 Fix spacing on grid 2024-10-14 22:07:25 +01:00
dsh
3a1c7e5300 Update docker roadmap content (#7440)
* rework docker roadmap content

* remove h2
2024-10-14 16:36:34 +01:00
Vedansh
51d7dfb0a4 Improve API design roadmap content (#7462)
* Phase - 1st

* Phase - 2

* Phase - 3

* Phase - 4

* Phase  - 5

* Added Some Special Content.
2024-10-14 16:32:48 +01:00
dsh
2b9e86cd67 change JSON to Markdown (#7471) 2024-10-14 16:31:28 +01:00
Kamran Ahmed
737126ebc4 Add a button to visit homepage from bookmarks 2024-10-14 16:27:51 +01:00
Kamran Ahmed
677e66b806 Add AI engineer roadmap link 2024-10-14 15:58:26 +01:00
Kamran Ahmed
24a2da024f Add team sponsor 2024-10-14 15:55:40 +01:00
dsh
1426959f77 removed broken link (#7472) 2024-10-14 10:14:56 +01:00
Moulishwaran Balaji
566210ace5 Updated nose -python description (nose is deprecated now) (#7443)
* Update nose@SSnzpijHLO5_l7DNEoMfx.md  

As nose is deprecated and not actively maintained the information is added to this page.

* Update src/data/roadmaps/python/content/nose@SSnzpijHLO5_l7DNEoMfx.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-14 10:02:34 +01:00
Kabeer Arora
426766f261 fix: update router content in cybersecurity roadmap (#7465)
* fix: update router content in cybersecurity roadmap

* fix: update video titles for router in cyber-security roadmap
2024-10-14 09:50:30 +01:00
Abdullahi Abdiaziz yusuf
9a241448ef Add a free article to the documentation (#7467)
Added a section on 'Testing JavaScript with Vultr' to the documentation. The article explains how to deploy and test JavaScript applications on the Vultr cloud platform, covering setup, environment configuration, and basic test scripts for ensuring performance and reliability.
2024-10-14 09:49:07 +01:00
github-actions[bot]
817d3a0018 chore: update roadmap content json (#7446)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-13 21:36:04 +06:00
Kamran Ahmed
2bff8d8303 Update dependencies 2024-10-12 13:11:54 +01:00
Kamran Ahmed
d7974de788 Downgrade dependencie 2024-10-12 13:02:40 +01:00
Kamran Ahmed
3675de800e Upgrade dependencies 2024-10-12 12:37:29 +01:00
Shivam Mittal
6d16cb7564 Fixed typo in automated-backups.md (#7447) 2024-10-12 12:19:41 +01:00
Mehul
25e51eec37 fix: Broken Link in React Roadmap -> Component Life Cycle (#7439) 2024-10-11 21:40:37 +06:00
github-actions[bot]
e967f5a183 chore: update roadmap content json (#7435)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-11 21:39:48 +06:00
Kamran Ahmed
b509c31652 Update dependencies 2024-10-11 12:22:04 +01:00
Sivarajakani
02d60e8eca feat: add a YouTube video link to Rust memory management (#7438)
* Added a YouTube video link to Rust memory management

In this video, he provides a clear explanation of Rust's ownership system, including example code. It could be helpful for understanding ownership concepts.

* Update src/data/roadmaps/rust/content/100-introduction/102-memory-safety.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-11 12:13:24 +01:00
Obiechina Emmanuel
c7e483c384 Add content to AI Engineer roadmap (#7349)
* Added content to custom-validators topic

* Added contents to 10 git & github topics

* Apply suggestions from code review

styling clean up

* Added contents to 10 git and github topics

* Update src/data/roadmaps/git-github/content/committing-changes@2_z3R7seCvQVj-Na4H1SV.md

* Update src/data/roadmaps/git-github/content/creating-account@i7fIIHcBEk473te8bniJ5.md

* Update src/data/roadmaps/git-github/content/creating-branch@OegitQ5Ngjvd3ZfMpfrkM.md

* Update src/data/roadmaps/git-github/content/creating-repositories@c_FO6xMixrrMo6iisfsvl.md

* Update src/data/roadmaps/git-github/content/deleting-branch@1uDenoQ6zu7CT69FR2iQB.md

* Update src/data/roadmaps/git-github/content/fast-forward-vs-non-ff@agtPWS8j6i6wQPk10cy8E.md

* Update src/data/roadmaps/git-github/content/forking-vs-cloning@l1Wf7Pe_ah8ycCgslfSK4.md

* Update src/data/roadmaps/git-github/content/git-rebase@HMEfUFNu_Wp_Pac7VWHr-.md

* Added contents to 7 git and github topics

* added content to 10 redis topics

* Revert changes to src/app.js from commit abc1234

* Added contents to 5 Ai engineer roadmap topics

* Update src/data/roadmaps/ai-engineer/content/ai-agents@9XCxilAQ7FRet7lHQr1gE.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update src/data/roadmaps/ai-engineer/content/ai-code-editors@XcKeQfpTA5ITgdX51I4y-.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update src/data/roadmaps/ai-engineer/content/chroma@dSd2C9lNl-ymmCRT9_ZC3.md

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* updated content of adding-end-user-ids

* Update src/data/roadmaps/ai-engineer/content/adding-end-user-ids-in-prompts@4Q5x2VCXedAWISBXUIyin.md

* Update src/data/roadmaps/ai-engineer/content/agents-usecases@778HsQzTuJ_3c9OSn5DmH.md

* Update src/data/roadmaps/ai-engineer/content/agents-usecases@778HsQzTuJ_3c9OSn5DmH.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-11 01:17:12 +01:00
Kamran Ahmed
75ab1ba89c Add ec2 instance project idea 2024-10-10 15:21:42 +01:00
Kamran Ahmed
44562b6a1e Add new project idea 2024-10-10 15:02:22 +01:00
Kamran Ahmed
10dfd37d40 Add new project ideas for deployment and service discovery 2024-10-10 15:02:22 +01:00
dsh
8beb9754ba Add articles for machine learning (#7427) 2024-10-10 14:26:43 +01:00
Vedansh
788825fb75 Improve AWS Roadmap (#7403)
* RDS

* DynamoDB.

* ECS

* Lambda

* Final Phase.
2024-10-10 12:22:16 +01:00
Vedansh
8535c6eef2 Improve AWS Roadmap (#7401)
* SES

* S3

* Route 53

* Cloudwatch

* Cloudfront
2024-10-10 12:21:29 +01:00
Vedansh
78a642f8bd Improve AWS Roadmap content (#7400)
* Introduction.

* EC2.

* VPC

* IAM

* Autoscaling.
2024-10-10 12:21:03 +01:00
dsh
5b29181d95 removed duplicate subtopic, replaced content, shifted nodes up (#7424) 2024-10-10 12:19:20 +01:00
Abdul Samad Shaikh
2571a7c52e fix superfluous word 'token' when writing JWT (#7426) 2024-10-10 12:19:07 +01:00
Ruslan Semagin
9b952b9afe Fixed inaccuracies in Redis Roadmaps (#7404) 2024-10-10 11:34:37 +01:00
0x009922
960218235d Add links to the free "Rust Atomics and Locks" ebook (#7416)
* Add links to the free "Rust Atomics and Locks" ebook
2024-10-10 11:31:40 +01:00
Sparsh
ec668a3a0b Added 2 new course links of Swift programming (#7419)
* Added new course link of 100 days of Swift | Hacking with SwiftUI

* Added new course link of Swift Programming | Programiz
2024-10-10 11:29:29 +01:00
Patrick Schröder
42874aa6c7 replace broken link (#7421) 2024-10-10 11:27:01 +01:00
Robiul Hossain
aa1d4c9914 Devops Roadmap: GitHub action & nginx resource added (#7350)
* feat: add a course video to github actions in devops

* feat: add an nginx setup article to nginx in devops

* fix: github action certification video starting point in github action of devops roadmap
2024-10-10 11:13:07 +01:00
github-actions[bot]
5e0ff6c780 chore: update roadmap content json (#7415)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-10 09:12:16 +06:00
Roman
9b14b2d60a fix: replace duplicated link in Introduction to TypeScript content (#7406) 2024-10-09 23:45:00 +06:00
Kamran Ahmed
9c73a476c3 Add prometheus project 2024-10-09 17:00:04 +01:00
Kamran Ahmed
c336b85a0a Add automated backups project 2024-10-09 15:31:16 +01:00
Kamran Ahmed
e3694f4e36 Add multi-container project idea 2024-10-09 14:58:50 +01:00
Kamran Ahmed
801556d515 Update sorting 2024-10-09 14:30:37 +01:00
Kamran Ahmed
900b618f66 Add dockerized service project idea 2024-10-09 14:23:53 +01:00
Kamran Ahmed
ea7b55cb64 Add project 2024-10-09 12:54:30 +01:00
Kamran Ahmed
8f8cca4be3 Add new projects for devops roadmap 2024-10-09 12:54:30 +01:00
Vedansh
63004475aa Improve Go Roadmap (#7399)
* Go Basics.

* Go Advanced.

* 102,103,104,105,106

* Everything Else.
2024-10-09 11:36:51 +01:00
Akhilesh Rawat
fae4899a2c Update v-html@bZxtIBeIfeUcR32LZWrPW.md - v-html,HTML typo fix (#7394)
Fixed typos "v-thml" and "HTMl" to "v-html" and "HTML" respectively.
2024-10-09 11:19:16 +01:00
Brian Rodriguez
f34f6a280c [Update] software architect: Agile model (#7391) 2024-10-09 11:18:48 +01:00
Roy Straub
cad104a413 Corrects the CQS article (#7396)
* Improved CQS article

The previous article referred to a broader, architectural pattern of CQRS, which are not the same

* Update src/data/roadmaps/software-design-architecture/content/100-clean-code-principles/113-command-query-separation.md

removed extra bracket.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-09 11:17:55 +01:00
Himanshu Jangid, हिमांशु जाँगिड़
29d3b26fe4 Add content for game-mathematics (#7307)
* Update game-mathematics, add one of the most best free books for learning game math

Multiple mathematics books specifically target game math but this is one of the best yet free.

* fix: resource formatting

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-10-09 10:26:07 +01:00
Ruslan Semagin
6de4a36dd4 feat: add useful links for Rust (#7397) 2024-10-09 15:14:23 +06:00
Ruslan Semagin
c8d8b75c31 feat: add Leptos Web Framework to Web Development (#7398) 2024-10-09 15:13:03 +06:00
github-actions[bot]
25661736ff chore: update roadmap content json (#7377)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-09 15:11:29 +06:00
Kamran Ahmed
31dffa82c5 Add server stats project 2024-10-09 02:15:12 +01:00
Kamran Ahmed
473366f3ca Add dummy service project ideas 2024-10-09 00:24:12 +01:00
Kamran Ahmed
01e366cbac Add monitoring dashboard idea 2024-10-08 23:22:07 +01:00
Kamran Ahmed
69f350ef85 Add new projects for devops roadmap 2024-10-08 22:18:54 +01:00
Kamran Ahmed
ccb3890484 Update project description 2024-10-08 22:18:54 +01:00
FerPlej
10af26eed6 feat: remove link in Hindi (#7387)
Co-authored-by: Piotr Pietryga <piotr.j.pietryga@gmail.com>
2024-10-08 19:48:40 +01:00
Kamran Ahmed
9ec855fb15 Add github actions workflow task 2024-10-08 14:25:55 +01:00
Kamran Ahmed
ae7ea40f74 Add nginx log analyzer 2024-10-08 14:25:55 +01:00
Mark
4125c28f5a Feat/postgres roadmap add new links group by (#7378)
* Add new links for group by for PostgreSQL

* Update article name

* Update src/data/roadmaps/postgresql-dba/content/grouping@uwd_CaeHQQ3ZWojbmtbPh.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-08 12:59:41 +01:00
Robiul Hossain
912e7d7a56 Adding api design roadmap resources (#7373)
* feat: add a resource link to api designs basics of dns topic

* feat: add a resource link to api designs restful apis topic

* Update src/data/roadmaps/api-design/content/basics-of-dns@v4nJYD9yiIEUviLPhVTCD.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-08 12:55:41 +01:00
Tejaswi Tyagi
11cb5caafc Added content to blank Java Advanced Topics index.md file (#7371) 2024-10-08 12:51:34 +01:00
Krushna Kanta Rout
34c951b619 Feat: Added Resources, Improvements, and Typo Fixes for Full Stack Roadmap (#7369)
* feat: add video for restful api

* feat: add documentationfor redis

* feat: add dedicated roadmap

* fix: add website names

* feat: add official website of monit

* fix: replace article with official

* fix: change feed link github to github-actions

* fix: add taiwind css
2024-10-08 12:48:16 +01:00
Murshal Akhtar Ansari
fe9162296e roadmap: added resource links in DSA for selection and heap sort (#7368) 2024-10-08 12:46:16 +01:00
Arunabha-NOTE
b282129eab Update devops-principles.md (#7365)
Fixed typo and incomplete link in the 9th section for cncf.io
2024-10-08 12:44:01 +01:00
lerethel
6e1e045773 Update 101-big-theta.md (#7364)
* Update 101-big-theta.md

Replace 'Theta' with 'θ' where applicable and remove unnecessary escaping

* Update 101-big-theta.md

Remove unnecessary parentheses
2024-10-08 12:43:12 +01:00
Youssef Hassan
191ca24c93 Link refers to SQL Roadmap under 'Learn SQL' topic in 'PostgreSQL DBA' (#7363) 2024-10-08 12:40:49 +01:00
Mark
9487a2947b Fix relational database app daily dev link in postgres roadmap (#7379) 2024-10-08 12:36:53 +01:00
Brian Rodriguez
4a45c0b6b1 [Update] software architect: PMI & RUP (#7341) 2024-10-08 12:20:22 +01:00
vansh kabra
099ec78cca add new references to learn component lifecycles (#7319)
* add new references to learn component lifecycles

* add new references to learn component lifecycles and update official at top

* add new references to learn component lifecycles and place the main link in link section
2024-10-08 12:15:57 +01:00
Vedansh
c565fb5e0a Improve python roadmap (#7323)
* 18 Topics Verified.

* 19 Topics Verified.

* 21 Topics Verified.

* 12 Topics Verified.
2024-10-08 11:51:52 +01:00
Kamran Ahmed
2db1bce35b Remove new badge from old guides 2024-10-08 11:50:32 +01:00
Kamran Ahmed
53cda20ddb Highlight official roadmaps, add changelog 2024-10-08 11:50:23 +01:00
adnn-alc
e3224cb7b1 Add content for pre-trained models (#7370)
* Update pre-trained-models

* Update src/data/roadmaps/ai-engineer/content/pre-trained-models@d7fzv_ft12EopsQdmEsel.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-07 12:48:44 +01:00
Arik Chakma
8b0c536750 feat: team dashboard (#7213)
* fix: add team roadmaps

* feat: implement add member

* feat: separate team dashboard page

* UI changes for team dashboard

* Add team activity dashboard

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-07 12:47:54 +01:00
dsh
3f7e50907a Add redis roadmap content (#7229)
* 24 topics

* 9 topics

* remove experimental androud additions

* 66 topics, no links

* 51 topics, need to add links

* add links to 50+ topics

* add links to 10+ topics

* final changes

* Update src/data/roadmaps/redis/content/pubsub@9W_jaK1DSEZHRKdPcUM7h.md

* Update src/data/roadmaps/redis/content/redis-enterprise@8lyXDuZJ-KHl4v2_8Ew1h.md

* Update src/data/roadmaps/redis/content/redis-modules@hLIT00Iz7rV56ZBIUhWYn.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-07 11:31:26 +01:00
github-actions[bot]
01c2b90cc2 chore: update roadmap content json (#7353)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-07 05:46:57 +06:00
Arik Chakma
55218ea85a feat: add open source link type (#7351)
* feat: add open source link type

* fix: capitalize link type
2024-10-06 06:45:55 +06:00
Arik Chakma
c894430a86 fix: bcrypt open source link (#7344) 2024-10-05 10:53:42 +06:00
github-actions[bot]
f876ba8df5 chore: update roadmap content json (#7339)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-05 09:52:41 +06:00
Jean-François Greffier
c26fb97bc7 Use react.dev for links (#7332)
* Update useCallback with new React website

* Update links with new React website
2024-10-04 18:41:47 +01:00
Koki Kazaore
3b1cc91405 update index.md of 101-ec2 dir (#7329) 2024-10-04 14:31:53 +01:00
Kamran Ahmed
5a49ad45be Remove best practices 2024-10-04 11:59:48 +01:00
Kamran Ahmed
be221a2b14 Remove content from AI engineer roadmap 2024-10-04 11:31:36 +01:00
Satyam Vyas
6461ccaf59 Fix: Added content for Prompt Engineering: Prompt Hacking (#7318)
* fix: added content for Prompt Hacking

* fix: formatted the roadmap content according to the guidelines
2024-10-04 09:25:28 +01:00
Robiul Hossain
aa76db78da Devops roadmap: add resources links (#7317)
* feat: add a article for nginx as reverse proxy in devops roadmap

* feat: add nginx as load balancer article in devops roadmap

* feat: add a ufw filewall blog for fiirewall resources in devops roadmap
2024-10-04 09:18:37 +01:00
github-actions[bot]
c40cda13d8 chore: update roadmap content json (#7322)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-04 07:55:48 +06:00
Kamran Ahmed
487145b9a4 UI redesign for invite page 2024-10-03 23:33:27 +01:00
Arik Chakma
cc817b060c feat: add referral user count (#7233)
* feat: add referral user count

* feat: add referrals leaderboard

* fix: update UI

* Update referral design

* Update invite friends UI

* Add leaderboard page

* Update leaderboard page

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-03 23:07:21 +01:00
Kamran Ahmed
06c242cf32 Add AI engineer roadmap content 2024-10-03 15:28:33 +01:00
Kamran Ahmed
5b09e61b86 Add content to AI Engineer roadmap 2024-10-03 15:28:33 +01:00
Kamran Ahmed
a3fedad816 Add content to AI Engineer roadmap 2024-10-03 15:28:33 +01:00
Kamran Ahmed
338f6c5d4a Add AI Engineer roadmap content 2024-10-03 15:28:33 +01:00
Robiul Hossain
9d6d77f93e feat: remove the packag-lock.json file from commit (#7301) 2024-10-03 15:27:42 +01:00
mitch edwards // valhalla_dev
f4c717b958 Addition of the poem library to web-development as well as the file-parsing topic (#7291)
Copy and links added to a few Rust topics.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-03 15:25:37 +01:00
Berkcan Gümüşışık
65fe7aeb71 Python resources added. (#7293) 2024-10-03 15:23:45 +01:00
Aryan Chaurasia
1d0e65c2c8 Added content for KV database (#7295)
* Update key-value-database@l2aXyO3STnhbFjvUXPpm2.md

Added content for KV database

* Update src/data/roadmaps/redis/content/key-value-database@l2aXyO3STnhbFjvUXPpm2.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-03 15:20:48 +01:00
Vedansh
421133ecc2 Improved Frontend Roadmap (#7298)
* Phase - 1

* Phase - 2

* Phase - 3

* Phase - 4

* Phase - 5

* Phase - 6

* Phase - 7

* Apply suggestions from code review

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-03 15:16:07 +01:00
joel1st
346c630019 Update hashing--encryption--encoding@7r7o8pYhFHVAJIv0wNT6X.md (#7315)
Collisions are possible with hashes & lossless (which would be the case with text) encoding/decoding does not have issues with collisions.
2024-10-03 14:54:44 +01:00
Kamran Ahmed
3b929e45d2 Add AI Engineer roadmap PDF 2024-10-03 12:27:31 +01:00
Satyam Vyas
2bef597ced Improved Content in Prompt Hacking (#7308)
* Update index.md

* Update src/data/roadmaps/prompt-engineering/content/107-prompt-hacking/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-03 08:48:08 +01:00
Vedansh
1219b9e905 fix: devops os broken link (#7306) 2024-10-03 08:35:01 +06:00
Hashir V
87ef708da3 Add content for axum (#7299)
* Update 104-axum.md

* Update src/data/roadmaps/rust/content/108-web-development/104-axum.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-02 15:17:22 +01:00
github-actions[bot]
0643e86514 chore: update roadmap content json (#7292)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-02 09:41:10 +06:00
Kamran Ahmed
814b819195 Leaderboard page UI 2024-10-01 21:37:32 +01:00
Kamran Ahmed
9f2efc5872 UI for leaderboard 2024-10-01 19:31:04 +01:00
Arik Chakma
55f0eff569 feat: add github contributors leaderboard (#7277)
* feat: add github contributors leaderboard

* Improve UI for leaderboard

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-01 18:55:13 +01:00
Vedansh
47936801fd Improve backend roadmap resources (#7257)
* Phase - A to F

* Phase - G to M

* Phase - N to S

* Phase - S to Z

* Update src/data/roadmaps/backend/content/bcrypt@dlG1bVkDmjI3PEGpkm1xH.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update src/data/roadmaps/backend/content/caddy@Op-PSPNoyj6Ss9CS09AXh.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update src/data/roadmaps/backend/content/loadshifting@HoQdX7a4SnkFRU4RPQ-D5.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update src/data/roadmaps/backend/content/ms-sql@dEsTje8kfHwWjCI3zcgLC.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update src/data/roadmaps/backend/content/open-api-specs@9cD5ag1L0GqHx4_zxc5JX.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update twelve-factor-apps@8DmabQJXlrT__COZrDVTV.md


Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-01 15:54:15 +01:00
Kamran Ahmed
6b118d14d3 Add project status 2024-10-01 15:53:22 +01:00
Kamran Ahmed
efbd1d7f04 Project card loading status 2024-10-01 14:45:05 +01:00
psaradhi
f036a11784 Update the satisfies content to be minimal (#7211)
* changed example to use toUpperCase() instead of .at(0) because .at(0) does not cause any errors since it is available in string and array

* Update satisfies-keyword@HD1UGOidp7JGKdW6CEdQ_.md

---------

Co-authored-by: pardha <pardha@Vs-MacBook-Pro.local>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-01 14:36:33 +01:00
Vedansh
3d7bdc55bd Improve android roadmap content (#7236)
* Phase - 1.

* Phase - 2 (B)

* Phase - 3 (C)

* Phase - 4 (D)

* Phase - 5 (E,F)

* Phase - 6 (G)

* Phase - 7 (I)

* Phase - 8 (J&K)

* Phase - 9 (L)

* Phase - 10 (M,N)

* Phase - 11 (O,P,R,S)

* Phase - 12 (T,U,V,W)

* Update animations@Xn1VQ-xOT67ZfJJTM4r1p.md

* Update src/data/roadmaps/android/content/apollo-android@ww0fTbdXwVr-QIOClU7ng.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update basics-of-kotlin@jl1FsQ5-WGKeFyaILNt_p.md

* Update src/data/roadmaps/android/content/chucker@7RKN1FNtRE_BE6QeAQrKb.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update buttons@WhfzFOUpm0DFEj7Oeq21R.md

* Update src/data/roadmaps/android/content/rxkotlin@4h37WBpYxRRyw9oH8ge7o.md

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-01 14:31:51 +01:00
github-actions[bot]
b658591c45 chore: update roadmap content json (#7283)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-10-01 14:28:43 +01:00
Arik Chakma
52c1b20f56 feat: add project status (#7252)
* feat: add project status

* Update project card and fix warnings

* Add loading indicator to project card

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-10-01 14:27:39 +01:00
Kamran Ahmed
e3ca03e531 Opening topic should not hide sponsor 2024-10-01 11:48:52 +01:00
Francesco Mannino
2378cd4bb9 [typo]: Update 102-insertion-sort.md (#7281) 2024-10-01 09:54:22 +01:00
Eduard Brahas
d673a06472 Update what-is-software-architecture@EGG99VA-PEdWdVxNDLtG_.md (#7280) 2024-10-01 09:48:50 +01:00
Sandeep Sahani
122bbe6b27 Update ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md (#7279)
* Update ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md

Added description for iOS Architecture, ensuring contribution rules.

* Update src/data/roadmaps/ios/content/ios-architecture@IduGSdUa2Fi7VFMLKgmsS.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-10-01 09:46:36 +01:00
Danrley Senegalha Pires
d2a36a9d4c fix: change tag from article to video (#7285) 2024-10-01 09:44:59 +01:00
Danrley Senegalha Pires
04151f9693 fix: change tag from article to video (#7284) 2024-10-01 09:44:43 +01:00
Ahmad Asaad
264afe4e03 Add a link to "Learn Git Branching" tutorial to "Branching Basics" topic in "Git & Github" roadmap & rename file in "Backend" roadmap content. (#7250)
Added "Learn Git Branching" tutorial link.
2024-09-30 11:44:42 +01:00
github-actions[bot]
678388d401 chore: update roadmap content json (#7271)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-30 16:42:54 +06:00
cromulent0101
8ce7aa7bcb Update SSL/TLS pages with correct topic content (#7272)
* Update SSL TLS pages with correct topic

* Update TLS pages with correct non-SSO content

* Update SSL and TLS pages withcorrect content
2024-09-30 11:42:29 +01:00
Aryan Chaurasia
447437bfc9 Update in-memory-data-structure-store@M-EXrTDeAEMz_IkEi-ab4.md (#7270)
* Update in-memory-data-structure-store@M-EXrTDeAEMz_IkEi-ab4.md

added content

* Update src/data/roadmaps/redis/content/in-memory-data-structure-store@M-EXrTDeAEMz_IkEi-ab4.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-30 11:41:30 +01:00
Brian Rodriguez
72a04b9b9f fix: update android roadmap content 2024-09-30 02:22:40 +06:00
github-actions[bot]
15d19eeb6c chore: update roadmap content json (#7253)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-28 17:55:18 +06:00
Kamran Ahmed
9aae8b5eb7 Add scrimba banner 2024-09-27 15:39:11 +01:00
dsh
0ebf479d9b Add backend frameworks guide (#7245)
* completed backend frameworks guide and updated faqs

* update og image
2024-09-27 15:19:32 +01:00
dsh
1035ea8041 Add frontend framework guide (#7240)
* add frontend framework guide

* added new faq to link to article
2024-09-27 15:18:51 +01:00
dsh
f3c9de8f78 Add DevOps principles guide (#7219)
* add devops principles guide

* update devops question copy
2024-09-27 15:17:49 +01:00
dsh
a5f043b4e9 Update mlops content (#7210) 2024-09-27 15:17:10 +01:00
dsh
1090545b82 Add migrations to db section (#7175) 2024-09-27 15:15:31 +01:00
dsh
f2bc4548ba Cleanup frontend roadmap links (#7026)
* cleaning up FE links

* astro topics

* 52 topics completed

* finish updating fe content

* correct angular site link

* webpack topic

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-27 15:15:14 +01:00
dsh
8e9d1df3d2 Add hacktoberfest contribution docs (#7217)
* initial hacktoberfest contribution points

* added note
2024-09-27 15:14:47 +01:00
Mark
67475b1b6d Fix article link for Knexjs should be official (#7247) 2024-09-27 15:06:32 +01:00
dsh
88b830c862 added provisioning content and links (#7246) 2024-09-27 11:23:55 +01:00
Brian Rodriguez
b29d8150c7 [Add] Android docs: SharedPreferences & JUnit (#7243) 2024-09-27 10:05:32 +01:00
github-actions[bot]
c0b1337755 chore: update roadmap content json (#7241)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-27 06:19:27 +06:00
Mark
4df1814769 Fix link in Nodejs roadmap - NestJS section (#7239) 2024-09-26 13:27:42 +01:00
github-actions[bot]
35d38f654f chore: update roadmap content json (#7234)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-26 18:14:56 +06:00
Abbas Pourfallah
f20334b0de Add description of what is redis (#7227)
* Add description of what is redis

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-25 15:07:38 +01:00
github-actions[bot]
1c0a8d1f47 chore: update roadmap content json (#7223)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-25 17:55:20 +06:00
Brian Rodriguez
4df1ef730c [Add] Android docs: Datastore & Room (#7224) 2024-09-25 11:02:58 +01:00
Stefan Cristian
f177d57b2d fix: remove invalid URL (#7222)
Invalid URL: https://flutterbyexample.com/lesson/about-dart
2024-09-25 06:05:17 +06:00
github-actions[bot]
216d389cd4 chore: update roadmap content json (#7214)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-25 06:03:55 +06:00
Vedansh
b265da3b37 Improved Git-Github Roadmap (#7218)
Cleaned spelling and grammatical issues in topics. Added new, official links to docs etc.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-24 14:52:35 +01:00
Kamran Ahmed
3786c91d71 Ignore compressing .gif 2024-09-23 22:41:55 +01:00
Kamran Ahmed
86c65e6d72 Fix image clipping 2024-09-23 22:37:56 +01:00
Kamran Ahmed
13290595b2 Update changelob banner 2024-09-23 22:34:59 +01:00
Kamran Ahmed
82359f89a0 Update account streak UI and changelog banner design 2024-09-23 19:10:21 +01:00
Kamran Ahmed
e3e972a360 Add changelog banner 2024-09-23 19:00:03 +01:00
Kamran Ahmed
72f8da6805 Update redis roadmap changelog 2024-09-23 18:19:09 +01:00
Kamran Ahmed
daa5a430bd Update banner 2024-09-23 18:12:14 +01:00
Kamran Ahmed
5c96a57f85 Change color for recommended roadmaps 2024-09-23 16:31:08 +01:00
Kamran Ahmed
59e359f303 Add changelog page 2024-09-23 16:17:49 +01:00
Kamran Ahmed
61816ab1e3 Changelog page design 2024-09-23 15:54:06 +01:00
Kamran Ahmed
53e87095ef Update changelog page 2024-09-23 15:19:10 +01:00
Kamran Ahmed
086c790837 Update alert text 2024-09-23 13:54:50 +01:00
Arik Chakma
9948e89b84 feat: implement changelog page (#7099)
* feat: implement leaderboard page

* feat: sample changelog files

* Update UI for changelog page

* Make changelog page noindex

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-23 13:52:42 +01:00
Arik Chakma
3166a02f23 feat: implement roadmap alert (#7116)
* feat: implement roadmap alert

* fix: floating icon position
2024-09-23 13:46:37 +01:00
Kamran Ahmed
e9fdde087f Add redis roadmap 2024-09-23 13:32:25 +01:00
Kamran Ahmed
fdfc8e6c6b Add redis links to roadmaps and get-staretd pages 2024-09-23 13:30:59 +01:00
Arik Chakma
7642493369 feat: update public profile (#7170)
* feat: update public profile

* Update arp@M52V7hmG4ORf4TIVw3W3J.md (#7171)

* Update arp@M52V7hmG4ORf4TIVw3W3J.md

A little changes made to the Topic

* Update src/data/roadmaps/cyber-security/content/arp@M52V7hmG4ORf4TIVw3W3J.md

* Update src/data/roadmaps/cyber-security/content/arp@M52V7hmG4ORf4TIVw3W3J.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>

* chore: update roadmap content json (#7164)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Add redis roadmap

* Add redis roadmap

* Add redis roadmap

* Improved Docker Roadmap. 🌨️  (#7029)

* Introduction.

* Namespaces.

* Installation & Setup

* Data Persistence.

* Databases.

* Building Container Images.

* Container Registries.

* Running Containers.

* Container Security

* Docker CLI. (Goated)

* Developer Experience.

* Deploying Containers + Extras.

* Few Refractors.

* Trim Content As Requested.

* Undo / Remove Refractors.

* Update 100-dockerhub.md

* Update 101-dockerhub-alt.md

* Update index.md

* Apply Requested Changes.

* Update what-is-hosting@aqMaEY8gkKMikiqleV5EP.md (#7174)

Add new article for 'Web Hosting', it has clearly explained all the details for the beginners. And it will be more reasonable to have not only videos but also article

* replaced broken link (#7176)

* 7165 roadmap title typo (#7177)

* corrected the node title

* corrected file name

* Fix SEO title

* chore: update roadmap content json (#7173)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Complete spell-check for "Prespective Analytics" (#7179)

Corrected "Prespective Analytics" into _Prescriptive Analytics_ 


References:
Issue #7165 
PR #7177

* Fix typo in article title (#7180)

* Update 101-memory-management.md (#7181)

* Update 101-memory-management.md

* Update src/data/roadmaps/java/content/101-java-advanced-topics/101-memory-management.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Add cybersecurity content (#7136)

* add 80+ topics

* 7 topics

* 19 topics

* complete cyber roadmap

* expanded internal links into full urls

* Update DevOps roadmap resources (#7081)

* 6 topics

* 6 topics

* 37 topics

* 25 topics

* 53 topics

* finalised the updated content

* Apply suggestions from code review

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* reverted the removal of go link

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* chore: update roadmap content json (#7188)

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>

* Update Rendering link to the new React docs (#7205)

* Fix typo (#7202)

* Update technical-documentation@X0xUzEP0S6SyspvqyoDDk.md (#7198)

* Update technical-documentation@X0xUzEP0S6SyspvqyoDDk.md

* Update src/data/roadmaps/devrel/content/technical-documentation@X0xUzEP0S6SyspvqyoDDk.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update vs-code@j5nNSYI8s-cH8EA6G1EWY.md (#7195)

* Update vs-code@j5nNSYI8s-cH8EA6G1EWY.md

* Update src/data/roadmaps/devrel/content/vs-code@j5nNSYI8s-cH8EA6G1EWY.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md (#7193)

* Update basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md

* Update src/data/roadmaps/devrel/content/basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* [Update] Software architect: ITIL (#7191)

* [Update] Software architect: ITIL

* [Update] Android roadmap: Firebase docs (#7190)

* [Update] Android roadmap: Firebase docs

* [Update] Android roadmap: Firebase docs

* Chibuike 19/add redis contents (#7186)

* added content to 10 redis topics

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* Update links type to official (#7209)

* add link for an article about rendering ,by kentcdodds.com (#7208)

* add link for an article about rendering ,by kentcdodds.com

* Update src/data/roadmaps/react/content/rendering@0uiGsC5SWavNdlFqizkKe.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Fix: Change "virutalenv" to "virtualenv" (#7184)

* Update 102-control-flow.md (#7182)

* feat: update dashboard layout (#7155)

* Update button design for cards

* Default visiblity to all

* Fix qa roadmap issue and public projects

* Update button design for profile

---------

Co-authored-by: Vipul Patil <70363133+1VIP1786@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Co-authored-by: Vedansh <superuser.ntsystems@outlook.com>
Co-authored-by: Jiayou Zhu <43867657+ZlatanCN@users.noreply.github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Sarkis Kovlekjian <83559262+kenshanta@users.noreply.github.com>
Co-authored-by: Mark <mac21macky@gmail.com>
Co-authored-by: Rahul <rahulrp3031@gmail.com>
Co-authored-by: tal bendet <68239430+t-bendet@users.noreply.github.com>
Co-authored-by: Philip B. Krogh <71797726+phibkro@users.noreply.github.com>
Co-authored-by: Brian Rodriguez <rzknairb@gmail.com>
Co-authored-by: Obiechina Emmanuel <94564639+chibuike-19@users.noreply.github.com>
Co-authored-by: Inkyung Huh <inkyung.huh@metric-studio.com>
Co-authored-by: Ahmad Asaad <ahmadasaadh@gmail.com>
2024-09-23 13:23:28 +01:00
Kamran Ahmed
3355b91aa0 Update button design for cards 2024-09-23 12:00:23 +01:00
Arik Chakma
9b865678b2 feat: update dashboard layout (#7155) 2024-09-23 11:51:27 +01:00
Ahmad Asaad
9b3ec7cc19 Update 102-control-flow.md (#7182) 2024-09-23 10:49:42 +01:00
Inkyung Huh
e78a7da1a9 Fix: Change "virutalenv" to "virtualenv" (#7184) 2024-09-23 10:40:45 +01:00
tal bendet
8c99cb6ea8 add link for an article about rendering ,by kentcdodds.com (#7208)
* add link for an article about rendering ,by kentcdodds.com

* Update src/data/roadmaps/react/content/rendering@0uiGsC5SWavNdlFqizkKe.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-23 10:32:11 +01:00
tal bendet
bd4e3edf76 Update links type to official (#7209) 2024-09-23 10:29:15 +01:00
Obiechina Emmanuel
af132495d5 Chibuike 19/add redis contents (#7186)
* added content to 10 redis topics

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-23 10:28:42 +01:00
Brian Rodriguez
c77465aa8a [Update] Android roadmap: Firebase docs (#7190)
* [Update] Android roadmap: Firebase docs

* [Update] Android roadmap: Firebase docs
2024-09-23 10:20:37 +01:00
Brian Rodriguez
4e02f2fe43 [Update] Software architect: ITIL (#7191)
* [Update] Software architect: ITIL
2024-09-23 10:07:33 +01:00
Vedansh
363fb3cbf5 Update basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md (#7193)
* Update basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md

* Update src/data/roadmaps/devrel/content/basic-programming-skills@aSYXa25_0O2qQl1O-N3xl.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-23 10:06:44 +01:00
Vedansh
8f92c34e2e Update vs-code@j5nNSYI8s-cH8EA6G1EWY.md (#7195)
* Update vs-code@j5nNSYI8s-cH8EA6G1EWY.md

* Update src/data/roadmaps/devrel/content/vs-code@j5nNSYI8s-cH8EA6G1EWY.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-23 10:03:18 +01:00
Vedansh
abb4b6ff97 Update technical-documentation@X0xUzEP0S6SyspvqyoDDk.md (#7198)
* Update technical-documentation@X0xUzEP0S6SyspvqyoDDk.md

* Update src/data/roadmaps/devrel/content/technical-documentation@X0xUzEP0S6SyspvqyoDDk.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-23 10:00:01 +01:00
Philip B. Krogh
ba75bc3336 Fix typo (#7202) 2024-09-23 09:56:11 +01:00
tal bendet
ba135d9f0b Update Rendering link to the new React docs (#7205) 2024-09-23 09:53:56 +01:00
github-actions[bot]
47bfa7724e chore: update roadmap content json (#7188)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-21 19:22:26 +06:00
dsh
f344571ce4 Update DevOps roadmap resources (#7081)
* 6 topics

* 6 topics

* 37 topics

* 25 topics

* 53 topics

* finalised the updated content

* Apply suggestions from code review

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

* reverted the removal of go link

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-20 17:16:42 +01:00
dsh
89bea259f9 Add cybersecurity content (#7136)
* add 80+ topics

* 7 topics

* 19 topics

* complete cyber roadmap

* expanded internal links into full urls
2024-09-20 16:37:50 +01:00
Rahul
06489391f5 Update 101-memory-management.md (#7181)
* Update 101-memory-management.md

* Update src/data/roadmaps/java/content/101-java-advanced-topics/101-memory-management.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-20 14:59:17 +01:00
Mark
f08566a24c Fix typo in article title (#7180) 2024-09-20 14:58:30 +01:00
Sarkis Kovlekjian
acfa8c343a Complete spell-check for "Prespective Analytics" (#7179)
Corrected "Prespective Analytics" into _Prescriptive Analytics_ 


References:
Issue #7165 
PR #7177
2024-09-20 14:58:09 +01:00
github-actions[bot]
9f6de412c3 chore: update roadmap content json (#7173)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-20 19:29:22 +06:00
Kamran Ahmed
0998196593 Fix SEO title 2024-09-20 11:18:38 +01:00
dsh
9fdb9be863 7165 roadmap title typo (#7177)
* corrected the node title

* corrected file name
2024-09-20 09:48:46 +01:00
dsh
ca1abffc36 replaced broken link (#7176) 2024-09-20 09:36:24 +01:00
Jiayou Zhu
8b73387f03 Update what-is-hosting@aqMaEY8gkKMikiqleV5EP.md (#7174)
Add new article for 'Web Hosting', it has clearly explained all the details for the beginners. And it will be more reasonable to have not only videos but also article
2024-09-20 09:05:46 +01:00
Vedansh
2eac27b03b Improved Docker Roadmap. 🌨️ (#7029)
* Introduction.

* Namespaces.

* Installation & Setup

* Data Persistence.

* Databases.

* Building Container Images.

* Container Registries.

* Running Containers.

* Container Security

* Docker CLI. (Goated)

* Developer Experience.

* Deploying Containers + Extras.

* Few Refractors.

* Trim Content As Requested.

* Undo / Remove Refractors.

* Update 100-dockerhub.md

* Update 101-dockerhub-alt.md

* Update index.md

* Apply Requested Changes.
2024-09-20 09:04:40 +01:00
Kamran Ahmed
03d92f893c Add redis roadmap 2024-09-20 00:08:57 +01:00
Kamran Ahmed
8918940aa6 Add redis roadmap 2024-09-19 23:57:01 +01:00
Kamran Ahmed
e620c1a686 Add redis roadmap 2024-09-19 23:48:00 +01:00
github-actions[bot]
4162a4aedd chore: update roadmap content json (#7164)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-20 01:30:44 +06:00
Vipul Patil
13a1c6e085 Update arp@M52V7hmG4ORf4TIVw3W3J.md (#7171)
* Update arp@M52V7hmG4ORf4TIVw3W3J.md

A little changes made to the Topic

* Update src/data/roadmaps/cyber-security/content/arp@M52V7hmG4ORf4TIVw3W3J.md

* Update src/data/roadmaps/cyber-security/content/arp@M52V7hmG4ORf4TIVw3W3J.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-20 01:22:00 +06:00
teykamp
4183871a75 Added v-cloak and v-slot content on Vue roadmap (#7161)
* Add v-cloak description

Added v-cloak content in Vue roadmap

* Add v-slot description

Added v-slot content in Vue roadmap
2024-09-19 09:45:02 +01:00
Cody
61c4d566c2 Add new resource to symbol, refine documentation for clarity and flow. (#7163) 2024-09-19 09:43:09 +01:00
mori yuta
c49563ba16 Update 102-bitrise.md 404 link (#7167) 2024-09-19 09:41:44 +01:00
Arik Chakma
77c47e8f03 feat: add mark favourite button (#7156)
* feat: add mark favourite button

* fix: update favourite
2024-09-19 00:32:53 +01:00
Mark
597efd07ca Add new article links for triggers section in postgresql roadmap (#7152) 2024-09-18 15:41:10 +01:00
眼圈发黑
9577f4d615 Update optimizing-renders@RRPhAxIqvAcjZIcLe_N8-.md (#7154)
* Update optimizing-renders@RRPhAxIqvAcjZIcLe_N8-.md

* Update src/data/roadmaps/vue/content/optimizing-renders@RRPhAxIqvAcjZIcLe_N8-.md

cleaned up the styling

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-18 15:39:38 +01:00
stuartrace
4f01c51232 Add formatting so the HTML elements don't get rendered (#7157)
The <input> <textarea> and <select> elements are attempted to be rendered by the browser so they aren't visible as text
2024-09-18 15:37:28 +01:00
Hang
84184724c4 Updates to the Linux Roadmap (#7149)
* add Practice Linux Commands with Hands-on Labs

* Update public/roadmap-content/devops.json

Co-authored-by: Arik Chakma <arikchangma@gmail.com>

* Update public/roadmap-content/devops.json

* add linux free tutorials

---------

Co-authored-by: huhuhang <huhuhang@github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Arik Chakma <arikchangma@gmail.com>
Co-authored-by: huhuhang <no-reply@huhuhang.com>
2024-09-18 15:30:42 +01:00
github-actions[bot]
024c7cbda1 chore: update roadmap content json (#7148)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-18 19:02:01 +06:00
dsh
951f97d5f0 fix: expand all internal roadmap urls (#7151) 2024-09-18 13:18:29 +01:00
Kamran Ahmed
c3118daa57 Fix typo in homepage 2024-09-18 13:17:47 +01:00
Mark
358402e20f Fix no article title in postgres roadmap (#7153) 2024-09-18 12:39:24 +01:00
Arik Chakma
6c914d1b47 fix: update copy roadmap alert (#7110)
* fix: update copy roadmap alert

* fix: update text
2024-09-18 12:24:36 +01:00
Nicholas Zingleman
3598db798c Update 104-selection-sort.md (#7147)
Dollar Signs were being rendered on the website. Removed for visual clarity.
2024-09-18 10:48:39 +01:00
Arik Chakma
ffaba806c9 feat: add projects in homepage (#7118) 2024-09-17 18:16:02 +01:00
Ed Lan
caf39819da Small content update (#7145) 2024-09-17 18:15:31 +01:00
dsh
1a98f62b38 Update Frontend FAQs (#7146) 2024-09-17 18:15:09 +01:00
J. Degand
b2e2e2c3ad docs(angular): update angular architecture content (#7103)
* docs(angular): update angular architecture content

* docs(angular): change list to paragraph
2024-09-17 10:30:53 +01:00
Saumya Shah
387d5218b2 Improve structured data content for rookies (#7137)
Improve the content in `src/data/roadmaps/prompt-engineering/content/103-real-world/100-structured-data.md` to be more concise and understandable for rookies.
2024-09-17 10:04:31 +01:00
Krishna Chaiatanya
fa0452e9c9 Update oauth-apps@qrdOARfqGPF9xhF6snbAn.md (#7138)
* Update oauth-apps@qrdOARfqGPF9xhF6snbAn.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-17 10:02:17 +01:00
Mark
915373f16d Add offical links for for nodejs core modules (#7140) 2024-09-17 09:59:10 +01:00
Carl Walsh
12077bb8f2 devops networking fix ping typo (#7142)
Changed URL with hostname
2024-09-17 09:54:03 +01:00
github-actions[bot]
ade4b279e4 chore: update roadmap content json (#7141)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-17 06:10:43 +06:00
VotreX Tan
c5eaf08f6e Update content relevance (#7106)
Updated the explanation to include the key thesis of the framework and the components of the CREATE acronym.
2024-09-16 14:20:19 +01:00
VotreX Tan
50b342bdbf Update content (#7108)
Previous content did not refer to the correct framework by Stephen Wendel. See: https://www.oreilly.com/library/view/designing-for-behavior/9781449367947/ch01.html#in_familiar_situations_our_minds_can_use
2024-09-16 14:19:27 +01:00
moonzn
cf1e2b4d5c Update devops-engineer.md (#7111)
Typo in line 2: "Responsbilities" -> "Responsibilities"
2024-09-16 14:18:22 +01:00
Sparsh
ce6fc83ad9 Added new course link of 100 days of SwiftUI | Hacking with SwiftUI (#7112)
* Update swiftui@kAIKsDcDzwI1E0wSnC_uo.md

Added new course link of 100 days of SwiftUI | Hacking with SwiftUI

* Added new course link of 100 days of SwiftUI | Hacking with SwiftUI

Added new course link of 100 days of SwiftUI | Hacking with SwiftUI
2024-09-16 14:17:03 +01:00
Krishna Chaiatanya
d2a44fbe75 Update flink@o6GQ3-8DgDtHzdX6yeg1w.md (#7115)
* Update spark@UljuqA89_SlCSDWWMD_C_.md

* Update src/data/roadmaps/mlops/content/spark@UljuqA89_SlCSDWWMD_C_.md

* Update flink@o6GQ3-8DgDtHzdX6yeg1w.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-16 14:15:20 +01:00
Mark
1d772af10a Add realtime data links in Backend roadmap (#7121) 2024-09-16 14:13:26 +01:00
Hang
4cb4c057aa add "Practice Linux Commands with Hands-on Labs" to "Ubuntu / Debian" node (#7122)
* add Practice Linux Commands with Hands-on Labs

* Update public/roadmap-content/devops.json

Co-authored-by: Arik Chakma <arikchangma@gmail.com>

* Update public/roadmap-content/devops.json

---------

Co-authored-by: huhuhang <huhuhang@github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-16 14:11:56 +01:00
sickpoitew
8dd03f0272 Added content to some Vue topics. (#7127)
* Added v-bind description

* Added v-for description

* Added v-text description

* Added v-html description

* Added v-once description

* Added v-pre description

* Added v-else-if description
2024-09-16 14:08:19 +01:00
Brian Rodriguez
6130f16b23 [Update] Fcm docs (#7130) 2024-09-16 14:07:00 +01:00
Stavros Siamantas
30edae3e6e add git filter-repo as an alternative to git filter-branch (#7135) 2024-09-16 14:05:39 +01:00
dsh
ce48c7b594 added and removed the requested links (#7134) 2024-09-16 13:06:39 +01:00
Kamran Ahmed
3a24ff7f24 Update homepage link 2024-09-16 12:33:09 +01:00
Arik Chakma
111c7f23ab fix: progress nudge count (#7133) 2024-09-16 17:22:22 +06:00
Nicholas Zingleman
6ccbde99fe feat: content line break (#7131)
Updating formatting. Placed summary on a new line.
2024-09-16 02:29:05 +06:00
Mark
7754f7a576 fix: SQL query pattern title section in backend roadmap (#7129) 2024-09-15 15:11:57 +06:00
github-actions[bot]
2fc86bc400 chore: update roadmap content json (#7120)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-14 20:23:54 +06:00
Kamran Ahmed
56e7aa5687 Update homepage link color 2024-09-13 19:08:54 +01:00
Kamran Ahmed
b92abb127d Add link to old homepage 2024-09-13 19:08:21 +01:00
Andrea Gasparini
a9b9077d07 Adds link to Git article from MIT "The Missing Semester of Your CS Education" (#7109) 2024-09-13 19:00:40 +06:00
github-actions[bot]
65f51d9243 chore: update roadmap content json (#7102)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-13 16:37:44 +06:00
Krushna Kanta Rout
824c796029 fix: replace article with official for ruby website (#7107) 2024-09-13 16:24:04 +06:00
Abdulrhman SayedAli
e58c30f74f fix: hard links share the same inode number. (#7093)
Co-authored-by: abdulrhman.ali@bld.ai <abdulrhman.ali@bld.ai>
2024-09-13 09:36:36 +01:00
Krishna Chaiatanya
36a66fa901 Update spark@UljuqA89_SlCSDWWMD_C_.md (#7095)
* Update spark@UljuqA89_SlCSDWWMD_C_.md

* Update src/data/roadmaps/mlops/content/spark@UljuqA89_SlCSDWWMD_C_.md

---------

Co-authored-by: Arik Chakma <arikchangma@gmail.com>
2024-09-13 09:35:11 +01:00
J. Degand
fbf124aedf docs(git): add gitignore template repo (#7104) 2024-09-13 09:33:47 +01:00
J. Degand
7e100434f7 docs(java): change article to official (#7105) 2024-09-13 09:32:40 +01:00
Kamran Ahmed
7adbdc3fb1 Fix redirect issue on dashboard for AI roadmaps 2024-09-12 22:39:17 +01:00
Kamran Ahmed
e79bfca074 Add link to leaderboard 2024-09-12 19:57:18 +01:00
Kamran Ahmed
989f7ad5c1 Add streaks for lifetime 2024-09-12 19:09:04 +01:00
Kamran Ahmed
dd5232f2f8 Fix spacing on leaderboard page 2024-09-12 18:53:34 +01:00
Kamran Ahmed
851a0381b6 Add leaderboard page 2024-09-12 18:51:05 +01:00
Arik Chakma
88d783680b feat: implement leaderboard page (#7063)
* feat: implement leaderboard page

* feat: add empty and error pages

* feat: add rank badge
2024-09-12 17:32:51 +01:00
Kamran Ahmed
a1aba2e026 Update skeleton height 2024-09-12 17:01:58 +01:00
Kamran Ahmed
01eb7b2f0f Update font style for bookmarks 2024-09-12 16:54:18 +01:00
Kamran Ahmed
94ce774586 Update comments 2024-09-12 15:38:32 +01:00
Kamran Ahmed
bbcd7e18e5 Update stack message 2024-09-12 15:28:28 +01:00
Kamran Ahmed
298b137a7d Fix sorting order of roadmaps 2024-09-12 13:32:42 +01:00
dsh
ae58fa2a2a Clean Backend Roadmap Links / Content (#7076)
* 95 topics complete

* 32 topics

* 8 topics

* Update src/data/roadmaps/backend/content/building-for-scale@SHmbcMRsc3SygEDksJQBD.md

* Update src/data/roadmaps/backend/content/architectural-patterns@tHiUpG9LN35E5RaHddMv5.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-12 13:20:51 +01:00
Kamran Ahmed
bcc85dcebe Update projects header 2024-09-12 13:08:38 +01:00
Kamran Ahmed
44a7a01e3c Update UI for projects 2024-09-12 12:45:46 +01:00
Arik Chakma
e3b6bacbc4 feat: implement projects page (#7067) 2024-09-12 12:30:28 +01:00
dsh
8c615084d3 fix: blank button into DevOps Roadmap button (#7058)
* turned blank button into DevOps Roadmap button

* reverted type change

* fixed correct button
2024-09-12 17:28:39 +06:00
github-actions[bot]
9f446764bc chore: update roadmap content json (#7087)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-12 12:25:01 +01:00
Kamran Ahmed
bf80d3f052 Stop project functionality 2024-09-12 12:24:35 +01:00
Arik Chakma
09b63442dc feat: add stop project button (#7083)
* feat: add stop project button

* fix: minor
2024-09-12 11:51:03 +01:00
dsh
af4b04a510 Add 10 devops skills guide (#7089) 2024-09-12 11:50:26 +01:00
Kavish Baghel
839d92db29 Added content for Environment Variable and Validation Rules in Terraform Roadmap (#7084)
* Added content for Environment variables in terraform roadmap

* Added content for validation rules in Terraform roadmap
2024-09-12 11:05:37 +01:00
Brian Rodriguez
2193565071 Add docs: Android mvi (#7086)
* [Add] MVI docs

* [Add] Format & add link

* Update src/data/roadmaps/android/content/mvi@Bz-BkfzsDHAbAw3HD7WCd.md

cleaned

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-12 11:04:16 +01:00
VotreX Tan
1121993c15 Renaming "Triggers" to "Prompts" (#7088)
BJ Fogg has renamed "Triggers" to "Prompts" in late 2017. See: https://behaviormodel.org/prompts/
2024-09-12 11:01:51 +01:00
dsh
973d4dc73a replace assembly with gdscript (#7078) 2024-09-11 16:01:55 +01:00
Arik Chakma
a913da47a7 feat: implement dashboard page (#6965)
* wip: implement success modal

* feat: share solution modal

* fix: step count issue

* fix: responsiveness share button

* feat: project listing

* wip

* wip: project status

* feat: personal dashboard

* wip: team activity

* feat: personal dashboard page

* feat: add team member tooltip

* feat: dashboard favourite

* fix: invite team page

* fix: invite team

* wip: update design

* fix: add custom roadmaps

* feat: add projects in public page

* wip: dashboard re-design

* feat: add teams

* feat: update dashboard design

* feat: update dashboard design

* feat: add streak stats

* feat: add topics done today count

* UI changes for dashboard

* Refactor progress stack

* Progress stack UI

* Progress stack card fixes

* Update card designs

* AI and custom roadmap

* Update recommendation

* Update recommendation UI

* Add AI roadmap listing

* Redirect to team page from dashboard

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-11 16:01:26 +01:00
dsh
2959ea3fda removed paided resource (#7079) 2024-09-11 15:45:39 +01:00
Arik Chakma
cf5301030f fix: hide the team member progress (#7077)
* fix: hide the team member progress

* Refactor member progress

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-11 15:44:11 +01:00
sergiomarotco
537bbc2ceb add real examples about segmentations (#6897)
* Update src/data/roadmaps/cyber-security/content/perimiter-vs-dmz-vs-segmentation@PUgPgpKio4Npzs86qEXa7.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-11 15:29:33 +01:00
github-actions[bot]
c9f34087c4 chore: update roadmap content json (#7049)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-11 10:37:15 +01:00
Arik Chakma
c1e733d640 fix: pnpm lock (#7074) 2024-09-11 15:29:07 +06:00
Mark
ceb4baefa1 Add article links for short/long polling articles in Backend Roadmap (#7061)
* Add article links for short/long polling articles in Backend Roadmap

* Update src/data/roadmaps/backend/content/short-polling@Tt7yr-ChHncJG0Ge1f0Xk.md

removed duped article from short polling

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-11 10:01:56 +01:00
Abdulrhman SayedAli
c387a6b843 Add some linux resources (#7066)
* add some useful links to text processing section:

- add a detaild link about piping.
- add a detailed link about text filters in general.
- add a basic link for grep beginners.

---------

Co-authored-by: abdulrhman.ali@bld.ai <abdulrhman.ali@bld.ai>
2024-09-11 09:59:43 +01:00
Clinton
909b0fa81a Update index.md (#7070)
Added a brief description of realtime communication, methods of achieving it and a link to a YouTube video showing websockets being used with Go.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-11 09:56:03 +01:00
Kamran Ahmed
dae737fa02 Upgrade dependencies 2024-09-10 11:11:21 +01:00
Kavish Baghel
f81783ff9d Added content for terraform local values page in terraform roadmap. (#7060) 2024-09-10 09:29:24 +01:00
dsh
52d0fffaab Remove druid add tauri (#7055) 2024-09-09 16:09:27 +01:00
dsh
8bad7f4de1 removed whitespace from the end of the file name (#7054) 2024-09-09 15:37:25 +01:00
dsh
c3ff9efb73 fix github wiki topic file name (#7053) 2024-09-09 15:13:43 +01:00
Rebecca Ariss
53b5d7c953 Update parallel-processing@Fwwve0j-KDfc605IIgmil.md (#7000)
Slight adjustments to article titles to reflect the casing of the article headers themselves
2024-09-09 12:47:28 +01:00
Mark
c3421b4c1a Add official article link for MVCC in Postgres Roadmap (#7034) 2024-09-09 12:45:13 +01:00
NEOmega
6c3f8cb0e2 Update texture@iBZ1JsEWI0xuLgUvfWfl-.md (#7037)
* Update src/data/roadmaps/game-developer/content/texture@iBZ1JsEWI0xuLgUvfWfl-.md

---------

Co-authored-by: Ku-Ahnkh <147754131+Ku-Ahnkh@users.noreply.github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-09 12:44:38 +01:00
Satyam Vyas
e99c88aae5 Added content inside IDEs and VS Code sections, present inside DevRel Roadmap (#7039)
* Update src/data/roadmaps/devrel/content/vs-code@j5nNSYI8s-cH8EA6G1EWY.md

* Update src/data/roadmaps/devrel/content/ides@KdFYmj36M2jrGfsYkukpo.md


---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-09 12:41:42 +01:00
NEOmega
d3c259e79f Update bump@r4UkMd5QURbvJ3Jlr_H9H.md (#7040)
* Update src/data/roadmaps/game-developer/content/bump@r4UkMd5QURbvJ3Jlr_H9H.md

---------

Co-authored-by: Ku-Ahnkh <147754131+Ku-Ahnkh@users.noreply.github.com>
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-09 12:38:50 +01:00
NEOmega
03f6a58110 Update specular@odfZWKtPbb-lC35oeTCNV.md (#7044)
* Update specular@odfZWKtPbb-lC35oeTCNV.md

* Update src/data/roadmaps/game-developer/content/specular@odfZWKtPbb-lC35oeTCNV.md

corrected styling

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-09 10:03:31 +01:00
Sivan Sakthivel
59c8a8184d Update set-operations@kOwhnSZBwIhIbIsoAXQ50.md (#7045) 2024-09-09 09:58:55 +01:00
Amit Merchant
9b5199d829 Add "Abort a fetch request manually in JavaScript" article (#7048) 2024-09-09 09:58:11 +01:00
Mau
c123abdc23 Add "TLDR" information to Linux roadmap - Command Help (#7050)
* Add "TLDR" information to Linux roadmap - Command Help

* Updated styling.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-09 09:57:00 +01:00
dsh
ee143d8b6c Add content to Cyber security roadmap (#6978)
* 57 topics copy

* 28 topics

* Update iaas@1nPifNUm-udLChIqLC_uK.md

* 18 topics

* adding links to 20 topics

* links added to 44 topics

* links added to 67 topics

* completed roadmap, no empty topics remain

* mesh topic links

* last 5 topics

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-08 16:34:33 +01:00
github-actions[bot]
7cf4618634 chore: update roadmap content json (#7031)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-08 18:12:46 +06:00
ShubhamKatyal
762444725a Add content to wap/wp2/wp3/wep (#7020)
* Update wpa-vs-wpa2-vs-wpa3-vs-wep@MBnDE0VyVh2u2p-r90jVk.md

* Update src/data/roadmaps/cyber-security/content/wpa-vs-wpa2-vs-wpa3-vs-wep@MBnDE0VyVh2u2p-r90jVk.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-07 19:22:41 +01:00
Ramchandra Warang
df4d083c01 Add resource for pipes (#7021)
The link for Understanding pipes for the official documentation from the Angular Documentation was either changed or incorrect hence changed to the correct one
2024-09-07 19:19:48 +01:00
Mark
e78bf8d7f7 Add data replication article link for Backend Roadmap (#7023)
* Add data replication article link for Backend Roadmap

* remove IBM
2024-09-07 19:18:01 +01:00
github-actions[bot]
dcb5538b12 chore: update roadmap content json (#6996)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-07 22:22:28 +06:00
Mateo
fc3acb9702 docs(rust): fix formatting on functions content page (#7027) 2024-09-07 22:19:02 +06:00
Mark
6133c10beb fix: missing article title in PostgreSQL dba roadmap (#7028) 2024-09-07 22:18:29 +06:00
Kamran Ahmed
29c8c3e76f Update UI for share button 2024-09-07 12:58:52 +01:00
dsh
48e3832dbd Add article for creating aws account (#7022) 2024-09-06 12:08:38 +01:00
Mentales
db2973f27e Remove unreachable nudge theory video (#7008) 2024-09-06 09:29:18 +01:00
Hussain Ali
2b03fe1554 Add postgresql history page from the official docs (#7010)
* Add postgresql history page from the official docs

I brief historical view of Postgresql that might introduce new developers to Berkeley Labs to look up the projects from there.

* Update src/data/roadmaps/postgresql-dba/content/introduction@lDIy56RyC1XM7IfORsSLD.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-06 09:28:15 +01:00
Brian Rodriguez
01f5e57ef4 [Add] Docs linear & frame layouts (#7012) 2024-09-06 09:25:48 +01:00
blubu
4ac9e7b12c Update what-are-relational-databases@R9DQNc0AyAQ2HLpP4HOk6.md (#7017) 2024-09-06 09:24:57 +01:00
ingar
c2c122e4dc Update 102-insertion-sort.md (#7019)
add visualisation to insertion sort
2024-09-06 09:24:43 +01:00
Arik Chakma
1e6fa6d8c6 fix: content modal (#7016) 2024-09-06 13:29:04 +06:00
Vedansh
a3422cd772 Improved Devops Roadmap. (#6998)
* Improved Devops Roadmap.

* Apply suggested changes from @dansholds.
2024-09-05 15:12:02 +01:00
Mark
992d817d1a Add database index wikipedia link for Backend Roadmap (#7005)
* Add database index wikipedia link for Backend Roadmap

* Update src/data/roadmaps/backend/content/database-indexes@y-xkHFE9YzhNIX3EiWspL.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-05 12:08:39 +01:00
Kamran Ahmed
4ac4fcfba0 Update devops projects 2024-09-05 09:27:57 +01:00
Arik Chakma
a92ea779b8 feat: persist selected group (#6993) 2024-09-04 22:18:33 +01:00
Arik Chakma
29fa5397f3 fix: format user count (#6994) 2024-09-04 22:18:07 +01:00
Mark
1c3d86f085 Remove redundant link in backend roadmap (#6985) 2024-09-04 19:40:17 +01:00
Kamran Ahmed
3b40b61013 Add project started count 2024-09-04 18:25:36 +01:00
Arik Chakma
d5b9c97fed feat: add project's user count (#6992)
* feat: add project user count

* feat: add user count

* fix: user count
2024-09-04 18:22:15 +01:00
Kamran Ahmed
c48c9e75f9 fix: broken workflow 2024-09-04 13:55:57 +01:00
Kamran Ahmed
925dd62fe3 Add temperature converter project 2024-09-04 13:42:31 +01:00
SOUMITRA-SAHA
d1c9575823 Fix: Comment out howtoflutter.dev (site down) and update tag from `… (#6931)
* Fix: Comment out `howtoflutter.dev` (site down) and update tag from `@article@Variables` to `@official@Variables`

* Removed `Comment`
2024-09-04 09:22:56 +01:00
Adithyan Dileep
663fcdb1d2 Update string@1RcwBHU3jzx0YxxUGZic4.md (#6906) 2024-09-04 09:17:53 +01:00
Brian Rodriguez
bdbaeffd50 [Docs] Android roadmap: Relative layout (#6902)
* [Docs] Android roadmap: Relative layout

* [Docs] Android roadmap: Format
2024-09-04 09:17:15 +01:00
Amit Merchant
83e61e548c Add an article on how to build an offline-capable Notepad app using PWA principles (#6886) 2024-09-04 09:14:37 +01:00
Reyes Rondón
7c9de90b3c add content scrum@PKqwKvoffm0unwcFwpojk.md (#6851)
* add content tcpip-model@UCCT7-E_QUKPg3jAsjobx.md

* add content scrum@PKqwKvoffm0unwcFwpojk.md

* update tcpip-model@UCCT7-E_QUKPg3jAsjobx.md
2024-09-04 09:12:11 +01:00
Drex
66a994512b resolved topic not found for flutter (#6839) 2024-09-04 09:10:45 +01:00
Jesús Enrique Alcalá Rojas
90f24fb780 add content nids@LIPtxl_oKZRcbvXT4EdNf.md (#6833) 2024-09-04 09:06:16 +01:00
Jesús Enrique Alcalá Rojas
d58c087deb add content hips@l5EnhOCnkN-RKvgrS9ylH.md (#6832)
* add content hips@l5EnhOCnkN-RKvgrS9ylH.md

* Update src/data/roadmaps/cyber-security/content/hips@l5EnhOCnkN-RKvgrS9ylH.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-04 09:05:30 +01:00
Jesús Enrique Alcalá Rojas
526c7d16ad add content dlp@iolsTC-63d_1wzKGul-cT.md (#6831)
* add content dlp@iolsTC-63d_1wzKGul-cT.md

* Update src/data/roadmaps/cyber-security/content/dlp@iolsTC-63d_1wzKGul-cT.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-04 09:04:18 +01:00
Jesús Enrique Alcalá Rojas
be3e1859dd add content pass-the-hash@sMuKqf27y4iG0GrCdF5DN.md (#6830) 2024-09-04 09:02:27 +01:00
Jesús Enrique Alcalá Rojas
ad8ce9f9f2 add content memory-leak@nOND14t7ISgSH3zNpV3F8.md (#6829) 2024-09-04 09:01:56 +01:00
dmcadieux
67cf3f5313 fix: porcesses typo in cs roadmap porcesses & threads (#6808)
* fix: porcesses typo in cs roadmap porcesses & threads

* Rename porcesses-and-threads@ETEUA7jaEGyOEX8tAVNWs.md to processes-and-threads@ETEUA7jaEGyOEX8tAVNWs.md

fix: file name spelling fix

---------

Co-authored-by: dmcadieux <dmcadieux@gmail.com>
2024-09-04 08:59:28 +01:00
dsh
73597724a0 Add DevOps Projects (#6772)
* add astro cicd project

* add link to github pages docs

* add docker webserver project

* Apply suggestions from code review

* add basic iac with terraform project

* add monitoring stack project

* Apply suggestions from code review

change from Astro to simple HTML file

* Update src/data/projects/basic-github-actions.md

remove newline
2024-09-04 08:55:45 +01:00
github-actions[bot]
b361840742 chore: update roadmap content json (#6983)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2024-09-04 13:03:33 +06:00
Kamran Ahmed
f154d05a84 Add reddit client project idea 2024-09-04 03:02:03 +01:00
Kamran Ahmed
2d08f74c7f Add github random repo project 2024-09-04 02:20:02 +01:00
Kamran Ahmed
d202e0a75d Add task tracker project 2024-09-04 01:07:46 +01:00
Kamran Ahmed
6da9dfc771 Add accordion projectc idea 2024-09-04 00:29:38 +01:00
Kamran Ahmed
05d414adf4 Add dropdown project idea 2024-09-04 00:07:31 +01:00
Kamran Ahmed
45a7fe6eb8 Add restricted textarea project 2024-09-03 23:11:05 +01:00
Kamran Ahmed
0879785d35 Add cookie consent banner project 2024-09-03 22:39:55 +01:00
Kamran Ahmed
e83a261b2c Add simple tabs project 2024-09-03 22:39:55 +01:00
Saeed
b78252be59 fix: useMemo details (#6980)
Memorizes" vs. "Memoizes": The term "memorizes" can imply simply remembering something, while "memoizes" is a specific term in computer science meaning to cache the result of a function. Using "memoizes" is more accurate in this context.
2024-09-04 03:20:48 +06:00
Shyam Venkatesh
ac18df727f Fix wrong markdown format in docker roadmap (#6982)
* Removed full-stops from Installation / Setup pane

* Removed full-stop from Bind mounts

* Removed full-stops from Union Filesystems pane

* fix/6877-Removed supporting text to make tags render properly

* Update 102-union-filesystems.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-03 19:44:47 +01:00
Kamran Ahmed
8511626698 Update tooltip ui project 2024-09-03 19:04:47 +01:00
Kamran Ahmed
fcac62c6bd Add tooltip ui project 2024-09-03 18:51:21 +01:00
Kamran Ahmed
7682d6ad33 Add grid layout project 2024-09-03 18:51:21 +01:00
Kamran Ahmed
1fcfa81bd2 Add two new projects for date picker and accessibility 2024-09-03 18:51:21 +01:00
Reza Hasani
23712d24b5 Update bind@dbercnxXVTJXMpYSDNGb2.md (#6937) 2024-09-03 14:11:34 +01:00
Sarkis Kovlekjian
48d99e2dad assign id property for form label input elements (#6940) 2024-09-03 14:10:57 +01:00
github-actions[bot]
8c104aed7f chore: update roadmap content json (#6972)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-09-03 14:10:17 +01:00
Kamran Ahmed
3accbf503b Add project ideas for frontend 2024-09-03 14:04:02 +01:00
Vedansh
e43b074edf chore: enhanced workflows (#6977)
* Enhanced Workflows.

* Changed the PR Reviewer to the Final Boss.
2024-09-03 12:01:38 +01:00
SOUMITRA-SAHA
3f0301c0b4 Fix: The Article Title for 'Not showing the article title in one of the PostgreSQL roadmap contents #6907' (#6930) 2024-09-03 09:53:54 +01:00
Jaime Rios
497d264321 Update loops@Dvy7BnNzK55qbh_SgOk8m.md (#6942)
* Update loops@Dvy7BnNzK55qbh_SgOk8m.md

* Update src/data/roadmaps/python/content/loops@Dvy7BnNzK55qbh_SgOk8m.md

add article tag

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-09-03 09:50:09 +01:00
Ari Yonaty
0c000df830 docs(kubernetes): add content for k8s deployments (#6973) 2024-09-03 09:49:03 +01:00
Yam Duran
db8ee31ed3 Update types-of-data-analytics@Lsapbmg-eMIYJAHpV97nO.md | Added free resources (#6969)
It was modified the way the types of data analytics are shown, now is easier to understand the concepts. Also, I've added free resources for a deeper read on the subject (2 links and 2 youtube videos)
2024-09-03 09:48:07 +01:00
michalkarolik
8606588c38 Update lifecycle@0A8zTuCXVmcruJdfH3cNu.md (#6974)
'for_each' was used in link text - probably copy/paste leftover
2024-09-03 09:47:08 +01:00
J. Degand
86c903305a docs(angular): add using libraries content (#6948) 2024-09-03 14:21:21 +06:00
J. Degand
f94c09bcf3 docs(angular): add locales-id content (#6944) 2024-09-03 14:20:50 +06:00
J. Degand
ecd743c88e docs(angular): add localize package content (#6945) 2024-09-03 14:17:38 +06:00
J. Degand
e258c3b668 docs(angular): update transformation content (#6946) 2024-09-03 14:15:09 +06:00
J. Degand
733e282454 docs(angular): add translation files content (#6947) 2024-09-03 14:14:12 +06:00
J. Degand
9d3868494b docs(angular): add typed forms content (#6949) 2024-09-03 14:12:46 +06:00
J. Degand
1057b89fa0 docs(angular): update testing angular apps content (#6950) 2024-09-03 14:10:15 +06:00
J. Degand
419442cac9 docs(angular): add developer tools content (#6951) 2024-09-03 14:08:38 +06:00
J. Degand
93e69bd6e7 docs(angular): add communication content (#6952) 2024-09-03 00:21:17 +01:00
github-actions[bot]
ac8efdd1b5 chore: update roadmap content json (#6955)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-09-03 00:21:05 +01:00
Khizar Ahmed
a3bfd15c0e Add content to urlscan (#6956)
Information is sourced from urlscan.io's about page.
2024-09-03 00:20:52 +01:00
Vedansh
47c9eb4860 Improve TypeScript roadmap content (#6961)
* Verify Phase - 1

* Verify Phase - 2

* Phase - 3

* Final Changes in TS Roadmap
2024-09-03 00:19:11 +01:00
Pedro Ramos
ec60a125af Fix markdown of SQL 'GROUP BY' and 'MAX' pages (#6963) 2024-09-03 00:18:23 +01:00
Shyam Venkatesh
319a215666 Update content formatting (#6967)
* Removed full-stops from Installation / Setup pane

* Removed full-stop from Bind mounts

* Removed full-stops from Union Filesystems pane
2024-09-03 00:18:10 +01:00
Kamran Ahmed
bbbc9b587d Add personal portfolio project idea 2024-09-03 00:15:17 +01:00
Kamran Ahmed
660440a514 Add single page CV project 2024-09-02 23:42:25 +01:00
Yam Duran
bd8cc0dc14 Fixed a typo on the word "visualiZation". (#6970)
noted that file name is also written wrong and the way it's displayed on the screen
2024-09-02 21:46:20 +01:00
Kamran Ahmed
d63cb7925b Add note for premium resources 2024-09-02 21:41:58 +01:00
SOUMITRA-SAHA
ff1f876880 Fix: unresponsive toggle menu after navigating back from roadmap page #6861 (#6964) 2024-09-02 21:41:21 +01:00
dsh
1859e94184 Add content to SQL Roadmap (#6873)
* complete sql content

* add links to topics

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-09-02 21:39:31 +01:00
Kamran Ahmed
f96201cbbd Update content links 2024-09-02 19:16:36 +01:00
Kamran Ahmed
ef1f79a5b4 Update content links 2024-09-02 19:14:52 +01:00
Kamran Ahmed
1b90443208 Remove low quality content links 2024-09-02 19:13:33 +01:00
Drew Powers
3dfc6a7d49 Remove “official” from JavaScript.com (#6929) 2024-09-02 08:57:50 +01:00
Sarkis Kovlekjian
9a3a30f3ae add text-prompt-opacity (#6939) 2024-09-02 08:54:53 +01:00
Kamran Ahmed
257b350381 Update about page 2024-09-01 19:10:00 +01:00
J. Degand
2dd3edadf9 docs(angular): add hydration content (#6913) 2024-09-01 12:46:17 +01:00
J. Degand
5a0d23dcf1 docs(angular): add slow computations content (#6904) 2024-09-01 12:46:00 +01:00
J. Degand
d73145661a docs(angular): add zone pollution content (#6903) 2024-09-01 12:45:52 +01:00
J. Degand
33ef642dd8 docs(angular): add multiple locales content (#6901) 2024-09-01 12:44:48 +01:00
J. Degand
f2671c32c8 docs(angular): add local setup content (#6899) 2024-09-01 12:44:41 +01:00
J. Degand
7183bc7382 docs(angular): add deployment content (#6896) 2024-09-01 12:44:33 +01:00
J. Degand
25aa149766 docs(angular): add debugging tests content (#6895) 2024-09-01 12:44:25 +01:00
J. Degand
d669d242f8 docs(angular): add creating libraries content (#6894) 2024-09-01 12:43:43 +01:00
J. Degand
0b4137e3bd docs(angular): add testing services content (#6914) 2024-09-01 12:42:43 +01:00
J. Degand
512de27478 docs(angular): update services with dependencies content (#6915) 2024-09-01 07:24:21 +01:00
J. Degand
3acc0d6a5f docs(angular): update ssg content (#6916) 2024-09-01 06:24:56 +01:00
J. Degand
d30bc59d9e fix(angular): remove duplicate template ref vars files (#6917) 2024-09-01 05:33:52 +01:00
J. Degand
fbc957552c docs(angular): update router events content (#6918) 2024-09-01 05:33:37 +01:00
J. Degand
99cc36406a docs(angular): add resources to rxjs basics (#6919) 2024-09-01 05:33:27 +01:00
J. Degand
0b4a28050b docs(angular): update zones content (#6920) 2024-09-01 05:33:19 +01:00
J. Degand
ccd36c58fa docs(angular): add e2e content (#6921) 2024-09-01 05:33:10 +01:00
J. Degand
a40f2187fb docs(angular): add HTTPClient CSRF protection content (#6922)
* docs(angular): add XSRF protection content

* docs(angular): move xsrf content to correct file

* fix: remove extra line
2024-09-01 05:33:03 +01:00
J. Degand
66358202b9 docs(angular): add http vulnerabilities content (#6923) 2024-09-01 05:32:54 +01:00
J. Degand
ae7aa310f4 docs(angular): add csrf content (#6924) 2024-09-01 05:32:37 +01:00
J. Degand
88d419a09b docs(angular): add xssi content (#6925) 2024-09-01 05:32:27 +01:00
J. Degand
f8a83c3c81 docs(angular): add testing requests content (#6926) 2024-09-01 05:32:15 +01:00
J. Degand
ea99772fa5 docs(angular): add template syntax content (#6927) 2024-09-01 05:32:03 +01:00
J. Degand
4d3c792a54 docs(angular): add dynamic components content (#6928) 2024-09-01 05:31:53 +01:00
J. Degand
4ede70ab86 docs(angular): add cli builders content (#6893) 2024-09-01 05:31:26 +01:00
J. Degand
45a28405be docs(contributing): fix typos (#6892) 2024-09-01 05:31:16 +01:00
github-actions[bot]
ff1c5c1c53 chore: update roadmap content json (#6891)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-31 01:34:28 +01:00
Sarkis Kovlekjian
17b63fa7a7 SQL JOINS Clause Formatting (#6885)
bullet point for each operation to make document more readable
2024-08-30 16:48:03 +01:00
dsh
a93ddf3944 removed 'roadmap' from git & github roadmap name in README (#6889) 2024-08-30 16:47:37 +01:00
Reza Mobaraki
12fd9287c3 Add binary tree content (#6887)
* content for binary tree

* content for binary tree
2024-08-30 16:46:58 +01:00
Arik Chakma
6101f01055 feat: implement share solution (#6821)
* wip: implement success modal

* feat: share solution modal

* fix: step count issue

* fix: responsiveness share button

* Update UI for shareable link

* Update UI for shareable link

* Update UI for share solutions

* Project solution modal UI design

* Update UI for share solutions

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-30 12:02:45 +01:00
Andrey Kirik
54a731aaa5 Update 101-problems-graphql-solves.md (#6836)
Info about federations and supergraphs
2024-08-30 09:49:05 +01:00
Shyam Venkatesh
f4c7996470 Link Docker Roadmap inside suggested resources #6875 (#6876)
* Link Docker Roadmap inside suggested resources #6875

Added Docker Roadmap link to DevOps page - Docker resources

* Update src/data/roadmaps/devops/content/docker@P0acFNZ413MSKElHqCxr3.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-30 09:48:36 +01:00
iliAsghar
c01a07e7b3 Update bind@dbercnxXVTJXMpYSDNGb2.md (#6823)
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-30 09:45:22 +01:00
Krushna Kanta Rout
cfffdeea15 Add Dedicated C++ Roadmap Link to Data Structures & Algorithms Roadmap (#6822)
* Add link to dedicated C++ roadmap

* Update src/data/roadmaps/datastructures-and-algorithms/content/100-language/104-cpp.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-30 09:43:19 +01:00
Maximo Comperatore
351d25d429 descision trees (#6788) 2024-08-30 09:42:04 +01:00
Sarkis Kovlekjian
f16c2a8afd Update SQL Roadmap UPDATE Statement Node. (#6784)
* Fill update node with info 

Add relevant info.
Any new proposals welcome

* remove emoji and code formatting as suggested in PR review
2024-08-30 09:41:41 +01:00
Vedansh
5c2cc7a6da Improved JavaScript Roadmap (#6779)
* - Fixed Spacing and EOL.
- Fixed Wrong Spellings.
- Improved Examples.

* ## Adding Content for :

- Add `apply()`
- Add `bind()`
- Add `call()`
2024-08-30 09:40:33 +01:00
J. Degand
90486c2369 docs(angular): add else if content (#6841) 2024-08-30 12:02:22 +06:00
J. Degand
99054a36a6 docs(angular): add switch content (#6842) 2024-08-30 12:01:12 +06:00
J. Degand
58b5b5214e docs(angular): add case content (#6843) 2024-08-30 12:00:02 +06:00
J. Degand
24b6e62a29 docs(angular): add build-environments content (#6845) 2024-08-30 11:59:07 +06:00
github-actions[bot]
82d433806b chore: update roadmap content json (#6878)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-30 09:12:23 +06:00
Kamran Ahmed
fbf32e0f73 Change title for git and github roadmap 2024-08-29 18:15:03 +01:00
github-actions[bot]
c9729ed073 chore: update roadmap content json (#6795)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-29 22:37:38 +06:00
Lucas Dondo
4a610a1eea fix: X (Twitter) redirect link(#6874) 2024-08-29 22:35:38 +06:00
Kamran Ahmed
f044e3a682 Update dependencies 2024-08-29 12:28:49 +01:00
J. Degand
7edee458d5 docs(angular): add default content (#6844)
* docs(angular): add default content

* docs(angular): add space in default content
2024-08-29 09:50:45 +01:00
Khizar Ahmed
facabb6002 Added content to virustotal@rxzcAzHjzIc9lkWSw0fef.md (#6847)
* Added content to virustotal@rxzcAzHjzIc9lkWSw0fef.md

* Update src/data/roadmaps/cyber-security/content/virustotal@rxzcAzHjzIc9lkWSw0fef.md

we don't recommend resources over others.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-29 09:49:14 +01:00
Reyes Rondón
75e0f49eb7 add content kanban@O7H6dt3Z7EKohxfJzwbPM.md (#6859) 2024-08-29 09:47:51 +01:00
Reyes Rondón
e2c3356426 add content xp@7fL9lSu4BD1wRjnZy9tM9.md (#6860)
* add content xp@7fL9lSu4BD1wRjnZy9tM9.md

* Update src/data/roadmaps/software-architect/content/xp@7fL9lSu4BD1wRjnZy9tM9.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-29 09:47:38 +01:00
Mahbub Hasan
63aeff2f28 fix typo : DevOps erchitect -> DevOps architect (#6862) 2024-08-29 09:47:00 +01:00
Ayoub Eddaoudi
21d3728d01 fix: remove language specifier from url backend-project-ideas.md (#6869) 2024-08-29 09:45:01 +01:00
Mahbub Hasan
3f1b1c78a1 bug-fix: according to the following issue -> Incorrect DevOps navigation in MLOps roadmap #6807 (#6872) 2024-08-29 09:42:14 +01:00
Kamran Ahmed
7a8461c215 Update resource likns 2024-08-28 23:04:43 +01:00
dsh
b59757ee1b Add Backend Technologies Guide (#6856)
* add backend tech guide

* fix guide descrip
2024-08-28 12:14:59 +01:00
stmoody
d6a1e94eca remove link loc from 102-storage-volume.md (#6846)
the link to Elastic Block Store documentation has a hard coded language that causes it to open to the Portuguese version

removing this will default to the users preferred language
2024-08-28 09:42:17 +01:00
Russell Vinegar
ed00e553a6 minor typo (#6848) 2024-08-28 09:41:46 +01:00
Lucas Dondo
5dda56b5ca Enhanced formatting (#6849) 2024-08-28 09:40:56 +01:00
Brian Rodriguez
b2a798e229 [Docs] Android roadmap: Animations & Constraints (#6853)
* [Docs] Android roadmap: Animations & Constraints

* Update src/data/roadmaps/android/content/animations@Xn1VQ-xOT67ZfJJTM4r1p.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-28 09:37:51 +01:00
Kamran Ahmed
2f7d7cbbf9 Add workflow to clear cloudfront api cache 2024-08-28 01:05:33 +01:00
Kamran Ahmed
3d72c49c3f Add resource separation 2024-08-28 01:00:49 +01:00
Kamran Ahmed
3ce92af265 Update meta tags for advertise 2024-08-27 12:30:05 +01:00
Kamran Ahmed
a8aba9e6de Add advertisement page 2024-08-27 12:29:32 +01:00
dsh
877c79b120 fix black subtopic on python roadmap (#6824) 2024-08-27 09:36:32 +01:00
Atharva Warang
216783571c Update select statement (#6780) 2024-08-27 09:30:50 +01:00
Maximo Comperatore
e41c42c866 The 4 main types of subsurface scattering (#6789) 2024-08-27 09:27:56 +01:00
Lucas Dondo
a8c959493e Enhanced text (#6791) 2024-08-27 09:26:55 +01:00
Afzal Imdad
62b3a2eed5 Fix avatar scaling issue in wide card and profile activity page (#6503) (#6778)
- Adjusted CSS to correct the compression of the profile avatar in the wide card and profile activity page.
- Ensured the avatar scales properly, aligning with the expected behavior seen in the standard profile picture view.
- Tested on Chrome (Brave browser) to confirm the fix.
2024-08-27 14:20:29 +06:00
Jesús Enrique Alcalá Rojas
760046a4e3 add content deauth-attack@LfWJJaT3fv0p6fUeS8b84.md (#6797) 2024-08-27 09:15:50 +01:00
Jesús Enrique Alcalá Rojas
bd32e77c24 add content replay-attack@mIX8PsIGuwgPCGQZ6ok2H.md (#6798)
* add content replay-attack@mIX8PsIGuwgPCGQZ6ok2H.md

* Update src/data/roadmaps/cyber-security/content/replay-attack@mIX8PsIGuwgPCGQZ6ok2H.md

new line

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-27 09:15:30 +01:00
Jesús Enrique Alcalá Rojas
b260476813 add content rogue-access-point@Ee7LfbhwJbiWjJ3b_bbni.md (#6799)
* add content rogue-access-point@Ee7LfbhwJbiWjJ3b_bbni.md

* Update src/data/roadmaps/cyber-security/content/rogue-access-point@Ee7LfbhwJbiWjJ3b_bbni.md

new line

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-27 09:14:57 +01:00
Jesús Enrique Alcalá Rojas
24c1c69515 add content buffer-overflow@n8ZOZxNhlnw7DpzoXe_f_.md (#6800)
* add content buffer-overflow@n8ZOZxNhlnw7DpzoXe_f_.md

* Update src/data/roadmaps/cyber-security/content/buffer-overflow@n8ZOZxNhlnw7DpzoXe_f_.md

add a new line

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-27 09:14:19 +01:00
Khizar Ahmed
985ee8eed7 Add content to directory-traversal@L0ROYh2DNlkybNDO2ezJY.md (#6817)
Added content to Directory traversal.
2024-08-27 09:11:33 +01:00
Brian Rodriguez
33c9cb1ca3 Add docs for andorid roadmap: listview & drawer (#6818)
* [Docs] Android roadmap: Navigation drawer

* [Docs] Android roadmap: Listview

* Update src/data/roadmaps/android/content/drawer@amTxz7mS98lkhOrNMJXG_.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-27 09:08:42 +01:00
Murilo Silva
1f27530527 Update apply method of function in Javascript (#6820)
updated "apply" description before without content.
2024-08-27 09:06:18 +01:00
Maximo Comperatore
4d915bf979 Add resource to DL (#6787) 2024-08-26 21:25:38 +01:00
Raul Galvez
e1a6dc3b40 Moved misplaced articles from Typecasting to Exceptions (#6814)
Signed-off-by: Raul Galvez <raul.galvez@duke.edu>
2024-08-26 21:24:56 +01:00
Kamran Ahmed
be7ea71390 Rating on the discover page 2024-08-26 21:22:57 +01:00
Kamran Ahmed
9f14e83eb4 Show rating on the discover page 2024-08-26 21:19:59 +01:00
Kamran Ahmed
6d58cb9a01 Add back button on the projects navigation 2024-08-26 17:06:39 +01:00
Kamran Ahmed
1cbce6aeda Update ecommerce platform details 2024-08-26 15:43:00 +01:00
Krushna Kanta Rout
53b33fd7c5 fix: change "opesource" to "opensource" (#6802) 2024-08-26 14:58:54 +01:00
Krushna Kanta Rout
d5dd2bfa5a fix: replace article with official for mongoose website (#6803) 2024-08-26 14:58:44 +01:00
Khizar Ahmed
5d801f9f99 Add content to stakeholder (#6804)
Added content to stakeholder section in the cybersecurity roadmap with sources.
2024-08-26 14:58:31 +01:00
Kamran Ahmed
2de99daebb Consider the top languages when inferring from solution 2024-08-26 14:02:42 +01:00
Arik Chakma
2b6c326819 feat: add project languages (#6765)
* feat: add project languages

* fix: update select languages

* fix: select language

* Update UI for project languages

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-26 13:42:51 +01:00
Afzal Imdad
4b7022948a Fix missing space between "data" and "structure" in Heap Sort section (#6809) (#6810)
Corrected a typo in the Data Structure and Algorithm roadmap where "datastructure" was incorrectly used. The sentence now reads "It utilizes a data structure known as a ‘binary heap’." This change improves readability and accuracy.
2024-08-26 13:16:52 +01:00
André Oliveira
a26e391f41 Improvements to siem.md and update of smine.md (#6777)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

* update basics-of-ids-and-ips.md

- new links

* update endpoint-security.md

- new links

* update edr.md
- new text and links.

update ssl-and-tls-basics.md
- new links

update ssl--tls.md
- new links

update dropbox.md
- official link

* ipsec.md
- new content
- new link

kali-linux.md
- new content

linux.md
- fix typo

* Update src/data/roadmaps/cyber-security/content/kali-linux@w6wXkoLrv0_d-Ah0txUHd.md

* change the CEH position to CISSP

This is a suggestion, I believe that CEH appears as a highlight due to the larger space and this bothers many people.

CISSP is a top professional-level certification in the field of cybersecurity and the the most respected certificate in the IT security field. He really deserves his place in the spotlight.

* update xss.md, privilege-escalation.md, wlan.md and others

update xss.md
- new content

update privilege-escalatio.md
- new link

update core-concepts-of-zero-trust.md
- new link

update zero-day.md
- new content
Note: This second zero-day topic is a subset of the "Attack Types and Differences" topic, so the content is minimal compared to the zero-day%40zqRaMmqcLfx400kJ-h0LO.md

update wifi.md
- new video link

update wlan.md
- new video links ( professor messer )

* update vpn.md, web-based-attacks-and-owasp.md

update vpn.md
- new links

update web-based-attacks-and-owasp.md
- new links

* chore: update roadmap content json

* Improvements to siem.md and update of smine.md

Improvements to siem.md
- Paragraph referring to ELK stack (now Elastic Security) has been rewritten to mention open source projects.
- New video link from professor messer.
- Replace the article link with a video link, preference for Splunk due to higher [market share](https://6sense.com/tech/security-information-and-event-management-siem).
- Note: For better organization of the video links, I have separated the names with a prefix for the tool used in the project.

Update smine.md
- New content.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Co-authored-by: andreluis-oliveira <andreluis-oliveira@users.noreply.github.com>
2024-08-24 01:43:26 +01:00
Afzal Imdad
4576dfcbf3 fix: correct typo "Unary Opeartors" to "Unary Operators" in JavaScript roadmap (#6774) 2024-08-24 01:12:44 +01:00
Lucas Dondo
8a3c761698 Enhanced formatting (#6769) 2024-08-24 01:11:41 +01:00
github-actions[bot]
96f9a12343 chore: update roadmap content json (#6776)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-24 01:10:55 +01:00
Kamran Ahmed
4e669fefe2 Improve streak UI 2024-08-23 21:47:41 +01:00
Kamran Ahmed
142c2eafb6 Improve streak UI 2024-08-23 21:39:07 +01:00
Kamran Ahmed
62823df944 Change UI for streak 2024-08-23 16:20:27 +01:00
Kamran Ahmed
b1edb5ce4a Update streak ui 2024-08-23 13:36:54 +01:00
Kamran Ahmed
45068a5930 UI enhancement 2024-08-23 12:53:19 +01:00
Kamran Ahmed
828bac38d3 Update streak ui 2024-08-23 12:47:29 +01:00
github-actions[bot]
96ee0f8c3e chore: update roadmap content json (#6768)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-23 12:22:49 +01:00
Vedansh ✨
6563ca95e7 Content improvements in React roadmap (#6720) 2024-08-23 12:22:35 +01:00
J. Degand
74099d01e8 fix(angular): remove duplicate else-if markdown file and json entry (#6717) 2024-08-23 12:22:01 +01:00
Jawher Kl
8b21b16252 Add content to swc (#6747)
* Update swc@h26uS3muFCabe6ekElZcI.md

- Added a brief introduction and description of SWC (Speedy Web Compiler).
- Included relevant resources such as official website, documentation, tutorials, and articles.

This update helps new users quickly understand SWC and find additional learning materials.

* Update src/data/roadmaps/frontend/content/swc@h26uS3muFCabe6ekElZcI.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:18:54 +01:00
dsh
d87ac9bbba complete content on data analyst roadmap (#6748)
* complete content on data analyst roadmap

* Apply suggestions from code review

reverted changed node dimensions
2024-08-23 12:18:13 +01:00
Krushna Kanta Rout
2d14deb166 fix: replace article with official for jest website (#6750) 2024-08-23 12:17:57 +01:00
Krushna Kanta Rout
f993e22048 fix: remove / from link (#6751) 2024-08-23 12:17:48 +01:00
Krushna Kanta Rout
d03200c331 fix: add missing @ in article link (#6752) 2024-08-23 12:16:51 +01:00
Jesús Enrique Alcalá Rojas
367528aa24 Add content for spam vs spim (#6753)
* add content spam-vs-spim@cbEMUyg_btIPjdx-XqIM5.md

* Update src/data/roadmaps/cyber-security/content/spam-vs-spim@cbEMUyg_btIPjdx-XqIM5.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:16:39 +01:00
Jesús Enrique Alcalá Rojas
e633bdd3ac Add resources to whaling attak (#6754) 2024-08-23 12:15:56 +01:00
Chuanyong Wu
145c593f42 Add a book (#6756)
* ADD PythonDataScienceHandbook For data-analyst

Python Data Science Handbook is a well-known book about Python data processing and analysis. Its original author has made the contents of this book and the corresponding notebook source code open source on GitHub. It is worth a look, especially for those who want to understand or urgently need Python's functions in data processing and analysis.

* Update src/data/roadmaps/data-analyst/content/learn-a-programming-lang@i2uEcaO4bJhcZ5ayRs2CQ.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:15:31 +01:00
André Oliveira
cacf3fc67d Add content to cyber security roadmap (#6757)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

* update basics-of-ids-and-ips.md

- new links

* update endpoint-security.md

- new links

* update edr.md
- new text and links.

update ssl-and-tls-basics.md
- new links

update ssl--tls.md
- new links

update dropbox.md
- official link

* ipsec.md
- new content
- new link

kali-linux.md
- new content

linux.md
- fix typo

* Update src/data/roadmaps/cyber-security/content/kali-linux@w6wXkoLrv0_d-Ah0txUHd.md

* change the CEH position to CISSP

This is a suggestion, I believe that CEH appears as a highlight due to the larger space and this bothers many people.

CISSP is a top professional-level certification in the field of cybersecurity and the the most respected certificate in the IT security field. He really deserves his place in the spotlight.

* update xss.md, privilege-escalation.md, wlan.md and others

update xss.md
- new content

update privilege-escalatio.md
- new link

update core-concepts-of-zero-trust.md
- new link

update zero-day.md
- new content
Note: This second zero-day topic is a subset of the "Attack Types and Differences" topic, so the content is minimal compared to the zero-day%40zqRaMmqcLfx400kJ-h0LO.md

update wifi.md
- new video link

update wlan.md
- new video links ( professor messer )

* update vpn.md, web-based-attacks-and-owasp.md

update vpn.md
- new links

update web-based-attacks-and-owasp.md
- new links

* chore: update roadmap content json

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Co-authored-by: andreluis-oliveira <andreluis-oliveira@users.noreply.github.com>
2024-08-23 12:14:09 +01:00
Sarkis Kovlekjian
b4868b71b3 SQL roadmap drop table keywoard highlight (#6759)
highlight - by transforming to bold - words that are crucial to be stressed on
2024-08-23 12:13:46 +01:00
Sarkis Kovlekjian
a22d54dbb4 Update data-manipulation-language by adding articles (#6760)
Add article links
2024-08-23 12:13:27 +01:00
Brian Rodriguez
694d7b1ecc [Add] Docs Android roadmap: tabs and edittext (#6764)
* [Add] Docs Android roadmap: tabs and edittext

* Update src/data/roadmaps/android/content/edittext@boMz0HZlMAsLdCZlpUo-H.md

* Update src/data/roadmaps/android/content/tabs@pEBpXv3Jf1AzBNHlvVrG8.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:11:06 +01:00
iliAsghar
a81fd615d9 Update JS string content - added backticks ( `` ) (#6767)
* Update string@1RcwBHU3jzx0YxxUGZic4.md

added backtick ( `` )

* Update src/data/roadmaps/javascript/content/string@1RcwBHU3jzx0YxxUGZic4.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:06:09 +01:00
Arik Chakma
8e407c95a1 feat: implement user streak (#6594)
* feat: implement user streak

* fix: refactor codebase

* feat: streak heatmap

* Add streaks

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-23 12:05:10 +01:00
Maximo Comperatore
447bf4eb0f How do Video Game Graphics Work? (#6679) 2024-08-22 09:51:15 +01:00
Maximo Comperatore
e7c9135e99 article on transparency (#6681) 2024-08-22 09:48:48 +01:00
Juliano S.
e006871ce6 Update github-user-activity.md (#6677)
Add CLI skill to "github-user-activity" project
2024-08-22 09:47:23 +01:00
Sarkis Kovlekjian
164baba193 Update global@oC4o6GLEES_nUgCJu9Q6I.md (#6683)
* Update global@oC4o6GLEES_nUgCJu9Q6I.md

Provide additional details

* Update src/data/roadmaps/javascript/content/global@oC4o6GLEES_nUgCJu9Q6I.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-22 09:46:51 +01:00
jdsegurac
7f776808df Update 103-functions.md (#6685)
Fix Typo
2024-08-22 09:44:41 +01:00
Brian Rodriguez
82e4e18b4d [Add] Docs Android: BottonSheed & ImageView (#6686)
* [Add] Docs Android: BottonSheed & ImageView

* [Add] Docs Android: Update doc ImageView

* Update src/data/roadmaps/android/content/imageview@A4rtNULX_MoV93IH1Lgqw.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-22 09:44:07 +01:00
Patrick Zocli
285dd28ae7 feat: Add new video resource on jvm architecture (#6687) 2024-08-22 09:42:55 +01:00
Lucas Dondo
0af30bc421 Enhanced formatting (#6738) 2024-08-22 09:36:51 +01:00
Lucas Dondo
2890c722fd Made text shorter (#6739) 2024-08-22 09:36:27 +01:00
Reyes Rondón
4bbab1fbee Update Hooks Best Practices React Content (#6742)
* Update Hooks Best Practices React

* Update src/data/roadmaps/react/content/hooks-best-practices@mkyU0ug8MXxV4biHuOity.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-22 09:34:34 +01:00
Jesús Enrique Alcalá Rojas
b2081fd427 fix: repare article tab typo-squatting@0LeDwj_tMaXjQBBOUJ5CL.md (#6744) 2024-08-22 09:32:31 +01:00
Maximo Comperatore
85135c5da9 Updated color@WK6fLWJq9Vh2ySVrSqd-U.md (#6670)
* pixar in a box color

* Update src/data/roadmaps/game-developer/content/color@WK6fLWJq9Vh2ySVrSqd-U.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-22 09:31:37 +01:00
Kamran Ahmed
ccc50b9c36 Update linked content 2024-08-21 22:59:10 +01:00
Lucas Dondo
ba2ff16092 Make search algorithms readable (#6741)
* Enhanced readability

By bolding some text and removing unnecessary or incorrect information.

* Update src/data/roadmaps/datastructures-and-algorithms/content/106-search-algorithms/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-21 22:56:46 +01:00
Lang
109d9c578a Update resource likn (#6705)
Update URL of Angular official website
2024-08-21 18:11:46 +01:00
github-actions[bot]
77b9912ada chore: update roadmap content json (#6711)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-21 18:11:14 +01:00
Liran Tal
d662292906 Add resource for node.js (#6731)
Update `child_process` module entry with insight about security implications of using this in Node.js apps
2024-08-21 18:08:03 +01:00
Cerebro Cerberus
45a9459f21 fix: typo 'especcially' to 'especially' (#6732) 2024-08-21 18:07:30 +01:00
Kamran Ahmed
f06ccc5c37 Update announcement banner 2024-08-21 17:02:13 +01:00
fellalli
37f2b75e07 Fix section in res links (#6726) 2024-08-21 15:35:09 +01:00
Maximo Comperatore
ec94ff055f behaviour trees (#6682) 2024-08-21 15:32:44 +01:00
Gaurav Singh
c1ae24fa20 Update dns-poisoning@urtsyYWViEzbqYLoNfQAh.md (#6706)
* Update dns-poisoning@urtsyYWViEzbqYLoNfQAh.md

* Update dns-poisoning@urtsyYWViEzbqYLoNfQAh.md

* Update src/data/roadmaps/cyber-security/content/dns-poisoning@urtsyYWViEzbqYLoNfQAh.md

* Update src/data/roadmaps/cyber-security/content/dns-poisoning@urtsyYWViEzbqYLoNfQAh.md

* Update src/data/roadmaps/cyber-security/content/dns-poisoning@urtsyYWViEzbqYLoNfQAh.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-21 15:26:46 +01:00
Arik Chakma
2007167fa9 feat: add roadmap dropdown menu (#6692)
* feat: add roadmap dropdown menu

* fix: typo official roadmaps

* fix: add role attribute

* Update projects dropdown

* Update roadmaps dropdown

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-21 15:17:24 +01:00
J. Degand
c67a7d195d docs(angular): add feature modules content (#6715) 2024-08-21 15:01:57 +01:00
SHINIGAMI0012
a6cf26b1b0 Update what-is-a-repository@PtU5Qwfzn3N1i3oRlCGoR.md (#6709)
i replaced "http" with "hhttp...".... i was learning until site didnt work and i notice the hhttp
2024-08-21 14:53:02 +01:00
Frands Otting
57af6e493a Add contentn to js roadmap (#6718)
* Update call@gsyY3Oa3Jf0W5K_lyqBYO.md

Add short description and code example of the call() method. Add article.

* Update src/data/roadmaps/javascript/content/call@gsyY3Oa3Jf0W5K_lyqBYO.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-21 14:37:25 +01:00
Stavros Siamantas
e10caeca44 docs(Git & GitHub): added resource pre-text to git-filter branch (#6722) 2024-08-21 14:33:32 +01:00
Jesús Enrique Alcalá Rojas
c9ed9271fe add content social-engineering@O1VceThdxRlgQ6DcGyY7Y.md (#6660) 2024-08-21 09:46:34 +01:00
Jesús Enrique Alcalá Rojas
0dddd941d6 add content typo-squatting@0LeDwj_tMaXjQBBOUJ5CL.md (#6659) 2024-08-21 09:46:05 +01:00
Maximo Comperatore
83c95fbc18 rendering equation (#6656) 2024-08-21 09:44:15 +01:00
Gaurav Singh
c2a36e6c38 Update shoulder-surfing@FD0bkmxNpPXiUB_NevEUf.md (#6708)
* Update shoulder-surfing@FD0bkmxNpPXiUB_NevEUf.md

* Update shoulder-surfing@FD0bkmxNpPXiUB_NevEUf.md

* Update src/data/roadmaps/cyber-security/content/shoulder-surfing@FD0bkmxNpPXiUB_NevEUf.md

Fix spelling and grammar issues.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-21 09:40:53 +01:00
Reyes Rondón
124ce3eee7 gsock content (#6710) 2024-08-21 09:38:22 +01:00
Jesús Enrique Alcalá Rojas
ab69587aa5 add content brute-force-vs-password-spray@Q0i-plPQkb_NIvOQBVaDd.md (#6712) 2024-08-21 09:37:44 +01:00
J. Degand
ad3a5da811 docs(angular): add dependencies content (#6714) 2024-08-21 09:37:02 +01:00
J. Degand
1173e7c932 docs(angular): add else content (#6716) 2024-08-21 09:36:21 +01:00
SHINIGAMI0012
cab7373201 Update what-is-a-repository@PtU5Qwfzn3N1i3oRlCGoR.md (#6719)
dsh
2024-08-21 09:35:30 +01:00
Kamran Ahmed
0de4345cb7 Add courses json file in the frontend roadmap 2024-08-20 19:13:35 +01:00
danielAsaboro
54c3f36e64 Add streams article (#6700)
Added a beginner resource friendly article from FreecodeCamp for those who might struggle with Streams
2024-08-20 18:17:38 +01:00
Kamran Ahmed
402ba0e9f3 Fix formatting 2024-08-20 18:12:00 +01:00
Kamran Ahmed
93edff078e Add new project idea for e-commerce 2024-08-20 18:10:28 +01:00
Kamran Ahmed
015e54d158 Update caching server 2024-08-20 17:28:53 +01:00
Kamran Ahmed
7ad2732786 Add project for caching server 2024-08-20 17:27:11 +01:00
Kamran Ahmed
158f41f220 Update UI for frontend courses page 2024-08-20 15:55:49 +01:00
dsh
7cb4287925 Add the 50 devops interview questions (#6701)
* add the 50 devops interview questions

* incorporate new devops questions set into roadmap faqs
2024-08-20 14:54:44 +01:00
Lucas Dondo
a9b6e01043 Enhanced readability of text (#6702) 2024-08-20 14:54:16 +01:00
Lucas Dondo
3cba71b3ac Enhanced readability of tex (#6703) 2024-08-20 14:54:02 +01:00
Kamran Ahmed
6b9754e885 Update project contribution details 2024-08-20 12:52:55 +01:00
Kamran Ahmed
7e884c6593 Add frontend courses page 2024-08-20 12:34:33 +01:00
Kamran Ahmed
6c61244a14 Update content 2024-08-20 12:34:33 +01:00
github-actions[bot]
80c564340a chore: update roadmap content json (#6694)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-20 12:29:10 +01:00
Shaun Purslow
8a52d58341 docs(code-review): fix type "Veryfing" to "Verifying" (#6695) 2024-08-20 12:28:55 +01:00
danielAsaboro
447fce674a A (#6697) 2024-08-20 12:28:34 +01:00
Kamran Ahmed
74051ee843 Fix typo in blockchain roadmap 2024-08-20 12:27:53 +01:00
dsh
4a758b1b55 Add featured image to the frontend questions (#6698) 2024-08-20 12:27:19 +01:00
dsh
2c68cb83c2 Add devops career path article (#6699) 2024-08-20 12:27:05 +01:00
Vedansh ✨
2e2d11328d Further Improvements in Node.js Roadmap. (#6666) 2024-08-20 09:25:26 +01:00
Reyes Rondón
eefe365068 React component/libraries content added (#6693)
* React component/libraries content added

* Update src/data/roadmaps/react/content/component--libraries@thfnymb_UIiKxakKfiua5.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-19 22:15:52 +01:00
Kamran Ahmed
dde429caa0 Fix duplicate sentence 2024-08-19 14:44:10 +01:00
Kamran Ahmed
111dc0a6d0 Hide downvote counts 2024-08-19 12:54:56 +01:00
Kamran Ahmed
c6a4bff63e Refactor github stats 2024-08-19 12:36:28 +01:00
Stavros Siamantas
bcc456d3d0 Update GitHub repository rank display automatically (#6688) 2024-08-19 12:10:56 +01:00
Kamran Ahmed
4d1b9ab093 Update announcement popup 2024-08-19 12:06:10 +01:00
dsh
edfcc84ece Add two beginner projects (#6689)
* add two beginner projects

* Update src/data/projects/basic-dockerfile.md

Correct 'build' to 'write'

* Update src/data/projects/log-archive-tool.md
2024-08-19 12:05:35 +01:00
github-actions[bot]
3c3a92835d chore: update roadmap content json (#6684)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-19 09:55:35 +01:00
Kamran Ahmed
7269227dc2 Add video modal on homepage 2024-08-18 21:49:01 +01:00
Arik Chakma
bfd615f755 fix: discord spammy url (#6672) 2024-08-18 16:40:57 +01:00
Kamran Ahmed
65a4f903f6 Update discord link 2024-08-18 16:20:32 +01:00
Vedansh ✨
ecda4b6eb3 Feature: Improve Node.js Roadmap. (#6664)
* In this Commit:

---

- Add Semantic versioning in `npm`
- Add Node.js Test Runner in `node:test`
- What is Testing in `Software Testing`
- What is Vitest in `Testing/Vitest`
- Few changes in `Working with Databases`.

* Add Content in Playwright.

* - Fixed Some Spelling Mistakes.
- Content Addition
- Added Few More Links.

***
No deletions or removal.

* Add `--watch` Content in Roadmap.
2024-08-18 11:59:54 +01:00
Egemen Aktas
2ff54205ef Add resources to context manager (#6591)
* Update context-manager@KAXF2kUAOvtBZhY8G9rkI.md

A simple context manager description.

* Update src/data/roadmaps/python/content/context-manager@KAXF2kUAOvtBZhY8G9rkI.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:52:25 +01:00
Budenkinder
a8801820cf Add resources to AWS roadmap (#6592)
* Update 101-iaas-paas-saas.md adding aws docu link

* Update src/data/roadmaps/aws/content/100-introduction/101-iaas-paas-saas.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:51:58 +01:00
Budenkinder
e89b00f4f0 Update resources in AWS roadmap (#6593)
* Update 102-public-private-hybrid.md adding useful links

Adding a direct aws doc and red hat link

* Update src/data/roadmaps/aws/content/100-introduction/102-public-private-hybrid.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:51:22 +01:00
Jesús Enrique Alcalá Rojas
82da716657 Fix syntax issue (#6597) 2024-08-18 01:50:04 +01:00
J. Degand
7f7851e8e9 docs(java): remove nb! in threads (#6599) 2024-08-18 01:49:47 +01:00
Budenkinder
7b9b783472 Add resources to AWS infra (#6600)
* Update 100-global-infra.md adding useful links

* Update src/data/roadmaps/aws/content/100-introduction/103-aws/100-global-infra.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:47:48 +01:00
Frands Otting
dfc38db855 Fix string markers in markdown (#6601)
Surround quotation marks with backticks to make the marks render correctly on the website.
2024-08-18 01:45:52 +01:00
Dr Dreo
0b2119be50 Add Angular security content (#6634)
* add security content

* Update src/data/roadmaps/angular/content/cross-site-scripting@umUX4Hxk7srHlFR_Un-u7.md

* Update src/data/roadmaps/angular/content/security@mm6c7GLQEwoQdAHdAYzGh.md

* Update src/data/roadmaps/angular/content/trusting-safe-values@XoYSuv1salCCHoI1cJkxv.md

---------

Co-authored-by: DrDreo <code@anderas-hahn.at>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:45:10 +01:00
falc
3d71390126 Add resource for SQL Injection (#6637)
* Update sql-injection@P-Am25WJV8cFd_KsX7cdj.md

* Update src/data/roadmaps/cyber-security/content/sql-injection@P-Am25WJV8cFd_KsX7cdj.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:27:34 +01:00
Maximo Comperatore
8d801652b9 Add godot resource (#6640) 2024-08-18 01:26:16 +01:00
Sanchay Joshi
4c2109d470 Add golang struct resource (#6652) 2024-08-18 01:26:04 +01:00
Gerzon Rangel
6a8019f890 Add documentation to vuejs roadmap (#6653)
* feat: add v-if documentation for Vue.js

* Update src/data/roadmaps/vue/content/v-if@xHj3W9Ig3MVuVlGyXchaP.md

* feat: add v-else documentation for Vue.js

* Update src/data/roadmaps/vue/content/v-else@0CtAZQcFJexMiJfZ-mofv.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:25:42 +01:00
github-actions[bot]
e2172abc72 chore: update roadmap content json (#6654)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-18 01:24:14 +01:00
Maximo Comperatore
032361936b Add grep resource (#6627) 2024-08-18 01:23:45 +01:00
Maximo Comperatore
c21dc44975 Add timescale db resource (#6628)
* add timescale db video

* Update src/data/roadmaps/backend/content/timescale@WiAK70I0z-_bzbWNwiHUd.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:23:28 +01:00
Maximo Comperatore
0c78ab8369 Add AWK resource (#6629) 2024-08-18 01:22:49 +01:00
Maximo Comperatore
7bf3672ef6 Add dependabot resource (#6630) 2024-08-18 01:22:33 +01:00
Maximo Comperatore
58e7697451 Add grafana resource (#6631) 2024-08-18 01:22:01 +01:00
Maximo Comperatore
56e58d431a Add content for DynamoDB (#6633) 2024-08-18 01:20:43 +01:00
Maximo Comperatore
f8e9642e6e Add AWS neptune content (#6635) 2024-08-18 01:20:26 +01:00
Maximo Comperatore
7a6933699a Add resource for RabbitMQ (#6636) 2024-08-18 01:19:03 +01:00
Maximo Comperatore
9289099980 Add unreal engine resources (#6638) 2024-08-18 01:18:43 +01:00
Maximo Comperatore
d2dad38963 Add resource for unity (#6639) 2024-08-18 01:18:20 +01:00
Maximo Comperatore
29a4dc25b0 Add assembly content (#6641)
* asm

* Update src/data/roadmaps/game-developer/content/assembly@AaRZiItRcn8fYb5R62vfT.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:17:56 +01:00
Maximo Comperatore
34cdd8c79a Add resource for reinforcements learning (#6644) 2024-08-18 01:15:59 +01:00
Maximo Comperatore
658ed6738b Add opengl resources (#6645) 2024-08-18 01:09:48 +01:00
Maximo Comperatore
dd3f89b58a Add resources to metal (#6646) 2024-08-18 01:08:53 +01:00
Maximo Comperatore
7e57bfc854 Add content for spotlights (#6648) 2024-08-18 01:08:10 +01:00
Maximo Comperatore
25c1228bf2 Add content for point lights (#6649) 2024-08-18 01:07:57 +01:00
Maximo Comperatore
f6c758c3ef Add content to frustum culling
* frustum culling

* Update src/data/roadmaps/game-developer/content/frustum@UcLGWYu41Ok2NYdLNIY5C.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-18 01:07:43 +01:00
Kamran Ahmed
82fbb1235e Update feature announcement 2024-08-18 00:37:33 +01:00
Stavros Siamantas
fbd24ea5e2 Add content to Git/GitHub Roadmap (all topics covered) (#6626) 2024-08-17 13:02:48 +01:00
Arik Chakma
1981568501 feat: implement project status (#6513)
* wip

* wip

* wip

* fix: button width

* Add stepper component

* Refactor project stepper

* Refactor stepper

* Refactor stepper

* Update clicker

* Refactor project stepper

* Add projects tip popup

* Add start project modal

* Submission requirement modalg

* Requirement verification functionality

* Update project submission

* Voting and active timeline

* Finalize project solution stepper

* Update empty project page

* Add user avatars

* Solutions listing page

* Update tab design

* Fix styles for loading and pagination

* Redesign project page header

* Make project page responsive

* Make project pages responsive

* Update the leaving roadmap page

* Start project modal updates

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 12:59:35 +01:00
abayram
8a5c0eeb5f Add content to react native (#6607)
* docs(update): add TypeScript next to JavaScript in the introduction definition

* docs(add): add content about integration with existing apps.

* Update src/data/roadmaps/react-native/content/100-introduction/100-what-is-react-native.md

* Update src/data/roadmaps/react-native/content/100-introduction/index.md

* Update src/data/roadmaps/react-native/content/100-introduction/101-why-react-native.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 12:55:53 +01:00
Abdelrahman Omar
38afa2631f Add linked list resource (#6608)
Add "Too Many Linked Lists" book to Rust LinkedList resources
2024-08-17 11:58:54 +01:00
falc
1168ac7fe7 Add content for evil twin (#6613)
* Update evil-twin@O1fY2n40yjZtJUEeoItKr.md

* Update src/data/roadmaps/cyber-security/content/evil-twin@O1fY2n40yjZtJUEeoItKr.md

* Update src/data/roadmaps/cyber-security/content/evil-twin@O1fY2n40yjZtJUEeoItKr.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 11:58:18 +01:00
Maximo Comperatore
6197368133 Add content to timescale db (#6619) 2024-08-17 11:55:56 +01:00
Maximo Comperatore
2c2e9b6e8c Add graphql resource (#6620)
* graphql in 100 seconds

* Update src/data/roadmaps/backend/content/graphql@zp3bq38tMnutT2N0tktOW.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 11:55:35 +01:00
Maximo Comperatore
2d98e1beae Add x frame resource (#6621) 2024-08-17 11:55:02 +01:00
SheySafiAllah
998e6510a6 Add javascript article (#6624) 2024-08-17 11:54:38 +01:00
Vedansh ✨
4951984ff1 Update git log content (#6625)
* Improve `git-log-options`

* Update src/data/roadmaps/git-github/content/git-log-options@qFEonbCMLri8iA0yONwuf.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 11:54:05 +01:00
André Oliveira
7643cca066 [suggestion] swap CEH and CISSP positions (#6612)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

* update basics-of-ids-and-ips.md

- new links

* update endpoint-security.md

- new links

* update edr.md
- new text and links.

update ssl-and-tls-basics.md
- new links

update ssl--tls.md
- new links

update dropbox.md
- official link

* ipsec.md
- new content
- new link

kali-linux.md
- new content

linux.md
- fix typo

* Update src/data/roadmaps/cyber-security/content/kali-linux@w6wXkoLrv0_d-Ah0txUHd.md

* change the CEH position to CISSP

This is a suggestion, I believe that CEH appears as a highlight due to the larger space and this bothers many people.

CISSP is a top professional-level certification in the field of cybersecurity and the the most respected certificate in the IT security field. He really deserves his place in the spotlight.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-17 01:42:26 +01:00
Kamran Ahmed
ec06adb01a Update discord URL 2024-08-17 01:39:53 +01:00
github-actions[bot]
b49c672480 chore: update roadmap content json (#6596)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-08-17 01:35:10 +01:00
Obiechina Emmanuel
217396d557 Add git/github content (#6609)
* Added content to custom-validators topic

* Added contents to 10 git & github topics

* Apply suggestions from code review

styling clean up

* Added contents to 10 git and github topics

* Update src/data/roadmaps/git-github/content/committing-changes@2_z3R7seCvQVj-Na4H1SV.md

* Update src/data/roadmaps/git-github/content/creating-account@i7fIIHcBEk473te8bniJ5.md

* Update src/data/roadmaps/git-github/content/creating-branch@OegitQ5Ngjvd3ZfMpfrkM.md

* Update src/data/roadmaps/git-github/content/creating-repositories@c_FO6xMixrrMo6iisfsvl.md

* Update src/data/roadmaps/git-github/content/deleting-branch@1uDenoQ6zu7CT69FR2iQB.md

* Update src/data/roadmaps/git-github/content/fast-forward-vs-non-ff@agtPWS8j6i6wQPk10cy8E.md

* Update src/data/roadmaps/git-github/content/forking-vs-cloning@l1Wf7Pe_ah8ycCgslfSK4.md

* Update src/data/roadmaps/git-github/content/git-rebase@HMEfUFNu_Wp_Pac7VWHr-.md

* Added contents to 7 git and github topics

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-16 19:11:58 +01:00
dsh
a3682f3d37 Add content to git hook and readme sections (#6603) 2024-08-16 16:13:03 +01:00
Stavros Siamantas
f30772d330 Add content to git/github roadmap (#6605) 2024-08-16 16:12:35 +01:00
Stavros Siamantas
0d5355018b Add content to git/github roadmap (up to git-worktree) (#6587)
* Add content to git/github roadmap (up to git-worktree)

* Apply suggestions from code review

add links to topics with no links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-16 08:14:10 +01:00
dsh
9d8c7f7253 How to become a Frontend Developer in 7 steps article (#6583)
* How to become a Frontend Developer in 7 steps article

* fix link issues
2024-08-16 02:12:31 +01:00
dsh
d2a1564741 Add what is a devops engineer guide (#6585)
* add what is a devops engineer guide and add link in devops roadmap

* fix some empty lines
2024-08-16 02:12:10 +01:00
dsh
45727a1bb2 Updated topics starting with git* (#6586) 2024-08-16 02:11:45 +01:00
Kamran Ahmed
74693151a6 Add citation files 2024-08-16 02:11:01 +01:00
dsh
0fce5b89ab Add content to git/github roadmap (#6544) 2024-08-15 11:05:08 +01:00
Kamran Ahmed
8d0a1db711 Update content 2024-08-15 02:34:01 +01:00
Kamran Ahmed
c2f91b5dba Create datadog@BHny2Emf96suhAlltiEro.md 2024-08-15 02:26:33 +01:00
Lachlan Vass
86ea98ac34 Fix typo (#6529)
Ptterns should be Patterns
2024-08-15 02:23:53 +01:00
Kamran Ahmed
6bbe6661c7 Fix typo in filename 2024-08-15 02:23:42 +01:00
Brian Rodriguez
c1c5ff7934 Add content to android roadmap (#6553)
* [Add] Android Roadmap: Toast and TextView

* [Change] Remove examples

* Update src/data/roadmaps/android/content/textview@znvZp24L-PcQwkSObtixs.md

* Update src/data/roadmaps/android/content/toast@BVgO9n7tGlVdiS72-hFSd.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-15 02:19:56 +01:00
Stavros Siamantas
2d5e49e732 fix: add missing topic files (#6564) 2024-08-15 02:15:51 +01:00
devrelify
71fe85b84d Add content to building a community (#6579)
Adding articles about dev community
2024-08-15 02:14:32 +01:00
Obiechina Emmanuel
c2b6988289 Add content to git/github roadmap (#6566)
* Added content to custom-validators topic

* Added contents to 10 git & github topics

* Apply suggestions from code review

styling clean up

* Added contents to 10 git and github topics

* Update src/data/roadmaps/git-github/content/committing-changes@2_z3R7seCvQVj-Na4H1SV.md

* Update src/data/roadmaps/git-github/content/creating-account@i7fIIHcBEk473te8bniJ5.md

* Update src/data/roadmaps/git-github/content/creating-branch@OegitQ5Ngjvd3ZfMpfrkM.md

* Update src/data/roadmaps/git-github/content/creating-repositories@c_FO6xMixrrMo6iisfsvl.md

* Update src/data/roadmaps/git-github/content/deleting-branch@1uDenoQ6zu7CT69FR2iQB.md

* Update src/data/roadmaps/git-github/content/fast-forward-vs-non-ff@agtPWS8j6i6wQPk10cy8E.md

* Update src/data/roadmaps/git-github/content/forking-vs-cloning@l1Wf7Pe_ah8ycCgslfSK4.md

* Update src/data/roadmaps/git-github/content/git-rebase@HMEfUFNu_Wp_Pac7VWHr-.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-15 02:13:08 +01:00
Jesús Enrique Alcalá Rojas
8944cc034a Add content to impersonation attack (#6572) 2024-08-15 02:06:15 +01:00
Jesús Enrique Alcalá Rojas
446032b0cb Add content to watering hole attack (#6573)
* add content watering-hole-attack@dcvuKHq0nHgHLcLwtl4IJ.md

* Update src/data/roadmaps/cyber-security/content/watering-hole-attack@dcvuKHq0nHgHLcLwtl4IJ.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-15 02:06:00 +01:00
Jesús Enrique Alcalá Rojas
a2c8c054ee Update drive-by-attack@cO70zHvHgBAH29khF-hBW.md (#6574) 2024-08-15 02:05:26 +01:00
Ashish Pawar
0f1f198b66 Update Angular Module Architecture Documentation (#6575)
* Information about creating modules.

* Made changes.

* Update src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md

fixed styling

* Commited the Module Architecture

* Update src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md

* Update src/data/roadmaps/angular/content/module-architecture@BCq5sgWQLiw0f7u7ZSAd2.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-15 02:05:17 +01:00
github-actions[bot]
e806072336 chore: update roadmap content json (#6571)
Co-authored-by: arikchakma <arikchakma@users.noreply.github.com>
2024-08-15 01:55:05 +01:00
Arik Chakma
442969c9d9 fix: pnpm cache (#6570) 2024-08-14 20:26:53 +06:00
Arik Chakma
6a4ee60fd2 fix: refresh content workflow (#6569)
* fix: refresh content workflow

* fix: update version
2024-08-14 20:21:30 +06:00
Kamran Ahmed
4171fbfed1 Fix UI issue in node.js roadmap 2024-08-14 14:10:08 +01:00
Reyes Rondón
563a5a6f74 Add content to git-github roadmap (#6554) 2024-08-14 11:56:17 +01:00
Brian Rodriguez
5df7fa17b3 Add content to Android roadmap (#6555)
* [Add] Android Roadmap: Fragment content

* [Add] Android Roadmap: Dialog content

* [Add] Android Roadmap: Button content

* [Change] Modify the grammar

* Update src/data/roadmaps/android/content/fragments@2iDJrxjXOt7o2fPp2HfRl.md

* Update src/data/roadmaps/android/content/dialogs@Mtx0bY0drmaTw8sCM5YTl.md

* Update src/data/roadmaps/android/content/buttons@WhfzFOUpm0DFEj7Oeq21R.md

* Update src/data/roadmaps/android/content/buttons@WhfzFOUpm0DFEj7Oeq21R.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-14 10:58:39 +01:00
itHubNepal
a547a302ca Add link to dart streams (#6556)
* Update 107-streams.md

An article with simple explanation of streams  in Flutter and Dart added.

* Update src/data/roadmaps/flutter/content/110-advanced-dart/107-streams.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-14 10:46:16 +01:00
J. Degand
bb10b0cbfa docs(angular): add transitions & triggers content (#6562) 2024-08-14 10:45:08 +01:00
J. Degand
8bc222b505 docs(angular): add complex sequences content (#6560) 2024-08-14 10:44:56 +01:00
J. Degand
5952f86734 docs(angular): add reusable animations content (#6559) 2024-08-14 10:44:44 +01:00
J. Degand
b5e9a6ab93 docs(angular): add route transitions content (#6558) 2024-08-14 10:44:32 +01:00
J. Degand
2074965f17 docs(angular): fix incorrect links because of missing spaces (#6557) 2024-08-14 10:44:18 +01:00
Ashish Pawar
88fe9dab7c Guide on Creating and Managing Modules in Angular (#6563)
* Information about creating modules.

* Made changes.

* Update src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md

fixed styling

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-14 10:43:45 +01:00
Kamran Ahmed
eacae8dc02 Fix rating form does not show login popup 2024-08-13 20:59:58 +01:00
Obiechina Emmanuel
8350ed53c7 Chibuike 19/add git and github contents (#6551)
* Added content to custom-validators topic

* Added contents to 10 git & github topics

* Apply suggestions from code review

styling clean up

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-13 19:01:25 +01:00
Arik Chakma
33903771d9 feat: copy roadmap content (#6405)
* wip

* wip

* feat: content copy modal

* Update roadmap content JSON script

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-13 16:04:32 +01:00
Kamran Ahmed
60e976e3a5 Roadmap filtering in the model 2024-08-13 16:04:20 +01:00
Jesús Enrique Alcalá Rojas
1282b392eb Add content to cyber security roadmap (#6543)
* add content reconnaissance@UU_inxa8Y2lLP2BRhdLDT.md

* Update src/data/roadmaps/cyber-security/content/reconnaissance@UU_inxa8Y2lLP2BRhdLDT.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-13 15:51:38 +01:00
Nicolas Humblot
e9ae609cc7 fix: Typo in software architecture definition (#6545) 2024-08-13 15:50:17 +01:00
UltimateGeek
70a65c1ce4 Use 'macOS' consistently across content (#6521) 2024-08-13 13:24:56 +01:00
dsh
7023168b77 Add content to sql roadmap (#6535)
* updated half of the content

* remove tsql links
2024-08-13 13:23:24 +01:00
Stavros Siamantas
10a1866ca5 Add content to git beginner roadmap (#6538)
* docs(git_github_beginners): add content

* Apply suggestions from code review

Uniformed the pre-link text

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-13 12:53:09 +01:00
Yohannes Haile
5e37a8d9a1 Add content to pick a language (#6532)
* Update pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md

This commit tries to propose a short article covering the topic of picking a language to learn for iOS development in 2024.

* Update pick-a-language on iOS roadmap documentation

This one edits the description of Swift a lot.

* Use short links for resources

Conforms the use of short links and the type of content specified

* Shorten Udemy course link

Shortens Udemy link

* Update src/data/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md

* Update src/data/roadmaps/ios/content/pick-a-language@MrdIb9F-wSEbUz7KRnH3t.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-13 11:07:34 +01:00
Imad eddine Fillali
8765d4f5f7 Update installation content (#6536)
* Update local-installation@oYeux7PbveYaVwXRzAg5x.md

* Update src/data/roadmaps/nodejs/content/local-installation@oYeux7PbveYaVwXRzAg5x.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-13 10:55:09 +01:00
J. Degand
3249b58ef8 docs(angular): add attribute-directives content (#6523) 2024-08-13 09:07:44 +01:00
J. Degand
7d90323450 docs(angular): add structural directive content (#6524) 2024-08-13 09:07:31 +01:00
J. Degand
b6839e29af docs(angular): add setting up http client content (#6525) 2024-08-13 09:07:21 +01:00
J. Degand
fad50453bc docs(angular): add making requests content (#6526) 2024-08-13 09:07:12 +01:00
J. Degand
ebd4ea62f7 docs(angular): add interceptors content (#6527) 2024-08-13 09:07:00 +01:00
J. Degand
a67dd4993f docs(angular): add control value accessor content (#6528) 2024-08-13 09:06:50 +01:00
J. Degand
b721afe89d docs(angular): add zoneless content (#6530) 2024-08-13 09:06:13 +01:00
J. Degand
4d95a66748 docs(angular): change from article to official in precendence (#6531) 2024-08-13 09:06:03 +01:00
Kamran Ahmed
0d15041102 fix: color not rendered in done topics 2024-08-13 09:05:19 +01:00
Stavros Siamantas
940bf2ebdb docs(git_github) add content to roadmap (#6520)
Co-authored-by: Stavros Siamantas <ssiamantas@shipreality.com>
2024-08-13 01:27:00 +01:00
Kamran Ahmed
6d73c805b2 Add beginner friendly git and github roadmap 2024-08-13 01:25:45 +01:00
Jose Felipe Duarte Coronado
2b9a778137 Add github actions resource (#6517)
* Update github-actions@AmetdCURXXob5TUsikAab.md

* Update src/data/roadmaps/git-github/content/github-actions@AmetdCURXXob5TUsikAab.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-13 00:59:42 +01:00
Jose Felipe Duarte Coronado
8cfbddef90 Add content to github class room (#6518) 2024-08-13 00:58:25 +01:00
Brian Rodriguez
c380a85db6 [Add] Android roadmap: Docs MVVM and MVC (#6519)
* [Add] Docs MVVM and MVC

* [Change] Docs formatted
2024-08-13 00:57:54 +01:00
Kamran Ahmed
53d82725d2 Add beginner friendly git and github roadmap 2024-08-13 00:57:04 +01:00
Kamran Ahmed
beabbff77f Add beginner friendly git and github roadmap 2024-08-13 00:49:38 +01:00
Kamran Ahmed
047b359df9 Update beginner version 2024-08-13 00:23:40 +01:00
Kamran Ahmed
8dc87cab06 merge branch 'master' of github.com:kamranahmedse/developer-roadmap 2024-08-13 00:20:34 +01:00
Kamran Ahmed
872c60ef06 Update beginner version of git roadmap 2024-08-13 00:20:30 +01:00
Jesús Enrique Alcalá Rojas
ac924c09af Add content for dumpster diving (#6514)
* add content dumpster-diving@Iu0Qtk13RjrhHpSlm0uyh.md

* Update src/data/roadmaps/cyber-security/content/dumpster-diving@Iu0Qtk13RjrhHpSlm0uyh.md

* Update src/data/roadmaps/cyber-security/content/dumpster-diving@Iu0Qtk13RjrhHpSlm0uyh.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 23:32:01 +01:00
bigtendons8
e5b8863e3f Fix formatting in content file (#6515)
* Update sets@soZFqivM3YBuljeX6PoaX.md

i broke the website, lets fix that

* un-Update sets@soZFqivM3YBuljeX6PoaX.md

* Update sets@soZFqivM3YBuljeX6PoaX.md
2024-08-12 23:30:33 +01:00
Kamran Ahmed
c31994da2a Update git github roadmap meta 2024-08-12 20:59:10 +01:00
Kamran Ahmed
219aaa3fb2 Update roadmap header 2024-08-12 19:49:00 +01:00
Kamran Ahmed
e0c1b6eb75 Add git and github roadmap 2024-08-12 19:37:34 +01:00
Kamran Ahmed
a1a7dec6d2 Add git and github roadmap 2024-08-12 19:35:16 +01:00
Kamran Ahmed
9a946e51f5 Fix line issue in Git/GitHub roadmap 2024-08-12 19:32:10 +01:00
Kamran Ahmed
a311791367 Add git and github roadmap 2024-08-12 19:32:10 +01:00
devrelify
c3a3344ee0 Add content to devrel roadmap (#6483)
How to operate dev advocacy.
2024-08-12 15:25:43 +01:00
Brian Rodriguez
1afdde1770 Add content to mvp in android (#6474)
* Docs(android): Add MVP content

* Update src/data/roadmaps/android/content/mvp@aF_xFIqTjQbENtC7pkXvJ.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 15:25:00 +01:00
bigtendons8
731ff23c9d Add content to sets (#6473)
* Update sets@soZFqivM3YBuljeX6PoaX.md

add new links

* Update sets@soZFqivM3YBuljeX6PoaX.md

accidentally gave two resources the same label...
2024-08-12 15:23:55 +01:00
Amardeep
e3bd00cf15 Add content to advanced go (#6477)
* Add advance Go intro

I've added an introduction to Go advance and included the relevant links

* Update src/data/roadmaps/golang/content/101-go-advanced/index.md

* Update src/data/roadmaps/golang/content/101-go-advanced/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 15:22:49 +01:00
Hünkar
1b2888b5ef Fix typo in terraform roadmap content (#6480) 2024-08-12 15:20:57 +01:00
devrelify
2aff6e59d5 Add content to devrel roadmap (#6482)
Developer Relations 101: Understand The Fundamentals
2024-08-12 15:20:30 +01:00
devrelify
9d57f545d7 Add content to devrel roadmap (#6484)
adding articles about dev community engagements
2024-08-12 15:20:05 +01:00
André Oliveira
e3fb225f95 Add content to linux nodes (#6489)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

* update basics-of-ids-and-ips.md

- new links

* update endpoint-security.md

- new links

* update edr.md
- new text and links.

update ssl-and-tls-basics.md
- new links

update ssl--tls.md
- new links

update dropbox.md
- official link

* ipsec.md
- new content
- new link

kali-linux.md
- new content

linux.md
- fix typo

* Update src/data/roadmaps/cyber-security/content/kali-linux@w6wXkoLrv0_d-Ah0txUHd.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 15:19:41 +01:00
Muhammad Hammad Hassan
bd51518729 add phishing details in the cybersecurity path (#6491)
* add phishing details in the cypersecurity path.

* Update src/data/roadmaps/cyber-security/content/phishing@7obusm5UtHwWMcMMEB3lt.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 09:42:54 +01:00
Stavros Siamantas
3296e447f2 fix: typo in cyber-security (#6492)
Co-authored-by: Stavros Siamantas <ssiamantas@shipreality.com>
2024-08-12 09:38:59 +01:00
Favour
60566d9791 fix: update path to backend roadmap (#6494) 2024-08-12 09:38:10 +01:00
J. Degand
351fb25e67 docs(angular): add elf content (#6499) 2024-08-12 09:37:57 +01:00
Federico Taborda
dd329e8b0e Add content to DOM APIs (#6502)
content added to DOM API section
2024-08-12 09:37:07 +01:00
Ankur srivastava
fc5cd02909 Add links for react-spring (#6505)
* Updated the content of src/data/roadmaps/react/content/animation@bRpeoo9zXrnZ2IHSI7JX4.md

* Update src/data/roadmaps/react/content/animation@bRpeoo9zXrnZ2IHSI7JX4.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-12 09:36:44 +01:00
J. Degand
b010452c79 docs(angular): add model-inputs content (#6471) 2024-08-12 09:26:41 +01:00
J. Degand
56aec6f077 docs(angular): add queries as signals content (#6472) 2024-08-12 09:26:32 +01:00
J. Degand
d30b6f1c15 docs(angular): add common pipes content (#6497) 2024-08-12 09:26:20 +01:00
J. Degand
e0c0925d38 docs(angular): add data-binding content (#6498) 2024-08-12 09:26:09 +01:00
J. Degand
ee27f5c72d docs(angular): add lazy loading modules content (#6500) 2024-08-12 09:25:58 +01:00
Konrad Stępień
4ec9f2097c feat(angular): add Control Flow content (#6504) 2024-08-12 09:25:10 +01:00
Konrad Stępień
1f2a2421f5 feat(angular/communication): add content to the threads (#6506)
* feat(angular): add ViewChild content

* feat(angular): add ContentChild content

* feat(angular): add Parent-Child Interaction content
2024-08-12 09:24:59 +01:00
Reyes Rondón
6cd20bcd83 Updated remix content into react-router (#6488)
* fixed typo react-router instead of Remix

* Updated Remix to react-router in frontend roadmap

* Update src/data/roadmaps/frontend/frontend.json

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-11 00:03:49 +01:00
J. Degand
890c7fe384 docs(angular): add input-signals content (#6470) 2024-08-10 00:52:27 +01:00
Prateek
c69127316f fix: increase username length to 20 (#6318)
* username length to 20

* reduced redundant code

* fixed package-lock file
2024-08-10 00:49:14 +01:00
J. Degand
b515902395 docs(angular): add rxjs interop content (#6469)
* docs(angular): add rxjs interop content

* Update rxjs-interop@KAdtebWvgvMifIwd52yc4.md
2024-08-10 00:48:53 +01:00
Brunno Soares
411305b0ea Add storage volume resource (#6380)
* Update 102-storage-volume.md

* Update src/data/roadmaps/aws/content/101-ec2/102-storage-volume.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:30:10 +01:00
Brunno Soares
891b9b63ea Add keypairs resource (#6381)
* Update 103-keypairs.md

* Update src/data/roadmaps/aws/content/101-ec2/103-keypairs.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:29:44 +01:00
Brunno Soares
805bf57fd3 Add Elastic IP resource (#6382)
* Update 104-elastic-ip.md

* Update src/data/roadmaps/aws/content/101-ec2/104-elastic-ip.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:29:23 +01:00
Brunno Soares
b2f30822ec Add user data scripts resource (#6383)
* Update 105-user-data-scripts.md

* Update src/data/roadmaps/aws/content/101-ec2/105-user-data-scripts.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:28:24 +01:00
Brunno Soares
ba3d42fa6f Add route tables resource (#6384)
* Update 102-route-tables.md

* Update src/data/roadmaps/aws/content/102-vpc/102-route-tables.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:27:57 +01:00
Brunno Soares
f5c8084946 Add AWS IAM resource (#6385)
* Update index.md

* Update src/data/roadmaps/aws/content/103-iam/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:27:32 +01:00
Brunno Soares
e911df4477 Add AWS policies resource (#6386)
* Update index.md

* Update src/data/roadmaps/aws/content/103-iam/100-policies/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:27:00 +01:00
Brunno Soares
131955458a Add resource in AWS roadmap (#6387)
* Update index.md

* Update src/data/roadmaps/aws/content/103-iam/102-roles/index.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:26:09 +01:00
J. Degand
cc998be478 docs(angular): add signals content (#6468) 2024-08-10 00:24:51 +01:00
Dendop
f6c570bea3 Add content for python sets (#6414)
* update Python Sets

* Update src/data/roadmaps/python/content/sets@soZFqivM3YBuljeX6PoaX.md

* Update src/data/roadmaps/python/content/sets@soZFqivM3YBuljeX6PoaX.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:23:59 +01:00
Gerzon Rangel
50e3566e7d feat: add v-if documentation for Vue.js (#6415)
* feat: add v-if documentation for Vue.js

* Update src/data/roadmaps/vue/content/v-if@xHj3W9Ig3MVuVlGyXchaP.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:22:50 +01:00
André Oliveira
0dd89305a0 Add content to cybersecurity roadmap (#6417)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

* update basics-of-ids-and-ips.md

- new links

* update endpoint-security.md

- new links

* update edr.md
- new text and links.

update ssl-and-tls-basics.md
- new links

update ssl--tls.md
- new links

update dropbox.md
- official link

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:22:18 +01:00
Vineet Kumar
dfd62949ec Add content to excel functions (#6435)
* Update replace--substitute@dke_pySrqYZZ7K3rprnIT.md

* Update src/data/roadmaps/data-analyst/content/replace--substitute@dke_pySrqYZZ7K3rprnIT.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-10 00:21:50 +01:00
siamonas
136484f8b3 docs(linux): wrangle content and add content links to user management (#6459)
* docs(linux): wrangle content and add content links to user management

* docs(linux): wrangle content and add content links to user management - implemented changes based on dansholds feedback

---------

Co-authored-by: Stavros Siamantas <ssiamantas@shipreality.com>
2024-08-10 00:18:19 +01:00
Murilo Silva
27752cf374 Add content to Object.is (#6460)
Added description to Object.is in the JavaScript roadmap before without content.
2024-08-10 00:17:37 +01:00
Ahmad Shalabi
eea6275571 Fix broken youtube link (#6461)
Fix the "Breadth-first search in 4 minutes" broken link
2024-08-10 00:17:07 +01:00
Phelipe Folgierini
c4b5971d45 Update blockchain.json (#6462)
Typo: Change "Centralized Storage" to "Decentralized Storage"
2024-08-10 00:15:52 +01:00
Kamran Ahmed
9f075e2fda fix: typo in file name 2024-08-10 00:15:15 +01:00
Gabriel Barbosa
e776d31a0f Remove callbackhell.com(#6466) 2024-08-10 00:14:21 +01:00
J. Degand
f857b52ebc docs(angular): add attribute-binding content (#6467) 2024-08-10 00:13:44 +01:00
J. Degand
206c71fb23 docs(java): update oop content (#6454) 2024-08-10 00:13:34 +01:00
dsh
b49d9e8aa4 update discord invite link (#6464) 2024-08-09 20:42:20 +01:00
dsh
70d9a66714 Add content to the dynamic forms topic (#6456) 2024-08-09 15:41:40 +01:00
Obiechina Emmanuel
367d387890 Added content to custom-validators topic (#6457)
* Added content to custom-validators topic

* Update src/data/roadmaps/angular/content/custom-validators@kxRtLsB3y_th8j-HjmJgK.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-08-09 11:10:12 +01:00
Maxat Akbanov
88ab6abbe4 Fix broken link in Kubernetes Roadmap (#6343) (#6442) 2024-08-09 04:35:36 +01:00
J. Degand
f531787e9c docs(angular): add http-client content (#6443) 2024-08-09 04:35:04 +01:00
J. Degand
554e94bf26 docs(angular): add event-binding content (#6444) 2024-08-09 04:34:49 +01:00
J. Degand
b5f8a53338 docs(angular): add two-way binding content (#6445) 2024-08-09 04:34:32 +01:00
J. Degand
e8aa4813d6 fix(angular): change properties binding to property binding (#6446) 2024-08-09 04:34:22 +01:00
J. Degand
50be23a4be fix(angular): change attributes binding to attribute binding (#6447) 2024-08-09 04:34:04 +01:00
J. Degand
231601d2aa docs(angular): add accessibility content (#6448) 2024-08-09 04:33:27 +01:00
J. Degand
e0aa7e4d0f docs(angular): add attributes content (#6449) 2024-08-09 04:33:15 +01:00
J. Degand
bab5717df6 docs(angular): add ui components content (#6450) 2024-08-09 04:33:02 +01:00
J. Degand
a6ceeb2ee8 docs(angular): add containers content (#6451) 2024-08-09 04:32:52 +01:00
J. Degand
943214d88c docs(angular): add routing content (#6452) 2024-08-09 04:32:40 +01:00
J. Degand
5eaac3b1ec docs(angular): add link identification content (#6453) 2024-08-09 04:32:07 +01:00
Kamran Ahmed
ff11b7c8ad Fix styling 2024-08-09 00:00:10 +01:00
Kamran Ahmed
72f4faaf67 Add sql roadmap 2024-08-08 23:41:39 +01:00
iliAsghar
169a8f0356 Add boolean content (#6438)
Update boolean@b1HvkoWA2t4kt8mS6FySm.md
2024-08-08 19:35:43 +01:00
Saeed
68a9b89ee7 Fix typo (#6440)
* Fix a wrong word
2024-08-08 19:35:28 +01:00
Hafid Nur
e9c36fc83a Fix broken link in Frontend Developer Roadmap (#6437) 2024-08-08 16:01:02 +01:00
mrgsdev
2048885a48 Add resource link (#6418) 2024-08-08 13:31:55 +01:00
Zehra
9dfdaef440 Add resource link (#6419)
* Update index.md

* Update index.md
2024-08-08 13:28:41 +01:00
Muhammad Shahab
bcb7c4105a Add resource link (#6432)
Added link to the topic for more exploration
2024-08-08 13:28:21 +01:00
Kamran Ahmed
d57af8bab9 Fix typo in file name 2024-08-08 13:27:44 +01:00
Jonas Klesen
5e5eae1427 Fix typo in Javascript Roadmap (#6433) 2024-08-08 13:27:27 +01:00
dsh
838d51c5d3 add 'what is the difference between SRE and DevOps' to roadmap FAQ (#6431) 2024-08-08 12:10:59 +01:00
dsh
48a05a0fcf centered the html logo on frontend language guide (#6429) 2024-08-08 11:15:55 +01:00
dsh
bcd61f9b5e minor touch ups to guide content and fixed canonical authors link issue (#6428) 2024-08-08 11:06:56 +01:00
Farzad Mohtasham
8ae99e6867 Added some new content for React Roadmap (#6416) 2024-08-08 04:45:36 +01:00
J. Degand
1848f87e9b docs(angular): add animation content (#6420) 2024-08-08 04:44:01 +01:00
J. Degand
bfde2904c1 docs(angular): add trusted types content (#6421) 2024-08-08 04:43:48 +01:00
J. Degand
efae705341 fix(angular): change events to event-binding (#6422) 2024-08-08 04:43:28 +01:00
J. Degand
6ed75020c7 docs(angular): add image optimization content (#6424) 2024-08-08 04:42:42 +01:00
J. Degand
28c5e54048 docs(angular): add internationalization content (#6425) 2024-08-08 04:42:11 +01:00
Kamran Ahmed
1b7e807aae Remove projects from noindex 2024-08-07 18:02:37 +01:00
Kamran Ahmed
cd7bb19639 Add project submission contribution page 2024-08-07 17:58:40 +01:00
Kamran Ahmed
6821d20cf1 fix: wrong type for issue template 2024-08-07 16:37:35 +01:00
Kamran Ahmed
ad3f28a8c4 feat: add projects functionality for backend roadmap (#6412)
* Add empty projects listing and cards

* Projects page header

* Projects listing and filtering

* Add project detail page

* Add a task tracker CLI project

* UI changes

* Add projects for expense and task tracker

* Add new projects

* Add blogging platform API project

* Project page UI changes

* Add todo list api project

* Add todo list api project

* Add a project idea for weather service

* Add expense tracker API project

* Add more details to expense tracker

* Add markdown note taking app idea

* Add URL shortener service project

* Add broadcast server project

* Add ecommerce project idea

* Add project on other roadmaps

* Add workout tracker project

* Add image processing project idea

* Add movie reservation system ap

* Add movie reservation system project

* Add realtime leader board system project

* Add details for a database backup utility

* Add project contribution docs

* Fix UI of the discover page
2024-08-07 16:35:19 +01:00
J. Degand
abeea1a5b5 docs(angular): add defer content (#6388) 2024-08-07 19:38:56 +06:00
J. Degand
23480f9952 docs(angular): add article to state management (#6389) 2024-08-07 19:37:06 +06:00
J. Degand
953d18407b docs(angular): add deferrable views content (#6390) 2024-08-07 19:35:32 +06:00
J. Degand
7e240bc1bc docs(angular): add devtools content (#6391) 2024-08-07 19:33:39 +06:00
J. Degand
8e719080f3 docs(angular): add @for content (#6392) 2024-08-07 19:32:07 +06:00
J. Degand
afbefb79a6 docs(angular): add let content (#6393) 2024-08-07 14:30:23 +01:00
J. Degand
37699cb996 docs(angular): add code coverage content (#6394)
* docs(angular): add code coverage content

* Update src/data/roadmaps/angular/content/code-coverage@bqA2bxPcZrqQ-6QE-YDK1.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-07 14:29:18 +01:00
iliAsghar
de7e144d12 add BigInt content (JS) (#6397)
* add BigInt content (JS)

* Update src/data/roadmaps/javascript/content/bigint@6lUF0neW1piiP1RsaVxEX.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-07 12:54:40 +01:00
Ankur srivastava
5f011d3b3e Add content to Ark UI (#6398) 2024-08-07 12:53:48 +01:00
André Oliveira
7ea4656fdf Add content to CISSP (#6406)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

* Update cissp.md

- new resources links

* Update src/data/roadmaps/cyber-security/content/cissp@BqvijNoRzSGYLCMP-6hhr.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-07 12:52:38 +01:00
Keldon Lee
6f8852d99d Add resource to docker volumes (#6410)
* Update 101-volume-mounts.md

Add a link to help beginners understanding the subtle differences between `-v` and `--mount` flag.

* Update src/data/roadmaps/docker/content/104-data-persistence/101-volume-mounts.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-07 12:50:26 +01:00
dsh
c27b526de0 Add content to data analyst roadmap (#6402)
* complete data-analyst content

* Apply suggestions from code review

Clean up
2024-08-06 16:54:59 +01:00
Farzad Mohtasham
c8dd4fb4d3 Added framer-motion and zod content to react roadmap (#6377) 2024-08-06 00:19:50 +01:00
Atharva Warang
3b860a0a4e Add python loop docs (#6373)
* Update loops information

added loop information like for and while loop

* Update src/data/roadmaps/python/content/loops@Dvy7BnNzK55qbh_SgOk8m.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 17:14:43 +01:00
Farzad Mohtasham
0ee2cf9b8f Add content for MobX (#6354)
* Added Tanstack Router

* Added Jotai JS to react roadmap

* Added MobX(React State Management Library) to React roadmap

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 11:14:13 +01:00
Farzad Mohtasham
c53108ae6e Added video about React portals (#6359)
* Added React Material UI

* Added PandaCSS

* Added React Aria

* Added React Spring some Article and Videos

* Added React Portal video tutorial
2024-08-05 09:57:40 +01:00
Farzad Mohtasham
dda52d5379 Add content to react roadmap (#6360)
* Added React Material UI

* Added PandaCSS

* Added React Aria

* Added React Spring some Article and Videos

* Added React Portal video tutorial

* Added React useReducer

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 09:57:23 +01:00
André Oliveira
1bdb0fc5b7 Add content to Linux roadmap (#6361)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

* Update linux.md, comptia-linux.md and understand-the-osi-model.md

Update linux.md
- New Links
- Remove Google Analytics parameters from link

Update comptia-linux.md
- Links updated

Update understand-the-osi-model.md
- New link

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 09:56:18 +01:00
J. Degand
78e892572b Fix typo in Angular roadmap content (#6362) 2024-08-05 09:55:48 +01:00
J. Degand
3c76212291 docs(angular): add language service content (#6363) 2024-08-05 09:55:22 +01:00
Atharva Warang
08c68d8fae Add dictionaries conten (#6365)
* Update dictionaries@bc9CL_HMT-R6nXO1eR-gP.md

* Update src/data/roadmaps/python/content/dictionaries@bc9CL_HMT-R6nXO1eR-gP.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 09:55:05 +01:00
Brunno Soares
9c18500cc4 Add CIDR Blocks resource (#6367) 2024-08-05 09:52:04 +01:00
Anish shetty k
8abe0396a3 Add ESM content in node.js roadmap (#6368)
* Update esm@mKccfWOhC1Aj4VnaOqryA.md

* Update esm@mKccfWOhC1Aj4VnaOqryA.md

* Update esm@mKccfWOhC1Aj4VnaOqryA.md
2024-08-05 09:51:42 +01:00
J. Degand
c9a0de250e docs(angular): add @if content (#6371)
* docs(angular): add @if content

* Update src/data/roadmaps/angular/content/if@U1Zy2T-2ki9pDkXn9hn-I.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-05 09:51:14 +01:00
Nazrul Islam
55dfae773b Add resources to useReducer (#6372) 2024-08-05 09:49:52 +01:00
Kamran Ahmed
80eeadd6a6 Fix UI for resource progress 2024-08-03 11:16:29 +01:00
Thoyib Hidayat
c20afce08f Add content for v-model (#6348)
add description & link official documentation
2024-08-03 10:33:53 +01:00
Thoyib Hidayat
d8c9caa955 Add content for v-model (#6349)
add description & official documentation vue.js
2024-08-03 10:33:37 +01:00
PRANAVK
e675806a04 Add resources for complexity (#6350)
* Update 100-time-vs-space.md

Added some Youtube Tutorials for the Big-O Notation

* Update src/data/roadmaps/datastructures-and-algorithms/content/104-algorithmic-complexity/100-time-vs-space.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-03 10:28:05 +01:00
Kamran Ahmed
1087e1a935 feat: redesign roadmap page header and add upcoming projects functionality (#6347)
* Redesign the header

* Responsiveness of the roadmap header

* Fix spacing

* Redesign roadmap header

* Add projects badge

* Update badge

* Add screen for projects

* UI flicker fix

* Add question for system design

* Code formatting
2024-08-03 01:34:59 +01:00
Farzad Mohtasham
5a052d0db2 Add content to tanstack router (#6342)
* Added Tanstack Router

* Update src/data/roadmaps/react/content/tanstack-router@zWL8VLx_g0SWubavJDs6i.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 19:56:32 +01:00
Tymoteusz Stępień
bcbd11a726 docs: update testers mindset docs to QA mindset docs (#6344)
* docs: update tester mindset docs mapping, to qa mindset naming

* docs: update QA mindset docs to reflect what Quality Assurance Engineer takes care of

* docs: remove deprecated ISTQB syllabus
2024-08-02 19:55:26 +01:00
aksh1322
d537e93275 Add react hooks best practices resources (#6303)
* Update hooks-best-practices@mkyU0ug8MXxV4biHuOity.md

* Update src/data/roadmaps/react/content/hooks-best-practices@mkyU0ug8MXxV4biHuOity.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:53:09 +01:00
Isha Jain
6da5050007 Update content for Server APIs (#6307)
* Update server-apis@SUeXDkmOLipdRP4fSrZOH.md

Integrate server APIs in React applications to fetch, manage, and display data efficiently. Focus on error handling, security, and performance optimization for a smooth user experience.

* Update server-apis@SUeXDkmOLipdRP4fSrZOH.md

Adding further links to the sites that can be referred

* Update src/data/roadmaps/react/content/server-apis@SUeXDkmOLipdRP4fSrZOH.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:50:19 +01:00
Wairioko
30eb1e4095 Add content for symbol data type (#6327)
* Update symbol@R6ICrk6vjoBxx5nRGo4Jg.md

Simple introduction to Symbols data type in JS and resources to learn more added

* Update src/data/roadmaps/javascript/content/symbol@R6ICrk6vjoBxx5nRGo4Jg.md

* Update src/data/roadmaps/javascript/content/symbol@R6ICrk6vjoBxx5nRGo4Jg.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:43:28 +01:00
Zehra
853603b1f6 Add content to Tuples (#6328)
* Update tuples@i7xIGiXU-k5UIKHIhQPjE.md

* Update src/data/roadmaps/python/content/tuples@i7xIGiXU-k5UIKHIhQPjE.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:29:12 +01:00
Zehra
90df0a3a4d Add content to exceptions node in Python (#6329)
* Update exceptions@fNTb9y3zs1HPYclAmu_Wv.md

* Update src/data/roadmaps/python/content/exceptions@fNTb9y3zs1HPYclAmu_Wv.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:28:21 +01:00
Farzad Mohtasham
30957922b1 Added new React native crash course video (#6341)
* Added Tanstack-Router to the React Routers section

* Added Tanstack/Router to React Router topic

* Added new crash course video to React-Native roadmap

* Update src/data/roadmaps/react-native/content/100-introduction/index.md

* Update src/data/roadmaps/react/content/105-routers/100-react-router.md

* Update src/data/roadmaps/react/content/105-routers/100-react-router.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-02 15:27:15 +01:00
Kamran Ahmed
1158e8405f Increase team member count 2024-08-02 00:54:30 +01:00
Kabir Asani
b726ddd6e0 Add content for Core Animation (iOS) (#6324)
* Add content for Core Animation (iOS)

* Update src/data/roadmaps/ios/content/core-animation@_mRs6ctH0IsSSi-cwV2b8.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-01 22:48:14 +01:00
Kabir Asani
c4575e7648 Add swift node content (#6325)
* Add content under Swift Basics section on the iOS roadmap

* Update src/data/roadmaps/ios/content/swift-basics@fboebSmquyJyozsMRJDtK.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-01 22:46:00 +01:00
Ankur srivastava
0c85f08f58 Add content for Radix UI (#6308)
* update radix-ui@XL9XOV2h0BAuA5cFcM5L_.md

* Update src/data/roadmaps/react/content/radix-ui@XL9XOV2h0BAuA5cFcM5L_.md

* Update src/data/roadmaps/react/content/radix-ui@XL9XOV2h0BAuA5cFcM5L_.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-01 20:06:16 +01:00
Kamran Ahmed
dbeba2cf28 test: debug deployment 2024-08-01 17:22:01 +01:00
Kamran Ahmed
55b3623753 test: debug deployment 2024-08-01 17:16:09 +01:00
Kamran Ahmed
774d38b911 Update dependencies 2024-08-01 17:09:45 +01:00
Kamran Ahmed
63af5b1540 Remove experiemntal features 2024-08-01 15:50:51 +01:00
Devan
961e11670d fix: wrong JavaScript type content (#6319)
* fix: Wrong JavaScript type content

* Update string@1RcwBHU3jzx0YxxUGZic4.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-01 15:28:18 +01:00
Jake Espinosa
d2ef68bb50 feat: add content to v-show on vue roadmap (#6311) 2024-08-01 12:44:34 +01:00
Nazrul Islam
fd7917cff8 Add resources to useMemo hook (#6316)
* Update usememo@w3bNp7OkehI1gjx8NzlC8.md

* Update src/data/roadmaps/react/content/usememo@w3bNp7OkehI1gjx8NzlC8.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-08-01 11:47:24 +01:00
dsh
65d2ab2cff add content to angular performance node (#6317) 2024-08-01 11:45:26 +01:00
Kamran Ahmed
3b9a640788 Remove team versions 2024-08-01 11:31:54 +01:00
Konrad
c879558312 feat(angular/metadata): add content to the thread (#6315)
* feat(angular/viewProvider): add content to the thread

* feat(angular/Encapsulation): add content to the thread

* feat(angular/changeDetection): add content to the thread
2024-08-01 11:21:49 +01:00
Kevin
321952ed82 Cyber security roadmap: Add content to empty nodes (#6314)
* Add content to siem@c2kY3wZVFKZYxMARhLIwO.md

* added content to empty nodes: smishing, tailgating, whishing(vishing), and whois
2024-08-01 10:58:49 +01:00
Kamran Ahmed
5765da7712 Replace outdated frontend roadmap assets 2024-08-01 10:50:59 +01:00
Kamran Ahmed
b50ccd2f6b Fix typo in URLs 2024-08-01 10:21:15 +01:00
dsh
ee201768ba add content links to api-design roadmap (#6305)
* add content links to api-design roadmap

* complete api-design roadmap content

* Apply suggestions from code review

fix styling
2024-08-01 09:31:11 +01:00
Kamran Ahmed
058a54f947 Add content to Python Asynchronous 2024-07-31 23:32:20 +01:00
Kamran Ahmed
4e569a9417 Update updatedAt for python 2024-07-31 23:11:43 +01:00
Kamran Ahmed
457af3facb Redraw Python roadmap using our editor 2024-07-31 23:10:11 +01:00
Kevin
0a7ab9787c Add content for fetch (#6309)
* Update fetch@B_3rTGQxJneMREXoi2gQn.md

Added content to empty roadmap node, describing the functionality of fetch as a stable native API in Node.js as of Node v21 with examples and additional resources for further reading.

* Update src/data/roadmaps/nodejs/content/fetch@B_3rTGQxJneMREXoi2gQn.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-31 21:12:21 +01:00
Craig
b540d1eac1 Fix compilre typo in Typescript roadmap (#6306)
* Rename compilre-options@RrExVb7l2gd0s_TlNdLeD.md to compiler-options@RrExVb7l2gd0s_TlNdLeD.md

* Update typescript.json to fix compilre typo
2024-07-31 14:32:17 +01:00
Konrad
cbc9b788fa feat(angular/metadata): add content to the threads (#6304)
Threads:
- Metadata
- Selector
- Template
- Styles
- Standalone
- Imports
- Provider
2024-07-31 14:22:18 +01:00
Konrad
efd6c3cc22 feat(angular/Angular Architecture): add content to the thread (#6301) 2024-07-31 12:17:38 +01:00
Konrad
9477ca48e4 feat(angular/Setting up a New Project): add content to the thread (#6302) 2024-07-31 12:16:22 +01:00
Leni Kirilov
9f69a8de50 Improvements to backend roadmap content (#6000)
* Update pick-a-language@2f0ZO6GJElfZ2Eis28Hzg.md

* Update repo-hosting-services@NvUcSDWBhzJZ31nzT4UlE.md

removed a biased (by Bitbucket) link and put one by a regular guy

* Update caching@ELj8af7Mi38kUbaPJfCUR.md

added a warning for caching

* Update server-side@z1-eP4sV75GBEIdM4NvL9.md

- removed a deprecated article

since caching is a complex topic I added links about strategies, Distributed ones and example of Hibernate 1st/2nd level caches

* New content "monitoring" node

* Update monitoring@QvMEEsXh0-rzn5hDGcmEv.md

* Update monolithic-apps@Ke522R-4k6TDeiDRyZbbU.md

* Update soa@tObmzWpjsJtK4GWhx6pwB.md

added a simpler link because the link to the reference is probably not going to be read by many

* added another link to architectural-patterns@tHiUpG9LN35E5RaHddMv5.md

* Service mesh - fixed broken link
2024-07-31 12:01:23 +01:00
Olek
b1409e6b91 Add content to TS and Zod (#6225)
* Update types--validation@UNlvRp6k3_RDoTAAIEfJ1.md

Add description for Next.JS Types & Validation node


comment:
Guys you did help me much in the past, so I'm grateful and think u're cool

* Types and Validation, add resources title, rm tautology

* rm spaces, create single paragraph article

* add change to paragraph

* Update src/data/roadmaps/react/content/types--validation@UNlvRp6k3_RDoTAAIEfJ1.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-31 11:58:12 +01:00
Konrad
e7b1be1be5 feat(angular/Angular and History): add content to the thread (#6300) 2024-07-31 11:48:22 +01:00
André Oliveira
cd13e569c6 Add content to Cybersecurity roadmap (#6271)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.

* Update dnssec.md

- summarized content.
- relevant links.

* Update apt.md

- New section
- Added a new link

* Update comptia-a.md

- Updated Professor Messer's link
- New links added

* Apply suggestions from code review

* Update attck.md

- new content.
- relevant links.

* Update src/data/roadmaps/cyber-security/content/attck@auR7fNyd77W2UA-PjXeJS.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-31 11:48:04 +01:00
aksh1322
ae00ee3946 Add content to react hooks best practices (#6297) 2024-07-31 11:43:16 +01:00
Konrad
de035f47ce feat(angular/Component Anatomy): add content to the thread (#6298)
* feat(angular/Component Anatomy): add content to the thread

* Update src/data/roadmaps/angular/content/component-anatomy@Mp056kNnwsRWeEXuhGPy-.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-31 11:42:51 +01:00
Konrad
6aa12ce695 feat(angular/Creating Components): add content to the thread (#6299)
* feat(angular/Creating Components): add content to the thread

* Update src/data/roadmaps/angular/content/creating-components@ex8FOKrUlbu4MuEq2czyW.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-31 11:41:26 +01:00
dsh
b944d51da7 fix api-design topics not found (#6296) 2024-07-31 11:39:31 +01:00
Ankur srivastava
7e513f7d8b Update headless-component-libraries@MnDgQq9Vcxsu3wDqv5uh2.md (#6267)
* Update headless-component-libraries@MnDgQq9Vcxsu3wDqv5uh2.md

* Update src/data/roadmaps/react/content/headless-component-libraries@MnDgQq9Vcxsu3wDqv5uh2.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-31 10:22:50 +01:00
J. Degand
fd6d091b20 fix: interpolation typo in filename (#6278)
* fix: interpolation typo in filename

* fix: interpolation typo in angular.json
2024-07-31 10:21:07 +01:00
Alexey Nikitchenko
0165e02c6a updates video reference (#6284) 2024-07-31 10:20:22 +01:00
J. Degand
7f490a70e5 fix: attributes typo angular roadmap (#6290) 2024-07-31 10:12:45 +01:00
J. Degand
da4d141239 docs: add pipe precedence content angular (#6292) 2024-07-31 10:08:33 +01:00
J. Degand
a8f4d32a50 docs: add aot content angular (#6294) 2024-07-31 10:08:02 +01:00
Kamran Ahmed
58612589c9 Update description for the community page 2024-07-30 23:30:33 +01:00
Kamran Ahmed
052236ded3 Fix UI for cybersecurity roadmap 2024-07-30 22:47:50 +01:00
Neil
d7ff5b9abc Ensure when TopicDetail is open document.body stops scrolling (#6285)
* fix: ensure TopicDetail locks the body when open

* chore: ensure 'overflow-hidden' is always available via safelist

* revert: prettier changes
2024-07-30 22:05:20 +01:00
Kamran Ahmed
a1037d1db2 Redraw TypeScript roadmap using our editor 2024-07-30 21:55:54 +01:00
Kamran Ahmed
5ccdece429 Update discover roadmap page subtitle 2024-07-30 21:41:13 +01:00
Thomas
e8aa123322 Update DevOps recommendation colour to purple (#6273) 2024-07-30 16:14:25 +01:00
J. Degand
c3c1d7bd95 docs: update ngrx content (#6279)
* docs: update ngrx content

* fix: update video title

* Apply suggestions from code review

Co-authored-by: Konrad <kord.stp@gmail.com>

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Konrad <kord.stp@gmail.com>
2024-07-30 13:57:15 +01:00
J. Degand
93f86ae5d2 docs: update analogjs content (#6280) 2024-07-30 13:56:16 +01:00
varshaNalluri
d7276b9834 Update undefined@ZLs0NKM0lrnOy5ATDhlk0.md (#6281)
* Update undefined@ZLs0NKM0lrnOy5ATDhlk0.md

* Update src/data/roadmaps/javascript/content/undefined@ZLs0NKM0lrnOy5ATDhlk0.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-30 13:54:50 +01:00
Kamran Ahmed
6f677dc3be Add ahrefs site verification 2024-07-30 12:45:58 +01:00
Arik Chakma
b35ce9ab60 fix: showcase roadmap index (#6283) 2024-07-30 12:18:22 +01:00
Kamran Ahmed
bff7c4203a Fix community page URL 2024-07-30 11:39:18 +01:00
Kamran Ahmed
55b5639541 Fix community page URL 2024-07-30 11:36:10 +01:00
Arik Chakma
9c3539eb3a feat: implement discover custom roadmaps (#6162)
* feat: implement discover custom roadmaps

* feat: add error page

* wip: roadmap ratings

* wip

* feat: implement rating

* refactor: roadmap discover page

* Update UI

* fix: search

* fix: search query

* Update UI for the discover page

* Refactor rating logic

* Button changes on the custom roadmap page

* Refactor feedback modal

* Hide rating from custom roadmaps which are not discoverable

* feat: rating feedback pagination

* fix: remove per page

* Update ratings

* fix: button height

* Update UI for the discover page

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-30 11:26:19 +01:00
dsh
283a88e719 Update all PostgreSQL roadmap content (#6241)
* update all postgresql roadmap content

* added half the links

* complete all link adding

* Update src/data/roadmaps/postgresql-dba/content/awk@HJCRntic0aGVvdmCN45aP.md
2024-07-29 22:12:48 +01:00
Pranjal Pratap Singh
3f4a256e94 Update JavaScript Datatype -- Number (#6275)
Added Definition and Easy to Understand Examples for DataType Number.
2024-07-30 00:04:40 +06:00
fellalli
1019addbcd Fix links in roadmaps (#6270) 2024-07-29 15:21:55 +01:00
Samaila Chatto Bashir
dcb8df908d added description and resources for null in javascript (#6242) 2024-07-29 10:06:04 +01:00
JesusG16
8da3fb7220 Update 109-event-sourcing.md (#6250)
The youtube video for event sourcing is no longer available, I added an alternative.
2024-07-29 10:03:21 +01:00
André Oliveira
b4111cefca Update dnssec.md (#6251)
Update various topics with new links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-29 10:02:38 +01:00
Ganesh Hegde
e46f24e4e2 add resource for hono (#6253) 2024-07-29 09:57:45 +01:00
Satyam Vyas
5b723198be Improved usecontext@D5_O-uElftYGQr_bTU_se.md (#6257)
* Improved usecontext@D5_O-uElftYGQr_bTU_se.md

- Rectified bullet point structure (earlier erroneous)
- Added a video tutorial for the same

* Update src/data/roadmaps/react/content/usecontext@D5_O-uElftYGQr_bTU_se.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-29 09:55:03 +01:00
Satyam Vyas
a1996b6fb8 Update shadcn-ui@njKsYNkwTXPQ1NjlGKXab.md (#6258)
`Added resources for Shadcn`
- Added links to the website and official documentation
- Added video tutorial 
- Added a guide explaining the use cases of the framework
2024-07-29 09:54:13 +01:00
Beryl Atieno
24533cc887 update Go types and type assertions (#6260)
* update Go types and type assertions

* Update src/data/roadmaps/golang/content/101-go-advanced/102-types-and-type-assertions.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-29 09:53:04 +01:00
André Oliveira
82ba5898a7 Update comptia resources(#6249)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.

* Update comptia-network.md

- Update Exam Details.
- Preparation Resources.
- New links.
2024-07-27 01:11:47 +01:00
nufuk
7dd8dfc70f Fix invalid links in blockchain roadmap (#6246)
Fixed broken links for "Visit the following relevant roadmaps". Backend redirected to javascript and Rust redirected to python.
2024-07-26 22:02:13 +01:00
Kamran Ahmed
c186289cde Update link in Node.js roadmap 2024-07-26 21:58:35 +01:00
Enguang Cai
81aa63c098 Adding resource links to SwiftUI (#6240)
* adding contents to swiftui data binding

* adding contents to swiftui - views and modifiers

* adding contents to swiftui - state management

* adding contents to swiftui - navigation

* correcting typo in state management
2024-07-26 21:51:25 +01:00
Kamran Ahmed
4dc4bfb9ee Redraw nodejs roadmap using our editor 2024-07-26 21:42:09 +01:00
Jim Bennett
a0c49edc80 Update introduction-to-angular@KDd40JOAvZ8O1mfhTYB3K.md (#6245)
Adding a description to the angular introduction with a link to the core angular website. This was generated live on a stream using Pieces for developers!
2024-07-26 18:18:35 +01:00
Kamran Ahmed
8206a3594a Update resource content 2024-07-26 12:53:19 +01:00
Satyam Vyas
49472a20c9 Updated useref@t_laNdMmdLApYszqXRdWg.md (#6239)
* Update useref@t_laNdMmdLApYszqXRdWg.md

Added useRef documentation for React Developer Roadmap on roadmap.sh

* Update src/data/roadmaps/react/content/useref@t_laNdMmdLApYszqXRdWg.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-26 09:11:14 +01:00
Benny Neugebauer
62598ec5cd Describe how TypeScript checks JavaScript files (#6238) 2024-07-26 09:10:02 +01:00
Glen Miracle
068a896caf Update Detailed Explanation for useCallback Hook in React Documentation usecallback@2zrN65JZhCyNimi33g78f.md (#6237)
* Update usecallback@2zrN65JZhCyNimi33g78f.md

this is an update for the useCallback explanation on roadmap.sh

* Update src/data/roadmaps/react/content/usecallback@2zrN65JZhCyNimi33g78f.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-26 09:07:59 +01:00
André Oliveira
331c45446c Update cybersecurity roadmap links (#6236)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md

* Update comptia-security.md

- Fix all broken links.
- Update Exam Details.
- Add new links.
- Remove outdated links.
2024-07-25 22:41:26 +01:00
Darlin Daniel Arias M.
5df2572f02 Update react releated roadmaps Frontend Roadmap data-link (#6233) 2024-07-25 18:08:53 +01:00
dsh
91be286f8e Update devops vs sre guide (#6232) 2024-07-25 17:12:12 +01:00
Kamran Ahmed
e114c2f246 Update related roadmaps 2024-07-25 16:58:39 +01:00
magjogui
4821f9ff6d Fix typo (#6230)
It just a letter, but whenever you are learning, one letter can make the difference... I hope I will start contributing more and more to the project.

The typo was proxmax and not proxmox...

src: src/data/roadmaps/cyber-security/content/proxmax@jqX1A5hFF3Qznqup4lfiF.md
2024-07-25 16:35:29 +01:00
Kamran Ahmed
5f9c3f2813 Fix file name 2024-07-25 16:35:16 +01:00
dsh
2787620c5a update fs-vs-swe guide (#6228) 2024-07-25 16:31:40 +01:00
Kamran Ahmed
714263c184 Redraw angular roadmap using our editor 2024-07-25 16:22:47 +01:00
dsh
34423f4e83 update how to become a devops engineer guide (#6229) 2024-07-25 14:53:12 +01:00
ㅅㅡㅇㅇㅕㅂ
8e4baa02b1 Update 103-queues.md (#6224)
This is a tutorial about queues, but it was referencing a video link about stacks.
2024-07-25 09:15:06 +01:00
André Oliveira
adfdd1eabe Update dns.md (#6223)
* Update dns.md - Fix the YouTube video link error and update the video title.

* Update understand-cia-triad.md
2024-07-25 09:13:43 +01:00
fleurien
2ab437077c Fix typo data-analyst.json (#6222) 2024-07-25 09:12:39 +01:00
Gabriel Barbosa
16056db603 Update usecontext@D5_O-uElftYGQr_bTU_se.md (#6221)
* Update usecontext@D5_O-uElftYGQr_bTU_se.md

* Update usecontext@D5_O-uElftYGQr_bTU_se.md

* Update src/data/roadmaps/react/content/usecontext@D5_O-uElftYGQr_bTU_se.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-25 09:12:18 +01:00
G30RG35
0f276bf03a Update Js Roadmap Strict Equality Operator === (#6220)
* Update Js Roadmap Strict Equality Operator ===

Update @lJwcc6JoUIQoiQ6FkV2KW.md

* Update src/data/roadmaps/javascript/content/@lJwcc6JoUIQoiQ6FkV2KW.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-25 09:11:36 +01:00
Boja Sri Manu Koti Naidu
8bc81b6381 Update 100-metrics.md (#6217)
* Update 100-metrics.md

Added some extra points to the metrics, which will give a bit more knowledge on the go.

* Update src/data/roadmaps/aws/content/108-cloudwatch/100-metrics.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-25 09:08:46 +01:00
Kamran Ahmed
a8dcdf60dd Redraw JavaScript roadmap using our editor 2024-07-24 15:59:22 +01:00
Natan Yellin
539e9e1a60 Update 104-observability-engines.md (#6215) 2024-07-23 10:40:50 +01:00
dsh
380a3cd3e6 Add wadcoms, gtfobins (#6214) 2024-07-23 09:57:39 +01:00
zyadfallatah
30b60181d6 useReducer typo error fixed in the new roadmap (#6212) 2024-07-23 09:26:41 +01:00
dsh
b02a284e49 Update frontend languages guide (#6208)
* update guide and replace images

* remove whitespace
2024-07-22 21:10:33 +01:00
dsh
dd86b912c9 Update java/developer-skills guide (#6185)
* updated java/developer-skills guide

* remove whitespace
2024-07-22 21:09:47 +01:00
Kamran Ahmed
f207fdc48c Redraw Vue roadmap using our editor 2024-07-22 21:01:10 +01:00
Kamran Ahmed
5859bf5c63 Redraw react roadmap using our editor 2024-07-22 14:48:24 +01:00
Abdul Samad
f4870885cc Fix persistant search result (#6199) 2024-07-22 11:45:16 +01:00
Lilith
1cb49fc18e Minor grammar fixes to what-is-technical-writing@jl1FsQ5-WGKeFyaILNt_p.md (#6200) 2024-07-22 10:05:54 +01:00
EverSinceWWI
3a7f7a2355 Update blue-ocean-strategy@gjdCSm_jZmG_q6YjG_8Qu.md (#6206)
Added video resource
2024-07-22 09:52:47 +01:00
dsh
b4d34ba65d removed dead link (#6197) 2024-07-20 09:47:31 +01:00
Juan Gerardo Eulufi Salazar
d9c509f1eb Update 102-conditionals.md (#6196)
* Changes in copy testing pipes angular

* Add article if statements
2024-07-20 09:42:47 +01:00
dsh
8f4710d8f7 Complete iOS content (#6168)
* completed xcode, data persistence, callbacks and others

* add copy for remaining topics

* complete ios content, correct platform names
2024-07-19 20:10:25 +01:00
Eduardo Pires
4b00f300af Add content to programming languages in data analyst roadmap (#6188)
* Update learn-a-programming-lang@i2uEcaO4bJhcZ5ayRs2CQ.md

add description.

* Update src/data/roadmaps/data-analyst/content/learn-a-programming-lang@i2uEcaO4bJhcZ5ayRs2CQ.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-19 20:09:41 +01:00
Rahul Kumar
b0b01e7b83 Update content of Linux fundamentals (#6190) 2024-07-19 20:07:19 +01:00
Kamran Ahmed
c3972382af Fix duplicated content for dual process theory 2024-07-19 20:05:42 +01:00
Kamran Ahmed
9f7d902e5c Redraw computer science roadmap using our editor 2024-07-19 19:47:42 +01:00
Louis
0ac616d18e Update 101-docker-engine.md - Improving wording (#6177)
Changed wording of sentence to make more sense.
2024-07-19 09:54:37 +01:00
Kamran Ahmed
77ed07eafd Fix broken build 2024-07-18 23:27:48 +01:00
Kamran Ahmed
ba04fe112e Redraw MLOps roadmap usin gour editor 2024-07-18 23:21:17 +01:00
da-im
5a2cb3ee8d Update product-identification@fmpJB_14CYn7PVuoGZdoz.md (#6178)
Grammatical correction
2024-07-18 16:48:08 +01:00
Renan
2db553ca32 Update 103-components.md (#6179)
Update of reference links to articles. One of them was no longer working (http://makble.com/spring-mvc-components)
2024-07-18 16:47:27 +01:00
spanwalla
8f60bb58f6 Update 110-scheduler.md (#6173)
fix typo
2024-07-18 09:25:43 +01:00
Juan Gerardo Eulufi Salazar
cde6990d21 Changes in copy testing pipes angular (#6171) 2024-07-18 00:51:07 +01:00
Kamran Ahmed
45e75af774 Redraw technical writer roadmap using our editor 2024-07-18 00:30:37 +01:00
Kamran Ahmed
f05c0a36c0 Redraw technical writer roadmap using our editor 2024-07-18 00:29:39 +01:00
Kamran Ahmed
23d40e2df7 Fix missing topic on backend roadmap 2024-07-17 23:34:53 +01:00
Kiko Castro
361cc0bd4f Improve "Update writing-skills" section and add additional resources (#6170)
* Improve "Update writing-skills" section and add additional resources

* Enhanced the explanation of the importance of good writing skills for software developers
* Added three resources for further reading on effective communication and documentation

* Update src/data/roadmaps/devrel/content/writing-skills@0ntOE6PSdMl_EXB9gdgIv.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-17 23:32:54 +01:00
Martijn ten Caat
ae7bff26cc Added Hyperskill as course in Java Fundamentals (#6167)
* Added video URL on Product Management Discovery content page

* Added Hyperskill as course in Java Fundamentals
2024-07-17 14:34:47 +01:00
Martijn ten Caat
36815aa8ea Added video URL on Product Management Discovery content page (#6165) 2024-07-17 12:16:01 +01:00
Shubham Karmveer
e07a829638 Updating 100-prototype.md (#6164)
Adding a video fro understanding concept of prototype in javascript and Object prototype and Prototype Inheritance
2024-07-17 09:12:14 +01:00
Eduardo Pires
0a506b3ead Add learning resource for excel (#6163)
w3schools tutorial.
2024-07-17 00:33:49 +01:00
Eduardo Pires
fb2d007831 fix: content of trim function (#6161)
This Microsoft article talks about the features of the 'Trim' function. The function only removes the spaces: 

https://support.microsoft.com/en-us/office/trim-function-410388fa-c5df-49c6-b16c-9e5630b479f9
2024-07-17 00:32:19 +01:00
Kamran Ahmed
5cb5db0f16 Redraw server side game developer roadmap using our editor 2024-07-17 00:30:33 +01:00
Kamran Ahmed
3302c9ab3f Redraw game developer using our editor 2024-07-16 18:52:45 +01:00
Alexey Nikitchenko
e406d4121d Fix grammar in sorting algorithms articles (#6158)
* Fix grammar in 100-bubble-sort.md

* Fix grammar in 101-merge-sort.md

* Fix grammar in 103-quick-sort.md
2024-07-16 16:25:08 +01:00
dsantosmerino-wkl
918eb1dc9c Fix typo (#6157) 2024-07-16 11:08:02 +01:00
Praise Emmanuel
8809354837 Fix typo (#6155)
changed typo from Rerords -> Records
2024-07-15 23:40:53 +01:00
Kamran Ahmed
df64c0de51 Add migration for ux-design roadmap 2024-07-15 23:35:58 +01:00
Kamran Ahmed
334b17beef Redraw UX design roadmap using our editor 2024-07-15 23:35:19 +01:00
Kamran Ahmed
3e75feda6a Redraw cyber security roadmap using our editor 2024-07-15 18:10:46 +01:00
Kamran Ahmed
358a80c457 Update AI Data Scientist roadmap 2024-07-15 17:13:36 +01:00
Kamran Ahmed
37db7ebd5b Resolve merge conflicts 2024-07-15 17:09:50 +01:00
dsh
c3ca762799 Complete tf content (#6154)
* finalise tf roadmap content

* add HCP use-case content
2024-07-15 16:24:23 +01:00
alloky
bab8739405 Add ssl/tls explanation video (#6147)
* Update ssltls@0v3OsaghJEGHeXX0c5kqn.md

Very simple and newbie friendly explanation of TLS handshake

* Update src/data/roadmaps/backend/content/ssltls@0v3OsaghJEGHeXX0c5kqn.md

removed time param from link

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-15 09:59:37 +01:00
dsh
504fcd8126 correct styling of content i.e. links to the bottom (#6152) 2024-07-15 09:58:13 +01:00
dsh
3cb0d45764 fix topic not found on prometheus (#6151) 2024-07-15 09:54:59 +01:00
DMGK
75bd422ef4 Update recycleview@xIvplWfe-uDr9iHjPT1Mx.md (#6148)
* Update recycleview@xIvplWfe-uDr9iHjPT1Mx.md

* Update src/data/roadmaps/android/content/recycleview@xIvplWfe-uDr9iHjPT1Mx.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-15 09:47:46 +01:00
Kamran Ahmed
76a9d67018 Migrate progress for software architect roadmap 2024-07-14 14:08:32 +01:00
Kamran Ahmed
2fccb646b6 Migrate content for software architect roadmap 2024-07-14 14:08:04 +01:00
Kamran Ahmed
568a357b97 Redraw software architect roadmap 2024-07-14 10:56:00 +01:00
dsh
e69c53b49d updated images, added alt tags, adding client facing images. (#6140) 2024-07-13 01:48:02 +01:00
Kamran Ahmed
9a758bc069 Migrate QA roadmap to use our editor 2024-07-12 20:51:35 +01:00
Kaylum Snape
26fad32246 Update punctuation in TriggerVerifyEmail.tsx (#6138)
- Removed a duplicate full stop from text displayed to the user during verifying email flow.
2024-07-12 15:50:51 +01:00
Arik Chakma
c7ed1bd59f fix: username input (#6141) 2024-07-12 15:50:30 +01:00
dsh
f618ef0bf6 Add content and links to multiple TF topics (#6142)
* add content to modules, provisioners and workspaces

* fix style on module best practices
2024-07-12 15:25:38 +01:00
Howie Z
48b636b145 Update 101-tester-mindset.md (#6136)
Updated markdown with up to date resources
2024-07-12 09:35:42 +01:00
Torben
c8e968949e Fix small typo in devops beginner roadmap intro text (#6137)
Co-authored-by: Torben Labs <torben.labs@sportec-solutions.com>
2024-07-12 09:33:27 +01:00
Kamran Ahmed
26967da40b Migrate blockchain roadmap to our editor 2024-07-11 21:13:16 +01:00
Kamran Ahmed
7e09d54a65 Checkboxes not being marked as done 2024-07-11 12:52:31 +01:00
Konrad
0b47cfc981 style: remove whitespace characters in roadmaps resources (#6131) 2024-07-11 11:57:59 +01:00
Ed Lan
b7daa93f7c Small FAQ update (#6133) 2024-07-11 11:57:39 +01:00
Konrad
de624e1967 feat(roadmap/angular): add summary and resources about zones section (#6132) 2024-07-11 09:36:47 +01:00
Konrad
bcac605aeb fix(roadmaps/angular): guards roadmap information (#6129)
- remove deprecated `canLoad` angular guard
- change the description to use functional guards
2024-07-11 09:33:40 +01:00
Arik Chakma
f16aa78829 fix: todo uncheck (#6126) 2024-07-11 00:10:17 +01:00
dsh
1330e5c4b9 Terraform - Complete state topics (#6125)
* complete state topics

* added more content, fixed typo

* Update src/data/roadmaps/terraform/content/graph@vAFFgKSthyj_3Lxt-Z6pg.md

add graphviz
2024-07-10 23:44:25 +01:00
Ruslan Semagin
a4b0a72c37 add links to 'ring' in Rust Cryptography (#6120) 2024-07-10 09:11:03 +01:00
Jhonatan Mustiola
680b2241e8 Fix link labels (#6122)
* Fix link labels

* Update src/data/roadmaps/rust/content/101-language-basics/103-data-structures/113-queue.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-10 09:10:04 +01:00
Kamran Ahmed
b48f81d98d Migrate PostgreSQL roadmap to our editor 2024-07-09 23:04:51 +01:00
Konrad
f179033dd3 feat(roadmap/angular): update rxjs transformation section (#6119)
- remove deprecated flatMap operator (Renamed to mergeMap. Will be removed in v8)
- add exhaustMap
- add video for Higher-Order RxJs Mapping Operators
- sort operators by complexity
- change the type of some resources to the **official** category
2024-07-09 16:04:28 +01:00
dsh
853c228623 fix duplicate title on 8 fs dev skills guide (#6117) 2024-07-09 14:13:12 +01:00
dsh
cebb561afe Add swiftui, uikit & reactive programming content (#6114) 2024-07-09 13:09:53 +01:00
dsh
d1a698447d add output, deployment and clean up content (#6115)
* add output, deployment and clean up content

* Update src/data/roadmaps/terraform/content/deployment@pjmOK1MEMnIV_zAlaOF01.md

add period

* Apply suggestions from code review

Committed suggested changes.

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-09 13:09:34 +01:00
Kamran Ahmed
830aae4d9c Add missing topic files 2024-07-09 13:08:52 +01:00
Kamran Ahmed
f1a34b3997 Fix alignment on iOS roadmap 2024-07-09 13:08:52 +01:00
Alan Klimowski
92b519396d FIx links for sql vs nosql (#6113) 2024-07-09 09:05:29 +01:00
Brandon Gregori
e04712aa2d Add description and links relating to Netlify Functions in DevOps roadmap (#6108)
* Update netlify@hCKODV2b_l2uPit0YeP1M.md

Add description and links relating to Netlify Functions

* Update src/data/roadmaps/devops/content/netlify@hCKODV2b_l2uPit0YeP1M.md

added more to the copy.

* Update src/data/roadmaps/devops/content/netlify@hCKODV2b_l2uPit0YeP1M.md

changed tag from article to official

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-09 09:04:17 +01:00
Jhonatan Mustiola
7ac388e51c Add resources for rust (#6109)
* Update 109-hashset.md

More links were added

* Update src/data/roadmaps/rust/content/101-language-basics/103-data-structures/109-hashset.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-09 01:46:49 +01:00
Kamran Ahmed
9ddda3a255 Migrate ai and data scientist roadmap 2024-07-09 01:45:05 +01:00
Carlos Martinho
64e2e43b82 Adding info about CouchDB (#6111)
* Add info about CouchDB

* Update mongodb top posts typo

* adjust content style

* adjust content style

* Update src/data/roadmaps/backend/content/mongodb@28U6q_X-NTYf7OSKHjoWH.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-09 00:38:53 +01:00
Bit
6ec8d2a29b Fixed markdown typo (#6112) 2024-07-09 00:35:53 +01:00
Kamran Ahmed
9ec6541ad7 Fix broken UI in fullstack roadmap 2024-07-08 19:44:21 +01:00
github-actions[bot]
c190bdb6b2 chore: update dependencies to latest (#5974)
Co-authored-by: kamranahmedse <kamranahmedse@users.noreply.github.com>
2024-07-08 19:19:08 +01:00
dsh
f016fdbb72 Add introduction content for DevRel roadmap (#6062)
* completed the introduction section content

* \Update src/data/roadmaps/devrel/content/what-is-devrel@SiYUdtYMDImRPmV2_XPkH.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-08 19:18:49 +01:00
Arik Chakma
10a5268a9f fix: checkbox right click (#6103)
* fix: checkbox right click

* fix: checkbox right click

* fix: remove check

* fix: topic id
2024-07-08 19:18:04 +01:00
dsh
f08c7d5052 fix incorrect Id on SOAP api (#6107) 2024-07-08 19:15:18 +01:00
Kamran Ahmed
41109ecd90 Update full-stack roadmap alignment 2024-07-08 19:12:13 +01:00
Kamran Ahmed
fa3a3adc65 Redraw product manager roadmap 2024-07-08 19:02:46 +01:00
dsh
f4c2616b88 Add 12 in demand FE skills guide (#6029)
* add 12 in demand FE skills guide

* rename to frontend-developer-skills.md

* rename to frontend-developer-skills.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-07-08 16:11:38 +01:00
dsh
dadaa18687 Add full stack dev skill guide (#6101)
* partially complete guide staging

* complete full-stack developer skills guide
2024-07-08 16:10:53 +01:00
dsh
3c065338db fixed file name issue and added content to 2-3 trees (#6100) 2024-07-08 14:11:36 +01:00
dsh
cd057508cb correct file name for solr (#6099) 2024-07-08 13:58:51 +01:00
Kamran Ahmed
366bd61562 Fix content file not found 2024-07-08 12:26:52 +01:00
Arik Chakma
9154a57eb9 feat: implement todo and resource button (#6055)
* feat: implement todo and resource button

* feat: add hover color
2024-07-08 12:03:58 +01:00
Martins Gouveia
24f9e0c6ce Update healthkit@Jsu5f6QASpuvpky_W5q-O.md (#6097) 2024-07-08 11:53:13 +01:00
Abdallah Gaber
8b82746676 Adding console.* and more recources to 106-nodejs-command-line-apps (#6098)
* Adding console.* and more recources to 106-nodejs-command-line-apps

* Update src/data/roadmaps/nodejs/content/106-nodejs-command-line-apps/101-printing-output/index.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-08 11:24:59 +01:00
dsh
d09962b6a3 Update topic titles (#6096) 2024-07-08 10:58:35 +01:00
Maria
df3dfe9971 updating swiftlint content (#6073)
* updating swiftlint content

* making code review changes

adding standard line and removing installation instructions

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>

* Update src/data/roadmaps/ios/content/swiftlint@NnTC3R8goZQTXHmfHKHbM.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-08 10:14:16 +01:00
Abdallah Gaber
ec175482bd Updates on 106-nodejs-command-line-apps (#6087)
* updates on 106-nodejs-command-line-apps

* Apply suggestions from code review

Slight style and guideline editting

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-08 10:12:10 +01:00
Damar
5aa67c2e2b Fix typo in final paragraph (#6093) 2024-07-08 10:05:01 +01:00
garvit3835
22290ae0b7 Update terraform-validate@wdYLjB-tKg76B7YcnhevQ.md (#6095)
* Update terraform-validate@wdYLjB-tKg76B7YcnhevQ.md

* Update src/data/roadmaps/terraform/content/terraform-validate@wdYLjB-tKg76B7YcnhevQ.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-08 09:59:45 +01:00
Konrad
a8f68371f0 feat(roadmap/angular): add more resources about angular routing (#6089) 2024-07-08 00:15:01 +01:00
Chad Davis
0da2cab0ab Fix capitalization (#6082)
* Replace VCS Hosting with Repo Hosting Services

* Fix capitalization on Repo Hosting Services and GitHub

* Replace VCS Hosting with Repo Hosting Services and fix capitalization on Bitbucket

* Fix capitalization on Bitbucket

* Fix capitalization on Bitbucket

* Fix capitalization on Bitbucket

* Fixed spelling mistake

Changed "None English content." to "Non-English content."
2024-07-07 18:18:52 +01:00
Konrad
bab0ec0a5d fix(roadmap/angular): remove outdated article about angular forms (#6088)
removed link to article was about angularjs version
2024-07-07 14:35:35 +01:00
Karim Safan
36b42dfaa2 Update 102-loops.md (#6071)
bug in the code
2024-07-07 14:02:50 +01:00
dsh
6cd18458db add iOS copy and links (#6059) 2024-07-05 15:57:09 +01:00
Kamran Ahmed
93eb568bbd Migrate android roadmap to new format 2024-07-05 15:47:03 +01:00
Kamran Ahmed
3997641d0b Add android content 2024-07-05 15:47:03 +01:00
Martins Gouveia
3fda008f12 Update arkit@k3uHcF0CsyHr6PK95UwR1.md (#6061)
Add content and resources to Arkit section

- Updated content about ARKit framework
- Included additional links to oficial documentation
2024-07-05 13:39:08 +01:00
Nikhil
7f1f58516e DSA | Updated 105, Sorting Algorithm links (#6063)
* DSA | Updated 105, Sorting Algorithm links

* Update src/data/roadmaps/datastructures-and-algorithms/content/105-sorting-algorithms/101-merge-sort.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 13:31:23 +01:00
Ruslan Semagin
afb0da4bd6 link to article 'How to write documentation' in 'Rust' (#6058) 2024-07-05 09:49:40 +01:00
mrgsdev
485b3d5c9a Update hig@1I5eFKqFVBxWLAXfpgNXO.md (#6032)
* Update hig@1I5eFKqFVBxWLAXfpgNXO.md

This commit includes to the Human Interface Guidelines (HIG) documentation.

* Update src/data/roadmaps/ios/content/hig@1I5eFKqFVBxWLAXfpgNXO.md

style fix

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:31:35 +01:00
mrgsdev
78e20d1e85 Update iboutlets@tuUuLInq0p-nhehe2AqPg.md (#6035)
* Update iboutlets@tuUuLInq0p-nhehe2AqPg.md

* Update src/data/roadmaps/ios/content/iboutlets@tuUuLInq0p-nhehe2AqPg.md

fix style

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:29:45 +01:00
mrgsdev
e7cd703607 Update storyboards@a2CqrCJSxGfHq6_Y9f_re.md (#6036)
* Update storyboards@a2CqrCJSxGfHq6_Y9f_re.md

* Update src/data/roadmaps/ios/content/storyboards@a2CqrCJSxGfHq6_Y9f_re.md

fix styling

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:29:03 +01:00
mrgsdev
01c78a8cf4 Update auto-layout@j2BL0sf3WjnJZZWa7cCjy.md (#6037)
* Update auto-layout@j2BL0sf3WjnJZZWa7cCjy.md

* Update src/data/roadmaps/ios/content/auto-layout@j2BL0sf3WjnJZZWa7cCjy.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:28:04 +01:00
mrgsdev
cc123f74ea Update lottie@i-T6GTqS0FZ_Llt5v4SvR.md (#6038) 2024-07-05 08:26:09 +01:00
mrgsdev
fed5f722b9 Update mvc@a-QDI7Ei-B5BRHbicFcfG.md (#6039) 2024-07-05 08:25:16 +01:00
mrgsdev
cb4b5a4cc9 Update navigation-view@IBr2P7dknWTnZ2a-fFCqN.md (#6040) 2024-07-05 08:24:24 +01:00
mrgsdev
38be5892d3 Update navigation-stacks@TLm70PlTI0K3Odn1iYxWX.md (#6041)
Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:23:11 +01:00
mrgsdev
24b47d3dd7 Update uikit@-7OW2IgiMk1eot1PaYd7m.md (#6042)
* Update uikit@-7OW2IgiMk1eot1PaYd7m.md

* Update src/data/roadmaps/ios/content/uikit@-7OW2IgiMk1eot1PaYd7m.md

adding content from my draft PR

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:22:09 +01:00
mrgsdev
783e2400b7 Update navigation@FXUrfyvuIIOH7VDnT_E0z.md (#6043) 2024-07-05 08:20:23 +01:00
mrgsdev
c9390d8612 Update core-data@H4-Dp2WTA6HAZiFRQdLjx.md (#6044)
* Update core-data@H4-Dp2WTA6HAZiFRQdLjx.md

* Update src/data/roadmaps/ios/content/core-data@H4-Dp2WTA6HAZiFRQdLjx.md

swapped to a video as the course wasn't free/was behind a login.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:19:18 +01:00
mrgsdev
0cad5890ea Update swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md (#6045)
* Update swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md

* Update src/data/roadmaps/ios/content/swift-package-manager@KFkX8_Hv9SCFeCtZMZIQM.md

add spacing

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:17:15 +01:00
mrgsdev
f2297389a7 Update cocoapods@epr1sOEZIAOwlgb8bre7r.md (#6046) 2024-07-05 08:16:32 +01:00
mrgsdev
68906c6cf6 Update core-ml@7s9Elv80TbZX_-NZpyutj.md (#6048) 2024-07-05 08:15:39 +01:00
mrgsdev
d5ea2ed17a Update dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md (#6049)
* Update dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md

* Update src/data/roadmaps/ios/content/dynamic-type@0nei6iwP4Pgi_j4vVi_Qt.md

Removing templating

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-05 08:15:15 +01:00
mrgsdev
6118162b03 Update accessibility@1DZYPqvgY6GtwMCS7N2y-.md (#6050) 2024-07-05 08:13:59 +01:00
Florian Schweizer
0a675760ed Add Combine & NavigationStack content to the iOS roadmap (#6052)
Add content to Navigated stacks and combine
2024-07-05 08:13:25 +01:00
mrgsdev
4b5635c5e5 Update voice-over@trAMZVA4tDB7b_qAgiWNW.md (#6051) 2024-07-05 08:12:37 +01:00
mrgsdev
ee298f9959 Update keeping-updated-with-wwdc@fOOQurIL1w3PwH5Mep9x1.md (#6053) 2024-07-05 08:11:29 +01:00
mrgsdev
d09710fee6 Update new-project@BJgoAgH85U6S3RtXq7hHV.md (#6054) 2024-07-05 08:11:00 +01:00
Guilherme Carvalho de Azevedo
7d3d022d5a fix(devops-roadmap): typo fixed (Pometheus to Prometheus) (#6056) 2024-07-05 08:09:43 +01:00
mrgsdev
e81571f7fc Update history-and-why-swift@z4-1Gc95JKYAn2RPFc7hw.md (#6034) 2024-07-05 08:08:00 +01:00
Farzad Mohtasham
ed01ffbefa Tanstack/Router Added to React-Router topic (#6030)
* Added Tanstack-Router to the React Routers section
2024-07-05 08:06:38 +01:00
Farzad Mohtasham
1e5b467124 Added Zustand video tutorial for State-management topic (#6028)
Add Zustand links & Higher Order videos.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-04 16:13:17 +01:00
Konrad
03b6337388 refactor(roadmap/angular): update links to new angular.dev documentation (#6024)
additionally:
- remove duplicated links in some documentations
- improve titles
2024-07-04 15:46:38 +01:00
dsh
9aed682629 add version management subtopic (#6025)
* add version management subtopic

* Update src/data/roadmaps/terraform/content/version-management@6zFuSNOfbPaYIE_t--2nr.md

correct typo

* Update src/data/roadmaps/terraform/content/version-management@6zFuSNOfbPaYIE_t--2nr.md

Co-authored-by: Konrad <kord.stp@gmail.com>

---------

Co-authored-by: Konrad <kord.stp@gmail.com>
2024-07-04 15:45:31 +01:00
dsh
1c515f1d8f altered title and subtitle to reflect devloper advocate (#6026) 2024-07-04 14:48:27 +01:00
dsh
1ebf850882 Adding links and copy to Terraform roadmap (#5914)
* Adding links and copy to Terraform roadmap

* added hcl content

* add resource topic content

* add tf meta-argument content and copy

* add content for variables and outputs

* added more links to areas that are lacking

* Apply suggestions from code review

Corrected styling
2024-07-04 14:18:57 +01:00
Ankita soni
b7b8a935c1 Update 101-iaas-paas-saas.md (#6023)
Add popular youtube video

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-04 09:31:52 +01:00
Abdallah Gaber
3cf0a7ca8a Roadmap: MORE Node.js Content and Resources Updates and Fixes for Nearly Half the Roadmap (#6022)
Corrected type tags and links, formatted content text, added new links.
2024-07-04 09:28:53 +01:00
Kamran Ahmed
fac090c803 Fix height of the tips box 2024-07-04 01:35:13 +01:00
Kamran Ahmed
adc44ed325 Migrate data analyst roadmap 2024-07-04 01:21:18 +01:00
Kamran Ahmed
2c79d85c67 Add progress caching cleanup 2024-07-03 12:44:36 +01:00
Kamran Ahmed
e24f5dfe6a Add devops roadmap 2024-07-03 12:44:36 +01:00
Kamran Ahmed
ad712b2c4a Redraw devops roadmap with editor 2024-07-03 12:44:35 +01:00
ChuYang
f3fda96c15 chore(docs): fix typos and grammar errors for react.md (#6018) 2024-07-03 10:51:23 +01:00
Farzad Mohtasham
db1ba63e6c feat: Added 3 videos to React-Roadmap, For HOC (#6013) 2024-07-03 09:42:46 +01:00
Abdallah Gaber
f63c59d9ee Roadmap: Node.js Content and Resources Updates and Fixes (#6015)
Corrected type tags, added some extra copy, added new links.
---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-03 09:41:10 +01:00
Arik Chakma
72cc28a436 fix: label line break (#6014) 2024-07-02 22:23:07 +01:00
dsh
58e2405fa0 correct FS link to FS roadmap rather than react (#6010) 2024-07-02 13:59:03 +01:00
Amirali Toori
e5ee35acee Addition: [roadmaps/DataAnalyst] Add article for Finding Outliers (#5999) 2024-07-02 13:28:37 +01:00
Subroto Banerjee
a347c1739b Articles on API security, server security and cyber security (#6001)
Add content links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-02 13:27:36 +01:00
Timofey Veretnov
10ac77308d Concurrency in Swift by Apple (#6004)
Updated styling and copy.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-02 13:20:05 +01:00
Nikhil
de6aaa262b DSA Roadmap | Updated Links for 102 & 105 (#6007)
Update 103-quick-sort.md
2024-07-02 13:15:24 +01:00
xaanxex
1fe5512310 Update 108-exception-handling.md (#6008)
added 2 article links
2024-07-02 13:14:02 +01:00
BANO
96b8e109b1 Add viem library to blockchain roadmap (#5975) (#6009)
* Add viem library to blockchain roadmap (#5975)

* Update src/data/roadmaps/blockchain/content/109-dapps/108-client-libraries/index.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-02 13:12:10 +01:00
Kamran Ahmed
64e71574d2 Update shout-out text on devrel roadmap 2024-07-02 11:15:44 +01:00
Kamran Ahmed
5913564d94 Remove console.log 2024-07-02 00:16:48 +01:00
Kamran Ahmed
6686e9361c debug code 2024-07-02 00:07:32 +01:00
Kamran Ahmed
e738936b5e Arrow alignment fixes 2024-07-01 23:53:54 +01:00
Kamran Ahmed
b97e2c7ce1 Fix alignment of devrel engineer 2024-07-01 23:08:49 +01:00
Kamran Ahmed
3e312b6aa7 Fix alignment of devrel engineer 2024-07-01 23:04:38 +01:00
Kamran Ahmed
e8a430db47 Update FAQ for devrel engineer 2024-07-01 23:03:46 +01:00
Kamran Ahmed
47e6f8e926 Add link to devrel engineer roadmap in readme 2024-07-01 22:56:02 +01:00
Kamran Ahmed
fa6f4aa6e3 Add DevRel roadmap assets 2024-07-01 22:52:09 +01:00
Kamran Ahmed
cf0d10eeed Add DevRel roadmap 2024-07-01 22:32:59 +01:00
Amirali Toori
38d96682cf Addition: [roadmaps/DataAnalyst] Add article for Correlation Analysis (#5997) 2024-07-01 16:26:40 +01:00
Mrutyunjay Lodhi
61788edcd0 feat: Added Article for flutter internals (#5995) 2024-07-01 11:54:38 +01:00
mrgsdev
c48907c5e0 Update memory-management (#5992)
* Update memory-management@tqbg8mBJfjuXacdMlIB_L.md

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-01 11:40:34 +01:00
Leni Kirilov
90371b081a Java roadmap - multiple fixes (#5957)
Adding copy, content links & remove broken links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-01 10:39:44 +01:00
Leni Kirilov
c80591c1cf Java roadmap: jvm clarifications (#5945)
removed duplicate link
added JVM languages and GraalVM as a popular alternative

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-01 10:34:38 +01:00
mrgsdev
4734a8eb02 Update xcode@la5M4VoH79bhnN8qj5Izp.md (#5967)
Added two official videos from the Apple YouTube channel:
- WWDC24: What’s new in Xcode 16
- WWDC24: Xcode essentials
---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-07-01 10:31:25 +01:00
Amirali Toori
b6ceebae9c Add Article for 101-kurtosis.md in Data Science Road map (#5981)
Add a link (article) that describes the topic of Kurtosis.
2024-07-01 10:24:07 +01:00
Amirali Toori
54459a52f2 Add an article to Data Science roadmap about Skewness concept (#5982)
This is a simple and useful article, which I think might be very useful for understanding the concept of skewness.
2024-07-01 10:22:44 +01:00
Amirali Toori
446373532f Addition: [roadmaps/DataScience] Add article for Dispersion (#5983) 2024-07-01 10:22:00 +01:00
Micael Andrade
a69459ba31 fixing broken link (#5985) 2024-07-01 09:54:57 +01:00
Konrad
7f35c2f6f0 docs(contributing): remove a duplicated opensource type (#5971) 2024-06-30 01:49:53 +06:00
dsh
7e2f9d3e6b add linux permissions article and video (#5964) 2024-06-28 16:04:08 +01:00
fellalli
e4d106904e Corrected / Improved C++ roadmap (#5947)
Updated c++ content with `std::` as this is the recommended method. Added content links where needed and corrected various wording and grammar.
2024-06-28 14:26:20 +01:00
MTRX
7d694f3e56 Fix and add links in Computer Science roadmap (#5960)
Corrected daily.dev feed link & added content links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-06-28 14:23:44 +01:00
Jhonatan Mustiola
338bce1308 Update 108-hashmap.md (#5958)
Add Rust Hashmap content links.

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-06-28 14:20:57 +01:00
Nikhil
c9d6b36b34 Fixed Typo for DSA Roadmap (#5962)
Added content links and fixed link syntax error.
---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-06-28 14:17:17 +01:00
Ruslan Semagin
2874eb0a42 add links for 'Rust Macros' (#5963) 2024-06-28 14:12:59 +01:00
Kamran Ahmed
a62ed919c1 Add github URL in redirect 2024-06-28 12:36:29 +01:00
Kamran Ahmed
9ecf4a9d78 Add x URL 2024-06-28 12:33:24 +01:00
Kamran Ahmed
2c373c7574 Add links for discord, twitter and youtubeg 2024-06-28 12:18:33 +01:00
Kamran Ahmed
d9cdc95a79 Update product mangaement SEO description 2024-06-27 22:23:19 +01:00
Kamran Ahmed
3af4bde2ea Fix text wrap on TF roadmap 2024-06-27 22:23:19 +01:00
Arik Chakma
1ee6f0e125 feat: add daily dev link in profile (#5948) 2024-06-27 11:52:03 +01:00
Jhonatan Mustiola
9471bf50f9 Update 107-string.md (#5951)
More links were added to the Vector step in the Rust roadmap
---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-06-27 10:04:51 +01:00
Nikhil
f143d800bd DRAFT: Added link(s) for DSA Roadmap (#5935)
* Added various content links

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
2024-06-27 09:55:38 +01:00
Jacob Penner
f7b42a63bf feat: Add content links to API Design roadmap (#5869)
* Add content links to 'What are APIs' section

* Add content links to 'API Documentation Tools' section

* Add content links to 'HTTP' section

* Add content links to 'HTTP Versions' section

---------

Co-authored-by: dsh <daniel.s.holdsworth@gmail.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2024-06-27 09:46:44 +01:00
Leni Kirilov
212be69582 Update 106-files-and-apis.md (#5943)
added newer Files.* API with articles
2024-06-27 09:42:54 +01:00
MTRX
393eb6c87d Add and correct links in C++ resources section (#5950) 2024-06-27 09:40:02 +01:00
Michael Budnikov
fe6e0830eb All additional links at the end of the articles in C++ roadmap have been wrapped with 'Learn more from the following resources:' line as in contribution docs stated (#5949) 2024-06-27 09:36:19 +01:00
Ye Naing Tun
24c4221591 Add Content links to 'Vue' Section (#5934)
* added Vue content links.
2024-06-27 09:34:11 +01:00
7791 changed files with 308110 additions and 289870 deletions

View File

@@ -3,6 +3,6 @@
"enabled": false
},
"_variables": {
"lastUpdateCheck": 1719080230711
"lastUpdateCheck": 1739229597159
}
}

1
.astro/types.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="astro/client" />

View File

@@ -1,3 +1,4 @@
PUBLIC_API_URL=https://api.roadmap.sh
PUBLIC_AVATAR_BASE_URL=https://dodrc8eu8m09s.cloudfront.net/avatars
PUBLIC_EDITOR_APP_URL=https://draw.roadmap.sh
PUBLIC_EDITOR_APP_URL=https://draw.roadmap.sh
PUBLIC_COURSE_APP_URL=http://localhost:5173

View File

@@ -0,0 +1,35 @@
name: "🙏 Submit a Project Idea"
description: Help us add project ideas to roadmaps.
labels: [project contribution]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to submit a project idea! Please fill out the information below and we'll get back to you as soon as we can.
- type: input
id: roadmap-title
attributes:
label: What Roadmap is this project for?
placeholder: e.g. Backend Roadmap
validations:
required: true
- type: dropdown
id: project-difficulty
attributes:
label: Project Difficulty
options:
- Beginner
- Intermediate
- Advanced
validations:
required: true
- type: textarea
id: roadmap-description
attributes:
label: Add Project Details
description: Please write a detailed description of the project in 3rd person e.g. "You are required to build a..."
placeholder: |
e.g. You are required to build a RESTful API...
validations:
required: true

View File

@@ -1,14 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: Roadmap Request
url: https://discord.gg/cJpEt5Qbwa
url: https://roadmap.sh/discord
about: Please do not open issues with roadmap requests, hop onto the discord server for that.
- name: 📝 Typo or Grammatical Mistake
url: https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data
about: Please submit a pull request instead of reporting it as an issue.
- name: 💬 Chat on Discord
url: https://discord.gg/cJpEt5Qbwa
url: https://roadmap.sh/discord
about: Join the community on our Discord server.
- name: 🤝 Guidance
url: https://discord.gg/cJpEt5Qbwa
url: https://roadmap.sh/discord
about: Join the community in our Discord server.

View File

@@ -0,0 +1,16 @@
name: Clears API Cloudfront Cache
on:
workflow_dispatch:
jobs:
aws_costs:
runs-on: ubuntu-latest
steps:
- name: Clear Cloudfront Caching
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront-api", "is_verbose": false } }'

View File

@@ -1,16 +0,0 @@
name: Clears Cloudfront Cache
on:
workflow_dispatch:
jobs:
aws_costs:
runs-on: ubuntu-latest
steps:
- name: Clear Cloudfront Caching
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront", "is_verbose": false } }'

View File

@@ -0,0 +1,16 @@
name: Clears Frontend Cloudfront Cache
on:
workflow_dispatch:
jobs:
aws_costs:
runs-on: ubuntu-latest
steps:
- name: Clear Cloudfront Caching
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront,cloudfront-course", "is_verbose": false } }'

View File

@@ -1,24 +1,26 @@
name: Deploy to EC2
on:
workflow_dispatch: # allow manual run
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: actions/setup-node@v1
- uses: actions/setup-node@v4
with:
node-version: 20
- uses: pnpm/action-setup@v3.0.0
- uses: pnpm/action-setup@v4.0.0
with:
version: 8.15.6
version: 9
# --------------------
# -------------------
# Setup configuration
# --------------------
# -------------------
- name: Prepare configuration files
run: |
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/infra-config.git configuration --depth 1
@@ -26,13 +28,14 @@ jobs:
run: |
cp configuration/dist/github/developer-roadmap.env .env
# --------------------
# Prepare the build
# --------------------
- name: Install dependencies
# -----------------
# Prepare the Build
# -----------------
- name: Install Dependencies
run: |
pnpm install
- name: Generate build
- name: Generate Production Build
run: |
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1
npm run generate-renderer
@@ -45,7 +48,7 @@ jobs:
- uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.EC2_PRIVATE_KEY }}
- name: Deploy app to EC2
- name: Deploy Application to EC2
run: |
rsync -apvz --delete --no-times --exclude "configuration" -e "ssh -o StrictHostKeyChecking=no" -p ./ ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}:/var/www/roadmap.sh/
- name: Restart PM2
@@ -58,9 +61,9 @@ jobs:
cd /var/www/roadmap.sh
sudo pm2 restart web-roadmap
# --------------------
# ----------------------
# Clear cloudfront cache
# --------------------
# ----------------------
- name: Clear Cloudfront Caching
run: |
curl -L \

23
.github/workflows/greetings.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: ❤️ Greetings
on:
issues:
types: [opened]
pull_request_target:
branches: [master]
types: [opened]
jobs:
greet:
name: Greet New Contributors
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
pr-message: |
Thank you for your first ever contribution to [roadmap.sh](https://roadmap.sh)! 🎉
Please make sure to follow the [contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/blob/master/contributing.md) when contributing to this project. Any PRs that don't follow the guidelines will be closed.
Thanks for choosing to contribute, and for helping make this project better! 🌟

View File

@@ -1,13 +1,15 @@
name: Label Issue
on:
issues:
types: [ opened, edited ]
jobs:
label-topic-change-issue:
runs-on: ubuntu-latest
steps:
- name: Add roadmap slug to issue as label
uses: actions/github-script@v3
- name: Add Labels To Issue
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -18,7 +20,7 @@ jobs:
if (issue.labels.some(label => label.name === 'topic-change')) {
if (roadmapUrl) {
const roadmapSlug = new URL(roadmapUrl[0]).pathname.replace(/\//, '');
github.issues.addLabels({
github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
@@ -28,7 +30,7 @@ jobs:
// Close the issue if it has no roadmap URL
if (!roadmapUrl) {
github.issues.update({
github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,

View File

@@ -0,0 +1,52 @@
name: Refresh Roadmap Content JSON
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
refresh-content:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm@v9
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false
- name: Setup Node.js Version 20 (LTS)
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install Dependencies and Generate Content JSON
run: |
pnpm install
npm run generate:roadmap-content-json
- name: Create PR
uses: peter-evans/create-pull-request@v7
with:
delete-branch: false
branch: "chore/update-content-json"
base: "master"
labels: |
dependencies
automated pr
reviewers: kamranahmedse
commit-message: "chore: update roadmap content json"
title: "Updated Roadmap Content JSON - Automated"
body: |
## Updated Roadmap Content JSON
> [!IMPORTANT]
> This PR Updates the Roadmap Content JSON files stored in the `public` directory.
>
> Commit: ${{ github.sha }}
> Workflow Path: ${{ github.workflow_ref }}
**Please Review the Changes and Merge the PR if everything is fine.**

View File

@@ -1,38 +0,0 @@
name: Update dependencies
on:
workflow_dispatch: # allow manual run
schedule:
- cron: '0 0 * * 0' # every sunday at midnight
jobs:
upgrade-deps:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 18
- uses: pnpm/action-setup@v2.2.2
with:
version: 7.13.4
- name: Upgrade dependencies
run: |
pnpm install
npm run upgrade
pnpm install --lockfile-only
- name: Create PR
uses: peter-evans/create-pull-request@v4
with:
delete-branch: false
branch: "update-deps"
base: "master"
labels: |
dependencies
automated pr
reviewers: kamranahmedse
commit-message: "chore: update dependencies to latest"
title: "Upgrade dependencies to latest"
body: |
Updates all dependencies to latest versions.
Please review the changes and merge if everything looks good.

View File

@@ -0,0 +1,51 @@
name: Upgrade Dependencies
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 0'
jobs:
upgrade-deps:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js Version 20 (LTS)
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup pnpm@v9
uses: pnpm/action-setup@v4
with:
version: 9
- name: Install & Upgrade Dependencies
run: |
pnpm install
npm run upgrade
pnpm install --lockfile-only
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
delete-branch: false
branch: "update-deps"
base: "master"
labels: |
dependencies
automated pr
reviewers: kamranahmedse
commit-message: "chore: update dependencies to latest"
title: "Upgrade Dependencies To Latest - Automated"
body: |
## Updated all Dependencies to Latest Versions.
> [!IMPORTANT]
> This PR Upgrades the Dependencies to the their latest versions.
>
> Commit: ${{ github.sha }}
> Workflow Path: ${{ github.workflow_ref }}
**Please Review the Changes and Merge the PR if everything is fine.**

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
.idea
.temp
.astro
# build output
dist/

View File

@@ -11,9 +11,6 @@ import react from '@astrojs/react';
// https://astro.build/config
export default defineConfig({
site: 'https://roadmap.sh/',
experimental: {
rewriting: true,
},
markdown: {
shikiConfig: {
theme: 'dracula',

View File

@@ -1,15 +1,18 @@
# Contribution
# Contribution Guidelines ✨
First of all thank you for considering to contribute. Please look at the details below:
First of all, thank you for considering to contribute. Please look at the details below:
- [New Roadmaps](#new-roadmaps)
- [Existing Roadmaps](#existing-roadmaps)
- [Adding Projects](#adding-projects)
- [Adding Content](#adding-content)
- [Guidelines](#guidelines)
- [Good vs. Not So Good Contributions](#good-vs-not-so-good-contributions)
## New Roadmaps
For new roadmaps, you can either:
- Submit a roadmap by providing [a textual roadmap similar to this roadmap](https://gist.github.com/kamranahmedse/98758d2c73799b3a6ce17385e4c548a5) in an [issue](https://github.com/kamranahmedse/developer-roadmap/issues).
- Create an interactive roadmap yourself using [our roadmap editor](https://draw.roadmap.sh/) & submit the link to that roadmap in an [issue](https://github.com/kamranahmedse/developer-roadmap/issues).
@@ -17,10 +20,32 @@ For new roadmaps, you can either:
For the existing roadmaps, please follow the details listed for the nature of contribution:
- **Fixing Typos** — Make your changes in the [roadmap JSON file](https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data/roadmaps) and submit a [PR](https://github.com/kamranahmedse/developer-roadmap/pulls).
- **Fixing Typos** — Make your changes in the [roadmap markdown file](https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data/roadmaps) and submit a [PR](https://github.com/kamranahmedse/developer-roadmap/pulls).
- **Adding or Removing Nodes** — Please open an [issue](https://github.com/kamranahmedse/developer-roadmap/issues) with your suggestion.
**Note:** Please note that our goal is <strong>not to have the biggest list of items</strong>. Our goal is to list items or skills most relevant today.
**Note:** Please note that our goal is **not to have the biggest list of items**. Our goal is to list items or skills most relevant today.
## Adding Projects
If you have a project idea that you think we should add to the roadmap, feel free to open an issue with as many details about the project as possible and the roadmap you think it should be added to.
The detailed format for the issue should be as follows:
```md
## What is this project about?
(Add an introduction to the project.)
## Skills this Project Covers
(Comma separated list of skills, e.g. Programming Knowledge, Database, etc.)
## Requirements
( Detailed list of requirements, i.e. input, output, hints to help build this, etc.)
```
Have a look at this project to get an idea of [what we are looking for](https://roadmap.sh/projects/github-user-activity).
## Adding Content
@@ -30,43 +55,44 @@ Find [the content directory inside the relevant roadmap](https://github.com/kamr
- Maximum of 8 links per topic.
- Follow the below style guide for content.
Please note that we are intentionally keeping the content under the topic popup concise. You MUST always aim to explain the topic simply in a **single paragraph** or so and provide external resources where users can learn more about the topic.
### How To Structure Content
Please adhere to the following style when adding content to a topic:
```
```md
# Topic Title
(Content)
Visit the following resources to learn more:
- [@type@Description of link](Link)
- [@type@Title/Description of Link](Link)
```
`@type@` must be one of the following and describes the type of content you are adding:
`@type@` must be one of the following and describe the type of content you are adding:
- `@official@`
- `@opensource@`
- `@article@`
- `@course@`
- `@opensource@`
- `@podcast@`
- `@video@`
It's important to add a valid type, this will help us categorize the content and display it properly on the roadmap.
It's important to add a valid type, this will help us categorize the content and display it properly on the roadmap. The order of the links based on type is same as above.
## Guidelines
- <p><strong>Please don't use the project for self-promotion!</strong><br />
- <p><strong>Please don't use the project for self-promotion!</strong><br/>
We believe this project is a valuable asset to the developer community and it includes numerous helpful resources. We kindly ask you to avoid submitting pull requests for the sole purpose of self-promotion. We appreciate contributions that genuinely add value, such as guides from maintainers of well-known frameworks, and will consider accepting these even if they're self authored. Thank you for your understanding and cooperation!
We believe this project is a valuable asset to the developer community, and it includes numerous helpful resources. We kindly ask you to avoid submitting pull requests for the sole purpose of self-promotion. We appreciate contributions that genuinely add value, such as guides from maintainers of well-known frameworks, and will consider accepting these even if they're self authored. Thank you for your understanding and cooperation!
- <p><strong>Adding everything available out there is not the goal!</strong><br />
- <p><strong>Adding everything available out there is not the goal!</strong><br/>
The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn? There might be things that are of-course being used today but prioritize the things that are most in demand today, e.g., agreed that lots of people are using angular.js today but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.</p>
The roadmaps represent the skillset most valuable today, i.e., if you were to enter any of the listed fields today, what would you learn? There might be things that are of-course being used today, but prioritize the things that are most in demand today, e.g., agree that lots of people are using angular.js today, but you wouldn't want to learn that instead of React, Angular, or Vue. Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included.</p>
- <p><strong>Do not add things you have not evaluated personally!</strong><br />
- <p><strong>Do not add things you have not evaluated personally!</strong><br/>
Use your critical thinking to filter out non-essential stuff. Give honest arguments for why the resource should be included. Have you read this book? Can you give a short article?</p>
@@ -74,28 +100,31 @@ It's important to add a valid type, this will help us categorize the content and
If you are planning to contribute by adding content to the roadmaps, I recommend you to clone the repository, add content to the [content directory of the roadmap](./src/data/roadmaps/) and create a single PR to make it easier for me to review and merge the PR.
- <p><strong>Write meaningful commit messages</strong><br >
- <p><strong>Write meaningful commit messages</strong><br/>
Meaningful commit messages help speed up the review process as well as help other contributors in gaining a good overview of the repositories commit history without having to dive into every commit.
(See the following guide on how to write good [commit messages](https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/)).
Meaningful commit messages help speed up the review process as well as help other contributors gain a good overview of the repositories commit history without having to dive into every commit.
</p>
- <p><strong>Look at the existing issues/pull requests before opening new ones</strong></p>
### Good vs Not So Good Contributions
## Good vs. Not So Good Contributions
<strong>Good</strong>
- New Roadmaps.
- Engaging, fresh content links.
- Typos and grammatical fixes.
- Content copy in topics that do not have any (or minimal copy exists).
- New Roadmaps.
- Engaging and fresh content links.
- Typos and grammatical fixes.
- Enhanced Existing Content.
- Content copy in topics that do not have any (or minimal copy exists).
<strong>Not So Good</strong>
- Adding whitespace that doesn't add to the readability of the content.
- Rewriting content in a way that doesn't add any value.
- None English content.
- PR's that don't follow our style guide, have no description and a default title.
- Links to your own blog articles.
- Adding whitespace that doesn't add to the readability of the content.
- Rewriting content in a way that doesn't add any value.
- Non-English content.
- PR's that don't follow our style guide, have no description, and a default title.
- Links to your own blog articles.
***
Have a look at the [License](./license) file.

View File

@@ -1,7 +1,7 @@
Everything including text and images in this project are protected by the copyright laws.
You are allowed to use this material for personal use but are not allowed to use it for
any other purpose including publishing the images, the project files or the content in the
images in any form either digital, non-digital, textual, graphical or written formats.
any other purpose including publishing the images, the project files or the content in
the images in any form either digital, non-digital, textual, graphical or written formats.
You are allowed to share the links to the repository or the website roadmap.sh but not
the content for any sort of usage that involves the content of this repository taken out
of the repository and be shared from any other medium including but not limited to blog
@@ -9,7 +9,7 @@ posts, articles, newsletters, you must get prior consent from the understated. T
conditions do not apply to the readonly GitHub forks created using the Fork button on
GitHub with the whole purpose of contributing to the project.
Copyright © 2023 Kamran Ahmed <kamranahmed.se@gmail.com>
Copyright © 2017 - Present. Kamran Ahmed <kamranahmed.se@gmail.com>
Please note that I am really flexible with allowing the usage of the content in this
repository. If you reach out to me with a brief detail of why and how you would like

9512
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -25,69 +25,79 @@
"generate:og": "node ./scripts/generate-og-images.mjs",
"warm:urls": "sh ./scripts/warm-urls.sh https://roadmap.sh/sitemap-0.xml",
"compress:images": "tsx ./scripts/compress-images.ts",
"generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts",
"test:e2e": "playwright test"
},
"dependencies": {
"@astrojs/node": "^8.2.5",
"@astrojs/react": "^3.4.0",
"@astrojs/sitemap": "^3.1.5",
"@astrojs/tailwind": "^5.1.0",
"@fingerprintjs/fingerprintjs": "^4.3.0",
"@nanostores/react": "^0.7.2",
"@astrojs/node": "^8.3.4",
"@astrojs/react": "^3.6.2",
"@astrojs/sitemap": "^3.2.0",
"@astrojs/tailwind": "^5.1.2",
"@fingerprintjs/fingerprintjs": "^4.5.0",
"@nanostores/react": "^0.8.0",
"@napi-rs/image": "^1.9.2",
"@resvg/resvg-js": "^2.6.2",
"@types/react": "^18.3.2",
"@types/react-dom": "^18.3.0",
"astro": "^4.9.1",
"@tanstack/react-query": "^5.59.16",
"@types/react": "^18.3.11",
"@types/react-dom": "^18.3.1",
"astro": "^4.16.1",
"clsx": "^2.1.1",
"dayjs": "^1.11.11",
"dayjs": "^1.11.13",
"dom-to-image": "^2.6.0",
"dracula-prism": "^2.1.16",
"gray-matter": "^4.0.3",
"htm": "^3.1.1",
"image-size": "^1.1.1",
"jose": "^5.3.0",
"jose": "^5.9.4",
"js-cookie": "^3.0.5",
"lucide-react": "^0.378.0",
"lucide-react": "^0.452.0",
"luxon": "^3.5.0",
"nanoid": "^5.0.7",
"nanostores": "^0.10.3",
"nanostores": "^0.11.3",
"node-html-parser": "^6.1.13",
"npm-check-updates": "^16.14.20",
"playwright": "^1.44.0",
"npm-check-updates": "^17.1.3",
"playwright": "^1.48.0",
"prismjs": "^1.29.0",
"react": "^18.3.1",
"react-calendar-heatmap": "^1.9.0",
"react-confetti": "^6.1.0",
"react-dom": "^18.3.1",
"react-tooltip": "^5.26.4",
"reactflow": "^11.11.3",
"react-tooltip": "^5.28.0",
"reactflow": "^11.11.4",
"rehype-external-links": "^3.0.0",
"remark-parse": "^11.0.0",
"roadmap-renderer": "^1.0.6",
"satori": "^0.10.13",
"sanitize-html": "^2.13.1",
"satori": "^0.11.2",
"satori-html": "^0.3.2",
"sharp": "^0.33.4",
"sharp": "^0.33.5",
"slugify": "^1.6.6",
"tailwind-merge": "^2.3.0",
"tailwindcss": "^3.4.3",
"unified": "^11.0.4",
"zustand": "^4.5.2"
"tiptap-markdown": "^0.8.10",
"tailwind-merge": "^2.5.3",
"tailwindcss": "^3.4.13",
"turndown": "^7.2.0",
"unified": "^11.0.5",
"zustand": "^4.5.5"
},
"devDependencies": {
"@playwright/test": "^1.44.0",
"@tailwindcss/typography": "^0.5.13",
"@playwright/test": "^1.48.0",
"@tailwindcss/typography": "^0.5.15",
"@types/dom-to-image": "^2.6.7",
"@types/js-cookie": "^3.0.6",
"@types/luxon": "^3.4.2",
"@types/prismjs": "^1.26.4",
"@types/react-calendar-heatmap": "^1.6.7",
"@types/react-slick": "^0.23.13",
"@types/sanitize-html": "^2.13.0",
"@types/turndown": "^5.0.5",
"csv-parser": "^3.0.0",
"gh-pages": "^6.1.1",
"gh-pages": "^6.2.0",
"js-yaml": "^4.1.0",
"markdown-it": "^14.1.0",
"openai": "^4.47.1",
"prettier": "^3.2.5",
"prettier-plugin-astro": "^0.13.0",
"prettier-plugin-tailwindcss": "^0.5.14",
"tsx": "^4.10.5"
"openai": "^4.67.3",
"prettier": "^3.3.3",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.6.8",
"tsx": "^4.19.1"
}
}

6446
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

BIN
public/images/gifs/star.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,436 @@
{
"aStaDENn5PhEa-cFvNzXa": {
"title": "Mathematics",
"description": "Mathematics is the foundation of AI and Data Science. It is essential to have a good understanding of mathematics to excel in these fields.",
"links": [
{
"title": "Mathematics for Machine Learning",
"url": "https://imp.i384100.net/baqMYv",
"type": "article"
},
{
"title": "Algebra and Differential Calculus",
"url": "https://imp.i384100.net/LX5M7M",
"type": "article"
}
]
},
"4WZL_fzJ3cZdWLLDoWN8D": {
"title": "Statistics",
"description": "Statistics is the science of collecting, analyzing, interpreting, presenting, and organizing data. It is a branch of mathematics that deals with the collection, analysis, interpretation, presentation, and organization of data. It is used in a wide range of fields, including science, engineering, medicine, and social science. Statistics is used to make informed decisions, to predict future events, and to test hypotheses. It is also used to summarize data, to describe relationships between variables, and to make inferences about populations based on samples.\n\nLearn more from the resources given on the roadmap.",
"links": []
},
"gWMvD83hVXeTmCuHGIiOL": {
"title": "Linear Algebra, Calculus, Mathematical Analysis",
"description": "",
"links": [
{
"title": "Mathematics for Machine Learning Specialization",
"url": "https://imp.i384100.net/baqMYv",
"type": "article"
},
{
"title": "Explore top posts about Math",
"url": "https://app.daily.dev/tags/math?ref=roadmapsh",
"type": "article"
},
{
"title": "Linear Algebra Youtube Course",
"url": "https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab",
"type": "video"
}
]
},
"mwPJh33MEUQ4Co_LiVEOb": {
"title": "Differential Calculus",
"description": "",
"links": [
{
"title": "Algebra and Differential Calculus for Data Science",
"url": "https://imp.i384100.net/LX5M7M",
"type": "article"
}
]
},
"Y9YJdARIRqqCBCy3GVYdA": {
"title": "Statistics, CLT",
"description": "",
"links": [
{
"title": "Introduction to Statistics",
"url": "https://imp.i384100.net/3eRv4v",
"type": "article"
}
]
},
"XJXIkWVDIrPJ-bVIvX0ZO": {
"title": "Hypothesis Testing",
"description": "",
"links": [
{
"title": "Introduction to Statistical Analysis: Hypothesis Testing",
"url": "https://imp.i384100.net/vN0JAA",
"type": "article"
},
{
"title": "Explore top posts about Testing",
"url": "https://app.daily.dev/tags/testing?ref=roadmapsh",
"type": "article"
}
]
},
"jxJtwbiCvxHqmkWkE7zdx": {
"title": "Probability and Sampling",
"description": "",
"links": [
{
"title": "Probability and Statistics: To p or not to p?",
"url": "https://imp.i384100.net/daDM6Q",
"type": "article"
},
{
"title": "Explore top posts about Statistics",
"url": "https://app.daily.dev/tags/statistics?ref=roadmapsh",
"type": "article"
}
]
},
"mJq9b50MJM9o9dLhx40iN": {
"title": "AB Testing",
"description": "",
"links": [
{
"title": "Practitioners Guide to Statistical Tests",
"url": "https://vkteam.medium.com/practitioners-guide-to-statistical-tests-ed2d580ef04f#1e3b",
"type": "article"
},
{
"title": "Step by Step Process for Planning an A/B Test",
"url": "https://towardsdatascience.com/step-by-step-for-planning-an-a-b-test-ef3c93143c0b",
"type": "article"
},
{
"title": "Explore top posts about A/B Testing",
"url": "https://app.daily.dev/tags/ab-testing?ref=roadmapsh",
"type": "article"
}
]
},
"v68nwX914qCwHDSwY_ZhG": {
"title": "Increasing Test Sensitivity",
"description": "",
"links": [
{
"title": "Minimum Detectable Effect (MDE)",
"url": "https://splitmetrics.com/resources/minimum-detectable-effect-mde/",
"type": "article"
},
{
"title": "Improving the Sensitivity of Online Controlled Experiments: Case Studies at Netflix",
"url": "https://kdd.org/kdd2016/papers/files/adp0945-xieA.pdf",
"type": "article"
},
{
"title": "Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-Experiment Data",
"url": "https://exp-platform.com/Documents/2013-02-CUPED-ImprovingSensitivityOfControlledExperiments.pdf",
"type": "article"
},
{
"title": "How Booking.com increases the power of online experiments with CUPED",
"url": "https://booking.ai/how-booking-com-increases-the-power-of-online-experiments-with-cuped-995d186fff1d",
"type": "article"
},
{
"title": "Improving Experimental Power through Control Using Predictions as Covariate — CUPAC",
"url": "https://doordash.engineering/2020/06/08/improving-experimental-power-through-control-using-predictions-as-covariate-cupac/",
"type": "article"
},
{
"title": "Improving the Sensitivity of Online Controlled Experiments: Case Studies at Netflix",
"url": "https://www.researchgate.net/publication/305997925_Improving_the_Sensitivity_of_Online_Controlled_Experiments_Case_Studies_at_Netflix",
"type": "article"
}
]
},
"n2JFGwFxTuOviW6kHO1Uv": {
"title": "Ratio Metrics",
"description": "",
"links": [
{
"title": "Applying the Delta Method in Metric Analytics: A Practical Guide with Novel Ideas",
"url": "https://arxiv.org/pdf/1803.06336.pdf",
"type": "article"
},
{
"title": "Approximations for Mean and Variance of a Ratio",
"url": "https://www.stat.cmu.edu/~hseltman/files/ratio.pdf",
"type": "article"
}
]
},
"Gd2egqKZPnbPW1W2jw4j8": {
"title": "Econometrics",
"description": "Econometrics is the application of statistical methods to economic data. It is a branch of economics that aims to give empirical content to economic relations. More precisely, it is \"the quantitative analysis of actual economic phenomena based on the concurrent development of theory and observation, related by appropriate methods of inference.\" Econometrics can be described as something that allows economists \"to sift through mountains of data to extract simple relationships.\"",
"links": []
},
"y6xXsc-uSAmRDnNuyhqH2": {
"title": "Pre-requisites of Econometrics",
"description": "",
"links": [
{
"title": "10 Fundamental Theorems for Econometrics",
"url": "https://bookdown.org/ts_robinson1994/10EconometricTheorems/",
"type": "article"
}
]
},
"h19k9Fn5XPh3_pKEC8Ftp": {
"title": "Regression, Timeseries, Fitting Distributions",
"description": "",
"links": [
{
"title": "Blockchain.com Data Scientist TakeHome Test",
"url": "https://github.com/stalkermustang/bcdc_ds_takehome",
"type": "opensource"
},
{
"title": "10 Fundamental Theorems for Econometrics",
"url": "https://bookdown.org/ts_robinson1994/10EconometricTheorems/",
"type": "article"
},
{
"title": "Dougherty Intro to Econometrics 4th edition",
"url": "https://www.academia.edu/33062577/Dougherty_Intro_to_Econometrics_4th_ed_small",
"type": "article"
},
{
"title": "Econometrics: Methods and Applications",
"url": "https://imp.i384100.net/k0krYL",
"type": "article"
},
{
"title": "Kaggle - Learn Time Series",
"url": "https://www.kaggle.com/learn/time-series",
"type": "article"
},
{
"title": "Time series Basics : Exploring traditional TS",
"url": "https://www.kaggle.com/code/jagangupta/time-series-basics-exploring-traditional-ts#Hierarchical-time-series",
"type": "article"
},
{
"title": "How to Create an ARIMA Model for Time Series Forecasting in Python",
"url": "https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python",
"type": "article"
},
{
"title": "11 Classical Time Series Forecasting Methods in Python",
"url": "https://machinelearningmastery.com/time-series-forecasting-methods-in-python-cheat-sheet/",
"type": "article"
},
{
"title": "Linear Regression for Business Statistics",
"url": "https://imp.i384100.net/9g97Ke",
"type": "article"
}
]
},
"XLDWuSt4tI4gnmqMFdpmy": {
"title": "Coding",
"description": "Programming is a fundamental skill for data scientists. You need to be able to write code to manipulate data, build models, and deploy solutions. The most common programming languages used in data science are Python and R. Python is a general-purpose programming language that is easy to learn and has a large number of libraries for data manipulation and machine learning. R is a programming language and free software environment for statistical computing and graphics. It is widely used for statistical analysis and data visualization.",
"links": []
},
"MVrAqizgkoAs2aghN8TgV": {
"title": "Learn Python Programming Language",
"description": "",
"links": [
{
"title": "Kaggle — Python",
"url": "https://www.kaggle.com/learn/python",
"type": "article"
},
{
"title": "Google's Python Class",
"url": "https://developers.google.com/edu/python",
"type": "article"
},
{
"title": "Explore top posts about Python",
"url": "https://app.daily.dev/tags/python?ref=roadmapsh",
"type": "article"
}
]
},
"StBCykpzpM4g9PRFeSNXa": {
"title": "Data Structures and Algorithms (Python)",
"description": "",
"links": [
{
"title": "Learn Algorithms",
"url": "https://leetcode.com/explore/learn/",
"type": "article"
},
{
"title": "Leetcode - Study Plans",
"url": "https://leetcode.com/studyplan/",
"type": "article"
},
{
"title": "Algorithms Specialization",
"url": "https://imp.i384100.net/5gqv4n",
"type": "article"
}
]
},
"Im0tXXn3GC-FUq2aMHgwm": {
"title": "Learn SQL",
"description": "",
"links": [
{
"title": "SQL Tutorial",
"url": "https://www.sqltutorial.org/",
"type": "article"
},
{
"title": "Explore top posts about SQL",
"url": "https://app.daily.dev/tags/sql?ref=roadmapsh",
"type": "article"
}
]
},
"l1027SBZxTHKzqWw98Ee-": {
"title": "Exploratory Data Analysis",
"description": "Exploratory Data Analysis (EDA) is an approach to analyzing data sets to summarize their main characteristics, often with visual methods. EDA is used to understand what the data can tell us beyond the formal modeling or hypothesis testing task. It is a crucial step in the data analysis process.",
"links": []
},
"JaN8YhMeN3whAe2TCXvw9": {
"title": "Data understanding, Data Analysis and Visualization",
"description": "",
"links": [
{
"title": "Exploratory Data Analysis With Python and Pandas",
"url": "https://imp.i384100.net/AWAv4R",
"type": "article"
},
{
"title": "Exploratory Data Analysis for Machine Learning",
"url": "https://imp.i384100.net/GmQMLE",
"type": "article"
},
{
"title": "Exploratory Data Analysis with Seaborn",
"url": "https://imp.i384100.net/ZQmMgR",
"type": "article"
}
]
},
"kBdt_t2SvVsY3blfubWIz": {
"title": "Machine Learning",
"description": "Machine learning is a field of artificial intelligence that uses statistical techniques to give computer systems the ability to \"learn\" (e.g., progressively improve performance on a specific task) from data, without being explicitly programmed. The name machine learning was coined in 1959 by Arthur Samuel. Evolved from the study of pattern recognition and computational learning theory in artificial intelligence, machine learning explores the study and construction of algorithms that can learn from and make predictions on data such algorithms overcome following strictly static program instructions by making data-driven predictions or decisions, through building a model from sample inputs. Machine learning is employed in a range of computing tasks where designing and programming explicit algorithms with good performance is difficult or infeasible; example applications include email filtering, detection of network intruders, and computer vision.\n\nLearn more from the following resources:",
"links": [
{
"title": "Advantages and Disadvantages of AI",
"url": "https://towardsdatascience.com/advantages-and-disadvantages-of-artificial-intelligence-182a5ef6588c",
"type": "article"
},
{
"title": "Reinforcement Learning 101",
"url": "https://towardsdatascience.com/reinforcement-learning-101-e24b50e1d292",
"type": "article"
},
{
"title": "Understanding AUC-ROC Curve",
"url": "https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5",
"type": "article"
}
]
},
"FdBih8tlGPPy97YWq463y": {
"title": "Classic ML (Sup., Unsup.), Advanced ML (Ensembles, NNs)",
"description": "",
"links": [
{
"title": "Repository of notes, code and notebooks in Python for the book Pattern Recognition and Machine Learning by Christopher Bishop",
"url": "https://github.com/gerdm/prml",
"type": "opensource"
},
{
"title": "Open Machine Learning Course",
"url": "https://mlcourse.ai/book/topic01/topic01_intro.html",
"type": "article"
},
{
"title": "Coursera: Machine Learning Specialization",
"url": "https://imp.i384100.net/oqGkrg",
"type": "article"
},
{
"title": "Pattern Recognition and Machine Learning by Christopher Bishop",
"url": "https://www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf",
"type": "article"
},
{
"title": "Explore top posts about Machine Learning",
"url": "https://app.daily.dev/tags/machine-learning?ref=roadmapsh",
"type": "article"
}
]
},
"cjvVLN0XjrKPn6o20oMmc": {
"title": "Deep Learning",
"description": "Deep Learning\n-------------\n\nDeep learning is a subset of machine learning that deals with algorithms inspired by the structure and function of the brain called artificial neural networks. Deep learning is a key technology behind driverless cars, enabling them to recognize a stop sign, or to distinguish a pedestrian from a lamppost. It is the key to voice control in consumer devices like phones, tablets, TVs, and hands-free speakers. Deep learning is getting lots of attention lately and for good reason. Its achieving results that were not possible before.",
"links": []
},
"eOFoGKveaHaBm_6ppJUtA": {
"title": "Fully Connected, CNN, RNN, LSTM, Transformers, TL",
"description": "",
"links": [
{
"title": "The Illustrated Transformer",
"url": "https://jalammar.github.io/illustrated-transformer/",
"type": "article"
},
{
"title": "Attention is All you Need",
"url": "https://arxiv.org/pdf/1706.03762.pdf",
"type": "article"
},
{
"title": "Deep Learning Book",
"url": "https://www.deeplearningbook.org/",
"type": "article"
},
{
"title": "Deep Learning Specialization",
"url": "https://imp.i384100.net/Wq9MV3",
"type": "article"
}
]
},
"Qa85hEVe2kz62k9Pj4QCA": {
"title": "MLOps",
"description": "MLOps is a practice for collaboration and communication between data scientists and operations professionals to help manage production ML lifecycle. It is a set of best practices that aims to automate the ML lifecycle, including training, deployment, and monitoring. MLOps helps organizations to scale ML models and deliver business value faster.",
"links": []
},
"uPzzUpI0--7OWDfNeBIjt": {
"title": "Deployment Models, CI/CD",
"description": "",
"links": [
{
"title": "Machine Learning Engineering for Production (MLOps) Specialization",
"url": "https://imp.i384100.net/nLA5mx",
"type": "article"
},
{
"title": "Full Stack Deep Learning",
"url": "https://fullstackdeeplearning.com/course/2022/",
"type": "article"
},
{
"title": "Explore top posts about CI/CD",
"url": "https://app.daily.dev/tags/cicd?ref=roadmapsh",
"type": "article"
}
]
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,678 @@
{
"_hYN0gEi9BL24nptEtXWU": {
"title": "What is Engineering Management?",
"description": "Engineering management is the integration of engineering principles with business practices to oversee and optimize complex engineering-driven enterprises. It involves planning, organizing, allocating resources, and directing activities that have a technological component.\n\nLearn more from the following resources:",
"links": [
{
"title": "Engineering Management Resources",
"url": "https://github.com/engineering-management/awesome-engineering-management",
"type": "article"
}
]
},
"oKbeLp4YB8rI1Q3vi0EnG": {
"title": "EM vs Tech Lead vs IC",
"description": "An Engineering Manager (EM), Technical Lead, and Individual Contributor (IC) play vital roles in tech teams. However, their responsibilities and focus areas differ. The EM prioritizes team management including hiring, team dynamics, facilitating communication, and ensuring deliverables. They often steer clear of day-to-day coding to focus on strategic matters. On the other hand, a Tech Lead leads by example. They are usually hands-on with coding and make key technical decisions. ICs, or team members, are skilled engineers who actively work on the product and are led by the Tech Lead and EM.\n\nThe challenge for an EM here lies in balancing management duties with keeping a technical edge. A good EM acknowledges these differences, collaborates effectively, and ensures smooth operation of the team while fostering an environment conducive to growth and learning.",
"links": []
},
"aSZ2uVCmpAdEPjJt6VKG4": {
"title": "People",
"description": "Engineering Managers have a crucial role in managing the people aspect of their teams. They are responsible for building, nurturing, and guiding their teams towards a shared goal. This involves hiring the right talent, fostering collaboration, and promoting a positive environment for brainstorming and innovation. They also address personal and professional conflicts, ensuring a unified and efficient team.\n\nHandling people is no easy task. Challenges come in many forms such as personality clashes, power struggles, or unequal contribution from team members. To address these, the manager must have excellent communication, empathy, and leadership skills. Regular feedback sessions and team building activities can also help.\n\nSuccess in managing people is a delicate balance of technical expertise and interpersonal intelligence. A good Engineering Manager doesn't just guide their team technically, but also emotionally. They celebrate success, address failures, and make everyone feel valued and heard.",
"links": []
},
"p9ecMvHCqjmvxf67di7pY": {
"title": "Product",
"description": "Engineering managers are pivotal in translating product visions into tangible results. They shoulder the responsibility of aligning the engineering team's efforts with the product roadmap. This involves not just understanding the technical complexity, but also grasping the product's strategic importance.\n\nThey face challenges like prioritizing feature development and resolving resource clashes. Effective handling requires a blend of technical proficiency and keen product sense. They also need to navigate collaborative decision-making, ensuring that engineering perspectives are well represented in product discussions.\n\nAccuracy in estimating timelines for product features is paramount. An engineering manager therefore needs to excel in project management, accurately gauging task complexity and foreseeing potential roadblocks. This is crucial to align engineering activities with overall product timelines and objectives.",
"links": []
},
"iZFn0FaRdrGv_-_8zii_-": {
"title": "Process",
"description": "Engineering management is a crucial role in tech companies, overseeing the processes that power engineering teams. An Engineering Manager has to ensure that all processes, be it software development lifecycles, testing protocols, or deployment procedures, are efficient, effective, and correctly implemented.\n\nA key responsibility they hold is identifying and managing any bottlenecks or hindrances slowing down productivity. This may involve constant monitoring, discussion with team members, and careful analysis of workflow data. The Engineering Manager's role also involves process optimization that can include introducing new tools, methodologies, or even reshaping teams for better performance.\n\nSuccess in this aspect requires exceptional problem-solving skills and the ability to innovate and adapt. Persistence and excellent communication skills are also required as effective process management often involves persuading and influencing others about the value of proposed changes.",
"links": []
},
"FtWNnOE3zObmjS-Og26M3": {
"title": "Architectural Decision-Making",
"description": "Architectural decision-making is a crucial responsibility for an Engineering Manager. These decisions can shape the future capabilities and operation of an engineering team. A manager should be capable of balancing current requirements with long-term goals. This involves choosing the right technologies, frameworks and design patterns.\n\nThey face challenges, like managing risks and ensuring scalability. To address these challenges, they use data and consult their teams before making any major decisions to mitigate risk. The decision-making process includes stakeholder consultations, careful analysis of options, and potential risk assessments.\n\nEffective architectural decision-making requires both technical and leadership skills. The ability to analyse data, understand technical constraints, and make informed decisions are important. The manager also needs good communication skills to explain their decisions to their teams and stakeholders. These skills help in managing the technical strategy of the team effectively.",
"links": []
},
"pduPcv2QPpVmVvDdK4CPi": {
"title": "System Monitoring & Performance",
"description": "An Engineering Manager has a vital role to play in system monitoring & performance. They're responsible for setting up the right tools and processes that allow ongoing scrutiny of systems to ensure optimal performance. This includes laying out clear KPIs for system uptime, responsiveness, and other critical metrics.\n\nChallenges can include capturing the right data and making sense of it to preempt problems. They may use data visualization and other analytic tools to simplify this task. It's also up to them to champion the importance of this aspect to their team and encourage their active participation.\n\nTo succeed, an Engineering Manager needs a solid understanding of relevant technologies and the ability to make data-driven decisions. Balancing proactive and reactive approaches is key, as is nurturing a culture that values maximum system effectiveness.",
"links": []
},
"EyoVFmqOJbH1sAPHLISFt": {
"title": "Scaling Infrastructure",
"description": "An Engineering Manager is vital to scaling infrastructure because they typically lead the design, development, and execution of such operations. As a part of their role, they might identify current bottlenecks, forecast future growth, and plan accordingly so the infrastructure can support the increased load.\n\nThe process often involves challenges such as predicting growth accurately, balancing costs with potential needs, and efficiently implementing changes. To overcome them, effective communication, thorough technical knowledge, and good planning skills are needed.\n\nSuccess hinges on the ability to constantly monitor the infrastructure's performance, adjust strategies as needed, and maintain clear communication lines with both the developers who will implement the changes and the stakeholders who will approve the costs.",
"links": []
},
"fBENrXdMhoGYgL_d96tgo": {
"title": "Software Engineering Background",
"description": "An Engineering Manager with a Software Engineering background is well-equipped to handle technical challenges within the team. They can effectively provide direction and guidance on software development, use their knowledge to troubleshoot problems and offer practical solutions. Their role entails not only supervising the team's work but also assisting in technical aspects.\n\nThe main challenge is to strike a balance between managerial work and active technical contribution. They need to keep their software engineering skills up-to-date to maintain credibility and effectiveness. Prioritizing tasks, constant learning, and effective delegation are crucial aspects in this regard.\n\nA manager in this scenario should be proficient in specific programming languages that their team uses, software design principles, testing methods, and debugging. They should also have a good understanding of different software development methodologies to manage their team optimally.",
"links": []
},
"iX4HPgoiEbc_gze1A01n4": {
"title": "System Design and Architecture",
"description": "An Engineering Manager leads and oversees the system design and architecture. They're responsible for ensuring that the design aligns with the company's business goals and client needs. Their tasks may include making key technical decisions, reviewing design proposals, architecting scalable systems, and ensuring systems' redundancy and fault tolerance.\n\nTechnical issues are common in system design and architecture. An Engineering Manager handles these by having a deep understanding of the systems and their dependencies. They must effectively communicate these complexities to their team and guide the problem-solving process.\n\nThe manager needs excellent problem-solving and communication skills. They need to understand the trade-off between design complexities, operational costs, and ease-of-use. This helps in creating systems that are efficient, user-friendly, and cost-effective.",
"links": []
},
"EY6Hk5wPd9Y_VA1UROk44": {
"title": "Technical Debt and Management",
"description": "Engineering Managers play a crucial role in managing technical debt. This involves identifying, prioritizing, and tackling issues. It's the manager's job to strike a balance between improving the existing codebase and delivering new features.\n\nAddressing technical debt demands constant vigilance. Key responsibilities include conducting code reviews, advocating for coding standards, and allocating time for refactoring and updates. They face challenges like pushback from stakeholders and proper risk assessment.\n\nSuccess in this area requires a mix of technical knowhow and leadership skills. An effective Engineering Manager maintains open communication about technical debt among team members and stakeholders. They leverage their actions towards ensuring the team's efforts align with the company's goals.",
"links": []
},
"_2xnTKt5yi__jj_WgcLa7": {
"title": "Technical Documentation",
"description": "An Engineering Manager takes the lead in establishing a practice for creating and maintaining technical documentation. The manager needs to ensure that protocols are followed and the information is consistently up-to-date. Consistent and clear documentation helps the team by reducing misunderstandings and boosting productivity.\n\nThe challenges for an Engineering Manager in this area include ensuring that everyone understands the importance of accurate documentation. Ensuring that documentation is completed regularly and is up-to-date can also be a difficult task. Tackling these challenges requires persuasion, effective communication skills, and the implementation of efficient systems and tools.\n\nThe essential skills in this case are organization, leadership, technical proficiency, and high attention to detail. Managing documentation effectively lays the foundation for smooth technical operations and allows for the development, training, and growth of the team.",
"links": []
},
"40yK6XzI8lSxdiAXxtF75": {
"title": "Code Review Best Practices",
"description": "An Engineering Manager has the responsibility to guide their team on code review best practices. They not only need to ensure the team is delivering quality code, but also that the process is efficient and educative. This involves creating a culture where constructive feedback is welcomed, and where discussing and learning about the codebase is a part of the daily routine.\n\nChallenges could include conflicts among team members, varying levels of coding skills, or different understandings of code standards. To tackle these, the manager might need to step in and mediate discussions, offer training, or even set up some basic coding standards.\n\nA successful Engineering Manager in this realm balances technical competency with strong communication and diplomatic skills, fostering a team environment where high quality code is a shared achievement.",
"links": []
},
"ikCJ8Ybu2AD1w5VuPNVAO": {
"title": "Technical Roadmapping",
"description": "As an Engineering Manager, the creation of technical roadmaps forms a pivotal part of your role. Simply put, it's a strategic document that outlines the steps your team needs to take to achieve technical goals. You're responsible for being a vital connection between company-wide goals and your engineering team.\n\nA key challenge is aligning the roadmap with both business requirements and foundational technology needs. This involves clear communication, close collaboration with other departments, and frequent alignment meetings.\n\nSuccess in this aspect requires strong technical knowledge, project management skills, and diplomacy. You need to communicate the roadmap effectively to the team, manage roadblocks, and resource allocation. Remember, a roadmap is not a fixed path but a guide that may need to be adjusted over time.",
"links": []
},
"H0aav5qKDNiNegJOGP2rx": {
"title": "Build vs Buy Evaluation",
"description": "An Engineering Manager navigates the \"Build vs Buy\" decision with precision. Their main responsibility is to analyze the benefits and drawbacks of developing in-house versus purchasing premade solutions. They must weigh up factors including cost, time, quality, and alignment with their company's long-term goals.\n\nChallenges arise from needing to balance immediate needs with future scalability. This requires a careful understanding of available resources and potential growth. They mitigate this by keeping up-to-date with market trends and technology advancements that could affect their strategy.\n\nA crucial skill for this area is financial and technical acumen, combined with foresight. Engineering Managers must ask critical questions about the total cost of ownership for both options, whether the company has the capable expertise, and whether the solution is future-proof.",
"links": []
},
"d7zMBhMFgY9MwmKC9CVVh": {
"title": "Technical Risk Assessment",
"description": "An Engineering Manager plays a pivotal role in technical risk assessment, acting as the gatekeeper to foresee and avoid potential dangers. Their key duties revolve around identifying the technical debt, evaluating its potential impact, and laying out choices to mitigate it. They also participate in disaster recovery planning, ensuring the team is prepared to handle any technical issues that might arise.\n\nThe role also presents certain challenges such as keeping up with fast-changing technology trends and anticipating outdated technologies that could pose a risk. To navigate these roadblocks, their approach often involves consistent learning, problem-solving capabilities, and proactiveness.\n\nTo succeed in technical risk assessment, an Engineering Manager requires a combination of technical expertise and adept risk management. They need to have a thorough understanding of their tech stack, the ability to foresee potential issues, and develop foolproof contingency plans.",
"links": []
},
"gAEmpSMvNyjmTa5q9oZSg": {
"title": "CI/CD Implementation",
"description": "Working with CI/CD implementation, an Engineering Manager ensures fast and efficient production cycles. Key responsibilities include setting up, administering, and optimizing CI/CD pipelines. They oversee the integration of code changes and automate deployment, enabling a streamlined, error-reduced, and faster delivery of software builds.\n\nChallenges they may face include pipeline failure, software bugs, and collaboration issues among team members. To address them, an Engineering Manager employs advanced debugging, clear communication, and proactive guidance.\n\nSuccess in this area requires not only solid technical skills but also a strategic mindset. It requires the Manager to grasp the team's workflow deeply and coordinate each step right from integration to delivery. This approach guarantees a smooth and effective CI/CD process, which underscores overall team performance and output.",
"links": []
},
"bpJPDbifPwS4ScOoATlEI": {
"title": "Development / Release Workflow",
"description": "Engineering managers are crucial to structuring Development/Release Workflow within a quality and process framework. With the end goal of managing and improving the software quality, they shape and guide the workflow.\n\nTheir key duties involve creating a seamless process from development to release that can be easily understood and used by all team members. They must balance the need for rigorous testing and quality assurance with delivering on schedule to avoid costly delays.\n\nChallenges include ensuring that all workflow steps are followed and troubleshooting any issues that arise. Success in this role requires a strong understanding of software development, attention to detail, excellent time management skills, and the capability to handle unforeseen obstacles with grace.",
"links": []
},
"C2YsaZ32An_UXV8lB7opm": {
"title": "Technical Standards Setting",
"description": "Engineering Managers play a crucial role in the setting of technical standards. Their key responsibilities include identifying appropriate industry standards, ensuring the team's technical resources align with these standards, and implementing them consistently across all engineering projects.\n\nA common challenge faced by Engineering Managers is sustaining a balance between maintaining high standards and keeping up with the speed of technology innovations. They can address this by staying abreast with the latest technology trends and adjustments in industry standards.\n\nTo succeed in this aspect, an Engineering Manager needs keen attention to detail, ability to research and comprehend complex technical concepts, and strong leadership skills to guide the team in aligning with these standards. Demonstrating flexibility and open-mindedness to change is also a crucial approach in managing evolving technical standards.",
"links": []
},
"sQCLhk__jvbityuuLlxiW": {
"title": "Security Best Practices",
"description": "As an Engineering Manager, ensuring security best practices is crucial. This involves creating and maintaining secure software infrastructure, and making sure the team is following proper protocols.\n\nResponsibilities include staying updated on latest security trends and threats, applying suitable security measures, and overseeing code reviews. It's also important for the manager to instill a security-minded culture within the team, ensuring developers are aware and attentive to security considerations.\n\nChallenges can emerge from rapidly evolving threats and compliance issues. To overcome these, the manager often needs the ability to anticipate problems and devise effective solutions. Additionally, having strong leadership skills helps in including security practices as a primary concern in development processes. Regular training and updates about the latest security best practices is also an effective strategy to prepare the team to handle potential threats.",
"links": []
},
"q5SJyM1d8cQzzAcR-kotB": {
"title": "Testing Strategies",
"description": "Testing strategies form a crucial part of an engineering manager's domain. They are responsible for defining the approach that allows quick detection of flaws and ensures the production of quality software products. Their key responsibilities include selecting the proper testing methods, liaising with the development team to ensure adherence to established protocols, and managing resources for efficient testing.\n\nEvery engineering manager faces the challenge of implementing a robust testing strategy while balancing time and resources. To tackle this, they frequently use automated testing tools, risk-based testing, or integrate testing in continuous deployment models.\n\nTo excel in managing testing strategies, an Engineering Manager not only requires a deep understanding of different testing methodologies and tools but also excellent communication skills to ensure every member of the team understands and follows the selected strategy.",
"links": []
},
"o1xPrfg8iNWQpD12xsbQJ": {
"title": "Incident Management",
"description": "Being an Engineering Manager entails managing unexpected issues, and a key part of this is incident management. Duties include setting up clear protocols for identifying, responding to, and documenting incidents. They ensure all team members know their individual roles and tasks in these processes. A challenging aspect is tackling critical incidents without disrupting regular workflow.\n\nTo turn these challenges into success, the Manager must show a blend of technical acumen and excellent communication skills. They need to create an environment where all team members feel comfortable bringing up problems early. Being responsive, open, and calm under pressure is imperative.\n\nIncident management is a notable area in the quality and process domain for an Engineering Manager. It is vital to maintain efficiency and make sure that every incident becomes a learning opportunity. It's about building a failure-resilient team able to tackle any unexpected issue.",
"links": []
},
"3na5mBIPl5f6mjEzkgD_C": {
"title": "Hiring and Recruitment",
"description": "Recruiting the right talent is a vital task for an Engineering Manager. It is their responsibility to understand the skill gaps in their teams and identify potential individuals who can fill those gaps. The challenge here is finding the right balance between technical skills and cultural fit.\n\nTo succeed, the manager must have a clear understanding of the company's needs and the projects ahead. They must also know what qualities to look for in candidates. So, they must work closely with HR and use their technical expertise to create effective job descriptions and conduct interviews.\n\nAddressing these duties effectively would ensure that the engineering team is well-equipped with the necessary skills and maintains a healthy, productive work environment.",
"links": []
},
"tPDmXXjvFI_8-MTo_dEUw": {
"title": "Team Structure and Design",
"description": "Team structure and design weigh heavily on an Engineering Manager's shoulders. Key responsibilities include determining the necessary roles, defining their right fit, and establishing efficient channels of communication. This foundation is fundamental to improving overall productivity and agile adaptability.\n\nChallenges include aligning team design to project demands while balancing individual talent and skill proficiencies. Managers often resolve these issues by identifying their teams' strengths, driving role clarity, and fostering a culture of open, honest feedback.\n\nSuccess in this area requires robust understanding of software development processes, emotional intelligence for effective interpersonal relationships, and strategic planning skill to design adaptable team structures. By dexterously aligning individual strengths to project needs, managers truly extract the maximum potential from their teams.",
"links": []
},
"eJzYnoB6sArLjXRm51cM4": {
"title": "Performance Evaluations",
"description": "As an Engineering Manager, handling performance evaluations involves providing regular, constructive feedback to team members. An integral responsibility is to assess how well team members are meeting their deliverable goals and contributing to projects. It's crucial to define clear outcome metrics and keep an ongoing dialogue regarding progress.\n\nThe challenge lies in balancing criticism and recognition. It's essential to maintain a fair and unbiased perspective and communicate feedback constructively. A positive strategy is to couple areas of improvement with individual accomplishments.\n\nSuccess in this domain requires strong communication skills, empathy, and a focus on problem-solving instead of fault-finding. By fostering an open and transparent environment where performance-related discussions are encouraged, Engineering Managers can ensure consistent development and growth within the team.",
"links": []
},
"0ULnfq0ZFJXgoLbKM1gxC": {
"title": "Mentoring and Coaching",
"description": "An Engineering Manager often plays a pivotal role in mentoring and coaching their team. They are responsible for providing regular feedback, advising on professional and technical development, and goal-setting. This involvement helps to cultivate a culture of continuous learning and growth.\n\nThe challenge for Engineering Managers is to strike the right balance between providing support and empowering team members to find their own solutions. Its also essential to maintain fairness and consistency in their approach to different individuals. This requires strong communication skills, empathy and a good understanding of each team members strengths and weaknesses.\n\nEmbracing a coaching mindset, Engineering Managers can help team members to overcome obstacles, develop new skills, and achieve their full potential. This not only benefits the individuals themselves but also enhances the overall performance and output of the team.",
"links": []
},
"fhFSR_N4ZDTHINEinubHG": {
"title": "Career Development Planning",
"description": "As an Engineering Manager, supporting your team's career development is critical. This requires aligning individual growth with the organization's goals and the team's skill requirements. It's not just about discussing job roles and future positions, but also about fostering long-term learning and professional growth.\n\nChallenges here include finding a balance between the team's current workload and their development needs. Effective managers will work closely with each team member, understanding their career aspirations and identifying the projects, training, and resources needed for them to reach their goals.\n\nThis requires strong communication skills, empathy, and commitment to the team's development. An effective manager must be able to guide their team and ensure they are growing in their careers while simultaneously meeting the company's goals. This not only fuels employees' motivation and satisfaction but also positively impacts the overall team performance.",
"links": []
},
"bx2SMhR58ud45se5dK7qS": {
"title": "Delegation",
"description": "An Engineering Manager handles delegation by assigning tasks and responsibilities to team members based on their skill levels, strengths, and project needs. They must constantly balance the need to complete tasks efficiently against the need for team development. They face the challenge of assigning right-sized tasks that promote growth without overwhelming their team.\n\nKey responsibilities in this area include discerning which tasks to delegate and to whom, and then clearly communicating expectations. Good delegation also involves tracking progress, providing support, and stepping in when necessary.\n\nSuccess in delegation requires strong communication skills, trust building, and talent recognition abilities. Also, the Engineering Manager must be risk-tolerant. They need to embrace that mistakes might occur and turn them into learning opportunities.",
"links": []
},
"QA5CR5f0geC_RQc_SOK-N": {
"title": "Conflict Resolution",
"description": "An Engineering Manager often faces conflicts, be it between team members, different projects, or resources. Effective Conflict Resolution is key to keeping the team harmonious and productive. This involves the ability to assess the situation accurately, allowing for all parties involved to voice their concerns and finding a solution that works for all.\n\nIts part of the Engineering Manager's responsibilities to maintain a healthy team dynamic, shielding the team from distractions and helping them work together effectively. A key challenge here is balancing the needs and interests of individuals with the goals of the team and the wider organization.\n\nTo succeed, Engineering Managers need strong communication skills, empathy, and problem-solving ability. An open, positive attitude and focus on win-win solutions can help diffuse tensions and foster cooperation instead of competition.",
"links": []
},
"Az9GgkLFoat2t_sYRUBv5": {
"title": "Feedback Delivery",
"description": "An Engineering Manager plays a vital role in delivering feedback. Constructive feedback reinforces positive behaviors and corrects any missteps, effectively enhancing team dynamics. This leadership responsibility could include making sure the team is aware of their strengths, areas for improvement, and creating a balanced dialogue that encourages growth.\n\nHowever, the challenge lies in presenting criticism without discouraging creativity and innovation. Engineering Managers can address this by framing feedback in a positive manner, and focusing on specific actions instead of attacking personal traits.\n\nLearning to deliver feedback effectively encompasses a suite of skills like empathy, patience, and communication. Applying these skills enables an Engineering Manager to build a culture that supports learning, continual improvement, and ultimately robust product development.",
"links": []
},
"U_oOnDXkCE387r9olvMZB": {
"title": "Team Motivation",
"description": "For an Engineering Manager, sparking team motivation is paramount. They take the extra step to understand their team members' motivations, whether it's acquiring new skills or delivering high-quality products, and use this understanding to fuel their passion. Manager's key responsibility here is to set clear objectives, provide feedback, and foster a positive work environment.\n\nChallenges may arise when morale dips or burnout creeps in. Successful managers are quick to tackle these issues head-on, employing strategies like team-building activities or one-on-one talks to invigorate their team once more. They foster an understanding, empathetic, and encouraging environment.\n\nSucceeding in motivating a team requires emotional intelligence and strong communication skills. An ability to inspire others and create a vision that the team can rally behind and work towards is crucial to drive team members to go beyond the call of duty.",
"links": []
},
"7PBmYoSmIgZT21a2Ip3_S": {
"title": "Trust / Influence Building",
"description": "Building trust and influence is crucial for any Engineering Manager. This involves establishing a solid reputation, delivering on promises and being an active listener to your team's ideas and issues. It's a manager's job to ensure there's an open, honest environment that promotes trust. Balancing delegation and taking charge, especially in difficult situations, is key to building influence.\n\nOne challenge in this area is building trust between team members of varying experiences and skills. Managers must not only show the team they're competent, but also that they value everyone's inputs. They can achieve this by promoting inclusivity and praising team contributions regularly.\n\nBeing patient, communicate clearly, and showing empathy are critical skills that can help an Engineering Manager in trust and influence building. By embodying these traits, managers can build a stronger, united, and more effective engineering team.",
"links": []
},
"b3qoH_LuW-Gz4N8WdGnZs": {
"title": "One-on-One Meetings",
"description": "Engineering Managers play a vital role in conducting one-on-one meetings with their subordinates. Their key responsibilities in these meetings involve understanding the concerns of their team members, giving valuable feedback, and setting up individual growth paths. They also talk about career development and address performance issues.\n\nOne-on-one meetings present challenges, like how to provide negative feedback without demoralizing the employee. Here, the managers have to use diplomacy, constructive criticism, and emotional intelligence. They need to appreciate the good and seek ways to improve the not-so-good.\n\nSucceeding in one-on-one meetings requires active listening skills, empathy, solution-oriented mindset, and the ability to communicate effectively. They need to be approachable, offering a safe space for the employees to voice their issues or apprehensions. Thus, they nurture a positive work environment and foster professional growth.",
"links": []
},
"e0ZuiCoS8sJ0XB1lNiz7_": {
"title": "Team Meetings",
"description": "An Engineering Manager's role in team meetings is, above all, to guide and inspire the team. They must set the agenda and ensure that all key points are discussed to move projects forward. Clear communication is crucial, as is the ability to listen to the team's feedback and ideas. An open and inclusive environment can help encourage freely sharing thoughts and solutions.\n\nOne of the challenges faced as an Engineering Manager concerns ensuring that everyone's voice is heard, and no time is wasted. They address this challenge with efficient time management and inclusive discussion habits. For instance, the use of meeting timers and round-robin discussion techniques can help.\n\nTo succeed in this aspect, managers need strong organizational and interpersonal skills. They should also have the ability to value different perspectives, fostering a culture of respect and open-mindedness.",
"links": []
},
"gqKEgKjEu5sOf5Gl-HS-j": {
"title": "Status Reporting",
"description": "Engineering Managers have a key role in status reporting. This involves constantly monitoring projects, addressing bottlenecks, and updating upper management and stakeholders. They ensure that everyone stays informed about project timelines, resource allocation, and development progress.\n\nThe main challenge facing Engineering Managers is to deliver bad news diplomatically. This might involve changes in schedule, budget overruns, or technical challenges. Good communication skills are needed to handle such situations effectively.\n\nTo excel in this aspect, an Engineering Manager needs to have a clear overview of all project statuses and be ready to provide accurate, concise updates. They should also be adept at managing expectations and should be proactive in identifying and addressing potential challenges. In a nutshell, efficient status reporting helps in building trust and promoting transparency in an engineering team.",
"links": []
},
"TVqVlJqegLZRSkwNoHbBf": {
"title": "Stakeholder Management",
"description": "Stakeholder management is a critical part of an Engineering Manager's role. They must be able to clarify project goals, handle issues and create a shared vision among different stakeholders. Key responsibilities include steering meetings, managing expectations and providing regular progress updates.\n\nOne challenge is that each stakeholder may have different interests and priorities. Balancing these opposing views and reaching consensus can be tough. To handle this, Engineering Managers need to be tactical mediators with strong negotiation skills.\n\nThis role requires a mix of technical and soft skills. They need to understand underlying technologies and projects' unique dynamics. Alongside, strong communication skills to relay technical information in a non-technical way is essential. Good stakeholder management enhances trust and fosters a favorable working relationship among teams.",
"links": []
},
"ZyNbSBd8plAZ5lt5OEUYu": {
"title": "Cross-functional Collaboration",
"description": "One key responsibility of Engineering Managers is to establish clear communication across organisational functions, as they often have greater context and understanding of high-level processes. The job of establishing working cross-functional collaboration often includes defining areas of responsibility, formalising the communication streams, aligning goals, and resolving conflicts between teams.\n\nOne of the common symptoms of poor cross-functional collaboration is when team members are blocked by other teams. To tackle this, teams need a culture of open communication and trust that surfaces problems as early as possible. After problem is identified at a team level, Engineering Manager steps in and collaborates with other managers to improve the situation or escalate it to higher levels when necessary.\n\nEffective cross-functional collaboration establishes clearer expectations from all organisation functions and improves predictability of all participants.\n\nAs an example of tooling for cross-functional collaboration, teams can have publicly available Service Level Agreements (SLAs) or well-documented external communication processes. These tools help external teams set clearer expectations when working with the team, reducing ambiguity and friction.",
"links": []
},
"4v5yLKYVcMh0s7SQuf__C": {
"title": "Resource Allocation",
"description": "An Engineering Manager juggles various responsibilities, one the most critical being effective resource allocation. This includes assigning the right team members to the right tasks, as well as wisely distributing budget and physical resources. While it's challenging to strike a balance between the needs of the project, the team's capabilities, and budgetary constraints, effective managers employ tools and data analysis to make informed decisions.\n\nFor Resource Allocation, skills such as prediction, foresight, and understanding of team dynamics and capabilities are necessary. Its crucial to understand potential bottlenecks and plan for unforeseen situations.\n\nEngineering Managers often work closely with stakeholders and teams to regularly review and adjust resource allocation, thus ensuring the team remains on track, projects are delivered on time, and resources are used productively. Regular communication and transparent decision-making processes also boost team morale.",
"links": []
},
"7BcToTqL78QmG4qb43X5Q": {
"title": "Sprint Planning",
"description": "An Engineering Manager plays a pivotal role in sprint planning. They lead the team in defining the project's scope for the next sprint, taking into account the team's capacity and the project's priorities. They ensure team members understand tasks and their importance.\n\nTheir responsibilities include setting realistic objectives, aligning with stakeholders, and securing required resources. They reconcile the business needs and technical feasibility, ensuring high-value features are developed first.\n\nThe challenges in sprint planning often revolve around resource allocation, maintaining quality, and managing risks. Good communication, leadership, and negotiation skills are required to effectively drive sprint planning. The Engineering Manager must be adept at balancing speed, quality, and the team's capabilities while ensuring alignment with the project's overall goals.",
"links": []
},
"-Qc6E3gkUUonfzifYqeJJ": {
"title": "Release Management",
"description": "Managing a software release is an essential role of an Engineering Manager. One key responsibility here is to establish deadlines and ensure all project components meet these deadlines. This includes tracking progress and addressing potential or actual delays.\n\nChallenges here can include coordinating with multiple teams and managing changing product requirements. To tackle these, an Engineering Manager should use a clear and organized approach. Maintaining open lines of communication with all stakeholders is vital.\n\nApart from strong leadership skills, an Engineering Manager dealing with release management also needs to have a solid understanding of the software development process. This prepares them to make informed decisions and give pertinent advice which are key to a smooth and successful software release.",
"links": []
},
"mgw6M8I9qy1EoJpJV-gy1": {
"title": "Risk Management",
"description": "As an Engineering Manager, handling risk management is a significant duty. They are responsible for identifying potential risks in every project aspect and implementing proper measures to reduce these risks. They foresee and evaluate technical difficulties, resource constraints, and schedule overruns to safeguard the team's success.\n\nA common challenge for Engineering Managers is balancing risk mitigation and project progress. Effective strategies such as risk ranking and contingency planning help them keep this balance. Proactive communication with the team and stakeholders is also essential to keep everyone informed about any changes or potential issues.\n\nTo succeed in risk management, Engineering Managers need strong analytical skills, foresight, and decisiveness. These skills enable them to anticipate problems before they arise, make quick decisions, and implement effective risk reduction measures. They must also have good collaborative and communication skills to work with their team and stakeholders.",
"links": []
},
"hH-UDVFlgKoMJcI1ssDFv": {
"title": "Dependency management",
"description": "Dependency management plays a crucial role in an Engineering Manager's life. They need to understand and manage the dependencies between various tasks in a project. This includes determining what needs to be done first, what tasks depend on others, and what can be done in parallel. This is vital to keep projects on schedule and prevent bottlenecks.\n\nEngineering Managers face the challenge of juggling multiple dependencies at once, in a dynamic environment where priorities can shift rapidly. They use project management tools and methodologies, like Agile or Scrum, to visualize dependencies and manage them effectively. Regular communication with the team and other stakeholders also help to clarify dependencies and make adjustments as needed.\n\nTo excel in this field, Engineering Managers need to be highly organized and detail-oriented. They also need strong problem-solving skills to navigate challenges and keep projects moving smoothly.",
"links": []
},
"n9gvPHn4c1U-l6v-W9v6r": {
"title": "Agile methodologies",
"description": "An Engineering Manager ensures smooth implementation of Agile methodologies within the team. The manager oversees sprint planning, backlog refinement, and retrospectives for consistent development flow. They have the key role in facilitating communication, fostering a high-performing environment, and encouraging adaptive planning.\n\nThe Engineering Manager faces the challenge of maintaining an Agile mindset even when facing pressures to deliver. They have to ensure team members are motivated, engaged, and productive. This can be handled by adopting feedback-friendly culture and regular knowledge-sharing sessions.\n\nSkills required for an Engineering Manager in handling Agile methodologies include strong leadership, excellent communication, and proficiency in risk management. The manager has to balance the opposing needs of flexibility and stability, always keeping customer satisfaction in perspective.",
"links": []
},
"SuT6q5lMMSyVkadlQp7iU": {
"title": "Project Tracking",
"description": "An Engineering Manager's role includes ensuring that project tracking is effectively performed. They use various project management tools and techniques to monitor progress, check the alignment with set timelines, and identify potential bottlenecks. This is paramount to meeting deadlines and delivering projects on time.\n\nResponsibilities include updating project statuses, handling the reporting of tasks, and keeping all involved parties informed. Specific challenges might be correctly estimating timelines or handling unexpected changes. Managers solve these by continuously evaluating and updating project plans, bringing more precision in tracking.\n\nSuccessful project tracking requires strong analytical skills, effective communication, and keen attention to detail. Regularly reviewing project progression, adopting feedback and making the necessary adjustments are needed for successful project completion.",
"links": []
},
"PXobPGPgCX3_55w4UtxT9": {
"title": "Milestone Management",
"description": "Engineering Managers play a crucial role in Milestone Management. They are responsible for setting clear, measurable goals that map out the path to project completion. These milestones are pivotal for keeping the team motivated and the project on track. Challenges in this area include ensuring that milestones are ambitious yet attainable and progressive yet feasible.\n\nAn Engineering Manager combats these challenges by utilizing effective communication and strategic planning. They need to communicate the importance of each milestone, how it fits into the big picture, and the consequences of not meeting them.\n\nStrategic planning is another vital approach. It includes breaking down complex tasks into smaller, manageable ones and scheduling them accurately. This requires a balance of technical understanding, project management skills, and team insights.",
"links": []
},
"C-lJJSjT8Cxw_UT3ocFsO": {
"title": "Scope Management",
"description": "As an Engineering Manager, scope management is crucial because it ensures all work required, and only the work required, is included in the project. Their key role involves defining the scope, focusing on the project requirements, and acknowledging potential scope creep scenarios which may deviate the project from its objectives.\n\nThe challenges faced often include managing the team's expectations and time, while striving to deliver a product that meets client's specs on time & budget. They need to delegate tasks effectively and ensure everyone sticks to the agreed scope.\n\nTo excel in scope management, one requires assertiveness, excellent communication and interpersonal skills and the knack for anticipating potential hurdles. A proficiency in risk management also plays a crucial role in preventing scope creep.",
"links": []
},
"QWO5QFS7kXwfu3aa8IiRt": {
"title": "Timeline Estimation",
"description": "Timeline estimation is a vital part of an Engineering Manager's role. Typically, they'll leverage their experience, industry knowledge, and sometimes, gut feeling, to envisage a project's duration. They are responsible for considering factors such as workload, complexity, team size, and risks to determine a realistic timeline.\n\nThey often face challenges in ensuring that timelines are accurate and achievable. This can be from uncertain project requirements or unforeseen obstacles. To combat these, a good approach is to use methods like PERT or 'Three-point estimation' which factor in the best, worst and most likely scenarios.\n\nTo thrive in timeline estimation, Engineering Managers need a fine balance of technical depth, data analysis skills, probability knowledge, and communication proficiency. Robust project management tools to visually map progress can also be invaluable.",
"links": []
},
"Wd8FCEaGZBTvsD-k4t0r4": {
"title": "KPI Definition",
"description": "An Engineering Manager is pivotal in the process of defining key performance indicators (KPIs) for a project. They identify the crucial metrics that reflect success and are aligned with the project goals. To accomplish this, they work closely with their team and other stakeholders, clarifying the key outcomes that matter most.\n\nThe definition of KPIs can be challenging due to the potential range of metrics available. The Engineering Manager must strike a balance between choosing relevant KPIs and avoiding those which may inflate success results artificially. They address this challenge by focusing on KPIs that accurately measure performance and drive improvement.\n\nStrong analytical skills, critical thinking and a firm understanding of their team's capabilities and project goals are crucial for an Engineering Manager to succeed in this aspect. Continuous evaluation and flexibility in adapting the KPIs are also imperative.",
"links": []
},
"idd92ZTBVUzptBl5jRdc3": {
"title": "Velocity Tracking",
"description": "An Engineering Manager plays a critical role in managing project velocities. They are responsible for understanding team pace and utilizing this data to predict project completion times. This not only assists in setting realistic expectations but also in resource allocation.\n\nA challenge they face is ensuring the team maintains a steady pace without burning out. It's crucial to strike a balance between pushing the team and understanding their fatigue limits. Misinterpreting velocity data can lead to overpressure or sub-optimal delivery times.\n\nTo navigate this, the manager needs to be skilled at interpreting data and managing people. Clear communication with staff about expectations, combined with careful monitoring of pace, helps maintain a healthy velocity. They need to approach the task with a blend of empathy, analytical thinking and strategic planning.",
"links": []
},
"ZWWsuFm_G4kvvl_cv8l_t": {
"title": "Quality Metrics",
"description": "Quality metrics are a crucial part of an Engineering Manager's role in project management. The responsibility here is two-fold: choosing the right metrics and interpreting them correctly for making data-driven decisions. Metrics like defect density, test pass rate, code review coverage, and more, can provide powerful insights into a project's health.\n\nEngineering Managers might face challenges in selecting relevant metrics that would give a true measure of quality. This problem is solved by aligning the metrics with project goals and periodically re-evaluating them.\n\nBeing successful in this aspect requires an understanding of data analysis and a keen eye for detail. More importantly, an open-minded approach to consider all potential issues is beneficial. After all, quality metrics function best when they not only validate success but also unearth hidden problems.",
"links": []
},
"KPDHk7tl_BnIj_obnq3Kl": {
"title": "Team Health Metrics",
"description": "Team health metrics are pivotal for an Engineering Manager as they provide insights into team performance, morale, and overall effectiveness. As a manager, it's crucial to regularly track these metrics, like productivity rates, team morale, and code quality, and to address any issues promptly.\n\nManagers face the challenge of balancing the quantitative data with qualitative observations. Not all issues are reflected in numbers, so managers need a holistic view of the team. Measures like team discussions, one-on-one meetings, or anonymous surveys can be beneficial.\n\nEffective managers cultivate an open, honest culture where team members feel comfortable sharing concerns. This requires good interpersonal and communication skills. Top-tier managers are proactive, they don't wait for visible cracks before checking on their team's health. They keep their finger on the pulse, always working towards nurturing a high-performing, harmonious team.",
"links": []
},
"g9WWa50V8ZbhIJgBRx0Nd": {
"title": "Project Postmortems",
"description": "Project postmortems are a crucial part of an Engineering Manager's role in project management. They allow the manager to evaluate a project after it's completed to understand what went well and what needs improvement. As a leader, the Engineering Manager typically steers this process, encouraging team members to discuss their experiences and draw valuable lessons.\n\nA primary challenge is ensuring that postmortems are constructive, not blame-seeking. They need to encourage transparency amongst the team. This calls for a balanced and diplomatic approach from the manager. By promoting an open environment and focusing on lessons learned rather than individual mistakes, Engineering Managers can turn postmortems into a positive and enriching experience.\n\nDoing successful postmortems requires good communication and analytical skills. The manager must distil complex issues into easy-to-understand takeaways that can guide future projects. The ultimate goal is continuous improvement, and a good postmortem is a stepping stone towards that.",
"links": []
},
"nC5dfGlxbLoXUAp2u-6Gl": {
"title": "Product strategy alignment",
"description": "For an Engineering Manager, aligning product strategy requires strong tech understanding and the ability to connect it with business needs. They play an essential role in transforming the company's goals into a clearly defined product roadmap and help their team focus on whats crucial for the product's success.\n\nTheir key responsibilities include engaging in cross-functional collaboration with product teams, understanding customer needs, and ensuring the tech team is building a product that aligns well with the companys strategy. They also need to ensure ongoing alignment as products evolve and business goals change.\n\nThe major challenge faced in ensuring product strategy alignment includes maintaining a strong connection between engineering and non-engineering teams. To address this, they have to foster open communication, work closely with product managers, and ensure everyone understands the companys strategic goals.",
"links": []
},
"vhOHvfF_lfQrrOK6sGLTY": {
"title": "Business Case Development",
"description": "An Engineering Manager often takes on the responsibility of Business Case Development. This means they analyze and present possible outcomes of a project or decision. It's essential for them to understand the business side, not only the technical side.\n\nWhile it can be challenging, a proper business case helps guide investments. The manager must address all crucial aspects: costs, benefits, risks, and timelines. They need to present compelling reasons to take on a project to stakeholders.\n\nTo succeed, they need excellent analytical and communication skills. Understanding how decisions impact their team and business is paramount. They should also be able to clearly explain their findings to both technical and non-technical stakeholders.",
"links": []
},
"XinUWPahOdufmLYcEwMj_": {
"title": "ROI analysis",
"description": "An Engineering Manager leverages ROI (Return on Investment) analysis to ensure strategic objectives align with financial viability. They analyze projected costs and benefits related to engineering projects. Their key responsibilities include identifying potential risks and calculating the profitability of various alternatives based on expected returns.\n\nConducting an ROI analysis can pose challenges, including acquiring accurate data and quantifying soft benefits. An Engineering Manager may address these by systematic data gathering and using structured frameworks for quantification.\n\nSuccess in ROI analysis requires skills in financial literacy, critical thinking, and data interpretation. A proactive approach, coupled with a comprehensive understanding of the business, allows Engineering Managers to effectively evaluate the economic impact of engineering decisions.",
"links": []
},
"P2gIOt-i0sQEOMBo-XjZO": {
"title": "Market awareness",
"description": "An Engineering Manager needs to have both technology and market awareness. By understanding the market trends, they can lead the team towards developing products or features that meet client needs and stand out from the competition. This involves close collaboration with the marketing, sales, and product management teams to incorporate market feedback into the engineering process.\n\nThe challenge often lies in balancing market demands with technical feasibility and team capacity. An effective approach is to maintain open communication channels with all stakeholders involved and conduct regular market trend analysis.\n\nTo do this job effectively, an Engineering Manager needs good analytical, communication and decision-making skills. They should also have the ability to grasp new market trends quickly and synthesize this information into actionable insights for their team.",
"links": []
},
"76GjwwEYaEX_kh02OSpdr": {
"title": "Competitive Analysis",
"description": "An Engineering Manager uses competitive analysis for strategic thinking in various ways. They use it to understand the strengths and weaknesses of their own team and products compared to their competitors. This helps them pinpoint areas for improvement and innovation. Also, it guides them in making decisions about resource allocation, project prioritization, and technology choices.\n\nTheir key responsibility in this area is to ensure the team stays abreast of industry trends. They must create a strong competitive stance in the areas they are lagging. They face challenges when there's limited information about the competition or rapid changes in the market landscape.\n\nTo succeed, Engineering Managers need good analytical and research skills. They should have the ability to use different tools and methods for gathering and analyzing data. They also need strong decision-making ability to interpret findings and create action plans based on them.",
"links": []
},
"oqjr26B27SHSYVQ4IFnA1": {
"title": "Budget Planning",
"description": "The role of an engineering manager extends beyond engineering tasks to include budget planning. Their duties include creating and overseeing the financial plan for their team. They need to estimate costs and ensure spending stays within set limits.\n\nThis aspect often introduces challenges - it's tricky to balance the optimal resource allocation, project expenses and salary provisions. Yet, successful managers navigate this by being forward-thinking, data-driven and having consistent communication with team members and finance departments.\n\nTo lead in this area, an engineering manager should hone skills in risk management, forecasting, and analysis. They need to understand and predict the financial impact of decisions, providing strategic input that ensures the department runs smoothly and cost-efficiently.",
"links": []
},
"iwwxnSVvCmZ57stXwzk8G": {
"title": "Resource forecasting",
"description": "Resource forecasting is a practical tool for an Engineering Manager. It involves predicting future resource needs to ensure smooth execution of tasks. A manager's responsibility here is to avoid over-hiring or overspending while ensuring a project progresses efficiently.\n\nForecasting effectively calls for knowledge of project timelines, team strengths and a keen eye on budget constraints. Furthermore, it involves balancing team strengths and task allocation, while being mindful of possible turnovers or leaves.\n\nGood resource forecasting can be challenging as it often involves making educated guesses. However, successful managers can rely on data-driven decisions, invest in forecasting tools, gain insights from past projects, and regularly review plans to manage available resources and keep their engineering teams running smoothly.",
"links": []
},
"rbhZJZtRV1ZZ5QaYW77ry": {
"title": "Cost Optimization",
"description": "As an Engineering Manager, cost optimization plays a crucial role in financial management. They have to balance budget constraints with project goals, making smart decisions about resource allocation to ensure maximum efficiency. This includes optimizing software licenses, cloud services, hardware, and labor costs. Careful planning and monitoring is necessary to avoid cost overrun.\n\nChallenges in cost optimization can stem from unexpected expenses, like an unforeseen technical problem. Managers can tackle this by proactively identifying risk factors and establishing contingency plans. Regular reviews of expenditure can also help in spotting any anomalies quickly.\n\nTo succeed in this aspect, Engineering Managers need good analytical skills and an understanding of cost structures. They should be capable of making cost-benefit analyses, assessing ROI, and applying these insights in strategic decision-making. It's about spending smart, not just spending less.",
"links": []
},
"Imgt669vbUT_Iec2o4Gvt": {
"title": "Vendor Management",
"description": "Vendor Management involves negotiating contracts, improving value procurement, and maintaining effective communication. An Engineering Manager plays a key role in this aspect. Their responsibilities include choosing credible vendors, tracking vendor performance and ensuring that their products or services are of high quality.\n\nManaging vendor relationships can be a challenge. However, it's essential in ensuring the organization gets the best possible deal. The Engineering Manager can overcome these challenges with excellent communication, negotiation skills, and an understanding of the market trends.\n\nFor successful vendor management, an Engineering Manager needs skills in communication, analytics and financial planning. By mastering these areas, they can secure the best vendors, foster good relations, and ultimately ensure the successful delivery of projects. This can also result in cost effectiveness and long-term business stability.",
"links": []
},
"KA0y6KdVTjJFeX3frHUNo": {
"title": "Company Culture",
"description": "An Engineering Manager plays a vital role in shaping and fostering the company culture. It's their task to ensure the culture aligns with the company's values and promotes a positive working environment. Healthy company culture can contribute to higher employee satisfaction, improved productivity, and lower turnover rates.\n\nThe main challenge in this respect is to maintain compatibility between the existing culture and the rapid technological changes. The Engineering Manager should lead by example and reinforce the desired attitudes and behavior.\n\nTo make this effective, strong communication and interpersonal skills are a prerequisite. An Engineering Manager should, therefore, be approachable, transparent, and solicit feedback to continuously improve the work environment and uphold a vibrant company culture.",
"links": []
},
"tt02qGHSn4fPbpboZ1Ni_": {
"title": "Change management",
"description": "Engineering Managers play a significant role in change management. They are responsible for implementing new processes and technologies while ensuring minimal disruption. One of the challenges they face is managing the human side of change. This involves addressing employee fears and resistance to avoid a drop in productivity.\n\nTo successfully navigate change, Engineering Managers should use their keen understanding of the organization and its dynamics. They need to balance speed of implementation with the need for buy-in from all stakeholders. This takes strong communication skills, empathy, and effective planning.\n\nIn all, change management is vital in an engineering team. It allows them to adapt to new situations, keep up with industry trends, and continually improve their processes and outcomes. The Engineering Manager's skill in this area is key to the teams success and resilience.",
"links": []
},
"mjMRNhPkeb4lEZXBb8Iot": {
"title": "Organization structure",
"description": "An Engineering Manager must understand and navigate the organization structure with ease. As a key responsibility, they need to know the roles, responsibilities, and relationships of various teams and individuals within the organization. This awareness can aid in quality cross-functional collaboration and effective decision making.\n\nChallenges may arise when there are changes in organizational structure, causing shifts in roles and responsibilities. Addressing this would involve frequent communication and adapting to the changes quickly.\n\nTo be successful, the Engineering Manager needs excellent communication skills and the ability to foster strong relationships. An understanding of the organization's hierarchy and dynamics is crucial as well, to ensure the smooth flow of operations and project progressions.",
"links": []
},
"Zoz01JcNU69gr95IcWhYM": {
"title": "Politics navigation",
"description": "Engineering Managers have to skillfully navigate politics in any organization. Their goal here is to understand relationships, power dynamics, and informal networks that govern how things work. Politics navigation is pertinent to minimizing conflicts, maximizing support for initiatives, and achieving team goals smoothly.\n\nIdentifying and managing politics often falls on the shoulders of Engineering Managers. They need to maintain a delicate balance between individual team members' motivations and the overarching objectives of the organization. This requires tact, diplomacy, and effective communication.\n\nThe challenge lies in keeping a neutral stance yet effectively navigating these politics without compromising on the team's morale or the project outcomes. Hence, an Engineering Manager must exhibit strong negotiation skills, strategic thinking, and emotional intelligence to deal with these office politics successfully.",
"links": []
},
"Hb_rZe4k37Rr0enSh7woV": {
"title": "Cross-department collaboration",
"description": "Cross-department collaboration is crucial for an Engineering Manager. They are responsible for coordinating with teams outside their department to align goals, synchronize work, and facilitate project completion. This requires well-honed communication skills, efficient leadership tactics, and effective collaboration strategies.\n\nChallenges may arise due to departmental silos, different priorities or workflow disparities. To address these issues, the Engineering Manager should promote open dialogue, ensure mutual understanding of shared objectives, and create clear workflows.\n\nTo excel in cross-department collaboration, a holistic understanding of the entire business is needed. The ability to advocate for the needs of the Engineering Team while understanding the requirements of other departments creates a balanced approach that aids in achieving the organizational objectives.",
"links": []
},
"h7gEQNbGiabDA1q1Bk_IB": {
"title": "Emotional Intelligence",
"description": "Emotional intelligence is crucial for an Engineering Manager. It helps them understand team dynamics, enhances communication, and strengthens relationships. Their main responsibilities include recognizing team members' emotions, gauging their reactions appropriately, and managing their responses effectively.\n\nEngineering Managers often face challenges in dealing with various personalities within a team. By applying emotional intelligence, they can navigate these difficulties, resolve conflicts, and maintain a positive working environment. Their challenge is to balance their own emotions while addressing those of their team.\n\nSuccess in this aspect requires strong listening skills, empathy, and patience. Engineering Managers also need to continuously improve their emotional intelligence through self-reflection and seeking feedback. This helps them foster a team environment where everyone is understood and valued.",
"links": []
},
"ZuZuzwy-Frsn_PFJZVuAQ": {
"title": "Defining and Enforcing Values",
"description": "An Engineering Manager plays a critical role in defining and enforcing the values of the team they lead. They're responsible for setting the tone for a culture where these values are understood and practiced by all members. They will often work hand-in-hand with HR and leadership to craft a set of values that align with the broader organization's vision and purpose.\n\nEnforcing these values, however, can present a challenge. Managers will have to practice diplomacy and employ good judgment to ensure that the values are not just stated but also integrated into the work life. This could involve training, communication, and in some cases, conflict resolution.\n\nTo succeed in this area, Engineering Managers need strong communication skills, a fair bit of wisdom, and a dedication to consistency. They must be able to articulate the importance of these values and why they matter to the team's work and to the wider business.",
"links": []
},
"8Nro6PTkEkNugYBjQfJ6O": {
"title": "Team Traditions and Rituals",
"description": "As an Engineering Manager, fostering positive team traditions and rituals is essential for a healthy team culture. They often organize and participate in these traditions to build camaraderie and morale. These can include activities such as daily stand-ups, team lunches, code reviews, or even celebrating personal achievements.\n\nThe manager has to consider the interests and cultures of their team members when creating these traditions. The aim is to create inclusivity, promote collaboration, and ensure everyone feels valued.\n\nDeveloping team rituals can be challenging as not everyone may be receptive to the same practices. The manager has to strike a balance, soliciting feedback, and being flexible to ensure these practices are positively impacting teamwork and productivity. The main skill here is effective communication and management skills.",
"links": []
},
"Vb3A4a-UpGTAEs-dVI66s": {
"title": "Recognition programs",
"description": "Engineering Managers play a vital role in establishing and executing recognition programs in team culture. They understand the importance of acknowledging their team's contributions and achievements. As such, their main responsibility is designing and implementing effective recognition programs that motivate and inspire the team.\n\nOne challenge they face in this role is ensuring genuine and inclusive recognition. They tackle this by regular feedback sessions, timely appreciation, and personalized recognitions. They also need to balance recognitions between small daily wins and significant achievements.\n\nSuccess in this role requires a keen understanding of the team's work and an empathetic approach. Trust-building and communication skills are also necessary to foster a sense of appreciation within the team. Engineering Managers must create spaces where everyone feels their work is valued.",
"links": []
},
"LE3ykySYFL23KvuwxeBaR": {
"title": "Social connections",
"description": "Creating and maintaining social connections within a team is a key focus for an Engineering Manager. It's their role to facilitate an environment that encourages bonding, which often involves organizing team-building events or casual gatherings.\n\nThey face challenges like remote work preventing face-to-face interaction, and cultural or personality differences causing disconnect. To address these, they may use digital tools for virtual meetups, or implement diversity and inclusion training.\n\nTheir success in this aspect requires strong interpersonal and listening skills, empathy, and thoughtfulness. It helps to understand team dynamics and individual personalities. The aim is to build a team whose members know, trust, and respect each other, fostering a more collaborative and effective work culture.",
"links": []
},
"6iM0n4faMNhk4mezS9AcG": {
"title": "Inclusive environment creation",
"description": "Creating an inclusive environment is certainly a challenge for an Engineering Manager. This task involves nurturing a culture where all individuals are respected, appreciated, and valued for their uniqueness. Its central to breaking down barriers, encouraging innovative thinking and taking advantage of diverse talents.\n\nThe Engineering Manager's responsibilities here include establishing and enforcing, clear guidelines for equality and diversity. They should facilitate open communication, recognise individual contributions, and set the tone for a respectful workspace. To address challenges, they must address biases, promote cultural understanding, and proactively work towards eliminating discrimination.\n\nSuccessful navigation of this aspect requires empathy, strong leadership, and excellent communication skills. The manager must foster an open-minded culture, promoting understanding and acceptance of all team members' diversity.",
"links": []
},
"njqjYPMQK3nGYtqHzUylo": {
"title": "Innovation fostering",
"description": "Engineering managers play a vital role in fostering innovation in the engineering culture. They set the tone by creating an environment where unique ideas are welcomed, and risk-taking is encouraged. Giving team members the freedom to experiment and learn from failures is crucial in sparking innovation.\n\nKey responsibilities include providing resources, time, and space for creative thinking, and recognizing innovative efforts. Regular brainstorming sessions and workshops can also encourage creativity and innovation.\n\nThe challenges are many, such as balancing between innovation and meeting project deadlines. To address this, setting clear innovation goals and incorporating them into the workflow could help. Other essential skills include excellent communication, empathy, and leadership to motivate and guide their teams towards innovative solutions.",
"links": []
},
"aeD-kBZEr1NHFtAD8yHI_": {
"title": "Learning culture development",
"description": "As an Engineering Manager, fostering a learning culture in the team is a notable aspect of their role. This involves creating an environment where team members are comfortable asking questions and making mistakes, seeing them as opportunities for learning and growth. The manager facilitates this by promoting continuous learning opportunities like webinars, workshops, and online classes.\n\nOne challenge they might face is resistance to change or learning new skills. To address this, they should demonstrate the value and importance of continuous learning. Show how it leads to improved performance and opens up new opportunities.\n\nTo succeed, an Engineering Manager needs effective communication and leadership skills. They need to set clear expectations, provide positive reinforcement, and offer feedback to guide their team's learning and skill development.",
"links": []
},
"74-7hDXaBVXYo6LJdgac_": {
"title": "Knowledge sharing practices",
"description": "An Engineering Manager drives knowledge sharing practices within an engineering culture. Ensuring his team is updated with recent tech advances and system upgrades is one of his key responsibilities. Conducting regular workshops, brainstorming sessions, organizing 'Tech-Talks' proves essential in maintaining a consistent knowledge flow.\n\nChallenges often arise in the form of team members being reluctant to share their expert knowledge, fearing it might minimize their value. To overcome this, the engineering manager should promote a supportive environment where every member understands the value of collective growth.\n\nTo succeed, the manager must display great communication skills, active listening, and respect for everyone's ideas and insights. An open and supportive environment encourages everyone to participate actively, leading to a thriving engineering culture.",
"links": []
},
"Cq0OFaWqSRathZO-bxBrP": {
"title": "Technical excellence mindset",
"description": "An Engineering Manager plays a vital role in promoting a technical excellence mindset. Their key responsibility is to foster an environment where the team constantly challenges the status quo and seeks ways to improve their technical skills and knowledge. This requires creating an atmosphere that values continuous learning, encourages innovation, and rewards creative problem-solving.\n\nThe challenge lies in maintaining this mindset while also meeting project deadlines and business objectives. Striking a balance between fostering technical excellence and delivering quality output on time is crucial. The manager addresses this by breaking down complex technical tasks into achievable goals that also offer learning experiences.\n\nSkills such as leadership, efficient communication, problem-solving, and goal-oriented thinking are needed to succeed in instilling a technical excellence mindset. The manager needs to lead by example, continuously improving their own skills and inspiring their team to do the same.",
"links": []
},
"fYkKo8D35AHd8agr3YrIP": {
"title": "Blameless Post-mortems",
"description": "An Engineering Manager plays a key role in facilitating blameless post-mortems. They bring teams together after incidents to dissect what went wrong, ensuring the main goal is learning, not pointing fingers.\n\nThe manager is responsible for promoting a no-blame culture. They ensure everyone opens up about their actions without fear or guilt. From this, they derive measures to stop similar incidents from happening. The manager thus carries the mantle of turning unfortunate mishaps into opportunities for team growth.\n\nChallenges include overcoming the often human instinct to assign blame. To succeed, managers need astute conflict resolution, good listening skills, and a keen understanding of the engineering systems in play. The goal is improving systems, based on learnings, not pinpointing individual mistakes.",
"links": []
},
"g9FvFKC715tZL2ZGlPl3N": {
"title": "Bias Recognition / Mitigation",
"description": "An Engineering Manager shoulders the responsibility of shaping a team culture that empowers everyone equally. Recognizing and mitigating bias is both a pivotal and challenging part of this role. Ensuring that decisions aren't tainted by personal biases averts, for instance, unjust promotions or assignments.\n\nEngineering Managers must remain receptive to feedback, acting upon it to uproot hidden biases. Here, communication skills, especially in conflict resolution, come in handy. A manager may also instigate diverse recruitment practices and training sessions to promote an understanding of bias.\n\nThe challenge lies in continuously maintaining awareness of personal blind spots and subconscious preconceptions. Regular introspection and seeking others' viewpoints can help a manager address this. In essence, it's about urging constructive change while fostering a culture that values fairness and inclusion.",
"links": []
},
"Xaeb67Nqdi0kwvehQUYeJ": {
"title": "Emergency protocols",
"description": "An Engineering Manager plays a crucial role in creating and enforcing emergency protocols during incident responses. This involves planning and implementing strategies to minimize downtime and maintain system integrity. As a part of their key responsibilities, they are required to ensure the team responds swiftly, efficiently, and calmly in emergency situations. This often involves staff training, simulations, and debriefings.\n\nEngineering Managers often face the challenge of ensuring efficient communication during a crisis. They address this by implementing clear communication channels and protocols. They also work to maintain a balance between rapid response and thorough analysis.\n\nTo succeed in managing emergency protocols, the Engineering Manager needs excellent crisis management skills and a calm demeanor. An efficient approach would involve regular protocol reviews, consistent training and maintaining up-to-date backups for critical system components.",
"links": []
},
"LQ3YfAgJ4UaDgtnN-cMht": {
"title": "War Room Management",
"description": "Managing a War Room during an incident response requires the Engineering Manager to harness effective cross-functional communication skills. They coordinate with various teams, aligning everyone towards resolving the issue in the fastest possible way. At the same time, they minimize the impact on services and maintain transparency with stakeholders about progress.\n\nA key responsibility of the Engineering Manager is to ensure that each War Room participant has a clear role and understands it. This includes assigning who will detail the incident, who will analyze and fix the issue, and who will communicate with impacted stakeholders.\n\nChallenge in War Room management can arise due to various technical difficulties or miscommunication. These challenges are best tackled by the Engineering Manager through regular reviewing and practicing of War Room procedures and by continuing education on the latest incident handling strategies.",
"links": []
},
"irEwTIubCjORnlH27QpEo": {
"title": "Stakeholder Communication",
"description": "An Engineering Manager plays a crucial role in incident response, especially when managing stakeholder communication. They are responsible for maintaining open, honest, and constant communication with all relevant parties. Ensuring that stakeholders are up-to-date with the situation, planned actions, and progress reassures them about the situation's management.\n\nThe main challenge lies in providing accurate and timely updates without causing panic. Effective communication can be complicated by rapidly changing circumstances and varying stakeholder interests and needs. The Engineering Manager must balance the need for transparency, the sensitivity of information, and maintaining trust.\n\nTo succeed, the Engineering Manager needs excellent communication skills. It's equally important to understand technical details and translate them into non-technical terms. A calm demeanor and crisis management skills are invaluable when dealing with high-pressure situations. Clear guidelines and practices around stakeholder communication in crisis situations can also be beneficial.",
"links": []
},
"8zyK34SwHry2lrWchw0KZ": {
"title": "Post-incident analysis",
"description": "After any technical incident, Engineering Managers shoulder the vital task of leading post-incident analysis. This involves in-depth evaluation of what caused the incident, how it was resolved, and ways to prevent recurrence. Its through this process that teams identify system flaws and address them promptly.\n\nCrafting clear, concise incident reports that capture key insights is one of their key responsibilities. These documents help the team understand the technical bottlenecks and improve the incident response strategy over time.\n\nThe main challenge faced by Engineering Managers during post-incident analysis is ensuring thoroughness while avoiding blame culture. Striking a balance requires sharp analytical skills, solid leadership, and open communication. It's not just about fixing mistakes but learning and growing from them as a team.",
"links": []
},
"2fHcb1dAnf34APCAAlwnR": {
"title": "Service Recovery",
"description": "Service recovery is a critical responsibility for an Engineering Manager. They lead their teams through restoring and maintaining essential services following any disruption. This could be due to a server failure, software crashes, or unexpected logical errors.\n\nAs this role requires swift and effective actions, Engineering Managers often face challenges in balancing resources, troubleshooting, and maintaining good communication with stakeholders. The ability to stay calm under pressure, effective problem-solving skills, and strong communication are key to succeeding in this area.\n\nTo handle these challenges, they define recovery plans, protocols, and procedures, coordinate with respective teams, manage necessary resources and, most importantly, learn from each incident. Improving over time helps prevent similar future incidents, ensuring the smooth running of the service.",
"links": []
},
"2RwpGPegD2GyiiV6SVbbM": {
"title": "Contingency planning",
"description": "An Engineering Manager's role in Contingency Planning is essential for effective Risk Mitigation. They have to identify potential issues that could disrupt projects and develop back-up strategies to manage these risks. These could range from resources availability to unplanned absences of team members, among other things.\n\nA significant challenge they might encounter is foreseeing all potential risks, as some may be unpredictable. Hence, their planning should be as flexible as possible. Regularly updating the contingency plan, learning from past mistakes and near misses, and being adaptable are vital to handle these challenges.\n\nTo succeed, Engineering Managers require strong analytical skills to evaluate the potential impact of risks accurately. Also, effective communication skills are necessary for steering the team towards the implemented contingency plan when needed.",
"links": []
},
"KOTzJ8e7mc0wmF46vrj3I": {
"title": "Disaster recovery",
"description": "An Engineering Manager plays a critical role in disaster recovery planning and execution. They ensure that a robust strategy is in place to minimize the impact of mishaps on the engineering operations, such as hardware failure or data loss.\n\nOne key responsibility is to train the team to handle emergencies, ensure backup systems are operational, and validate the recovery plan regularly. The staggering challenges posed by potential system failure or data breaches demand a preemptive approach and systematic planning.\n\nSucceeding in this aspect requires an understanding of system architecture and good knowledge on backup technologies. Communication skills are also vital to keep the team prepared and coordinated in case of a disaster. Hence, an Engineering Manager must be proactive and strategic in being ready for any disastrous situation.",
"links": []
},
"v6N7BH0B55gX0oNXb55D7": {
"title": "Business continuity",
"description": "An Engineering Manager plays a fundamental role in establishing and maintaining business continuity. Their key responsibilities include forming strategies to ensure continuous service delivery and minimize downtime during unforeseen circumstances. They are heavily involved in the creation and maintenance of disaster recovery plans, as well as testing their effectiveness.\n\nChallenges faced could be situations like system failures, natural disasters, cyber-attacks etc. Addressing these requires effective risk analysis, strategic decision-making and coordination with other teams. Successful risk mitigation calls for vigilant monitoring of systems and prompt action during contingencies.\n\nThus, apart from strong technical understanding, effective communication, foresight, and quick decision-making abilities are essential skills for an Engineering Manager to ensure business continuity. The ultimate goal is to safeguard the company's technologies and services from substantial operational interruptions.",
"links": []
},
"FNp4-RgPvfC76pJKjX56a": {
"title": "Security incident handling",
"description": "An Engineering Manager plays a pivotal role in security incident handling. Key responsibilities include establishing protocols for incident response and ensuring the team is well-prepared to manage any security breach. The manager needs to promote a culture of security awareness, regularly updating the team on potential risks and implementing security best practices.\n\nChallenges may include staying up-to-date with emerging threats and utilizing the appropriate technologies to defend against them. Crafting a strong incident response strategy can be complex, but a good manager will use their expertise to overcome these hurdles, adapting their approach as necessary.\n\nKey skills include maintaining a level head under pressure, strong communication to coordinate team responses, and a deep understanding of potential security vulnerabilities. By applying these skills, an Engineering Manager can successfully negotiate the delicate balance between risk, security, and business needs.",
"links": []
},
"kQG_wk66-51dA4Ly9ivjM": {
"title": "Production issues management",
"description": "An Engineering Manager's role in production issues management is crucial. They are responsible for quick decision making during system down-times or service disruptions. They deploy resources efficiently to resolve issues, sometimes guiding the team in real-time to troubleshoot and fix the problem.\n\nKey challenges include downtime minimization, maintaining system availability, and making trade-offs between quick fixes and long-term solutions. They address these challenges by implementing strong incident management policies and training the team for effective system recovery processes.\n\nSuccess in this aspect requires a mix of technical skills, effective communication, and problem-solving abilities. They also need a solid understanding of the deployed systems and infrastructure to ensure seamless functionality and service availability. It's crucial to learn from each outage to prevent or handle similar occurrences in the future.",
"links": []
},
"mIUx8zAHWyPWPGvxuTK4y": {
"title": "Contingency planning",
"description": "An Engineering Manager needs to ensure that their team is prepared for any unexpected situations or challenges - that's where contingency planning comes into play. It's the manager's responsibility to guide their team in developing robust plans that address potential risks and uncertainties. This includes identifying possible obstacles, evaluating their impact, and devising strategies to mitigate them.\n\nThe challenges this role faces are manifold, from predicting the unknown to dealing with a resistant team. To navigate these, cultivating an open and flexible team culture is crucial. By fostering a problem-solving mentality, the manager can encourage their team to see contingency planning as a tool, not a burden.\n\nTo successfully play this role, an Engineering Manager needs to have strong risk management and strategic thinking skills. They must be able to balance a long-term view with immediate, tactical decisions. They should also be comfortable leading difficult conversations about potential failures and mishaps.",
"links": []
},
"nnoVA8W70hrNDxN3XQCVL": {
"title": "Disaster recovery",
"description": "An Engineering Manager plays a critical part in disaster recovery. It is their job to ensure that, if any failure occurs, the team can quickly get systems up and running again. They devise and oversee the implementation of a sturdy disaster recovery plan. This often involves risk assessment, data backups, and establishing rapid recovery processes.\n\nChallenges they may face include dealing with data loss and service disruptions. To face these, an Engineering Manager often relies on a good strategy, clear communication, and effective coordination. They align the team and ensure everyone knows their role in the recovery process.\n\nIt requires strong leadership, risk management, technical knowledge, and problem-solving skills. Regular testing of the recovery plan is also essential to identify loopholes and ensure the effectiveness of the strategies in place.",
"links": []
},
"FwK-B7jRbBXVnuY9JxI1w": {
"title": "Business continuity",
"description": "An Engineering Manager plays a pivotal role in the domain of business continuity. This involves ensuring that the various aspects of technological and process frameworks are resilient to disruptions. The aim is to sustain core business operations during times of crisis.\n\nKey responsibilities include setting up robust risk management systems, executing incident-response plans, and ensuring data integrity during downtime. It's a challenge to maintain operational resilience without stinting ongoing projects, and managing it involves a delicate balance of resources.\n\nTo achieve this, Engineering Managers must possess excellent problem-solving skills and a clear understanding of business operation needs. Regular risk assessment and sharpening the team's skill set to adapt and respond to uncertainty quickly are essential strategies. Robust infrastructure, policy planning, and good leadership are underlying requirements to render effective business continuity.",
"links": []
},
"QFhhOgwz_bgZgOfKFg5XA": {
"title": "Security incident handling",
"description": "For an Engineering Manager, handling security incidents within a team involves keen attention to detail and quick actions. Their key responsibilities include coordinating with the security team to manage the issue and ensure minimal disruption to the project. They also facilitate communications, keeping all stakeholders informed about the situation and the steps being taken.\n\nChallenges faced by the Engineering Manager include managing team stress levels during security incidents and ensuring swift return to normal operations post-incident. By skillfully juggling these tasks, the manager can help secure the team's trust and keep the project on track.\n\nTo successfully handle security incidents, an Engineering Manager needs active decision-making skills, a solid understanding of security protocols, and strong team leadership capabilities. The ability to react calmly and decisively under pressure is also essential.",
"links": []
},
"tmY4Ktu6luFg5wKylJW76": {
"title": "Production issues management",
"description": "As an Engineering Manager, handling production issues is one of the vital responsibilities. This includes timeliness in identifying, troubleshooting, and resolving problems. They may be involved in the actual debugging, but most of their tasks involve coordinating the team and defining procedures for a swift response to any issues.\n\nAddressing these issues can be challenging, particularly if they disrupt essential services or products. The manager needs to communicate effectively with the team and stakeholders, manage expectations, and ensure minimal interruption of services.\n\nTo excel in production issues management, an Engineering Manager needs valuable skills. These include technical knowledge, critical thinking, decision-making, and strong communication skills. Also, experience with certain tools, like monitoring software, could be beneficial to quickly detect and resolve issues.",
"links": []
},
"5MM1ccB1pmQcd3Uyjmbr7": {
"title": "Board presentations",
"description": "Engineering Managers handle board presentations as a means to communicate company's technical strategies and progress. Main responsibility includes providing a comprehensive yet easy-to-understand technical synopsis to the board members who might not be tech-savvy. It involves striking a balance between technical specifics and high-level overviews.\n\nA common challenge is simplifying the technical language without losing substance. Using clear visualization tools and analogies can help in making complex concepts more digestible. Not being able to communicate effectively may lead to misunderstandings or underestimation of the team's efforts and milestones.\n\nSuccess requires not just technical skills but also a mastery of effective communication. Being ready to answer challenging questions and providing follow-up documents for further reading shows preparedness and understanding of the topics at hand.",
"links": []
},
"CHothgVl8ulFthwS7uKqK": {
"title": "Executive summaries",
"description": "As an Engineering Manager, producing clear and helpful executive summaries is key. This type of communication gives a quick brief to leadership about the engineering team's progress and challenges. Crucial points should be distilled into easily digestible information, free of technical jargon that might cause confusion.\n\nAddressing this responsibility demands an in-depth understanding of both the projects at hand and the priorities of the executives. The manager must identify and deliver the information most relevant to decision-makers.\n\nChallenges include ensuring clarity without losing important details and keeping the summary concise yet comprehensive. To overcome these, the manager must practice effective summarization and gain feedback from receivers. This way, the manager is constantly refining their communication approach, making sure it meets the audience's needs.",
"links": []
},
"uBrsV_EocAkRWEqJYjoZn": {
"title": "Strategic proposals",
"description": "An Engineering Manager's role in strategic proposals involves developing and presenting potential strategies to executives. They need to understand the technical aspects of projects or strategies, and relay this information to non-technical audiences persuasively.\n\nThe challenge lies in tailoring technical content for an executive audience. This requires exceptional communication skills and an ability to simplify complex information. A successful Engineering Manager is one who can translate complex engineering concepts into strategic proposals that align with the company's objectives.\n\nKey responsibilities include understanding the company's strategic direction, proactively identifying areas for improvement or innovation, and crafting strategic proposals that clearly communicate benefits, costs, and potential risks. It's a demanding task that necessitates critical thinking, strategic planning, and clear communication skills.",
"links": []
},
"pLUOU2AmAJ9aJAmIlVD7D": {
"title": "Budget requests",
"description": "As an Engineering Manager, handling budget requests is more than just numbers. Its about demonstrating the value of engineering efforts in clear business terms to executives. Here, their role is to justify the request by showing how the budget aligns with the team's goals and the company's strategic objectives. They often face the challenge of explaining technical necessities in a business-friendly language.\n\nEngineering Managers need to quantify the team's needs - such as manpower, equipment, or resources - without overstuffing the budget. They should be skilled in translating the cost of these aspects into potential business benefits like improved efficiency or quality.\n\nCrucially, the Engineering Manager should complement the budget request with a risk-assessment to anticipate potential obstacles. This shows foresight and an understanding of the business landscape, something executive teams appreciate.",
"links": []
},
"QssXmeifoI3dtu-eXp8PK": {
"title": "Vision alignment",
"description": "As an Engineering Manager, aligning vision is a crucial aspect of executive communication. They are responsible for understanding the company's strategic objectives and translating them into engineering goals. This task requires effective communication, ensuring all team members comprehend and work towards this common goal.\n\nThe challenge is to explain complex technical strategies in a clear, engaging way that connects with the broader organization's mission. It involves constant dialogue with the executive team, offering technical expertise in strategic planning, and negotiable skills to balance between ambitious business goals and realistic engineering capacities.\n\nCrafting this bridge between executive vision and engineering execution requires a mix of technical depth, strategic thinking, and excellent interpersonal skills. Managers need to be good listeners, flexible thinkers, and inspiring leaders to ensure the team can perform optimally to bring the vision to life.",
"links": []
},
"QEViLNgG4Uv9Q9PWig0u3": {
"title": "Customer feedback integration",
"description": "Engineering Managers shoulder a crucial responsibility while integrating customer feedback. This usually means working closely with design and development teams to incorporate customers' inputs into the product. The key to success here is maintaining a keen solicitude for the end-users' experience and needs.\n\nAmidst the technical jargon and coding diagrams, it's all too easy to lose sight of the user. Therefore, good Engineering Managers ensure that the customer's perspective is never lost. They build systems to meticulously collect and analyze customer feedback and then transform it into tangible product improvement plans.\n\nChallenges include aligning customer needs with technical limitations and resources. Effective Engineering Managers prioritise feedback based on its potential impact and feasibility, translate it into technical requirements for their team, and implement it seamlessly without disrupting the user's experience. This process requires a fine balance of technical understanding, project management skills, and an empathetic approach towards customers.",
"links": []
},
"V5s2i-L2tsZFNxMLN_e_U": {
"title": "Technical customer support",
"description": "Engineering Managers play a vital role in technical customer support. They're responsible for ensuring that their team provides accurate and timely solutions to the customer's technical issues. Their key responsibilities include devising effective strategies for problem-solving, conducting regular team meetings to discuss pressing issues, and maintaining strong communication with other teams to understand system issues or software bugs.\n\nEngineering Managers also often face the challenge of reducing response time, managing customer expectations, and providing quality tech support. To tackle these, they prioritize regular training and upskilling for their team, foster an environment of continuous improvement, and use customer feedback for process enhancements.\n\nSuccess in this aspect requires strong technical acumen, excellent communication skills, and a customer-centric approach. The capability to turn customer feedback into actionable improvements is an invaluable asset in this role.",
"links": []
},
"A-Aa7VdDAYfaMUZD_cWwP": {
"title": "Customer success alignment",
"description": "An Engineering Managers involvement in customer success alignment is crucial. They ensure that the engineering team aligns with the customers needs and expectations. Key responsibilities include collaborating with the customer success team, understanding customer requirements, and making sure the engineering team is on the same page.\n\nChallenges arise when there's a disconnect between what customers want and what the engineering team is set to deliver. But addressing them requires clear communication and strong problem-solving skills. Frequent interactions with the customer success team can foster the understanding necessary to prevent these issues.\n\nOverall, succeeding in this area requires excellent interpersonal skills. It's also crucial for Engineering Managers to have good technical understanding to relate customer needs to engineering tasks effectively. This ensures that the end product deepens customer satisfaction and leads to continuous business growth.",
"links": []
},
"2QwMcO27H3ygtLlWVplxr": {
"title": "Feature prioritization",
"description": "As an Engineering Manager, they play a crucial role in feature prioritization. Their key responsibility is to balance the demands of the customers with the resources of their engineering team. Gleaning insights from customer feedback, market trends, and competitor analysis, they guide the team to focus on what's crucial for the business.\n\nChallenges faced by Engineering Managers in feature prioritization include time and resource constraints. They tackle these issues by adopting smart resourcing practices and clear-cut project management methodologies.\n\nFlourishing in feature prioritization requires excellent decision-making skills and adept stakeholder management. It's about understanding customer needs, foreseeing benefits of potential features, and skilled negotiation with the project team to achieve the best outcome for the company.",
"links": []
},
"tCT2syTMyEHCspDLXxk6R": {
"title": "Technical partnerships",
"description": "An Engineering Manager plays a vital role in fostering technical partnerships in relation to customer relations. They have the responsibility of coordinating and collaborating with tech-partners to fulfill customer requirements, effectively leveraging their expertise for mutual benefit. They need to maintain a sound understanding of both the partner's capabilities and the customer's needs, bridging them effectively.\n\nThe main challenges include managing expectations and solving conflicts between the needs of the customer and the capabilities of the tech-partner. Engineering Managers address these by maintaining transparency and keeping lines of communication open to ensure a smooth collaboration.\n\nTo succeed, an Engineering Manager needs to have excellent communication and negotiation skills, alongside a strong understanding of technology. Being proactive in foreseeing and managing potential conflicts and issues can also lead to a successful technical partnership.",
"links": []
},
"WYoqfmk5ejB2UOiYXh4Zi": {
"title": "Vendor relationships",
"description": "Engineering managers play a crucial role in maintaining robust vendor relationships. They are often responsible for choosing the right vendors, managing contracts, and ensuring the quality of services or goods provided.\n\nOne challenge they face is ensuring that the vendors adhere to the agreed service level agreements (SLAs) and standards. They handle this by setting clear expectations, maintaining open communication, and effectively managing vendor performance.\n\nFor success in this area, an engineering manager needs strong negotiation skills, good communication, and an understanding of contract management. A proactive approach to addressing issues and fostering a positive relationship is also beneficial. This ultimately helps the team get high-quality services and meet their goals.",
"links": []
},
"xMN575nnnQJeHe2oJYw17": {
"title": "Technology partnerships",
"description": "Engineering Managers play a key role in fostering technology partnerships. It's a necessity for them to understand both the technical sides and value propositions of potential partners. They establish and maintain relationships based on mutual technology goals, and ensure that partners align with the overall strategy of their engineering team.\n\nFor partner management, Engineering Managers often need strong negotiation skills and a clear understanding of the business impact. They are responsible for regular partner check-ins and gauging the success of the partnership. A collaborative approach ensures that both parties receive benefits.\n\nThe challenge often lies in managing divergent priorities and expectations. To navigate this, an Engineering Manager needs effective communication and conflict resolution skills. They explore how technology partnerships can advance the teams objectives, but also remain mindful of the risk and investment involved.",
"links": []
},
"f3P0fF4UzgVQZuMVTVmP1": {
"title": "Integration management",
"description": "An engineering manager in partner management has a critical role in managing integrations. Their responsibilities include overseeing the development of tools and technologies that facilitate seamless connectivity with partners, ensuring the integration process meets partner requirements and goals.\n\nEngineering managers face challenges like dealing with complex integration scenarios, aligning technological needs, and handling communication between multiple teams. To succeed in this area, they need skills in API management, technical knowledge and the ability to communicate effectively.\n\nAn important approach here is proactive problem solving. An engineering manager will benefit from anticipating possible issues and implementing solutions ahead of time. This will make the integration process smoother and prevent major disruptions.",
"links": []
},
"ukmMMWacekcejEiEKCLzh": {
"title": "API strategy",
"description": "An Engineering Manager's ability to handle API strategies directly impacts the success of partner management. A key responsibility in this area is defining clear API requirements that align with partner needs and business targets. Meeting these goals can be complex, mainly due to differing partner expectations and changing trends in API development.\n\nOvercoming these challenges requires a deep understanding of the technical use-cases of the API. An Engineering Manager needs adept negotiation skills to balance the technical and business sides of API strategy. They must also ensure interoperability and maintain the company's standards, which is crucial for partner satisfaction and long-term relations.\n\nFinally, frequent communication and receptiveness to feedback allows the Manager to refine the strategy effectively, spotting gaps and staying ahead in the competitive tech market.",
"links": []
},
"Jctp5tPCK_vY35_bh7QFk": {
"title": "External collaboration",
"description": "The role of an Engineering Manager extends to external collaboration as well. Here, they often serve the role of liaising with external teams, vendors, or partners, aligning goals and ensuring smooth communication flow. The key responsibilities include managing relationships, understanding the partner ecosystem, and negotiating win-win situations.\n\nEngineering Managers face challenges like cultural differences, communication hurdles, or time zone disparities. They address these by building reliability through regular updates, clear agendas, and understanding each other's work culture.\n\nTo succeed, Engineering Managers need good interpersonal skills, a keen eye for future opportunities, and the ability to adapt quickly. An understanding of business and sales, alongside engineering knowledge, can be advantageous too. This role needs balance - drive details when necessary and step back and delegate when appropriate.",
"links": []
},
"TQY4hjo56rDdlbzjs_-nl": {
"title": "Competitive Analysis",
"description": "An Engineering Manager uses competitive analysis to understand market trends and competitor strategies. This aids in decision-making and strategic planning. Their key responsibilities include identifying key competitors, analyzing their products, sales, and marketing strategies.\n\nChallenges may arise from having incomplete or inaccurate data. In these cases, Engineering Managers have to rely on their judgement and experience. Their analysis should be unbiased and as accurate as possible to influence the right design and development strategies.\n\nSuccessful competitive analysis requires strong analytical skills, keen attention to detail, and the ability to understand complex market dynamics. Managers must stay updated on market trend, technological advancements and be able to distinguish their company's unique selling proposition. This will allow them to plan steps to maintain competitiveness in the market.",
"links": []
},
"QUxpEK8smXRBs2gMdDInB": {
"title": "Legacy System Retirement",
"description": "Every Engineering Manager knows the value and hurdles of legacy system retirement. They must plan and manage this complex task with a keen understanding of the system's purpose, its interdependencies, and potential risks of its retirement. Key responsibilities include assessing the impact on users, mitigating downtime, and ensuring business continuity.\n\nChallenges often arise from lack of documentation or knowledge about the legacy system. To overcome this, they could organize knowledge-sharing sessions with long-standing team members, assessing external help, or gradual transition methods.\n\nThe successful retirement of a legacy system requires a comprehensive approach, good interpersonal skills for team collaboration, and strong decision-making skills. An Engineering Manager has to balance the systems business value against the cost and risk of maintaining it.",
"links": []
},
"gHhNi32MSBmqk-oKOy-uj": {
"title": "Architecture documentation",
"description": "Engineering managers pave the way to secure well-built architecture documents. These texts act as blueprints - they guide software development and offer comprehensive visibility into the system's structure. Therefore, managers ensure that these crucial documents are precise, updated, and accessible to all team members.\n\nHowever, architecture documentation also throws up challenges. The difficulty lies in maintaining the usability and relevance of these documents, particularly as the system evolves over time. Managers tackle these issues by establishing strong documentation policies and encouraging team members to continuously review and revise their work.\n\nAt the core, excellent communication skills and a deep understanding of system architecture are central to succeeding in this area. With these capabilities, engineering managers can effectively translate detailed technical insights into comprehensible visual models and clear descriptions.",
"links": []
},
"Kwy9O1z2hpeE0Sb3qtxEg": {
"title": "Process documentation",
"description": "An Engineering Manager deeply recognizes the vitality of process documentation to ensure smooth operations within the team. The manager is responsible for leading this area, facilitating a comprehensive and accurate representation of processes, and crafting guidelines that are easy to understand. They guarantee that essential information isn't locked in someone's head and is readily accessible for the team.\n\nChallenges often arise in keeping documents up-to-date and ensuring the team uses them. Engineering Managers respond by fostering a culture where documentation is viewed as a vital part of work, not an afterthought. Regular audits, revisions, and promoting ownership among team members help keep the documentation accurate and relevant.\n\nSuccess in process documentation demands exceptional organizational skills, clear communication, and a keen eye for detail. An approach that values simplicity and clarity reduces the barrier to maintain and use these documents.",
"links": []
},
"dTjp_rEl1ITZjvELqVtfv": {
"title": "Decision records",
"description": "An Engineering Manager plays a crucial role in preserving decision records. These records serve as valuable historical documents, they encapsulate reasons behind significant decisions made in projects. An Engineering Manager's key responsibilities include ensuring decision records are kept up to date, comprehensible and easily accessible.\n\nChallenges the manager may face can stem from inconsistent documentation or low prioritization of record keeping. To tackle these issues, they must foster a culture that values accuracy and promptness in documentation.\n\nSuccess in this aspect requires a consistent methodology and communication skills. Managers should introduce standard formats for decision records and promote their routine use. They need to guide their teams on the importance of records not just for looking back but for future project strategy as well.",
"links": []
},
"HUQ_-vU2pdBPyF0mBocHz": {
"title": "Lessons Learned",
"description": "As an Engineering Manager, one key responsibility in the field of knowledge management is the curation of \"Lessons Learned\". This involves reflecting on completed projects, identifying what was done well and what could be improved in the future.\n\nA significant challenge they face is ensuring these lessons are clearly articulated and accessible to all team members, to ensure similar issues don't reoccur. They handle this by creating well-structured documents that provide context, detail the problem encountered, and outline recommended improvements.\n\nTo effectively capture and share lessons learned requires a systematic approach, good communication skills, and a culture that encourages learning. This helps to improve team efficiency and reduce the risk of repeating mistakes, contributing to the overall success of an engineering team.",
"links": []
},
"4-MCXFOkMGcN369OPG-vw": {
"title": "Best Practices",
"description": "As an Engineering Manager, one key area you interact with is the best practices for documentation. This involves ensuring your team consistently maintains high-quality, easily readable, and efficiently structured documents. Importance is placed on keeping information up-to-date and easily accessible to facilitate quick decision-making and work efficiency.\n\nOne of your responsibilities is to instill an awareness in your team of the lasting impact of good documentation. Encourage them to take time in creating materials that not only help their current project but also aid future understanding.\n\nChallenges may emerge when documentation is seen as secondary to product development. Overcome this by emphasizing the long-term benefits of comprehensive documentation, like saving time on future projects and reducing technical debt. Ensure your team respects the 'write the docs' ideology where coding and documenting go hand-in-hand.",
"links": []
},
"g6K9fxWdRQT5h_u4Y_bkq": {
"title": "Mentoring Programs",
"description": "An Engineering Manager has a crucial role in facilitating mentoring programs as part of knowledge transfer. Their responsibilities involve choosing the right pairs for mentorship, ensuring mentors have the appropriate skills and knowledge, and evaluating the effectiveness of the program.\n\nOne of the challenges they may encounter is determining how to pair mentors and mentees. They address this through a thorough understanding of each team member's skill level and career goals. Additionally, they balance the workload of mentors to prevent them from feeling overstretched.\n\nSuccessful knowledge transfer through mentoring involves patience, active listening, and constant feedback. By harnessing these skills and encouraging mentors to do the same, an Engineering Manager ensures a conducive environment for learning and professional growth.",
"links": []
},
"7t9jmv3_lRCEG5y5DA8bF": {
"title": "Knowledge bases",
"description": "An Engineering Manager plays a crucial role in establishing solid knowledge bases for their team. This is a system where team members record, update, and share information about projects, coding practices, or other essential technical insights. The Engineering Manager is responsible for making sure that information is up-to-date, relevant, and easily accessible for everyone on the team.\n\nA key challenge here can be information overload or outdated knowledge. The Manager needs to ensure the team regularly update the databases and that outdated information is removed promptly. This keeps the knowledge bases useful and efficient.\n\nTo succeed in this area, an Engineering Manager should promote open communication and regular updates among team members. Also, being competent in modern documentation tools can significantly assist in maintaining an effective knowledge base.",
"links": []
},
"S8-nwYKlG7YHL2dWwR303": {
"title": "Brown Bags",
"description": "An Engineering Manager can utilize Brown Bags as a relaxed, voluntary form of knowledge transfer among the team. It's mainly their job to set the agenda and faciliate these informal sessions, leveraging them to encourage team members to share information and learnings.\n\nThey face the challenge of ensuring relevant content is being shared, while maintaining an atmosphere where people are comfortable speaking. They navigate this by fostering a culture of open communication and inclusion within the team, where questions and discussions are encouraged.\n\nSuccess in conducting Brown Bags requires excellent communication skills, the ability to facilitate productive discussions, and the wisdom to ensure that the sessions are worthwhile. This enhances cross pollination of ideas and helps to build an environment of trust and continuous learning.",
"links": []
},
"2LO0iWf-y3l4rA1n_oG1g": {
"title": "Tech Talks",
"description": "Engineering Managers often utilize Tech Talks as an effective method for knowledge transfer within the team. It's their responsibility to organize these sessions where team members can share ideas, innovations, and discoveries related to their technical work. These discussions can help to improve overall team understanding, promote learning, and foster a culture of open communication.\n\nOne challenge for managers is getting team members to actively participate in Tech Talks. To overcome this, they might offer incentives or make participation part of performance assessments. Also, having clearly defined topics can help keep discussions focused and engaging.\n\nSuccessful Engineering Managers encourage team members to take ownership of Tech Talk sessions. This approach promotes leadership within the team and helps to share knowledge in a more organic and relatable way.",
"links": []
},
"QMAIEkVFHrrP6lUWvd0S8": {
"title": "Migration planning",
"description": "Migration planning is a key facet of an Engineering Manager's responsibilities. They play a pivotal role in planning, coordinating, and overseeing the technical changes that include systems, databases, or application migration. This process requires them to have a solid understanding of the current technologies and the new systems being adopted, align migration activities with business needs and ensure minimal disruption to services.\n\nSome of the challenges they may encounter include ensuring data integrity, managing downtime, and unforeseen technical issues. Addressing these hurdles requires clear communication, effective risk management, and technology prowess.\n\nSuccess in migration planning hinges on a detailed understanding of the systems involved, robust planning, and leadership skills. It involves meticulous resource allocation, timeline management, and the ability to facilitate smooth collaboration among various teams.",
"links": []
},
"9mNLfntu1TPjcX3RoUeMq": {
"title": "Legacy system retirement",
"description": "The retirement of legacy systems often falls under an Engineering Manager's purview. One of their main responsibilities is determining when a system becomes obsolete and planning its phase-out. This task demands a delicate balance of technical acumen, project management skills, and sound communication to ensure minimal disruption.\n\nChallenges include preserving vital data and functionalities and dealing with resistance to change. An Engineering Manager must expertly manage these by adopting a systematic and collaborative approach involving all stakeholders. Technical alternatives, cost-benefit analyses, timelines, and risk mitigation must be part of the plan.\n\nSuccessful legacy system retirement necessitates a mix of technical knowledge and soft skills. Understanding the system intricacies and the potential impact of its retirement is essential. Equally important is the ability to communicate effectively, manage change, and lead the team through the transition.",
"links": []
},
"jerPoyfCcwZbNuE_cl1hq": {
"title": "Technology adoption",
"description": "An Engineering Manager has a vital role during technology adoption as a part of technical change management. They evaluate technologies to determine their suitability for the team's needs. This includes assessing the impact of new technologies on existing systems, workflows, and team skills.\n\nEngineering Managers are responsible for planning the adoption process, communicating changes to the team, and overseeing implementation. This minimizes disruption and ensures a smooth transition to the new technology. They must also organize training sessions to help team members get up to speed with the new technology.\n\nOne of the challenges faced by Engineering Managers during technology adoption is resistance to change. They must manage this tactfully by highlighting the benefits of the new technology, and ensuring everyone's concerns are addressed. Strong communication skills and a patient approach are required for this.",
"links": []
},
"f-52wRfPRrA9iniOMYQB7": {
"title": "Tool transitions",
"description": "As an Engineering Manager, implementing a tool transition is a major responsibility. It's key to ensure the new tool meets team requirements and aligns with company goals. They need to plan the transition, helping team members understand why the change is happening and what the benefits are.\n\nChallenges during tool transitions include resistance to change, knowledge gaps, and possible disruption to workflows. The Engineering Manager must address these by having clear communication, offering training, and incorporating staff feedback during the transition.\n\nSuccess in tool transition often calls for strong leadership, excellent communication, project management abilities, and a good grasp on the technical aspects of both the legacy and new tools. Managers need to implement the new system smoothly while also maintaining ongoing team productivity.",
"links": []
},
"ev9ZKygqETctLMSt1GAFU": {
"title": "Process changes",
"description": "An Engineering Manager identifies the need for process changes, and oversees the implementation. They'll usually take the front seat in conducting technical reviews to evaluate current procedures. If there's an operational gap, they'll design and enforce a more efficient process.\n\nAddressing implementation obstacles is another responsibility. This means the manager will handle resistance to change and maintain team morale. They'll often use clear communication to elucidate the reasons for the change, and the benefits it'll bring.\n\nIn order to land this successfully, an Engineering Manager needs good analytical skills to pinpoint the weak areas in the current processes, and excellent leadership and communication skills to facilitate the transition. They should also be flexible, to adapt the plan as the change progresses.",
"links": []
},
"1__zRE1iu1FDX9ynpWSBS": {
"title": "Change strategy",
"description": "An Engineering Manager plays a vital role in developing and deploying organizational change strategies. They need to clearly define the vision, set realistic objectives, devise a detailed roadmap for change, and regularly update the team. Proper communication is vital to manage any fears or doubts among team members.\n\nIn this regard, skills required vary from strategic thinking to effective communication and empathy. It's not just about the technical aspects but understanding the human side of change. It is essential to identify the potential impacts of the change and prepare teams accordingly.\n\nThe challenge lies in balancing the pace of change and dealing with resistance. Successful managers often tackle this by ensuring inclusivity in strategy development, open dialogues, and continuous support throughout the transition process.",
"links": []
},
"oGmtkOGVgA4huGJqkBEfj": {
"title": "Impact assessment",
"description": "An Engineering Manager's role in 'Impact Assessment' during 'Organizational Change' involves assessing the potential risks and effects of proposed changes on their team and the larger organization. They need to foresee potential negative impacts and devise strategies to mitigate them to maintain the team's productivity and morale.\n\nEngineering Managers are responsible for communicating these assessments to their teams and addressing any concerns. They must clearly express the necessity of the changes, the benefits, and how it could influence team and individual work. They should also layout planned measures to offset possible negative effects.\n\nDoing successful impact assessments requires analytical skills, logical thinking, and excellent communication. Managers must gather and analyze data, predict possible outcomes, understand their team's strengths and weaknesses, and efficiently communicate the assessment results.",
"links": []
},
"34uOnta7dKOyZL0et_RC8": {
"title": "Stakeholder management",
"description": "An Engineering Manager plays a critical role in stakeholder management during organizational change. They act as the link between the technical team and all other stakeholders (e.g., customer, management, or other teams). Their main responsibilities include communicating effectively about the impact of the proposed changes on the product delivery, ensuring that the stakeholders are on the same page about it.\n\nThe challenge here is that stakeholders may have different perspectives and respond differently to the change. To handle this, the Engineering Manager needs to have good negotiation skills and the ability to manage conflicts. They must present information in a way that maintains stakeholder buy-in throughout the process.\n\nIn essence, successful stakeholder management requires clear communication, empathy, and understanding of different stakeholder's needs. This ensures a smoother transition with minimal disruptions to the engineering workflow.",
"links": []
},
"Mxi4g_PzT0oYc3NgR0UVg": {
"title": "Communication planning",
"description": "An Engineering Manager is pivotal in communication planning during organizational changes. His key tasks are to ensure timely and clear communication to prevent confusion and keep the team committed. They keep a balance between providing too much detail that would overwhelm and too little that might result in anxiety and fear.\n\nThe manager can face issues like hesitance from teams to change or rumors spreading due to unclear messages. To mitigate these, he needs to create an effective communication plan, ensuring that it is proactive and on-going, so the team remains informed about the changes.\n\nLastly, having strong leadership and communication skills will enable the Engineering Manager to successfully guide their team through the change. Also, empathy and patience are needed, as change can be stressful and it takes time for people to adjust.",
"links": []
},
"vfp6VmWnhpre_eDORg7ht": {
"title": "Resistance management",
"description": "In managing resistance during organizational change, an Engineering Manager's role involves identifying employees' concerns and fears. They work to address these issues by demonstrating empathy, opening communications, and providing solid reasons for the change. Addressing resistance may require new skills or adjustments to work styles, making training and support vital parts of the process.\n\nEngineering Managers often face employees' fear of change, decreased morale, or reduced productivity during transitional periods. To navigate these challenges, they develop clear plans, communicate constantly about the change and the benefits it will bring, and involve employees in the change process to generate buy-in.\n\nSuccess in resistance management requires strong emotional intelligence, solid communication skills, and the ability to motivate teams. Industries and situations vary, but maintaining transparency and empathy often result in positive outcomes.",
"links": []
},
"5_CE3p5jMA1uEqFNfp7Kh": {
"title": "Reorganizations",
"description": "As an Engineering Manager, dealing with reorganizations can be challenging yet vital. They are responsible for planning and executing the restructure while ensuring minimal disruption to the workflow. It's also their duty to communicate these changes to their teams clearly and compassionously, as reorganizations can often lead to anxiety among members.\n\nKey challenges that they might face include resistance to change, possible decrease in productivity, and maintaining team morale. To tackle these hurdles, they must exhibit strong leadership, good communication, and problem-solving skills. They should also understand the unique dynamics of their team members to address their concerns effectively.\n\nBeing equipped with strategic thinking can help an Engineering Manager navigate reorganizations successfully. This involves envisioning the desired end-state, planning the transition phase meticulously, and managing the impact on the teams, empowering smooth transformation.",
"links": []
},
"ph0U4l2alVJ8lUJ96q7co": {
"title": "Team mergers",
"description": "Engineering Managers play a crucial role in merging teams. Their responsibility is to lead the process smoothly and ensure the newly merged team works effectively. It involves planning and executing the integration process, setting shared goals, and building team unity. They need to focus on promoting open communication, resolving conflicts and managing team dynamics.\n\nMerging teams presents challenges such as blending different cultures, aligning processes, and addressing concerns of team members. Managers tackle these by promoting transparency, facilitating consistent communication, and setting clear expectations.\n\nSucceeding in this aspect requires strong leadership and interpersonal skills. Empathy and good listening skills are vital to understand and address team member concerns. It also requires good planning and organizational skills to manage the process efficiently and ensure the new team is productive.",
"links": []
},
"FayHWdUHHYFFBwnXx37Gk": {
"title": "Role transitions",
"description": "Role transitions often occur within an Engineering team, and an Engineering Manager has a crucial role managing these changes. They're responsible for making sure transitioning team members are clear about their new duties and have the support they need to fulfill them.\n\nChallenges that arise with role transitions can include resistance to change, confusion, or even a decrease in productivity. Engineering Managers address these challenges through transparent communication, hands-on training, and creating a workspace that supports learning and adaptation.\n\nSuccess in managing role transitions requires a mix of technical understanding, strong communication, and leadership skills. Periodic check-ins and feedback sessions are also useful for ensuring these transitions are effective and beneficial for all involved. This approach not only helps alleviate concerns but also aids in keeping team morale high during times of change.",
"links": []
},
"eIlW4mZKNQfBsTDmZf7ex": {
"title": "Responsibility shifts",
"description": "Engineering Managers often handle responsibility shifts within the team during change management. It's their duty to analyze what skills are needed, and delegate new duties accordingly. They also ensure all members understand their updated roles, ensuring a smooth transition.\n\nResponsibility shifts often present challenges because they might disrupt established work rhythms. The Engineering Manager should address these concerns head on. This could involve reassuring the team, providing additional training, or even modifying the shift if needed.\n\nSucceeding in this area takes great communication skills and a deep understanding of your team's strengths and weaknesses. It requires being open to feedback and adapting quickly. By doing so, Engineering Managers can turn the potentially tumultuous event of a responsibility shift into a moment of growth for both individuals and the team.",
"links": []
},
"y7YHIz7OI4sNfC_nhfLcu": {
"title": "Culture evolution",
"description": "Engineering Managers play a crucial role in culture evolution during team changes. Their key responsibilities fall within communication, fostering an environment of transparency, addressing concerns, and leveraging changes to strengthen the teams values and spirit.\n\nNavigating cultural shifts can be challenging. Engineering Managers often address this by keeping regular check-ins, encouraging open discussions, and instilling trust in their teams agility to adapt. They act as the change agents,' driving the cultural transition smoothly to avoid unexpected disruptions.\n\nTo succeed in advancing a teams culture, an Engineering Manager needs strong interpersonal skills and a positive outlook. Striking a balance between maintaining existing positive aspects of culture, while infusing new elements that align with the change, is crucial. This approach helps create a dynamic, evolving, yet stable environment for the team.",
"links": []
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,882 @@
{
"B0kARTODvCBi0iOF8iiqI": {
"title": "HTML",
"description": "HTML stands for HyperText Markup Language. It is used on the frontend and gives the structure to the webpage which you can style using CSS and make interactive using JavaScript.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "W3Schools: Learn HTML",
"url": "https://www.w3schools.com/html/html_intro.asp",
"type": "article"
},
{
"title": "Explore top posts about HTML",
"url": "https://app.daily.dev/tags/html?ref=roadmapsh",
"type": "article"
},
{
"title": "HTML Full Course for Beginners",
"url": "https://youtu.be/mJgBOIoGihA",
"type": "video"
},
{
"title": "HTML Full Course - Build a Website Tutorial",
"url": "https://www.youtube.com/watch?v=pQN-pnXPaVg",
"type": "video"
}
]
},
"dAJHWmGeiYdzZ1ZjrWz1S": {
"title": "CSS",
"description": "CSS or Cascading Style Sheets is the language used to style the frontend of any website. CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "W3Schools — Learn CSS",
"url": "https://www.w3schools.com/css/",
"type": "article"
},
{
"title": "Web.dev by Google — Learn CSS",
"url": "https://web.dev/learn/css/",
"type": "article"
},
{
"title": "Explore top posts about CSS",
"url": "https://app.daily.dev/tags/css?ref=roadmapsh",
"type": "article"
},
{
"title": "CSS Complete Course",
"url": "https://youtu.be/n4R2E7O-Ngo",
"type": "video"
},
{
"title": "HTML and CSS Tutorial",
"url": "https://www.youtube.com/watch?v=D-h8L5hgW-w",
"type": "video"
}
]
},
"T9PB6WQf-Fa9NXKKvVOy_": {
"title": "JavaScript",
"description": "JavaScript allows you to add interactivity to your pages. Common examples that you may have seen on the websites are sliders, click interactions, popups and so on.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated JavaScript Roadmap",
"url": "https://roadmap.sh/javascript",
"type": "article"
},
{
"title": "The Modern JavaScript Tutorial",
"url": "https://javascript.info/",
"type": "article"
},
{
"title": "Build 30 Javascript projects in 30 days",
"url": "https://javascript30.com/",
"type": "article"
},
{
"title": "Explore top posts about JavaScript",
"url": "https://app.daily.dev/tags/javascript?ref=roadmapsh",
"type": "article"
},
{
"title": "JavaScript Crash Course for Beginners",
"url": "https://youtu.be/hdI2bqOjy3c?t=2",
"type": "video"
}
]
},
"mGgx_QTEPmVKf6AijX9fi": {
"title": "npm",
"description": "npm is a package manager for the JavaScript programming language maintained by npm, Inc. npm is the default package manager for the JavaScript runtime environment Node.js.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "How to NPM",
"url": "https://github.com/workshopper/how-to-npm",
"type": "opensource"
},
{
"title": "Modern JavaScript for Dinosaurs",
"url": "https://peterxjang.com/blog/modern-javascript-explained-for-dinosaurs.html",
"type": "article"
},
{
"title": "An Absolute Beginners Guide to Using npm",
"url": "https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/",
"type": "article"
},
{
"title": "Explore top posts about NPM",
"url": "https://app.daily.dev/tags/npm?ref=roadmapsh",
"type": "article"
},
{
"title": "NPM tutorial for Beginners",
"url": "https://www.youtube.com/watch?v=2V1UUhBJ62Y",
"type": "video"
},
{
"title": "NPM Crash Course",
"url": "https://www.youtube.com/watch?v=jHDhaSSKmB0",
"type": "video"
}
]
},
"WsdUAEaI7FX6DKKhPXUHp": {
"title": "Checkpoint - Static Webpages",
"description": "Now that you have learnt HTML and CSS, you should be able to build static webpages. I recommend you to build as many test projects at each yellow step of the roadmap as possible to solidify what you learn.\n\nThe practice that I used to follow when I was learning was this:\n\n* While you are watching a course or reading a book, make sure to code along with the instructor/author — pause the video at regular intervals and code what you are being taught.\n* Search on YouTube and watch a few project based tutorials on the topic that you are learning. Apart from coding along with the instructor:\n * Try to build the same project at least 2 to 3 times on your own without looking at the video. If you get stuck, refer to the section of the video where the instructor builds that part of the project.\n * Build something else that is similar to the project that you just built. For example, if you just built a todo app, try to build a notes app or a reminder app.\n\nProject Ideas\n-------------\n\nNow that you have learnt HTML and CSS, here are a few ideas for you to build:\n\n* Try to copy the design of a website that you like.\n * Here is a [simple blog design in figma](https://www.figma.com/file/nh0V05z3NB87ue9v5PcO3R/writings.dev?type=design&node-id=0%3A1&t=2iQplaIojU3ydAfW-1) that you can try to copy.\n * Or try to rebuild the [webpages of this website](https://cs.fyi/).\n* Take some inspiration from [personal portfolios of others](https://astro.build/showcase/) and build your own personal portfolio",
"links": []
},
"2DFzoIUjKdAKGjfu_SCfa": {
"title": "Checkpoint - Interactivity",
"description": "At this point you should be able to add interactivity to your web pages using JavaScript. You should make sure that you have learnt the following:\n\n* Know about variables, loops, data types, conditionals, functions.\n* Know about arrays and objects and different ways to access their data.\n* Know how to select DOM elements.\n* Add event listeners to DOM elements (e.g. click, focus, form submission).\n* Use JavaScript to add and remove DOM elements\n* Add and remove classes from DOM elements\n* Use JavaScript to make HTTP requests to external APIs (i.e. `fetch`)\n* Use JavaScript to store data in the browser's local storage\n\nHere are few ideas to practice your skills:\n\n* Create a simple to-do list app that allows users to search, add, edit, and delete items. Use local storage to store the data.\n* Create a simple webpage where user can put in anyone's GitHub username and see their profile information. You can use GitHub's API to fetch the data. For example, here is the [sample URL to fetch my data](https://api.github.com/users/kamranahmedse). Make sure to add validation and error handling.\n* Create a basic calculator app that allows users to perform basic arithmetic operations.",
"links": []
},
"We2APJpOPTr-VNfowG0kI": {
"title": "Git",
"description": "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
{
"title": "Git Documentation",
"url": "https://git-scm.com/",
"type": "article"
},
{
"title": "Learn Git with Tutorials, News and Tips - Atlassian",
"url": "https://www.atlassian.com/git",
"type": "article"
},
{
"title": "Git Cheat Sheet",
"url": "https://cs.fyi/guide/git-cheatsheet",
"type": "article"
},
{
"title": "Explore top posts about Git",
"url": "https://app.daily.dev/tags/git?ref=roadmapsh",
"type": "article"
},
{
"title": "Git & GitHub Crash Course For Beginners",
"url": "https://www.youtube.com/watch?v=SWYqp7iY_Tc",
"type": "video"
},
{
"title": "Git Tutorial For Dummies",
"url": "https://www.youtube.com/watch?v=mJ-qvsxPHpY",
"type": "video"
}
]
},
"8sPXL8iClpPqje03ksses": {
"title": "GitHub",
"description": "GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "GitHub",
"url": "https://github.com",
"type": "article"
},
{
"title": "GitHub Documentation",
"url": "https://docs.github.com/en/get-started/quickstart",
"type": "article"
},
{
"title": "How to Use Git in a Professional Dev Team",
"url": "https://ooloo.io/project/github-flow",
"type": "article"
},
{
"title": "Explore top posts about GitHub",
"url": "https://app.daily.dev/tags/github?ref=roadmapsh",
"type": "article"
},
{
"title": "What is GitHub?",
"url": "https://www.youtube.com/watch?v=w3jLJU7DT5E",
"type": "video"
},
{
"title": "Git vs. GitHub: Whats the difference?",
"url": "https://www.youtube.com/watch?v=wpISo9TNjfU",
"type": "video"
},
{
"title": "Git and GitHub for Beginners",
"url": "https://www.youtube.com/watch?v=RGOj5yH7evk",
"type": "video"
},
{
"title": "Git and GitHub - CS50 Beyond 2019",
"url": "https://www.youtube.com/watch?v=eulnSXkhE7I",
"type": "video"
}
]
},
"R4aeJNOrfWyVp3ea-qF4H": {
"title": "Checkpoint - External Packages",
"description": "At this point, you should be able to install and use external packages using `npm`. You probably know about [npmjs.com](https://npmjs.com/) where you can search for packages and read their documentation. You should also be familiar with the `package.json` file and how to use it to manage your project dependencies.\n\nYou don't need to get into the module bundlers and build tools just yet. Just make sure that you are able to use the dependencies installed in the `node_modules` folder using simple link and script tags in your HTML.\n\nRegarding projects, here are a few ideas that you can try:\n\n* Create a simple webpage that shows the current time of user. You can use [dayjs](https://day.js.org/) to get the current time and display it on the page. Here is the [sample design for homepage](https://i.imgur.com/yGIMGkr.png).\n* Install the [micromodal](https://micromodal.vercel.app/#introduction) library. Create a button on the page clicking which should open a modal and let the user select a timezone from a dropdown. Once the user selects a timezone, the modal should close and the time on the page should be updated to show the time in the selected timezone. Here is the [sample design for the modal](https://imgur.com/a/vFY6Sdl).",
"links": []
},
"CVCqdPkq_hGQfI8EEi5RC": {
"title": "Tailwind CSS",
"description": "CSS Framework that provides atomic CSS classes to help you style components e.g. `flex`, `pt-4`, `text-center` and `rotate-90` that can be composed to build any design, directly in your markup.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Tailwind CSS",
"url": "https://tailwindcss.com",
"type": "article"
},
{
"title": "Explore top posts about Tailwind CSS",
"url": "https://app.daily.dev/tags/tailwind-css?ref=roadmapsh",
"type": "article"
},
{
"title": "Tailwind CSS Full Course for Beginners",
"url": "https://www.youtube.com/watch?v=lCxcTsOHrjo",
"type": "video"
},
{
"title": "Tailwind CSS Crash Course",
"url": "https://www.youtube.com/watch?v=UBOj6rqRUME",
"type": "video"
},
{
"title": "Should You Use Tailwind CSS?",
"url": "https://www.youtube.com/watch?v=hdGsFpZ0J2E",
"type": "video"
}
]
},
"khoUtTUxdf8udAzN9_CAb": {
"title": "React",
"description": "React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated React Roadmap",
"url": "https://roadmap.sh/react",
"type": "article"
},
{
"title": "React",
"url": "https://react.dev/",
"type": "article"
},
{
"title": "Getting Started with React",
"url": "https://react.dev/learn/tutorial-tic-tac-toe",
"type": "article"
},
{
"title": "Explore top posts about React",
"url": "https://app.daily.dev/tags/react?ref=roadmapsh",
"type": "article"
},
{
"title": "React JS Course for Beginners",
"url": "https://www.youtube.com/watch?v=nTeuhbP7wdE",
"type": "video"
},
{
"title": "React Course - Beginners Tutorial for React",
"url": "https://www.youtube.com/watch?v=bMknfKXIFA8",
"type": "video"
},
{
"title": "Understanding Reacts UI Rendering Process",
"url": "https://www.youtube.com/watch?v=i793Qm6kv3U",
"type": "video"
}
]
},
"zFGWxgLPcZoW7KIzlnSV9": {
"title": "Checkpoint - Collaborative Work",
"description": "Now that you have learnt git and GitHub you should be ready to work with others. You should now setup your GitHub profile and push all the projects that you have built so far to your GitHub profile. Here are some of my recommendations for your GitHub profile:\n\n* Keep the repository names lowercase and use hyphens to separate words e.g. `todo-app` instead of `TodoApp` or `Todo-App`.\n* Add a `README.md` file to each repository that you create. This file should contain a description of the project. Put some effort into the readme and make sure it clearly details what the project is about and how anyone can run it locally.\n* Add snapshots of your project to the readme file so that anyone can see what the project looks like without having to run it locally.\n* Add a `LICENSE` file to each repository that you create. This file should contain the license that you want to use for the project. You can use [choosealicense.com](https://choosealicense.com/) to help you choose a license.\n\nYou can have a look at [my GitHub profile](https://github.com/kamranahmedse) and see how I have structured my repositories and how [some of my readme files look like](https://github.com/kamranahmedse/aws-cost-cli).",
"links": []
},
"7JU1cVggMDoZUV-adGsf-": {
"title": "Checkpoint - Frontend Apps",
"description": "At this point you should be able to build a complete frontend application including:\n\n* Structuring your webpages with HTML\n* Styling your webpages with CSS\n* Adding interactivity to your webpages with JavaScript\n* Using the DOM API to manipulate your webpages\n* Using the Fetch API to make HTTP requests\n* Understand promises and use `async`/`await` syntax to write asynchronous code\n* Installing and using external libraries with npm\n* Version controlling your code with Git\n* Pushing your code to GitHub\n\nIf you decided to skip React and Tailwind for now, that is fine also but you should be able to build a complete frontend application using vanilla HTML, CSS, and JavaScript. However, keep in mind that the modern frontend applications are mostly built with frameworks like React, Vue, and Angular. So, you should learn at least one of them at any point of time.\n\nThis marks the end of frontend basics that you needed, we will now be moving to the backend development. While you continue with the backend development, know that there is more to frontend development and remember to checkout the [frontend roadmap](/frontend) later in your journey.",
"links": []
},
"_aA6Hp4KkgJeptqo8oKTg": {
"title": "Node.js",
"description": "Node.js is an open-source and cross-platform JavaScript runtime environment. It is a popular tool for almost any kind of project! Node.js runs the V8 JavaScript engine, Google Chrome's core, outside the browser. This allows Node.js to be very performant. A Node.js app runs in a single process, without creating a new thread for every request. Node.js provides a set of asynchronous I/O primitives in its standard library that prevent JavaScript code from blocking and generally, libraries in Node.js are written using non-blocking paradigms, making blocking behavior the exception rather than the norm.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Node.js Roadmap",
"url": "https://roadmap.sh/nodejs",
"type": "article"
},
{
"title": "Node.js Website",
"url": "https://nodejs.org/en/about/",
"type": "article"
},
{
"title": "Learn Node.js Official Website",
"url": "https://nodejs.org/en/learn/getting-started/introduction-to-nodejs",
"type": "article"
},
{
"title": "Node.JS Introduction",
"url": "https://www.w3schools.com/nodejs/nodejs_intro.asp",
"type": "article"
},
{
"title": "Explore top posts about Node.js",
"url": "https://app.daily.dev/tags/nodejs?ref=roadmapsh",
"type": "article"
},
{
"title": "Node.js and Express.js Full Course",
"url": "https://www.youtube.com/watch?v=Oe421EPjeBE",
"type": "video"
}
]
},
"JGu0TKwAw-ieiG92BytYI": {
"title": "Checkpoint — CLI Apps",
"description": "At this point you should be able to build CLI applications using Node.js or whatever backend programming language you picked.\n\nYou should be able to build a CLI application that can:\n\n* Read and write files\n* Parse command line arguments\n* Make HTTP requests\n* Parse JSON\n* Use a third-party library (e.g. a library for parsing CSV files)\n* Use a third-party API\n\nHere are some ideas for CLI applications you can build:\n\n* Create a CLI application that takes a URL and a CSS selector arguments and prints the text content of the element that matches the selector. **Hint** you can use [cheerio](https://github.com/cheeriojs/cheerio)\n* An application that optionally takes two dates and prints the most starred GitHub projects in that date range. **Hint** you can use [GitHub's search API](https://developer.github.com/v3/search/#search-repositories)\n* Bulk rename files in a directory. **Hint** you can use [fs](https://nodejs.org/api/fs.html) and [path](https://nodejs.org/api/path.html)\n* Write a CLI application that takes a path as input and compresses all the images in that directory. It should accept an option for output path; if the output path is not given it should compress images in place otherwise write the compressed images to the output path. **Hint** you can use [sharp](https://github.com/lovell/sharp).",
"links": []
},
"vmHbWdmMHF53otXIrqzRV": {
"title": "RESTful APIs",
"description": "REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "What is a REST API?",
"url": "https://www.redhat.com/en/topics/api/what-is-a-rest-api",
"type": "article"
},
{
"title": "Roy Fieldings dissertation chapter, Representational State Transfer (REST)",
"url": "https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm",
"type": "article"
},
{
"title": "Learn REST: A RESTful Tutorial",
"url": "https://restapitutorial.com/",
"type": "article"
},
{
"title": "What Is A RESTful API? Explanation of REST & HTTP",
"url": "https://www.youtube.com/watch?v=Q-BpqyOT3a8",
"type": "video"
}
]
},
"3EtGLO6cwkLc1-o9gwFNk": {
"title": "Checkpoint — Simple CRUD Apps",
"description": "**CRUD** stands for **Create, Read, Update, and Delete**. These are the four basic operations you can perform on any data when working with web applications, databases, and APIs.\n\nNow that you know about programming language and the databases, you should be able to build a simple CLI application that interacts with database. We haven't talked about the APIs yet but you don't need an API to practice CRUD operations. Here are some of the CLI applications you can build to practice CRUD operations:\n\n* A simple todo list application for the CLI with the following options:\n * `--new` to add a new todo item\n * `--list [all|pending|done]` to list the todo items\n * `--done [id]` to update a todo item\n * `--delete [id]` to delete a todo item\n * `--help` to list all the available options\n * `--version` to print the version of the application",
"links": []
},
"vHojhJYjiN0IwruEqi1Dv": {
"title": "JWT Auth",
"description": "JWT stands for JSON Web Token is a token-based encryption open standard/methodology that is used to transfer information securely as a JSON object. Clients and Servers use JWT to securely share information, with the JWT containing encoded JSON objects and claims. JWTs are designed to be compact, safe to use within URLs, and ideal for SSO contexts.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "jwt.io",
"url": "https://jwt.io/",
"type": "article"
},
{
"title": "Introduction to JSON Web Tokens",
"url": "https://jwt.io/introduction",
"type": "article"
},
{
"title": "What is JWT?",
"url": "https://www.akana.com/blog/what-is-jwt",
"type": "article"
},
{
"title": "Explore top posts about JWT",
"url": "https://app.daily.dev/tags/jwt?ref=roadmapsh",
"type": "article"
},
{
"title": "What Is JWT and Why Should You Use JWT",
"url": "https://www.youtube.com/watch?v=7Q17ubqLfaM",
"type": "video"
},
{
"title": "What is JWT? JSON Web Token Explained",
"url": "https://www.youtube.com/watch?v=926mknSW9Lo",
"type": "video"
},
{
"title": "JWT Authentication Tutorial - Node.js",
"url": "https://www.youtube.com/watch?v=mbsmsi7l3r4",
"type": "video"
}
]
},
"Onfd7Sl8LG2sjh2aQY7gb": {
"title": "Redis",
"description": "Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Redis Roadmap",
"url": "https://roadmap.sh/redis",
"type": "article"
},
{
"title": "Redis Website",
"url": "https://redis.io/",
"type": "article"
},
{
"title": "Redis Documentation",
"url": "https://redis.io/docs/latest/",
"type": "article"
},
{
"title": "Redis University",
"url": "https://university.redis.io/academy",
"type": "article"
},
{
"title": "Explore top posts about Redis",
"url": "https://app.daily.dev/tags/redis?ref=roadmapsh",
"type": "article"
},
{
"title": "Redis in 100 Seconds",
"url": "https://www.youtube.com/watch?v=G1rOthIU-uo",
"type": "video"
},
{
"title": "Redis Caching in Node.js",
"url": "https://www.youtube.com/watch?v=oaJq1mQ3dFI",
"type": "video"
}
]
},
"SHTSvMDqI7X1_ZT7-m--n": {
"title": "Linux Basics",
"description": "Knowledge of UNIX is a must for almost all kind of development as most of the codes that you write is most likely going to be finally deployed on a UNIX/Linux machine. Linux has been the backbone of the free and open source software movement, providing a simple and elegant operating system for almost all your needs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Coursera - Unix Courses",
"url": "https://www.coursera.org/courses?query=unix",
"type": "course"
},
{
"title": "Visit Dedicated Linux Roadmap",
"url": "https://roadmap.sh/linux",
"type": "article"
},
{
"title": "Linux Basics",
"url": "https://dev.to/rudrakshi99/linux-basics-2onj",
"type": "article"
},
{
"title": "Unix / Linux Tutorial",
"url": "https://www.tutorialspoint.com/unix/index.htm",
"type": "article"
},
{
"title": "Explore top posts about Linux",
"url": "https://app.daily.dev/tags/linux?ref=roadmapsh",
"type": "article"
},
{
"title": "Linux Operating System - Crash Course",
"url": "https://www.youtube.com/watch?v=ROjZy1WbCIA",
"type": "video"
}
]
},
"v4NF25lJElAtkU0Rm6Fob": {
"title": "Checkpoint — Complete App",
"description": "At this point, you should have everything that you need to build a complete application that:\n\n* Has a responsive frontend that users can interact with\n* Has a backend API that is secured with JWT authentication\n* Has a database that stores data\n\nAt this point you should practice building as much as you can on your own to solidify your knowledge. If you need inspiration, here are some ideas:\n\n* Build a simple blogging application where users can register, login, setup their blog and write posts.\n* A single page site builder where users can pick a template, modify it and publish it. **Hint** you will need filesystem to store the design templates. Template files will have placeholders that you will need to replace with user data.\n* Build a simple e-commerce application which will have two types of users i.e. **Sellers** who can: Register as Seller, Login, Setup their store, Add products, Edit products, Delete products, View Received Orders, Update Order Status (Pending, Shipped, Delivered), **Buyers** who can register, Login, Browse products by all sellers, Add products to cart, Checkout, View order history, View order status, Cancel order, View seller profile, View seller products\n\nThese are just some ideas to get you started. You can build anything you want. The goal is to practice building a complete application from scratch.",
"links": []
},
"cUOfvOlQ_0Uu1VX3i67kJ": {
"title": "Basic AWS Services",
"description": "AWS has several services but you don't need to know all of them. Some common ones that you can start with are EC2, VPN, S3, Route 53, and SES.\n\nHere are some of the resources to get you started:",
"links": [
{
"title": "Up and Running with AWS VPC",
"url": "https://cs.fyi/guide/up-and-running-with-aws-vpc",
"type": "article"
},
{
"title": "Up and Running with AWS EC2",
"url": "https://cs.fyi/guide/up-and-running-with-aws-ec2",
"type": "article"
},
{
"title": "VPC Basics",
"url": "https://cloudcasts.io/course/vpc-basics",
"type": "article"
},
{
"title": "EC2 Essentials",
"url": "https://cloudcasts.io/course/ec2-essentials",
"type": "article"
},
{
"title": "Explore top posts about AWS",
"url": "https://app.daily.dev/tags/aws?ref=roadmapsh",
"type": "article"
},
{
"title": "Deploy Node App on AWS EC2",
"url": "https://youtu.be/oHAQ3TzUTro",
"type": "video"
},
{
"title": "AWS VPC & Subnets For Beginners",
"url": "https://youtu.be/TUTqYEZZUdc",
"type": "video"
},
{
"title": "DNS with AWS Route 53",
"url": "https://www.youtube.com/watch?v=yRIY7BJohfo",
"type": "video"
},
{
"title": "Upload Images to S3 from Node Back End",
"url": "https://www.youtube.com/watch?v=NZElg91l_ms",
"type": "video"
}
]
},
"6oBIxYj8WPcUHidQ99tus": {
"title": "EC2",
"description": "Amazon Elastic Compute Cloud (EC2) is a web service that provides resizable compute capacity in the form of virtual servers, known as instances. With EC2, you can quickly scale your infrastructure up or down as your computing requirements change. This service effectively reduces the time required to obtain and boot new server instances, allowing you to easily adjust capacity according to the needs of your application.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Amazon AWS EC2",
"url": "https://aws.amazon.com/ec2/",
"type": "article"
},
{
"title": "Up and Running with AWS EC2",
"url": "https://cs.fyi/guide/up-and-running-with-aws-ec2",
"type": "article"
},
{
"title": "EC2 Essentials",
"url": "https://cloudcasts.io/course/ec2-essentials",
"type": "article"
},
{
"title": "Explore top posts about AWS EC2",
"url": "https://app.daily.dev/tags/aws-ec2?ref=roadmapsh",
"type": "article"
},
{
"title": "Deploy Node App on AWS EC2",
"url": "https://youtu.be/oHAQ3TzUTro",
"type": "video"
}
]
},
"QtL-bLKtWIdH00K6k_PdC": {
"title": "VPC",
"description": "VPC stands for **Virtual Private Cloud** and is an essential service provided by AWS that allows you to create a private, isolated section within the AWS cloud, where you can define your own virtual network. It offers a more secure and controlled environment, enabling you to easily launch and manage your resources within your personal network.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Amazon AWS VPC",
"url": "https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html",
"type": "article"
},
{
"title": "Up and Running with AWS VPC",
"url": "https://cs.fyi/guide/up-and-running-with-aws-vpc",
"type": "article"
},
{
"title": "VPC Basics",
"url": "https://cloudcasts.io/course/vpc-basics",
"type": "article"
},
{
"title": "AWS VPC & Subnets For Beginners",
"url": "https://youtu.be/TUTqYEZZUdc",
"type": "video"
}
]
},
"5zyYpu9cyuTFwQCjTbHpS": {
"title": "Route53",
"description": "Route53 is AWS's Domain Name System (DNS) service that plays a critical role in connecting user requests to your web application or other resources within your infrastructure. With Route53, you can easily manage domains, redirect traffic, and configure domain-related settings. It has several advantages, including high availability, low latency, and integration with other AWS resources.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Route53",
"url": "https://aws.amazon.com/route53/",
"type": "article"
},
{
"title": "Amazon Route 53",
"url": "https://www.youtube.com/watch?v=RGWgfhZByAI",
"type": "video"
},
{
"title": "AWS Route 53 Domain Name",
"url": "https://www.youtube.com/watch?v=jDz4j_kkyLA",
"type": "video"
},
{
"title": "DNS with AWS Route 53",
"url": "https://www.youtube.com/watch?v=yRIY7BJohfo&t=2s",
"type": "video"
}
]
},
"B-cphY7Imnv6JBMujVIF7": {
"title": "SES",
"description": "Amazon SES (Simple Email Service) is a scalable, flexible, and cost-effective cloud-based email service that is specifically designed for developers, marketers, and businesses to send and receive marketing, transactional, and notification emails. SES is useful, especially when you need to send a large volume of emails, as it offers high deliverability, reliability, and ease of use.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Amazon AWS SES",
"url": "https://aws.amazon.com/ses/",
"type": "article"
},
{
"title": "Contact Form Submission With AWS SES",
"url": "https://www.youtube.com/watch?v=HiHflLTqiwU",
"type": "video"
}
]
},
"n2Xp_ijJ2OS8xhE7xMWxk": {
"title": "S3",
"description": "S3 is a service that allows you to store files in the cloud. It's a simple service that you can use to store files and serve them to your users.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Amazon AWS S3",
"url": "https://aws.amazon.com/s3/",
"type": "article"
},
{
"title": "Explore top posts about AWS S3",
"url": "https://app.daily.dev/tags/aws-s3?ref=roadmapsh",
"type": "article"
},
{
"title": "Upload Images to S3 from Node Back End",
"url": "https://www.youtube.com/watch?v=NZElg91l_ms",
"type": "video"
},
{
"title": "S3 Bucket Hosting a Static Website",
"url": "https://www.youtube.com/watch?v=RoY3ekCCxKc&list=PL0X6fGhFFNTcU-_MCPe9dkH6sqmgfhy_M",
"type": "video"
}
]
},
"y1SFX7uvWaCy4OYBnECLu": {
"title": "Monit",
"description": "When it comes to monitoring the health of your applications, there are several different options available. My favorite monitoring stack is Prometheus and Grafana, but it can be a bit overwhelming to set up and configure. If you're looking for a simpler solution, **Monit** is a great alternative that can be utilized to monitor and manage system resources such as services, processes, files, directories, devices, and network connections, making your application more reliable and resilient to issues like crashes, unresponsiveness, or resource exhaustion.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Monit",
"url": "https://mmonit.com/monit/",
"type": "article"
},
{
"title": "Monit Documentation",
"url": "https://mmonit.com/monit/documentation/",
"type": "article"
},
{
"title": "Monit - Opensource Self Healing Server Monitoring",
"url": "https://www.youtube.com/watch?v=3cA5lNje1Ow",
"type": "video"
}
]
},
"HGhnbMg6jh6cAmUH4DtOx": {
"title": "PostgreSQL",
"description": "PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated PostgreSQL DBA Roadmap",
"url": "https://roadmap.sh/postgresql-dba",
"type": "article"
},
{
"title": "PostgreSQL Website",
"url": "https://www.postgresql.org/",
"type": "article"
},
{
"title": "Learn PostgreSQL - Full Tutorial for Beginners",
"url": "https://www.postgresqltutorial.com/",
"type": "article"
},
{
"title": "Explore top posts about PostgreSQL",
"url": "https://app.daily.dev/tags/postgresql?ref=roadmapsh",
"type": "article"
},
{
"title": "Learn PostgreSQL Tutorial - Full Course for Beginners",
"url": "https://www.youtube.com/watch?v=qw--VYLpxG4",
"type": "video"
},
{
"title": "Postgres tutorial for Beginners",
"url": "https://www.youtube.com/watch?v=eMIxuk0nOkU",
"type": "video"
}
]
},
"J2_IWAb1s9zZcxOY3NXm2": {
"title": "Checkpoint — Deployment",
"description": "Now that you know the basics of AWS, you should be able to deploy your application to AWS. You don't need to use all the AWS services, here is what you can probably get started with:\n\n* Setup an EC2 instance using any AMI (e.g. latest version of Ubuntu)\n* SSH into the EC2 instance using the key pair you created\n* Install Node.js on the EC2 instance\n* Install Git on the EC2 instance\n* Clone your application from GitHub\n* Install and configure database on the EC2 instance (e.g. PostgreSQL)\n* Make sure that the security group of the EC2 instance allows HTTP and HTTPS traffic\n* Try to access your application using the public IP address of the EC2 instance\n* Purchase or setup a domain name using Route53 (or any other domain name provider) and point it to the public IP address of the EC2 instance\n* Setup HTTPs using [certbot](https://roadmap.sh/guides/setup-and-auto-renew-ssl-certificates)\n* And voilla! You have deployed your application to AWS!\n\nIf you get stuck, here is a video that shows how to deploy a Node.js application to AWS EC2:",
"links": [
{
"title": "Explore top posts about CI/CD",
"url": "https://app.daily.dev/tags/cicd?ref=roadmapsh",
"type": "article"
},
{
"title": "Deploy Node App on AWS EC2",
"url": "https://youtu.be/oHAQ3TzUTro",
"type": "video"
}
]
},
"863KMXcFJzInvTp_-Ldmz": {
"title": "GitHub Actions",
"description": "GitHub Actions is a workflow automation tool provided by GitHub that can be used to automate various tasks in the app development process.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Git & Github Roadmap",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
{
"title": "Github Actions",
"url": "https://github.com/features/actions",
"type": "article"
},
{
"title": "Github Actions Documentation",
"url": "https://docs.github.com/en/actions",
"type": "article"
},
{
"title": "Explore top posts about GitHub",
"url": "https://app.daily.dev/tags/github-actions?ref=roadmapsh",
"type": "article"
},
{
"title": "5 Ways to DevOps-ify your App",
"url": "https://www.youtube.com/watch?v=eB0nUzAI7M8",
"type": "video"
},
{
"title": "DevOps CI/CD Explained in 100 Seconds",
"url": "https://www.youtube.com/watch?v=scEDHsr3APg",
"type": "video"
}
]
},
"NQmEl27eBPYhivcXdOEz3": {
"title": "Checkpoint — Monitoring",
"description": "You should now implement monitoring and autorestarts for your application using monit. Regarding autorestarts, you can also use [pm2](https://pm2.keymetrics.io/).\n\nHere are some of the monitors you should implement for the application.\n\n* CPU Usage\n* Memory Usage\n* Disk Usage\n* Network Usage\n* Service Availability\n* Process Availability\n\nMonit comes with existing configurations for many services. You can find them in `/etc/monit/conf-available`. You can copy them (and modify if required) to `/etc/monit/conf-enabled` to enable them.",
"links": []
},
"rFXupYpUFfp7vZO8zh614": {
"title": "Ansible",
"description": "Ansible is an open-source configuration management, application deployment and provisioning tool that uses its own declarative language in YAML. Ansible is agentless, meaning you only need remote connections via SSH or Windows Remote Management via Powershell in order to function\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Ansible",
"url": "https://www.ansible.com/",
"type": "article"
},
{
"title": "Ansible Documentation",
"url": "https://docs.ansible.com/",
"type": "article"
},
{
"title": "Ansible Getting Started Guide",
"url": "https://www.ansible.com/resources/get-started",
"type": "article"
},
{
"title": "Explore top posts about Ansible",
"url": "https://app.daily.dev/tags/ansible?ref=roadmapsh",
"type": "article"
},
{
"title": "Ansible Full Course for Beginners",
"url": "https://www.youtube.com/watch?v=9Ua2b06oAr4",
"type": "video"
}
]
},
"liaY1GnlOateB_ZKBjNpY": {
"title": "Checkpoint — CI / CD",
"description": "Now that you have the infrastructure setup, it's time to automate the deployment process. This is where CI / CD comes in. If you don't know what CI/CD are, you should watch [DevOps CI/CD Explained in 100 Seconds](https://www.youtube.com/watch?v=scEDHsr3APg).\n\nThe next step at this point is to implement CI/CD for your application using GitHub actions. Setup a GitHub action that, whenever you push to master, will automatically:\n\n* Run your tests (ignore this step if you haven't learnt it yet)\n* Deploy your application to AWS\n\nRegarding the deployment to AWS you can use `rsync` to copy the files to the server. Here's a [sample GitHub workflow](https://gist.github.com/kamranahmedse/1e94b412006040f38e24b9443b2da41a) using `rsync`.",
"links": []
},
"2kKHuQZScu7hCDgQWxl5u": {
"title": "Terraform",
"description": "Terraform is an extremely popular open source Infrastructure as Code (IaC) tool that can be used with many different cloud and service provider APIs. Terraform focuses on an immutable approach to infrastructure, with a terraform state file center to tracking the status of your real world infrastructure.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Terraform Roadmap",
"url": "https://roadmap.sh/terraform",
"type": "article"
},
{
"title": "Terraform Website",
"url": "https://www.terraform.io/",
"type": "article"
},
{
"title": "Terraform Documentation",
"url": "https://www.terraform.io/docs",
"type": "article"
},
{
"title": "Terraform CDK",
"url": "https://www.terraform.io/cdktf",
"type": "article"
},
{
"title": "Terraform Tutorials",
"url": "https://learn.hashicorp.com/terraform",
"type": "article"
},
{
"title": "Explore top posts about Terraform",
"url": "https://app.daily.dev/tags/terraform?ref=roadmapsh",
"type": "article"
},
{
"title": "Intro to Terraform Video",
"url": "https://www.youtube.com/watch?v=h970ZBgKINg&ab_channel=HashiCorp",
"type": "video"
}
]
},
"sO_9-l4FECbaqiaFnyeXO": {
"title": "Checkpoint — Automation",
"description": "Now that you have learnt ansible, you can use it to automate the deployment of your application.\n\nA task for you at this point would be to automate the steps that you manually performed earlier when setting up the EC2 instance i.e. SSH into the server, install Node.js, Git, PostgreSQL, Running the application etc. Write an ansible playbook that automates these and see if you can spin up a new EC2 instance without SSHing into it and manually installing all the dependencies.",
"links": []
},
"YVMyHFSCVF-GgXydq-SFJ": {
"title": "Checkpoint — Infrastructure",
"description": "If you remember, earlier in the roadmap, you manually logged into the AWS console and had to setup the services. Now that you know terraform, go ahead and automate the process of creating the infrastructure for your application using terraform and with that your deployments will be fully automated i.e., you should have:\n\n* Infrastructure setup using terraform\n* Provisioning using Ansible\n* CI/CD using GitHub Actions\n* Monitoring using Monit\n\nAnd that is it! You have successfully completed the roadmap and are now a full-stack developer. Congratulations! 🎉\n\nWhat's next?\n------------\n\nGo ahead and build something cool! Share your learnings with the community and help others learn as well. If you have any questions, feel free to join our [discord server](https://roadmap.sh/discord) and ask away!",
"links": []
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,630 @@
{
"_7uvOebQUI4xaSwtMjpEd": {
"title": "Programming Fundamentals",
"description": "ML programming fundamentals encompass the essential skills and concepts needed to develop machine learning models effectively. Key aspects include understanding data structures and algorithms, as well as proficiency in programming languages commonly used in ML, such as Python and R. Familiarity with libraries and frameworks like TensorFlow, PyTorch, and scikit-learn is crucial for implementing machine learning algorithms and building models. Additionally, concepts such as data preprocessing, feature engineering, model evaluation, and hyperparameter tuning are vital for optimizing performance. A solid grasp of statistics and linear algebra is also important, as these mathematical foundations underpin many ML techniques, enabling practitioners to analyze data and interpret model results accurately.",
"links": []
},
"Vh81GnOUOZvDOlOyI5PwT": {
"title": "Python",
"description": "Python is an interpreted high-level general-purpose programming language. Its design philosophy emphasizes code readability with its significant use of indentation. Its language constructs as well as its object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. Python is dynamically-typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly, procedural), object-oriented and functional programming. Python is often described as a \"batteries included\" language due to its comprehensive standard library.\n\nLearn more from the following resources:",
"links": [
{
"title": "Python Roadmap",
"url": "https://roadmap.sh/python",
"type": "article"
},
{
"title": "Python.org",
"url": "https://www.python.org/",
"type": "article"
},
{
"title": "Real Python",
"url": "https://realpython.com/",
"type": "article"
},
{
"title": "Automate the Boring Stuff with Python",
"url": "https://automatetheboringstuff.com/",
"type": "article"
},
{
"title": "Explore top posts about Python",
"url": "https://app.daily.dev/tags/python?ref=roadmapsh",
"type": "article"
}
]
},
"vdVq3RQvQF3mF8PQc6DMg": {
"title": "Go",
"description": "Go, also known as Golang, is an open-source programming language developed by Google that emphasizes simplicity, efficiency, and strong concurrency support. Designed for modern software development, Go features a clean syntax, garbage collection, and built-in support for concurrent programming through goroutines and channels, making it well-suited for building scalable, high-performance applications, especially in cloud computing and microservices architectures. Go's robust standard library and tooling ecosystem, including a powerful package manager and testing framework, further streamline development processes, promoting rapid application development and deployment. Visit the following resources to learn more:",
"links": [
{
"title": "Visit Dedicated Go Roadmap",
"url": "https://roadmap.sh/golang",
"type": "article"
},
{
"title": "A Tour of Go Go Basics",
"url": "https://go.dev/tour/welcome/1",
"type": "article"
},
{
"title": "Go Reference Documentation",
"url": "https://go.dev/doc/",
"type": "article"
},
{
"title": "Making a RESTful JSON API in Go",
"url": "https://thenewstack.io/make-a-restful-json-api-go/",
"type": "article"
},
{
"title": "Go, the Programming Language of the Cloud",
"url": "https://thenewstack.io/go-the-programming-language-of-the-cloud/",
"type": "article"
},
{
"title": "Explore top posts about Golang",
"url": "https://app.daily.dev/tags/golang?ref=roadmapsh",
"type": "article"
},
{
"title": "Go Programming Course",
"url": "https://www.youtube.com/watch?v=un6ZyFkqFKo",
"type": "video"
}
]
},
"mMzqJF2KQ49TDEk5F3VAI": {
"title": "Bash",
"description": "Bash (Bourne Again Shell) is a Unix shell and command language used for interacting with the operating system through a terminal. It allows users to execute commands, automate tasks via scripting, and manage system operations. As the default shell for many Linux distributions, it supports command-line utilities, file manipulation, process control, and text processing. Bash scripts can include loops, conditionals, and functions, making it a powerful tool for system administration, automation, and task scheduling.\n\nLearn more from the following resources:",
"links": [
{
"title": "bash-guide",
"url": "https://github.com/Idnan/bash-guide",
"type": "opensource"
},
{
"title": "Bash Scripting Course",
"url": "https://www.youtube.com/watch?v=tK9Oc6AEnR4",
"type": "video"
}
]
},
"oUhlUoWQQ1txx_sepD5ev": {
"title": "Version Control Systems",
"description": "Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Git",
"url": "https://git-scm.com/",
"type": "article"
},
{
"title": "What is Version Control?",
"url": "https://www.atlassian.com/git/tutorials/what-is-version-control",
"type": "article"
}
]
},
"06T5CbZAGJU6fJhCmqCC8": {
"title": "Git",
"description": "Git is a distributed version control system used to track changes in source code during software development. It enables multiple developers to collaborate on a project by managing versions of code, allowing for branching, merging, and tracking of revisions. Git ensures that changes are recorded with a complete history, enabling rollback to previous versions if necessary. It supports distributed workflows, meaning each developer has a complete local copy of the projects history, facilitating seamless collaboration, conflict resolution, and efficient management of code across different teams or environments.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Learn Git & GitHub",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
{
"title": "Learn Git with Tutorials, News and Tips - Atlassian",
"url": "https://www.atlassian.com/git",
"type": "article"
},
{
"title": "Git Cheat Sheet",
"url": "https://cs.fyi/guide/git-cheatsheet",
"type": "article"
},
{
"title": "Explore top posts about Git",
"url": "https://app.daily.dev/tags/git?ref=roadmapsh",
"type": "article"
},
{
"title": "Git & GitHub Crash Course For Beginners",
"url": "https://www.youtube.com/watch?v=SWYqp7iY_Tc",
"type": "video"
}
]
},
"7t7jSb3YgyWlhgCe8Se1I": {
"title": "GitHub",
"description": "GitHub is a web-based platform built on top of Git that provides version control, collaboration tools, and project management features for software development. It enables developers to host Git repositories, collaborate on code through pull requests, and review and track changes. GitHub also offers additional features like issue tracking, continuous integration, automated workflows, and documentation hosting. With its social coding environment, GitHub fosters open-source contributions and team collaboration, making it a central hub for many software development projects.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Learn Git & GitHub",
"url": "https://roadmap.sh/git-github",
"type": "article"
},
{
"title": "GitHub Website",
"url": "https://github.com",
"type": "article"
},
{
"title": "GitHub Documentation",
"url": "https://docs.github.com/en/get-started/quickstart",
"type": "article"
},
{
"title": "Explore top posts about GitHub",
"url": "https://app.daily.dev/tags/github?ref=roadmapsh",
"type": "article"
},
{
"title": "What is GitHub?",
"url": "https://www.youtube.com/watch?v=w3jLJU7DT5E",
"type": "video"
}
]
},
"00GZcwe25QYi7rDzaOoMt": {
"title": "Cloud Computing",
"description": "**Cloud Computing** refers to the delivery of computing services over the internet rather than using local servers or personal devices. These services include servers, storage, databases, networking, software, analytics, and intelligence. Cloud Computing enables faster innovation, flexible resources, and economies of scale. There are various types of cloud computing such as public clouds, private clouds, and hybrids clouds. Furthermore, it's divided into different services like Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). These services differ mainly in the level of control an organization has over their data and infrastructures.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is cloud computing?",
"url": "https://azure.microsoft.com/en-gb/resources/cloud-computing-dictionary/what-is-cloud-computing",
"type": "article"
},
{
"title": "What is Cloud Computing? | Amazon Web Services",
"url": "https://www.youtube.com/watch?v=mxT233EdY5c",
"type": "video"
}
]
},
"u3E7FGW4Iwdsu61KYFxCX": {
"title": "AWS / Azure / GCP",
"description": "AWS (Amazon Web Services) Azure and GCP (Google Cloud Platform) are three leading providers of cloud computing services. AWS by Amazon is the oldest and the most established among the three, providing a breadth and depth of solutions ranging from infrastructure services like compute, storage, and databases to the machine and deep learning. Azure, by Microsoft, has integrated tools for DevOps, supports a large number of programming languages, and offers seamless integration with on-prem servers and Microsofts software. Google's GCP has strength in cost-effectiveness, live migration of virtual machines, and flexible computing options. All three have introduced various MLOps tools and services to boost capabilities for machine learning development and operations.\n\nVisit the following resources to learn more about AWS, Azure, and GCP:",
"links": [
{
"title": "AWS Roadmap",
"url": "https://roadmap.sh/aws",
"type": "article"
},
{
"title": "Azure Tutorials",
"url": "https://docs.microsoft.com/en-us/learn/azure/",
"type": "article"
},
{
"title": "GCP Learning Resources",
"url": "https://cloud.google.com/training",
"type": "article"
},
{
"title": "Explore top posts about AWS",
"url": "https://app.daily.dev/tags/aws?ref=roadmapsh",
"type": "article"
}
]
},
"kbfucfIO5KCsuv3jKbHTa": {
"title": "Cloud-native ML Services",
"description": "Most of the cloud providers offer managed services for machine learning. These services are designed to help data scientists and machine learning engineers to build, train, and deploy machine learning models at scale. These services are designed to be cloud-native, meaning they are designed to work with other cloud services and are optimized for the cloud environment.\n\nLearn more from the following resources:",
"links": [
{
"title": "AWS Sage Maker",
"url": "https://aws.amazon.com/sagemaker/",
"type": "article"
},
{
"title": "Azure ML",
"url": "https://azure.microsoft.com/en-gb/products/machine-learning",
"type": "article"
},
{
"title": "What is Cloud Native?",
"url": "https://www.youtube.com/watch?v=fp9_ubiKqFU",
"type": "video"
}
]
},
"tKeejLv8Q7QX40UtOjpav": {
"title": "Containerization",
"description": "Containers are a construct in which cgroups, namespaces, and chroot are used to fully encapsulate and isolate a process. This encapsulated process, called a container image, shares the kernel of the host with other containers, allowing containers to be significantly smaller and faster than virtual machines.\n\nThese images are designed for portability, allowing for full local testing of a static image, and easy deployment to a container management platform.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "What are Containers?",
"url": "https://cloud.google.com/learn/what-are-containers",
"type": "article"
},
{
"title": "What is a Container?",
"url": "https://www.docker.com/resources/what-container/",
"type": "article"
},
{
"title": "Articles about Containers - The New Stack",
"url": "https://thenewstack.io/category/containers/",
"type": "article"
},
{
"title": "Explore top posts about Containers",
"url": "https://app.daily.dev/tags/containers?ref=roadmapsh",
"type": "article"
},
{
"title": "What are Containers?",
"url": "https://www.youtube.com/playlist?list=PLawsLZMfND4nz-WDBZIj8-nbzGFD4S9oz",
"type": "video"
}
]
},
"XIdCvT-4HyyglHJLRrHlz": {
"title": "Docker",
"description": "Docker is a platform for working with containerized applications. Among its features are a daemon and client for managing and interacting with containers, registries for storing images, and a desktop application to package all these features together.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Docker Documentation",
"url": "https://docs.docker.com/",
"type": "article"
},
{
"title": "Explore top posts about Docker",
"url": "https://app.daily.dev/tags/docker?ref=roadmapsh",
"type": "article"
},
{
"title": "Docker Tutorial",
"url": "https://www.youtube.com/watch?v=RqTEHSBrYFw",
"type": "video"
},
{
"title": "Docker simplified in 55 seconds",
"url": "https://youtu.be/vP_4DlOH1G4",
"type": "video"
}
]
},
"XQoK9l-xtN2J8ZV8dw53X": {
"title": "Kubernetes",
"description": "Kubernetes is an open source container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources (similar to the Autopilot and Aquaman systems of Microsoft Azure). The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Kubernetes Roadmap",
"url": "https://roadmap.sh/kubernetes",
"type": "article"
},
{
"title": "Kubernetes Website",
"url": "https://kubernetes.io/",
"type": "article"
},
{
"title": "Kubernetes Documentation",
"url": "https://kubernetes.io/docs/home/",
"type": "article"
},
{
"title": "Kubernetes: An Overview",
"url": "https://thenewstack.io/kubernetes-an-overview/",
"type": "article"
},
{
"title": "Explore top posts about Kubernetes",
"url": "https://app.daily.dev/tags/kubernetes?ref=roadmapsh",
"type": "article"
},
{
"title": "Kubernetes Crash Course for Absolute Beginners",
"url": "https://www.youtube.com/watch?v=s_o8dwzRlu4",
"type": "video"
}
]
},
"ulka7VEVjz6ls5SnI6a6z": {
"title": "Machine Learning Fundamentals",
"description": "Machine learning fundamentals encompass the key concepts and techniques that enable systems to learn from data and make predictions or decisions without being explicitly programmed. At its core, machine learning involves algorithms that can identify patterns in data and improve over time with experience. Key areas include supervised learning (where models are trained on labeled data), unsupervised learning (where models identify patterns in unlabeled data), and reinforcement learning (where agents learn to make decisions based on feedback from their actions). Essential components also include data preprocessing, feature selection, model training, evaluation metrics, and the importance of avoiding overfitting. Understanding these fundamentals is crucial for developing effective machine learning applications across various domains. Learn more from the following resources:",
"links": [
{
"title": "Fundamentals of Machine Learning - Microsoft",
"url": "https://learn.microsoft.com/en-us/training/modules/fundamentals-machine-learning/",
"type": "course"
},
{
"title": "MLCourse.ai",
"url": "https://mlcourse.ai/",
"type": "course"
},
{
"title": "Fast.ai",
"url": "https://course.fast.ai",
"type": "course"
}
]
},
"VykbCu7LWIx8fQpqKzoA7": {
"title": "Data Engineering Fundamentals",
"description": "Data Engineering is essentially dealing with the collection, validation, storage, transformation, and processing of data. The objective is to provide reliable, efficient, and scalable data pipelines and infrastructure that allow data scientists to convert data into actionable insights. It involves steps like data ingestion, data storage, data processing, and data provisioning. Important concepts include designing, building, and maintaining data architecture, databases, processing systems, and large-scale processing systems. It is crucial to have extensive technical knowledge in various tools and programming languages like SQL, Python, Hadoop, and more.\n\nLearn more from the following resources:",
"links": [
{
"title": "Data Engineering 101",
"url": "https://www.redpanda.com/guides/fundamentals-of-data-engineering",
"type": "article"
},
{
"title": "Fundamentals of Data Engineering",
"url": "https://www.youtube.com/watch?v=mPSzL8Lurs0",
"type": "video"
}
]
},
"cOg3ejZRYE-u-M0c89IjM": {
"title": "Data Pipelines",
"description": "Data pipelines are a series of automated processes that transport and transform data from various sources to a destination for analysis or storage. They typically involve steps like data extraction, cleaning, transformation, and loading (ETL) into databases, data lakes, or warehouses. Pipelines can handle batch or real-time data, ensuring that large-scale datasets are processed efficiently and consistently. They play a crucial role in ensuring data integrity and enabling businesses to derive insights from raw data for reporting, analytics, or machine learning.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is a data pipeline?",
"url": "https://www.ibm.com/topics/data-pipeline",
"type": "article"
},
{
"title": "What are data pipelines?",
"url": "https://www.youtube.com/watch?v=oKixNpz6jNo",
"type": "video"
}
]
},
"wOogVDV4FIDLXVPwFqJ8C": {
"title": "Data Lakes & Warehouses",
"description": "\"**Data Lakes** are large-scale data repository systems that store raw, untransformed data, in various formats, from multiple sources. They're often used for big data and real-time analytics requirements. Data lakes preserve the original data format and schema which can be modified as necessary. On the other hand, **Data Warehouses** are data storage systems which are designed for analyzing, reporting and integrating with transactional systems. The data in a warehouse is clean, consistent, and often transformed to meet wide-range of business requirements. Hence, data warehouses provide structured data but require more processing and management compared to data lakes.\"\n\nLearn more from the following resources:",
"links": [
{
"title": "Data lake definition",
"url": "https://azure.microsoft.com/en-gb/resources/cloud-computing-dictionary/what-is-a-data-lake",
"type": "article"
},
{
"title": "What is a data lake?",
"url": "https://www.youtube.com/watch?v=LxcH6z8TFpI",
"type": "video"
},
{
"title": "@hat is a data warehouse?",
"url": "https://www.youtube.com/watch?v=k4tK2ttdSDg",
"type": "video"
}
]
},
"Berd78HvnulNEGOsHCf8n": {
"title": "Data Ingestion Architecture",
"description": "Data ingestion is the process of collecting, transferring, and loading data from various sources to a destination where it can be stored and analyzed. There are several data ingestion architectures that can be used to collect data from different sources and load it into a data warehouse, data lake, or other storage systems. These architectures can be broadly classified into two categories: batch processing and real-time processing. How you choose to ingest data will depend on the volume, velocity, and variety of data you are working with, as well as the latency requirements of your use case.\n\nLambda and Kappa architectures are two popular data ingestion architectures that combine batch and real-time processing to handle large volumes of data efficiently.\n\nLearn more from the following resources:",
"links": [
{
"title": "Data Ingestion Patterns",
"url": "https://docs.aws.amazon.com/whitepapers/latest/aws-cloud-data-ingestion-patterns-practices/data-ingestion-patterns.html",
"type": "article"
},
{
"title": "What is a data pipeline?",
"url": "https://www.youtube.com/watch?v=kGT4PcTEPP8",
"type": "video"
}
]
},
"pVSlVHXIap0unFxLGM-lQ": {
"title": "Airflow",
"description": "Airflow is a platform to programmatically author, schedule and monitor workflows. Use airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command line utilities make performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress, and troubleshoot issues when needed. When workflows are defined as code, they become more maintainable, versionable, testable, and collaborative.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Airflow website",
"url": "https://airflow.apache.org/",
"type": "article"
},
{
"title": "Explore top posts about Apache Airflow",
"url": "https://app.daily.dev/tags/apache-airflow?ref=roadmapsh",
"type": "article"
}
]
},
"UljuqA89_SlCSDWWMD_C_": {
"title": "Spark",
"description": "Apache Spark is an open-source distributed computing system designed for big data processing and analytics. It offers a unified interface for programming entire clusters, enabling efficient handling of large-scale data with built-in support for data parallelism and fault tolerance. Spark excels in processing tasks like batch processing, real-time data streaming, machine learning, and graph processing. Its known for its speed, ease of use, and ability to process data in-memory, significantly outperforming traditional MapReduce systems. Spark is widely used in big data ecosystems for its scalability and versatility across various data processing tasks.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "ApacheSpark",
"url": "https://spark.apache.org/documentation.html",
"type": "article"
},
{
"title": "Spark By Examples",
"url": "https://sparkbyexamples.com",
"type": "article"
},
{
"title": "Explore top posts about Apache Spark",
"url": "https://app.daily.dev/tags/spark?ref=roadmapsh",
"type": "article"
}
]
},
"fMNwzhgLgHlAZJ9NvKikR": {
"title": "Kafka",
"description": "Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Apache Kafka quickstart",
"url": "https://kafka.apache.org/quickstart",
"type": "article"
},
{
"title": "Explore top posts about Kafka",
"url": "https://app.daily.dev/tags/kafka?ref=roadmapsh",
"type": "article"
},
{
"title": "Apache Kafka Fundamentals",
"url": "https://www.youtube.com/watch?v=B5j3uNBH8X4",
"type": "video"
}
]
},
"o6GQ3-8DgDtHzdX6yeg1w": {
"title": "Flink",
"description": "Apache Flink is an open-source stream processing framework designed for real-time and batch data processing with low latency and high throughput. It supports event time processing, fault tolerance, and stateful operations, making it ideal for applications like real-time analytics, fraud detection, and event-driven systems. Flink is highly scalable, integrates with various data systems, and is widely used in industries for large-scale, real-time data processing tasks.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Apache Flink Documentation",
"url": "https://flink.apache.org/",
"type": "article"
},
{
"title": "Explore top posts about Apache Flink",
"url": "https://app.daily.dev/tags/apache-flink?ref=roadmapsh",
"type": "article"
},
{
"title": "Apache Flink Tutorialpoint",
"url": "https://www.tutorialspoint.com/apache_flink/apache_flink_introduction.htm",
"type": "article"
}
]
},
"iTsEHVCo6KGq7H2HMgy5S": {
"title": "MLOps Principles",
"description": "MLOps (Machine Learning Operations) principles focus on streamlining the deployment, monitoring, and management of machine learning models in production environments. Key principles include:\n\n1. **Collaboration**: Foster collaboration between data scientists, developers, and operations teams to ensure alignment on model goals, performance, and lifecycle management.\n \n2. **Automation**: Automate workflows for model training, testing, deployment, and monitoring to enhance efficiency, reduce errors, and speed up the development lifecycle.\n \n3. **Version Control**: Implement version control for both code and data to track changes, reproduce experiments, and maintain model lineage.\n \n4. **Continuous Integration and Deployment (CI/CD)**: Establish CI/CD pipelines tailored for machine learning to facilitate rapid model iteration and deployment.\n \n5. **Monitoring and Governance**: Continuously monitor model performance and data drift in production to ensure models remain effective and compliant with regulatory requirements.\n \n6. **Scalability**: Design systems that can scale to handle varying workloads and accommodate changes in data volume and complexity.\n \n7. **Reproducibility**: Ensure that experiments can be reliably reproduced by standardizing environments and workflows, making it easier to validate and iterate on models.\n \n\nThese principles help organizations efficiently manage the lifecycle of machine learning models, from development to deployment and beyond.",
"links": []
},
"l1xasxQy2vAY34NWaqKEe": {
"title": "MLOps Components",
"description": "MLOps components can be broadly classified into three major categories: Development, Operations and Governance. The **Development** components include everything involved in the creation of machine learning models, such as data extraction, data analysis, feature engineering, and machine learning model training. The **Operations** category includes components involved in deploying, monitoring, and maintaining machine learning models in production. This may include release management, model serving, and performance monitoring. Lastly, the **Governance** category encompasses the policies and regulations related to machine learning models. This includes model audit and tracking, model explainability, and security & compliance regulations.",
"links": []
},
"kHDSwlSq8WkLey4EJIQSR": {
"title": "Version Control",
"description": "Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Git",
"url": "https://git-scm.com/",
"type": "article"
},
{
"title": "What is Version Control?",
"url": "https://www.atlassian.com/git/tutorials/what-is-version-control",
"type": "article"
},
{
"title": "Explore top posts about Version Control",
"url": "https://app.daily.dev/tags/version-control?ref=roadmapsh",
"type": "article"
}
]
},
"a6vawajw7BpL6plH_nuAz": {
"title": "CI/CD",
"description": "CI/CD (Continuous Integration and Continuous Deployment/Delivery) is a software development practice that automates the process of integrating code changes, running tests, and deploying updates. Continuous Integration focuses on regularly merging code changes into a shared repository, followed by automated testing to ensure code quality. Continuous Deployment extends this by automatically releasing every validated change to production, while Continuous Delivery ensures code is always in a deployable state, but requires manual approval for production releases. CI/CD pipelines improve code reliability, reduce integration risks, and speed up the development lifecycle.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is CI/CD?",
"url": "https://www.redhat.com/en/topics/devops/what-is-ci-cd",
"type": "article"
},
{
"title": "CI/CD In 5 Minutes",
"url": "https://www.youtube.com/watch?v=42UP1fxi2SY",
"type": "video"
}
]
},
"fes7M--Y8i08_zeP98tVV": {
"title": "Orchestration",
"description": "ML orchestration refers to the process of managing and coordinating the various tasks and workflows involved in the machine learning lifecycle, from data preparation and model training to deployment and monitoring. It involves integrating multiple tools and platforms to streamline operations, automate repetitive tasks, and ensure seamless collaboration among data scientists, engineers, and operations teams. By using orchestration frameworks, organizations can enhance reproducibility, scalability, and efficiency, enabling them to manage complex machine learning pipelines and improve the overall quality of models in production. This ensures that models are consistently updated and maintained, facilitating rapid iteration and adaptation to changing data and business needs.\n\nLearn more from the following resources:",
"links": [
{
"title": "ML Observability: what, why, how",
"url": "https://ubuntu.com/blog/ml-observability",
"type": "article"
}
]
},
"fGGWKmAJ50Ke6wWJBEgby": {
"title": "Experiment Tracking & Model Registry",
"description": "**Experiment Tracking** is an essential part of MLOps, providing a system to monitor and record the different experiments conducted during the machine learning model development process. This involves capturing, organizing and visualizing the metadata associated with each experiment, such as hyperparameters used, models produced, metrics like accuracy or loss, and other information about the computational environment. This tracking allows for reproducibility of experiments, comparison across different experiment runs, and helps in identifying the best models.\n\nLearn more from the following resources:",
"links": [
{
"title": "Experiment Tracking",
"url": "https://madewithml.com/courses/mlops/experiment-tracking/#dashboard",
"type": "article"
},
{
"title": "ML Flow Model Registry",
"url": "https://mlflow.org/docs/latest/model-registry.html",
"type": "article"
}
]
},
"6XgP_2NLuiw654zvTyueT": {
"title": "Data Lineage & Feature Stores",
"description": "**Data Lineage** refers to the life-cycle of data, including its origins, movements, characteristics and quality. It's a critical component in MLOps for tracking the journey of data through every process in a pipeline, from raw input to model output. Data lineage helps in maintaining transparency, ensuring compliance, and facilitating data debugging or tracing data related bugs. It provides a clear representation of data sources, transformations, and dependencies thereby aiding in audits, governance, or reproduction of machine learning models.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is Data Lineage?",
"url": "https://www.ibm.com/topics/data-lineage",
"type": "article"
},
{
"title": "What is a feature store",
"url": "https://www.snowflake.com/guides/what-feature-store-machine-learning/",
"type": "article"
}
]
},
"zsW1NRb0dMgS-KzWsI0QU": {
"title": "Model Training & Serving",
"description": "\"Model Training\" refers to the phase in the Machine Learning (ML) pipeline where we teach a machine learning model how to make predictions by providing it with data. This process begins with feeding the model a training dataset, which it uses to learn and understand patterns or perform computations. The model's performance is then evaluated by comparing its prediction outputs with the actual results. Various algorithms can be used in the model training process. The choice of algorithm usually depends on the task, the data available, and the requirements of the project. It is worth noting that the model training stage can be computationally expensive particularly when dealing with large datasets or complex models.\n\nDecisions depend on the organization's infrastructure.\n\n* **Repository Suggestion:** [ML Deployment k8s Fast API](https://github.com/sayakpaul/ml-deployment-k8s-fastapi/tree/main)\n* **Tutorial Suggestions:** [ML deployment with k8s FastAPI, Building an ML app with FastAPI](https://dev.to/bravinsimiyu/beginner-guide-on-how-to-build-a-machine-learning-app-with-fastapi-part-ii-deploying-the-fastapi-application-to-kubernetes-4j6g), [Basic Kubeflow pipeline](https://towardsdatascience.com/tutorial-basic-kubeflow-pipeline-from-scratch-5f0350dc1905), [Building and deploying ML pipelines](https://www.datacamp.com/tutorial/kubeflow-tutorial-building-and-deploying-machine-learning-pipelines?utm_source=google&utm_medium=paid_search&utm_campaignid=19589720818&utm_adgroupid=157156373991&utm_device=c&utm_keyword=&utm_matchtype=&utm_network=g&utm_adpostion=&utm_creative=683184494153&utm_targetid=dsa-2218886984380&utm_loc_interest_ms=&utm_loc_physical_ms=9064564&utm_content=&utm_campaign=230119_1-sea~dsa~tofu_2-b2c_3-eu_4-prc_5-na_6-na_7-le_8-pdsh-go_9-na_10-na_11-na-dec23&gad_source=1&gclid=Cj0KCQiA4Y-sBhC6ARIsAGXF1g7iSih9h2RGL27LwWY6dlPLhEss-e5Af8pnaBvdDynRh7IHIKi8sGgaApD-EALw_wcB), [KServe tutorial](https://towardsdatascience.com/kserve-highly-scalable-machine-learning-deployment-with-kubernetes-aa7af0b71202)",
"links": []
},
"r4fbUwD83uYumEO1X8f09": {
"title": "Monitoring & Observability",
"description": "**Monitoring** in MLOps primarily involves tracking the performance of machine learning (ML) models in production to ensure that they continually deliver accurate and reliable results. Such monitoring is necessary because the real-world data that these models handle may change over time, a scenario known as data drift. These changes can adversely affect model performance. Monitoring helps to detect any anomalies in the models behaviour or performance and such alerts can trigger the retraining of models with new data. From a broader perspective, monitoring also involves tracking resources and workflows to detect and rectify any operational issues in the MLOps pipeline.\n\nLearn more from the following resources:",
"links": [
{
"title": "ML Monitoring vs ML Observability",
"url": "https://medium.com/marvelous-mlops/ml-monitoring-vs-ml-observability-understanding-the-differences-fff574a8974f",
"type": "article"
},
{
"title": "ML Observability vs ML Monitoring: What's the difference?",
"url": "https://www.youtube.com/watch?v=k1Reed3QIYE",
"type": "video"
}
]
},
"sf67bSL7HAx6iN7S6MYKs": {
"title": "Infrastructure as Code",
"description": "Infrastructure as Code (IaC) is a modern approach to managing and provisioning IT infrastructure through machine-readable configuration files, rather than manual processes. It enables developers and operations teams to define and manage infrastructure resources—such as servers, networks, and databases—using code, which can be versioned, tested, and deployed like application code. IaC tools, like Terraform and AWS CloudFormation, allow for automated, repeatable deployments, reducing human error and increasing consistency across environments. This practice facilitates agile development, enhances collaboration between teams, and supports scalable and efficient infrastructure management.",
"links": [
{
"title": "What is Infrastructure as Code?",
"url": "https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac",
"type": "article"
},
{
"title": "Terraform course for beginners",
"url": "https://www.youtube.com/watch?v=SLB_c_ayRMo",
"type": "video"
},
{
"title": "8 Terraform best practices",
"url": "https://www.youtube.com/watch?v=gxPykhPxRW0",
"type": "video"
}
]
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,941 @@
{
"luk1vnpy0duneVjen8WzO": {
"title": "What is Product Management?",
"description": "Product management is a multifaceted discipline that forms the backbone of any technology organization. As a product manager, individuals are responsible for guiding the success of a product and leading the cross-functional team that is responsible for improving it. This entails an understanding of the market, the competitive landscape, customer demand and preferences, as well as business strategy. The decisions made by the product manager directly influence the strategic direction, design, functionality, and commercial success of the product. They essentially form a bridge between different teams, such as engineering, design, marketing, sales, and customer support, ensuring a seamless transition from product development to product release.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is Product Management? - Product Plan",
"url": "https://www.productplan.com/learn/what-is-product-management/#what-is-product-management",
"type": "article"
},
{
"title": "What is Product Management? - Atlassian",
"url": "https://www.youtube.com/watch?v=kzMBIyzq9Ag",
"type": "video"
}
]
},
"V-IeFB9S2tToxANHIzpMs": {
"title": "Product vs Project Management",
"description": "Project management focuses on planning, executing, and closing specific projects with defined objectives, timelines, and deliverables, ensuring that tasks are completed on time and within budget. It is concerned with the successful completion of a project, often involving temporary endeavors with a clear beginning and end. In contrast, product management is a continuous process that involves the entire lifecycle of a product, from ideation and development to market launch and ongoing improvements.\n\nProduct managers are responsible for defining the product vision, strategy, and roadmap, ensuring that the product meets customer needs and business goals. They work cross-functionally with teams like engineering, marketing, and sales to deliver a product that provides value over its entire lifecycle. While project managers focus on the execution of specific initiatives, product managers concentrate on the long-term success and evolution of a product.\n\nLearn more from the following resources:",
"links": [
{
"title": "Product vs Project Manager - Coursera",
"url": "https://www.coursera.org/gb/articles/product-manager-vs-project-manager",
"type": "article"
},
{
"title": "Product Manager vs Project Manager",
"url": "https://www.youtube.com/watch?v=nPR6HsUO_XY",
"type": "video"
}
]
},
"Dx6ee8P_Agpw1MLKlAPGI": {
"title": "Roles and Responsibilities",
"description": "A product manager is a pivotal role that stands at the crossroads of business, technology, and user experience aspects. Their roles and responsibilities include understanding customer needs, defining and communicating product strategy, prioritizing product features, liaising with different teams such as engineering, sales and marketing to ensure seamless product development and launch, monitoring and analyzing market trends, and ultimately driving the success of the product in the market. A prodigious product manager, with a unique blend of business acuity and technical knack, can significantly impact the product's acceptance in the market and the company's bottom line.\n\nLearn more from the following resources:",
"links": [
{
"title": "Product Manager Roles & Responsibilities",
"url": "https://www.productside.com/product-manager-roles-and-responsibilities-keytask/",
"type": "article"
}
]
},
"5W-3jh1-4qSU5kagrWv9z": {
"title": "Key Skills",
"description": "A Product Manager is often viewed as the \"CEO of the Product\", requiring a unique blend of business, technical, and strategic skills to drive the product's success. Core competencies for a Product Manager typically include strategic thinking, the ability to influence cross-functional teams, technical proficiency, understanding of customer needs and market trends, problem-solving abilities, and exceptional communication skills. These key skills are vital in managing stakeholders, formulating strategic product vision, making crucial business decisions, and ensuring seamless product execution. The ability to continuously learn and adapt is also crucial due to the dynamic nature of the product management industry.\n\nLearn more from the following resources:",
"links": [
{
"title": "What Skills Does a Product Manager Need?",
"url": "https://careerfoundry.com/en/blog/product-management/product-manager-skills/",
"type": "article"
},
{
"title": "Skills Every Product Manager Needs",
"url": "https://www.youtube.com/watch?v=ysBpePyeHkU",
"type": "video"
}
]
},
"kB8e26BUm8BpTY1_O3N3_": {
"title": "Product Development Lifecycle",
"description": "The Product Development Lifecycle is a crucial aspect for Product Managers to understand. It represents the systematic and methodical journey a product takes from conceptual idea to market distribution. This lifecycle consists of several distinct stages such as ideation, design, development, testing, and launch. Developing a thorough comprehension of this process enables Product Managers to effectively manage, predict and strategize around the potential challenges and opportunities each stage presents. This understanding is vital for successful product launches, maximizing product potential, and ensuring alignment with market demands and customer expectations.\n\nLearn more from the following resources:",
"links": [
{
"title": "Product Development Lifecycle - MailChimp",
"url": "https://mailchimp.com/resources/product-life-cycle/",
"type": "article"
}
]
},
"5okUFVMuG6mjRki4fyCcF": {
"title": "Development",
"description": "The development phase of the product development lifecycle is a critical stage where ideas transform into tangible products. For product managers, this phase involves coordinating with cross-functional teams, including engineering, design, and quality assurance, to ensure that the product meets its specifications and market requirements. This phase focuses on building, testing, and refining the product, incorporating feedback from iterative testing and addressing any technical challenges that arise. Effective management during this stage is essential for aligning the product with its strategic goals and preparing it for a successful launch.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is Product Development?",
"url": "https://www.aha.io/roadmapping/guide/what-is-product-development",
"type": "article"
},
{
"title": "What's Product Development?",
"url": "https://www.youtube.com/watch?v=jLvMGnAYicY",
"type": "video"
}
]
},
"GoYEAU_lZ186M3IJY48O6": {
"title": "Introduction",
"description": "The introduction phase of the product development lifecycle marks the transition from development to market entry, where the product is launched and made available to customers. For product managers, this phase involves executing go-to-market strategies, coordinating marketing and sales efforts, and closely monitoring the product's performance in the market. This period is critical for building brand awareness, attracting early adopters, and gathering initial customer feedback. Effective management during the introduction phase ensures a smooth launch, helps identify and resolve any post-launch issues, and sets the foundation for the product's growth and long-term success.",
"links": []
},
"ke5vl9p3ouupjVmgU5IKw": {
"title": "Growth",
"description": "The growth phase of the product development lifecycle follows the development and introduction stages, characterized by a significant increase in market acceptance and sales. For product managers, this phase involves scaling operations, optimizing marketing strategies, and enhancing the product based on customer feedback. The focus shifts to expanding market share, improving product features, and exploring new distribution channels. Effective management during the growth phase is essential for sustaining momentum, addressing competitive pressures, and maximizing profitability, ultimately securing the product's position in the market.",
"links": []
},
"aUJTPvO9Eb1UOD0MIY4Mf": {
"title": "Maturity",
"description": "The maturity phase of the product development lifecycle follows the development, introduction, and growth stages, representing a period where the product has achieved widespread market acceptance and stabilized sales. For product managers, this phase focuses on maintaining market share, optimizing operational efficiency, and extending the product's lifecycle through enhancements and diversification. Strategies during this phase include cost management, refining marketing efforts to retain loyal customers, and exploring opportunities for incremental innovation. Effective management during the maturity phase is crucial for sustaining profitability, fending off competition, and preparing for eventual market saturation or product evolution.",
"links": []
},
"yOve7g_05UMpXHcGpdZcW": {
"title": "Decline",
"description": "The decline phase of the product development lifecycle comes after the development, introduction, growth, and maturity stages, characterized by decreasing sales and market relevance. For product managers, this phase involves making strategic decisions regarding the product's future, such as discontinuation, repositioning, or reinvention. The focus shifts to cost reduction, managing inventory, and maximizing any remaining value from the product. Effective management during the decline phase is essential for mitigating losses, reallocating resources to more promising products, and planning for a smooth exit or transition, ensuring minimal disruption to the overall product portfolio.",
"links": []
},
"beca7sTxYY06RwNn5jpZM": {
"title": "Mind Mapping",
"description": "Mind Mapping is an essential tool in the arsenal of a Product Manager. It involves the graphical or pictorial representation of ideas or tasks emerging from a core central concept. As product managers wrestle with strategy formulation, project management, feature breakout, and stakeholder communication, mind maps provide a valuable ally to visualize complex concepts and relationships. Mind mapping encourages brainstorming, fosters association of ideas, and aids in effectively organizing and structuring the numerous elements of a product's lifeline.",
"links": []
},
"0emyqhl028_M6tdilfFC3": {
"title": "Brainwriting",
"description": "Brainwriting is a critical tool in the arsenal of modern Product Managers. It refers to a structured brainstorming technique where team members independently write down their ideas, then pass them on to others for the development and enhancement. In the realm of product management, this can help stimulate creative problem-solving and innovation, paving the way for new features, strategies, and improvements. It's a game-changer as it values the voices of all team members, reduces group pressure, and mitigates the problem of idea domination often present in traditional brainstorming sessions.",
"links": []
},
"uLSPKcypF06AhzoeNVtDk": {
"title": "SCAMPER",
"description": "SCAMPER is a powerful and dynamic brainstorming tool widely recognized in the area of Product Management. As a mnemonic acronym, it represents seven techniques to assist Product Managers: Substitute, Combine, Adapt, Modify/Magnify, Put to other uses, Eliminate and Reverse. It provides a structured method to challenge the status quo, encourage divergent thinking, and generate innovative product ideas. SCAMPER serves as a strategic tool, enabling Product Managers to analyze their current product portfolio, identify improvement areas, conceive new product features or entirely new products, ensuring competitive advantage and long-term business success.",
"links": []
},
"69IgqluiW9cVfezSIKInD": {
"title": "Brainstorming Techniques",
"description": "When it comes to the role of a Product Manager, brainstorming techniques are paramount, especially during the stage of Product Identification. This initial stage involves the generation and rallying of innovative ideas that could potentially translate into a viable product. The Product Manager is required to leverage different techniques, like mind maps, SWOT analysis, SCAMPER, or Six Thinking Hats, to effectively encourage creativity, drive cross-functional collaboration, and foster a breeding ground for market-leading product concepts. Effective brainstorming sessions can reveal unique market opportunities, create an alignment of vision among teams, and contribute to the overall product strategy.",
"links": []
},
"vP4tfzP-hOiAsv4K4RsQy": {
"title": "Discovery",
"description": "The discovery phase is a crucial stage in a Product Manager's role. It involves exploring, researching, understanding customer needs, and identifying market opportunities to develop a product that aligns with business goals while providing value to users. During this phase, Product Managers gather and analyze data from customers, competitors, and the market to clearly define the problem to be solved. Visual forms like customer journey maps, personas, or prototypes are often used to effectively communicate the findings. The insights gained during the discovery phase set the foundation for the decisions made in the subsequent product development phases.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Introduction to Modern Product Discovery by Teresa Torres",
"url": "https://youtu.be/l7-5x0ra2tc?si=Zh4LeSF_qAj8y6-a",
"type": "video"
}
]
},
"toc34xxsB_tnHtekk1UmN": {
"title": "Selection",
"description": "The Selection process in Product Management involves identifying which features and projects to prioritize, based on the product's strategic direction, business objectives, customer needs, and market trends. As a Product Manager, understanding how to effectively carry out this selection process is critical in managing resources efficiently, aligning team efforts towards high-impact tasks, and driving product success in the market. This process usually involves tools and frameworks, such as product roadmaps, prioritization matrices, user feedback, and data analysis.",
"links": []
},
"fK3ZaX7Amna1oa_T5axVk": {
"title": "Validation",
"description": "Validation in the context of Product Management, refers to the process of ensuring that a product, feature, or concept meets the needs and expectations of the targeted end-user population. Product Managers carry out this process before the development phase to mitigate risks and avoid potentially costly mistakes. Validation helps in identifying if the problem is worth solving, gauges market demand, and validates the proposed solution. Typically, this might involve user interviews, surveys, prototypes, and market research. It plays a crucial role in decreasing uncertainties and refining the product roadmap. Its objective is to build a product that provides sufficient value to customers and meets business goals.",
"links": []
},
"1HytzY1KRYIQWoQa5FMwY": {
"title": "Iterative Process",
"description": "The Iterative Process is a fundamental approach in product management, which allows Product Managers to continuously improve and refine their products. In essence, it means creating, testing, refining, and repeating. Using this methodology, a Product Manager incrementally enhances the product based on feedback and learnings from each iteration. This constant evolution of the product makes for a more flexible development process, particularly useful in dynamic environments where user needs or market conditions may frequently change. Understanding and applying the Iterative Process can greatly enhance the ability of a Product Manager to deliver an effective and successful product to the market.",
"links": []
},
"LhNgyNDeqCAD--dAzf6u8": {
"title": "Execution",
"description": "Execution in the context of a Product Manager refers to the practical implementation of strategic plans. A Product Manager not only has to devise innovative solutions and streamline their visions but also successfully execute those plans. This involves managing resources, mitigating risks, working in collaboration with different teams, and ensuring the product development aligns with the customers needs and the companys objectives. Sound execution skills are vital for a Product Manager as they directly impact the success or failure of a product in the market.",
"links": []
},
"gjdCSm_jZmG_q6YjG_8Qu": {
"title": "Blue Ocean Strategy",
"description": "Blue Ocean Strategy is a significant methodology in product identification for a Product Manager. It's a marketing theory from a book published in 2005 which advocates the creation of new demand in uncontested market spaces, or \"Blue Oceans\". Rather than competing within the confines of the existing industry or trying to steal customers from rivals (Red Ocean Strategy), Blue Ocean Strategy proposes to create a new space in the market, thereby making the competition irrelevant.\n\nFrom a product management perspective, this involves implementing innovative ideas, seeking new opportunities and envisioning potential markets. Product Managers, hence, are able to utilize this strategy to develop unique products that can trigger exponential growth and success for their organizations. In a nutshell, Blue Ocean Strategy provides a creative and systematic approach towards successful product identification and differentiation.\n\nLearn more from the following resources:",
"links": [
{
"title": "How To Differentiate Your Business With BLUE OCEAN STRATEGY",
"url": "https://www.youtube.com/watch?v=UKDxj6W7CXs",
"type": "video"
}
]
},
"DEwte-c-jxAFpiaBXAPSO": {
"title": "TRIZ (Theory of Inventive Problem Solving)",
"description": "TRIZ is a problem-solving, analysis and forecasting tool derived from the study of patterns of invention in the global patent literature. In the realm of product management, TRIZ aids Product Managers to ideate innovative solutions, accelerate product development, solve complex problems and predict future technology trends. Understanding and applying TRIZ principles can empower Product Managers to overcome cognitive biases, break away from traditional patterns of thinking, and improve ideation and product innovation by providing systematic approaches and methodologies.",
"links": []
},
"aBJUQvgXmvpLPOhpDTn7l": {
"title": "Problem Framing",
"description": "Problem Framing is a vigorous process undertaken by Product Managers to clearly understand, articulate, and define the issues that a product or service aims to resolve. It necessitates critical and creative thinking to identify the root cause of a problem, its potential implications, its users, and the impact of its solutions. Essentially, a well-framed problem can guide Product Managers while they navigate through the product's design and development phases, ensuring that the final product successfully addresses the issue at hand and delivers substantial value to its users.",
"links": []
},
"fmpJB_14CYn7PVuoGZdoz": {
"title": "Product Identification",
"description": "Product Identification plays a critical role in the diverse spectrum of responsibilities held by a Product Manager. It typically involves identifying and detailing the core features, value proposition, and user demographics of a product. This is an essential preliminary step in product development that not only assists in recognising the unique selling points but also helps in positioning the product appropriately in the competitive market. The rationale, advantages and potential of a product are all captured during the product identification process, making it a key strategic roadmap element for a Product Manager. Knowledge of product identification can empower Product Managers to make informed decisions that align with user needs and business goals.",
"links": []
},
"Eusp5p6gNIxtU_yVvOkmu": {
"title": "Market Analysis",
"description": "As a central aspect of a Product Manager's role, market analysis encompasses the examination of the market within which the product will operate. It includes a detailed understanding of potential consumers, competitors, and market conditions. Market analysis helps Product Managers to develop strategic plans, set objectives, and make informed decisions about product development, positioning, and growth strategies. This extensive research forms the groundwork for understanding market trends, industry patterns, customer behavior and the competitive landscape.",
"links": []
},
"8LAy6uBfrdtrjF8ygAGoo": {
"title": "User Research",
"description": "User research is a critical aspect of a Product Manager's role. It is through understanding the needs, behaviors, and pain points of a user that a Product Manager can create, refine, and market products successfully. User research is not a one-time event but a continuous process that helps Product Managers stay abreast of their target market's evolving demands and expectations. Methods used include interviews, surveys, usability testing, and observation, among others. By staying connected to the users' perspectives, a Product Manager can ensure a more user-centric product development process resulting in a product that genuinely meets and exceed user expectations.",
"links": []
},
"YPqdrZguH0ArEFSe-VwKS": {
"title": "Positioning",
"description": "Positioning, within the realm of product management, refers to the delicate art of crafting and communicating a product's unique value proposition to the intended audience, in relation to competing products. It's about defining where your product fits into the market and how it should be perceived by its consumer base. A seasoned Product Manager meticulously shapes and controls this perception in order to strengthen the products standing in the market, increase sales, and boost the overall brand image. The correct positioning strategy can ultimately lead to a product's success or failure. For Product Managers, mastering this strategic function is a key element in directing both product development and marketing efforts.",
"links": []
},
"LkDLk6DsEvbFXZPGOhD0C": {
"title": "Identifying Market Needs",
"description": "Identifying market needs is a fundamental task for a Product Manager during the process of market analysis. A market need is what motivates a consumer to buy a product or service. The market analysis mandates the Product Manager to study the market, understand the customers' behavior patterns and preferences, and keep an eye on current market trends. This data-driven outlook helps the Product Manager decipher the gaps in the market, what pain-points the potential customers have that are unresolved, and hence, find opportunities to create new products or enhance existing ones. Glazing through customer feedback, surveys, and competitor analysis are some of the methods that help identify these needs and provide the launchpad for successful product planning and development.",
"links": []
},
"PBDlYIyS8LAyPE6tV-kU7": {
"title": "Competitive Analysis",
"description": "Understanding the competitive landscape is a critical aspect of a Product Manager's role. Competitive analysis involves identifying your competitors and evaluating their strategies to determine their strengths and weaknesses relative to your own product or service. A product manager uses competitive analysis to understand market trends, discover opportunities for growth, and determine competitive advantages. It is an essential factor in positioning, marketing, and strategic decision-making. This process of understanding often involves collecting and reviewing information about competitor products, including their features, functionality, pricing structures, and success within target markets.",
"links": []
},
"aDhSpLRZ6Sd8SnkcwtyLf": {
"title": "Emerging Market Trends",
"description": "Understanding emerging market trends is a critical aspect of a Product Manager's role. Market analysis involves closely observing changes, patterns, and shifts in the marketplace to not only anticipate customer needs and preferences but also efficiently strategize the product's design, development, and positioning accordingly. Keeping track of emerging market trends provides a competitive edge, aids in identifying opportunities for innovation, and enables better decision-making to ensure product success and sustainability in the market.",
"links": []
},
"0y8F9x6MhApQkS1VhS8Dx": {
"title": "User Personas",
"description": "User Personas are considered foundational in user research in product management. These are fictional characters or profiles representing a certain user segment for a product or service. For a Product Manager, understanding user personas is crucial as it allows them to better identify with the user's needs, behavior patterns, and goals. It serves as a tool that humanizes these users and allows for a more personalized approach when designing a product or service. They contribute towards making informed decisions about product features, user interface, and overall user experience. Thus, user personas play a significant role in aligning all stakeholders in a product lifecycle on who the target users are.",
"links": []
},
"5kt8AkCsdAdlBmsKOkKFH": {
"title": "User Interviews",
"description": "For a Product Manager, User Interviews are a key instrument in User Research. They provide a pristine opportunity to understand the user's needs, problems, motivations, and behaviors. This process involves having a one-on-one conversation with current or potential users of a product to understand their experiences with the product, to gain insights about their needs and wants, and to determine how a product can be improved to meet the user's expectations. If conducted effectively, user interviews can help a Product Manager to make informed product development decisions thereby increasing user satisfaction and product success.",
"links": []
},
"a_5AyOKAgcg0rArZfapA_": {
"title": "Surveys and Questionnaires",
"description": "For a product manager, understanding the needs, wants, and experiences of users is a critical task. This comprehension is often facilitated through user research, where tools like surveys and questionnaires come into the picture. These tools enable product managers to garner valuable insights about user behavior, preferences, and pain points. With well-crafted surveys and questionnaires, product managers can proactively address user needs, refine product strategy, and ultimately create products that provide high value and usability.",
"links": []
},
"VwI7plziVzwkp3KZd4466": {
"title": "Ethnographic Research",
"description": "Ethnographic research, stemming from anthropology, is a significant methodology often adopted by product managers to gain a profound understanding of user behaviours, routines, cultures, and motivations in their natural surroundings. It is essential as it offers contextual and holistic insights on user behaviour that other methods, like surveys or interviews, may not provide. For a product manager, this research helps compose a more empathetic and comprehensive user point-of-view, thus successfully driving product decisions that meet users' needs more effectively. This may involve observing users interact with the product in their everyday life, carrying out contextual inquiry, or even studying competitors to understand the factors that drive users towards specific actions. Understanding the subtleties of user behaviour through ethnographic research can truly create the difference between a good product and a great one.",
"links": []
},
"tKDlfVvNym_OIqkommiJ8": {
"title": "USP (Unique Selling Point)",
"description": "In the competitive realm of product management, a Unique Selling Point (USP) can be considered as the DNA of your product. It is that distinctive edge or feature that positions your product uniquely in the market and makes it stand out from the crowd. For a Product Manager, comprehending the USP of their product is vital, as it not only aids in driving the product strategy and development but also impacts the marketing campaigns and sales propositions. It gives direction to both the inward and outward-facing decisions and actions pertaining to the product. This nucleus feature, in essence, becomes a crucial factor in setting up the product's market positioning. Hence, a sound grasp of the USP can act as a guiding compass in the successful management and evolution of a product.",
"links": []
},
"3MYjrnd6h2ZlcfaXjUbkC": {
"title": "Market Segmentation",
"description": "As a Product Manager, understanding market segmentation is crucial in the process of positioning your product. Market segmentation involves dividing a market into distinct groups of buyers who have different needs, characteristics, and behaviors, and who might require separate products or marketing mixes. It helps product managers identify and analyze potential customers, their needs, and how the product can meet their needs. Furthermore, using market segmentation for positioning assists in developing a product's unique selling proposition, thus facilitating a stronger connection with targeted customer segments. Without proper market segmentation, product positioning may become less effective and could result in wasted marketing efforts.",
"links": []
},
"JhhjMPTNb646aQKlS_cji": {
"title": "Case Studies",
"description": "Case studies play a pivotal role in exhibiting the efficiency of a product and its potential value in the lives of customers. For Product Managers, understanding case studies in positioning is invaluable. It allows them to comprehend how a product fits into a market, how it behaves in relation to competitors, and how it meets customer needs. These case studies provide insights into the real-world application and results of strategic positioning, enabling Product Managers to devise more effective strategies that attract target customers and build lasting brand value.",
"links": []
},
"l-KrmCOKEfpLHq4j-9SoY": {
"title": "Vision & Mission",
"description": "A critical aspect of a Product Manager's role is to understand, define and communicate the Vision and Mission of their product. The Vision is the long-term goal, reflecting what the product aims to achieve or become in the future. This provides a strategic direction that aligns all stakeholders. The Mission, on the other hand, is a tactical plan detailing how the product will achieve this Vision. It involves specific, actionable objectives that can be assessed and adjusted periodically. Together, the Vision and Mission guide the Product Manager in making decisions, prioritizing actions and inspiring the team.",
"links": []
},
"DnKHDm0TZ7QQUyrhPdqkV": {
"title": "Statement",
"description": "As a Product Manager, an integral part of your responsibility revolves around defining and understanding the Vision and Mission statement of the product you are managing. These statements not only align the team and the organization with a specific goal, but they also provide a roadmap of the larger purpose that the product aims to serve in the most succinct way possible. A clear and motivating Vision and Mission statement can lead to empowered teams and efficient decision-making processes. The Vision depicts the ultimate goal of the product, where it aspires to be. The Mission, on the other hand, focuses on the present, defining the purpose of the product, the why and the how behind its existence. Gaining a deep understanding of these statements becomes an essential aspect of successful product management.",
"links": []
},
"ZCTSbMHAMSaOxlqaJImzr": {
"title": "Proposition",
"description": "As a critical cog in the wheel, a Product Manager is closely entwined with the strategic development of the product's proposition under the company's vision and mission. This involves understanding and aligning the product's value proposition with the overarching business objectives. A well-articulated proposition gives direction to the product development process, influences the marketing strategies, and contributes to creating a product that rings true to the brand promise. The role of the Product Manager here is multifaceted—they contribute to defining, refining, and maintaining this proposition while ensuring it's in sync with the customers' needs and market trends. They also act as a crucial link between various stakeholders, including leadership, technical teams, and customers.",
"links": []
},
"8srsCEv55zh1y4gsp-rCO": {
"title": "Capabilities",
"description": "The role of a Product Manager is multifaceted and one important aspect of that role revolves around setting and understanding the vision and mission. A vision is a long-term goal or aspiration for a product and encompasses the overall direction or strategy for the product. Conversely, a mission statement focuses more on the present, describing the purpose of the product and who it serves. These aspects help drive the decision-making process in product management. Product Managers utilize these tools to align the product team and the company as a whole. They make strategic decisions and formulate plans based on the foundation set by the vision and mission. By leveraging these capabilities, Product Managers are able to make informed decisions that propel the product towards success.",
"links": []
},
"eKJ2XfDxu0NAKA932tbzy": {
"title": "Solved Constraints",
"description": "The role of a Product Manager extends to managing and solving constraints regarding a product's vision & mission. The mission is the purpose that propels the product towards its ultimate goal, while the vision outlines where the organization or product aims to be in the future. The complexities lie in the constraints that might hinder the product's way to achieve its vision and mission. These constraints could be technical, financial, time-bound, resource-based, and more. The Product Manager's responsibility is to identify these constraints, design strategies to overcome them, and effectively implement those strategies, thereby channeling energy in alignment with the product's mission and vision.",
"links": []
},
"wuqZntn1ivkr9AV_09zYX": {
"title": "Future Constraints",
"description": "As a product manager, one has to deal with various constraints while building a product strategy which aligns with the company's vision and mission. Future Constraints under Vision & Mission dives into these upcoming limitations or challenges that may impede the pursuit of the organizations goals. These could range from technical or resource limitations, to market changes, regulatory environments and competitive forces. To successfully design and deliver products, understanding these future constraints is vital for a Product Manager. This allows them to proactively plan and devise effective strategies to tackle potential issues, ensuring the product direction remains aligned with the organization's vision and mission.",
"links": []
},
"uXseNTJlteD6Fgi1bzQB4": {
"title": "Reference Materials",
"description": "When considering the role of a Product Manager, one must appreciate the crucial impact of \"Reference Materials under Vision & Mission\". These materials comprise everything from project proposals and business plans to company strategy documents and competitors' analysis reports. They serve as a factual and thematic basis for a product manager's day-to-day decisions and long-term strategic planning. Understanding the companys vision and mission is a foundational requirement for a product manager since they act as a guiding compass for all product development activities, ensuring alignment of all efforts towards achieving the company's goals.",
"links": []
},
"zS_CjYSTOIkJZn-oUEvgh": {
"title": "Narrative",
"description": "A Product Manager, in their role, often stands as the conduit linking different business components, including customers, sales, marketing, and engineering. A crucial aspect of this role involves crafting the narrative under the Vision & Mission of their product. This narrative is a strategically designed story that brings to life, the product's purpose, its potential market impact, and the roadmap to its success. The narrative not only sets the direction for the team but it also helps stakeholders understand the products strategic importance. From illustrating the product's value proposition to external audiences to aligning internal teams, a solid, compelling narrative, shaped by the Product Manager, is crucial in defining and driving a products vision and mission.",
"links": []
},
"n2AYdM2dlJfuZ97jXY49U": {
"title": "Defining Goals",
"description": "As a Product Manager, defining goals is a critical aspect of your role. Having clear, well-defined goals crafting the strategic roadmap for your product. This involves identifying the desired outcomes or changes that need to be achieved within a specified timeline. These encompass various facets including market share, revenue, user experience and product functionality among others. Setting these goals requires a combination of data-driven insights, understanding of market trends and user feedback. Ultimately, these goals will serve as the guiding points for the development teams and stakeholders, streamlining efforts towards the shared vision. Your ability to articulate these goals effectively, will directly influence the success of the product.",
"links": []
},
"tmlFCmEuYpcUnt8VvVP9R": {
"title": "Target",
"description": "These goals specify a clear and quantifiable objective that the product aims to achieve, such as increasing user engagement by 20% within six months.",
"links": []
},
"GPRqshiha8Pi4a4ImW8-5": {
"title": "Baseline",
"description": "These goals aim to maintain or improve the current level of performance, such as keeping customer satisfaction scores above a certain threshold.",
"links": []
},
"s8mK1llA32B69_rzOwcwN": {
"title": "Trend",
"description": "These goals focus on leveraging or reversing observed trends, such as accelerating a growing user adoption rate or halting a declining market share.",
"links": []
},
"E1yPzEhssJWMDLeSiL4cj": {
"title": "Timeframe",
"description": "These goals set a deadline for achieving specific outcomes, such as launching a new feature by the end of Q3 or completing a market analysis within two weeks.",
"links": []
},
"6OjKcLbUZVJdUDC7if0Uy": {
"title": "Value Proposition",
"description": "As a product manager, understanding, defining, and communicating your product's value proposition is vital. It refers to the unique value that a product or service provides to a customer, highlighting the reasons why they should choose your product over competitors. It's a differentiator that sets your product apart and communicates the additional benefits that customers would receive. A compelling value proposition aligns with customer needs and demands, positions your product fittingly in the market, and serves as a foundation for the product strategy and roadmap.",
"links": []
},
"1j2ZSo7UGnBgoLpYzsA5t": {
"title": "Defining Value Proposition",
"description": "The Value Proposition serves as the foundation for a product manager's strategy, directly influencing the design, development, and marketing decisions of a product. By defining the unique value your product brings to the market, you communicate its benefits, solve customers' problems, and outdo competitors. A well-articulated value proposition is crucial as it affects every aspect of your product—from conception to final sale. For a product manager, understanding and continually refining the value proposition can guide decision making, target key demographics more effectively, and increase overall user satisfaction.",
"links": []
},
"kjKUrKdtCM95VinlluKDS": {
"title": "Value Proposition Canvas",
"description": "The Value Proposition Canvas is an essential tool for Product Managers. It aids in understanding deeply about customer needs and ensuring that the product delivers on those. Essentially, it helps in aligning the products features with the customer's requirements and expectations. This powerful strategic management tool is used to comprehend customer segments, their challenges, and how the product can solve those. With its ability to identify the product-customer fit, it significantly reduces the risk associated with product failure and aids in the successful rollout of products.",
"links": []
},
"0AQj2F1n8VKHBwuF4ywrp": {
"title": "Value vs Features",
"description": "In the realm of product management, a key decision-making factor is striking a balance between value and features. Product managers are often caught in the dilemma of whether to focus more on increasing the number of features, making the product functionally rich, or to focus on the core value that a product would deliver to the user. While features may seem appealing and can act as selling points, it's the genuine value or solution to the customer's problem that tends to encourage satisfaction and loyalty. To make this complex decision, Product Managers often use strategies such as customer feedback, market research, competitor analysis, and various prioritization frameworks.",
"links": []
},
"xu8A_QKs6lXzKPMiifNF_": {
"title": "Finding Balance",
"description": "As a Product Manager, one vital skill required of you is understanding the balance between value and features. This revolves around prioritizing what features to implement based on the value they provide to the customer or user. It is about striking a balance; not all features will provide the same level of value, and understanding this is key to efficient resource allocation. You must maintain a focus on delivering value while also ensuring the product's features remain compelling and relevant to the target audience.",
"links": []
},
"GbFbURxIRD76kyR9vKfdg": {
"title": "Feature Creep",
"description": "Feature creep, also known as requirements creep or scope creep, is a term commonly used by product managers. It refers to the continuous expansion or accumulation of features in a product, that goes beyond its original scope and requirements. This can lead to project bloat and veer off the product from its intended course and business objectives. Despite the temptation to add more features to satisfy varied user requirements, a good product manager should keep a balance and manage feature creep effectively. The aim is not only to deliver a product that meets the users' needs, but also stays on schedule, within budget and aligned with the product vision.",
"links": []
},
"m46lX4dUHik_BSHQwaU2l": {
"title": "Strategic Thinking",
"description": "Strategic thinking is a critical competence for Product Managers. This involves the ability to think long-term, beyond immediate actions, to comprehend how various components influence each other within the big picture, as well as predicting potential outcomes. It's about identifying strengths and weaknesses, understanding opportunities and threats, planning for diverse scenarios, and making sound decisions. A Product Manager with strategic thinking skills effectively aligns product decisions with the broader organizational strategy, anticipates upcoming market trends, and maintains a competitive edge.",
"links": []
},
"qy_IXzenBOEVBMvVlXPaY": {
"title": "Competitive Strategy",
"description": "Product Managers play a crucial role in defining and implementing the competitive strategy of a product. This strategy is typically a long-term action plan for a company that identifies how to achieve a competitive advantage while meeting the needs of its customers. Product managers, with their deep understanding of the market, identify opportunities, understand competitors, and align the product to meet business goals and customers' needs. Strong strategic thinking aids in making informed decisions towards competitive positioning of the product, considering factors such as pricing, features, and marketing strategies.",
"links": []
},
"8CW_clQsc6SC4piQ3__0I": {
"title": "Five Forces Analysis",
"description": "Five Forces Analysis, developed by Michael E. Porter, is a critical tool that a Product Manager can utilize to understand the competitive forces within the industry and help inform product development strategy. This analysis includes five different forces: potential new entrants, substitute products or services, bargaining power of buyers, bargaining power of suppliers and competitive rivalry. By thoroughly examining these areas, a Product Manager can uncover opportunities, mitigate challenges, and position the product to achieve sustainable profitability. It also supports crucial decisions around pricing, marketing, and development prioritization. Thus, mastering Five Forces Analysis is fundamental for successful product management.",
"links": []
},
"tTUp4GQHvjLZYkySasQFE": {
"title": "Competetive Advantage",
"description": "Competitive advantage stands at the core of a product manager's role and responsibilities. A competitive advantage ensures that a product or service has unique attributes that set it apart from rival offerings, providing a strategic advantage in the market. A product manager must understand and leverage this unique value proposition to attract, retain, and potentially expand the customer base. Thus, competitive advantage is essential for creating strategies, defining the roadmap, making crucial product decisions, and driving growth.",
"links": []
},
"jWU_odHoQYk3GKCPoRV2n": {
"title": "Strategic Partners",
"description": "In the role of a Product Manager, a crucial aspect is managing and guiding strategic partners. Strategic partners are organizations or individuals that a company forms alliance with to mutually develop, promote, and distribute products or services. For a product manager, this involves understanding the capabilities of potential partners, determining how to leverage their strengths for the product's growth, as well as maintaining a positive and productive relationship with them throughout the product lifecycle. This could range from sourcing raw materials to providing distribution network or even technological support, depending on the nature of the product. In brief, strategic partners significantly contribute in shaping the product's roadmap, influencing its performance in the market, and advancing overall business objectives.",
"links": []
},
"1M6WpW1wbJcXMb3nf10U2": {
"title": "Identify Partners",
"description": "Identifying partners is a critical element in the role of a Product Manager. This refers to the process of discovering and aligning with other individuals, teams, or organizations that can assist in boosting the product's value proposition. This is achieved either by improving its features, outreach, access to resources, or customer adaptations. A strategic alliance can streamline the process of product development and provide access to niche markets and specialized technologies. Solid partnerships can amplify the potential of the product, save resources and time, and provide a competitive advantage in a saturated market landscape.",
"links": []
},
"vXnf1AcMidLww5EypChWk": {
"title": "Managing Partnerships",
"description": "Product Managers often work at the intersection of business, technology, and user experience. An integral part of their role includes managing partnerships. This involves identifying and fostering strategic partnerships that can aid the company in achieving its business goals, optimizing product performance, and enhancing market reach. Relationships can range from technology partners, distribution affiliates, to marketing collaborators. Effective partnership management needs insightful planning, excellent communication and strong negotiation skills. It provides a powerful platform for increasing competitive advantage, gaining access to essential resources and expanding customer base.",
"links": []
},
"0tJ7zlgOIaioCMmVavfqz": {
"title": "Product Requirements",
"description": "Product requirements are a vital component in the realm of product management. They represent the critical elements, features, and functionalities that a product must possess to meet the needs and expectations of customers, stakeholders, and the business itself. Product Managers hold the responsibility to define, document, and communicate these requirements effectively with all parties involved. This process involves understanding customer needs, market trends, and technical feasibility, translating these understandings into well-defined requirements for the development teams. Thus, mastering the art of product requirements is an essential skill for a successful Product Manager.",
"links": []
},
"0FqpBfvnkGN_oE2KSC-_8": {
"title": "Writing PRDs",
"description": "In the realm of product management, writing Product Requirement Documents (PRDs) serves as a crucial part of the job. This activity involves detailing and articulating the products purposes, features, and functionalities. PRDs become a roadmap that guides the design and development team. As a Product Manager, you play a pivotal role in crafting a well-structured PRD, ensuring it clearly communicates the product's vision to stakeholders and enables seamless product development.",
"links": []
},
"kN-UfAbQ8j7g0jDdqWK55": {
"title": "User Stories",
"description": "For a product manager, understanding user stories is an essential part of defining product requirements. A user story is a tool used in Agile development that captures a description of a product feature from an end-user perspective. User Stories helps the product manager not only in understanding and noting down the user's perspective but also in communicating this perspective to the design and development teams efficiently. User stories depict the type of user, what they want, and why, giving the team a clear focus of what needs to be accomplished. Therefore, as a product manager, utilizing user stories can lead to products that meet user expectations and demands effectively.",
"links": []
},
"B9fgJmzVViaq7dvSuEglb": {
"title": "Job Stories",
"description": "The concept of Job Stories is a tool integral to a Product Manager's dynamic role. Structured differently from traditional user stories, Job Stories shift the focus from personas to the situation, providing a fresh perspective for understanding user requirements. They provide an opportunity for product managers to emphasize the context and causality of user needs. This perspective plays a crucial role in creating successful products and ensuring they deliver value to the end-users. Teleriking why and when someone uses the product opens avenues for actionable insights leading to judicious decision-making in defining product requirements.",
"links": []
},
"gS3ofDrqDRKbecIskIyGi": {
"title": "Product Roadmap",
"description": "The product roadmap is a strategic document that provides a detailed overview of the product's direction and vision. It outlines the product's plans, both tactical and strategic - including the specific steps necessary to achieve the company's goals and vision. As a Product Manager, you are expected to guide the creation of the product roadmap, communicating the products evolution to the team, stakeholders, and customers. This tool serves as an essential reference point helping to align all stakeholders with the key priorities and vision of the product, and acts as a guide for decisions around product development.\n\nLearn more from the following resources:",
"links": [
{
"title": "What is a Product Roadmap? - Product Plan",
"url": "https://www.productplan.com/learn/what-is-a-product-roadmap/",
"type": "article"
},
{
"title": "What is a Product Roadmap? - Vibhor Chandel",
"url": "https://www.youtube.com/watch?v=BJR70jnpHog&ab_channel=VibhorChandel",
"type": "video"
}
]
},
"eiqV86PWizZPWsyqoBU5k": {
"title": "Creating a Roadmap",
"description": "A product manager plays an essential role in setting a strategic direction for the products they are tasked with guiding. An integral part of this role is creating a product roadmap. This key document outlines the vision, direction, and progress of the product over time. It is a detailed plan that explains how the product is likely to grow, the strategy behind it, and the steps necessary to achieve its development goals. It is imperative for a product manager to create and maintain a product roadmap, as it provides a clear path for everyone involved and sets realistic expectations regarding the product's evolution. The roadmap keeps the product manager, the development team, stakeholders, and customers on the same page, allowing for seamless collaboration and effective decision-making.",
"links": []
},
"k7Zv7IS9y-jkI_zGrBQG3": {
"title": "Prioritising Features",
"description": "The role of a Product Manager often necessitates the task of prioritising features in a products development roadmap. This pivotal process involves identifying what features or enhancements will serve the product, business, and customers best, considering the balance of business viability, technical feasibility, and customer desirability. Numerous methodologies can be applied to feature prioritisation, including the MoSCoW method, RICE scoring, or the Kano model, each influencing the order of feature implementation. Perfecting this process can lead to improved resource allocation, better product releases, and maximized customer satisfaction.",
"links": []
},
"qGvHqOSTPyVKll4mMVk7i": {
"title": "Continuous Roadmapping",
"description": "In the dynamic world of product development, a Product Manager needs to utilize effective strategies to navigate the fluctuating market needs and demands. Continuous Roadmapping is an essential tool that allows for flexible and adaptable planning in line with these changes. Under this methodology, product managers continually adapt and update the product roadmap as new information, data, and feedback become available. This enables them to respond proactively to shifts in business goals, customer needs, and the market landscape, ensuring that the product remains relevant and competitive, while aligning its development with the brand's strategic objectives.",
"links": []
},
"1uAfy3ISLKGmLirvIfzfE": {
"title": "Outcome-Based Roadmaps",
"description": "Outcome-Based Roadmaps refers to the strategic planning approach of focusing on the desired results of an organization or project rather than the specific tasks or features to be completed. For a Product Manager, creating outcome-based roadmaps requires a top-down approach, putting the focus on solving problems and achieving objectives over defining strict specifications or tasks. This allows for more flexibility and innovation in product development and strategy. It also necessitates a deep understanding of customer needs, the ability to articulate clear goals and progression metrics, and the skill to collaborate with cross-functional teams to see those goals to fruition.",
"links": []
},
"NjLt_B_kV7FdnkOomqayx": {
"title": "Communicating the Roadmap",
"description": "An essential role of a Product Manager involves communicating the product roadmap. This strategic document delineates the vision, direction, priorities, and progress of a product over time. It is paramount that this roadmap is communicated effectively to various stakeholders including team members, leadership, clients, and investors. This not only sets appropriate expectations but also ensures that everyone associated with the product is on the same page. The successful alignment increases the chance of product success and reduces the scope of misunderstandings and delays. For a Product Manager, mastering this communication is key to leading a product effectively.",
"links": []
},
"lq5Hl1ZXBQRRI_4ywn7yA": {
"title": "Backlog Management",
"description": "Backlog Management is a critical aspect in the role of a Product Manager. It involves organizing and prioritizing a list of tasks or features - known as the \"backlog\" -that are required for the development of a product. Effective backlog management ensures that the product team is working on the most valuable features at the right time, thereby maximizing the product's value and reducing time to market. It requires continuous collaboration with stakeholders, balancing business needs with technical feasibility, and strategically planning to meet short and long term objectives.",
"links": []
},
"Slb0P_LVdl7-GzUqbO33c": {
"title": "Prioritization Techniques",
"description": "Prioritization Techniques are the key strategies implemented by product managers to determine where to allocate resources and focus development efforts. These techniques help in identifying the most valuable and impactful features, products, and projects to undertake. Since time, budget, and resources are limited, it is crucial to prioritize works that align with the business objectives, customer needs, and market trends. These techniques can range from simple to sophisticated; including methods like the Eisenhower Matrix, RICE scoring, Weighted Shortest Job First (WSJF), and more. Mastering these techniques facilitates a product manager in making informed decisions and delivering maximum value to the customers and the business.",
"links": []
},
"sqxgqfxWMluhWtCWN8spG": {
"title": "Grooming Sessions",
"description": "In the realm of product management, grooming sessions are a crucial part of the Agile product development process. Also known as backlog refinement or story-time sessions, they help product managers, along with the development team, prioritise and refine the product backlog to ensure smooth execution of product delivery. During grooming sessions, product manager clarifies doubts about product backlog items, re-orders them based on business or technical priority and often breaks down large user stories into smaller, manageable tasks. They are integral in maintaining a well-organised, clear and up-to-date product roadmap.",
"links": []
},
"3JY85Tu40ABy9XfoliaqE": {
"title": "User Story Mapping",
"description": "User Story Mapping is a crucial practice product managers adopt under the broad area of backlog management. This strategic process encourages the development team and stakeholders to have a collaborated understanding of the product or application, as it aligns them into visualization and diagraming of user activities. User Story Mapping provides a structured approach to defining user interactions with the product, assisting Product Managers to prioritize requirements, and ultimately leading to a product that meets the needs of the users effectively. This approach allows the product manager to set realistic goals, enable seamless team collaboration, and ensure an efficient project schedule that captures the product's functionality from the user's perspective.",
"links": []
},
"-lFYy5W1YqWuTiM3QRF4k": {
"title": "UX / UI Design",
"description": "UX (User Experience) and UI (User Interface) design are integral parts of product management. A product manager often works closely with UX/UI designers to ensure that the product not only meets the functional requirements but also provides a seamless and engaging user experience. UX design focuses on the overall feel of the product, ensuring it solves problems for users effectively and provides a positive experience. On the other hand, UI design concentrates on the aesthetics of the product its look and feel, responsiveness, and interactivity. Understanding UX/UI design is vital for a product manager as it heavily influences user satisfaction and product success.",
"links": []
},
"TwL-EqDorSgUpBYr4O4rf": {
"title": "Principles of UX Design",
"description": "When it comes to product development, one of the key roles a Product Manager must understand is the Principles of UX Design. UX (User Experience) Design is an intricate part of product management which aims at creating a streamlined and satisfying experience for the user interacting with a product. These principles guide designers and product managers alike in crafting products that aren't just functional but highly engaging. The skill of grasping these principles often separates successful products from the rest. A good understanding of UX Design principles helps product managers to maintain a user-focused approach throughout the product's life cycle, ensuring its viability in the market.",
"links": []
},
"zwrmh-djneZ8HIqbaBOkN": {
"title": "Wireframing and Prototyping",
"description": "Wireframing and prototyping form an essential part of product development, especially in the domain of UX / UI Design. For a Product Manager, understanding these processes serves as a crucial tool in enabling them to visualize the path of the user interface before it is fully developed.\n\nA wireframe is a basic, visual guide used to suggest the layout of fundamental elements in a web or mobile application. This serves as a skeleton for the structure of the app. The prototype, however, is a more comprehensive and interactive model of the product.\n\nBy integrating wireframing and prototyping within the design process, a Product Manager can test the product before the development phase, reduce unforeseen costs and changes, improve collaboration with stakeholders, and ultimately, ensure customer satisfaction.",
"links": []
},
"yPtxGBDEJkFBhF8ZgQUVH": {
"title": "Design Thinking",
"description": "As a Product Manager, understanding and utilizing Design Thinking in the context of UX / UI is a crucial aspect of the job. This innovative, solution-based approach to problem-solving allows Product Managers to create user-centered product designs that meet both user needs and business goals flawlessly. By incorporating Design Thinking, Product Managers can better empathize with the user, define the problem effectively, ideate creative solutions, prototype, and test the results, all contributing towards delivering a superior product. It's a process that emphasizes collaboration, user feedback, and iteration, thereby ensuring the product is continually refined and improved upon.",
"links": []
},
"lxU25qxxgxnNF3c3kdZxz": {
"title": "Service Design",
"description": "Service Design refers to the process of planning and organizing a business's resources (people, infrastructure, materials, etc.) to directly improve the service's quality, interactions between service provider and clients, and the customer's experience. For a Product Manager, it's a crucial practice as it gives them a broader understanding of their product's lifecycle and interactions with the end users. This process aids in crafting or refining products to ensure alignment with customer needs and provide superior user experience.",
"links": []
},
"S_-9msr3vGZgOQ36zErnf": {
"title": "Interaction Design",
"description": "Interaction Design is a key discipline within the field of Product Management. It focuses on the design and creation of digital interfaces and systems with which human users interact. As a product manager, mastery in interaction design is critical because the ease-of-use, intuitiveness, and satisfaction of a user's interaction with a product largely determine its success or failure. An Interaction-design-savvy product manager will strive to make sure the product offers a seamless user experience, ensuring it is aesthetically pleasing, easy to navigate, and delivers the desired functionality efficiently.",
"links": []
},
"v3hKowLMBVq9eCXkUhrDZ": {
"title": "User Testing",
"description": "User Testing is an essential responsibility for a product manager. In this process, the product manager ensures that the product developed by the team meets the users' needs and provides a good user experience. This is done by selecting representative users or personas, understanding the user's goals, implementing and planning test scenarios, facilitating the test and analysing the observed user behaviour. The feedback collected is then used to refine the product design, thus playing a significant part in shaping the product's road map and release cycle. Overall, User Testing provides invaluable insights that can often lead to significant improvements in the product.",
"links": []
},
"1uXjKKvOKqpO50m1pM627": {
"title": "Usability Testing",
"description": "Usability testing is a crucial aspect in a Product Manager's role. It essentially involves evaluating a product or feature by testing it with representative users. As a Product Manager, they must ensure that usability testing is performed at various stages of product development to understand and improve user satisfaction and experience. It provides direct input on how users use and perceive a product. Often, it is the Product Manager's responsibility to facilitate this process, from selecting suitable user groups to facilitating the sessions and analysing the results for future product iteration and improvement. Understanding usability testing allows Product Managers to identify any design problems and necessary improvements before full-scale product launch.",
"links": []
},
"Ws7IFrHQNoBjLE2Td2xIZ": {
"title": "A/B Testing",
"description": "A/B testing, otherwise known as split testing, is an essential statistical tool that is central to the responsibilities of a product manager. This method involves comparing two versions of a webpage, product feature, or user interface to determine which performs better according to certain metrics or goals. It allows product managers to make data-driven decisions and improve the product based on real user experiences and preferences. A solid understanding of A/B testing methods and application equips product managers with the ability to optimize user engagement, retention and conversion rates.",
"links": []
},
"5fze1aw1in3Gp3K31bvin": {
"title": "Remote User Testing",
"description": "Remote User Testing is a crucial aspect of the role of a Product Manager. This technique allows the validation of ideas, products, features, and updates with real users in their natural environment. This method of testing can provide invaluable insights into how users interact with a product, what challenges they might face, and what improvements can be made. For a Product Manager, implementing remote user testing into the development cycle can significantly aid in creating a user-centric product that meets the audience's needs and expectations. It is cost-effective, versatile, and applicable to a variery of stages in the product's lifecycle.",
"links": []
},
"sAu4Gr1hg8S4jAV0bOSdY": {
"title": "Agile Methodology",
"description": "Agile Methodology in product management refers to an iterative approach to project management and product development, where requirements and solutions evolve through collaboration among cross-functional teams. As a Product Manager, understanding Agile is essential since it not only speeds up the development process but also allows flexibility in response to changes. Agile can positively impact your product planning, product development, and customer feedback loop ensuring consistent improvement and value delivery.",
"links": []
},
"2r-NPGcROFmw-pd4rvsAJ": {
"title": "Working with Engineering Teams",
"description": "When it comes to the role of a Product Manager, effective collaboration with the engineering team is paramount. This involves fostering a strong communication culture, understanding technical constraints, and efficiently managing the product backlog. The relationship between a Product Manager and the engineering team can significantly influence the success of a product. Mutual respect, transparency and a clear understanding of roles and responsibilities help pave the way for a fruitful partnership.",
"links": []
},
"WNCVmFrpHW7rMaIzlLaXl": {
"title": "Scrum Basics",
"description": "The role of a Product Manager greatly correlates to the understanding and implementation of Scrum basics. Scrum is an agile framework that works towards delivering valuable products iteratively and incrementally. Scrum Basics cover a myriad range of concepts including, but not limited to, Scrum roles (Product Owner, Scrum Master, and the Development Team), Scrum artifacts (Product Backlog, Sprint Backlog, and Product Increment) and Scrum ceremonies (Sprint Planning, Daily Standup, Retrospective, etc.). An effective Product Manager is expected to thoroughly comprehend these components to smoothly manage projects, optimize product value and efficiently deal with complex situations, ensuring product success.",
"links": []
},
"kJ2HQFEsnc5yISU8d9Lla": {
"title": "Kanban Basics",
"description": "As a Product Manager in the fast-paced environment of technological innovation, being aware of and proficient in Agile methodology and specifically, the Kanban basics, is crucial. Originated in Toyota production system, Kanban is a visual tool that effectively supports the management of a product as it goes through its lifecycle. For a Product Manager, understanding Kanban basics implies being able to streamline workflow, limit work-in-progress and visualize work, thereby optimizing the efficiency of a team and the production timeline. Simply put, Kanban helps in managing work by balancing demands with available capacity, and improving the handling of system-level bottlenecks.",
"links": []
},
"bu-xm-L1XJgIPAFs2PieE": {
"title": "Sprint Planning",
"description": "In the role of a Product Manager, sprint planning is a fundamentally important aspect that dives into the management of product development in short 'sprints', or phases. It's a collaborative event in agile development where the team determines the product work that can be completed in the upcoming sprint. This essentially involves having the team understand the project's goals and scope from the Product Manager's perspective, direct stakeholders' input, and then translating these into concrete tasks for developers. Sprint Planning thus helps to ensure that everyone is on the same page and that development is effectively prioritized and focused.",
"links": []
},
"BzgGJbXIwQb0yR2ZMCmul": {
"title": "Daily Standups",
"description": "Daily standups, also known as daily scrum meetings, are a crucial part of a Product Manager's role in an Agile framework. They function as short, highly focused meetings where each team member summarizes their work since the last standup, their plan until the next one, and any obstacles encountered. For a Product Manager, participating and sometimes facilitating these meetings not only offers a clear view of the project's progress, but also helps in identifying and eliminating potential impediments for the team.",
"links": []
},
"AkKl7PrIPrIqXnss88v18": {
"title": "Retrospectives",
"description": "Retrospectives, also known as \"retros\", play an essential role in the life of a Product Manager. These are regular meetings where the team reflects on the past cycle of work, discussing what went well and where improvements should be made. For Product Managers, retrospectives provide an opportunity to assess the effectiveness of product strategies, to understand challenges faced during implementation, and to glean insights for future planning. These sessions are critical for continuous improvement, fostering a culture of transparency, and ensuring alignment across the team.",
"links": []
},
"mm5yvAaROsbwDgQUfnqyl": {
"title": "Minimum Viable Product (MVP)",
"description": "The Minimum Viable Product (MVP) is a crucial concept in the realm of product management. As a Product Manager, one is often tasked with defining and overseeing the development of the MVP. This refers to a version of a new product that allows a team to collect the most amount of validated learnings about customers with the least amount of effort. The principal advantage lies in understanding the interest and needs of the customers while saving time and resources. An effectively defined MVP can provide significant market insights, improve user experience in the final product, and increase likelihood for a successful product launch.",
"links": []
},
"53XS2zKdK6IDdOP07yiT7": {
"title": "Go-to-Market Strategy",
"description": "A Go-to-Market (GTM) strategy is an action plan that specifies how a product manager will reach target customers and achieve a competitive advantage. It serves as a blueprint that guides companies in introducing their products to the market. For a product manager, the GTM strategy is not just about product launch, it includes understanding the market dynamics, customer needs, creating marketing and sales strategies, and post-launch activities like customer service. An effective GTM strategy can help product managers ensure a successful product launch and strong market presence.",
"links": []
},
"PbhuFKsVNO6xGJHqXCwFl": {
"title": "Launch Planning",
"description": "The role of a Product Manager is central to launch planning. It involves designing and executing a strategic plan to introduce a new product or feature to the market. In order to ensure the success of the product, a Product Manager needs to collaborate with various departments such as design, development, sales, marketing, and customer service. They are responsible for setting the timeline, allocating resources, identifying target consumers, and setting price points. This requires a detailed understanding of the market, competitors, and the unique value proposed by their product. Launch planning is a critical phase in the product life cycle and its success greatly determines the trajectory of the product in the market.",
"links": []
},
"YYo_7lmTw7h74Y4J5pp-_": {
"title": "Marketing Strategies",
"description": "A Product Manager's job involves more than just overseeing the development of a product. They also play a crucial role in developing and implementing effective marketing strategies that align with the products goals and target market. This aspect involves understanding the market dynamics, competition, and user trends. Product Managers are responsible for translating these insights into strategies that drive the marketing campaigns, influence product positioning, branding, and promotion. It also includes measuring the success of every marketing initiative and tweaking plans as necessary to ensure the products success.",
"links": []
},
"wWWcIfPDGB92ed-1kV-uj": {
"title": "Growth Hacking",
"description": "Growth hacking is a pivotal concept that product managers must be familiar with in order to effectively strategize and achieve business growth. As a concept, growth hacking leverages data-driven and unconventional marketing strategies to help boost product growth. For a product manager role, understanding growth hacking means utilizing the principles to conceive effective marketing strategies that accelerate the product's market performance and user base. Market understanding, creativity, analytical thinking, and data insights are key elements of growth hacking a product manager needs to grasp.",
"links": []
},
"VqNK1rNAnr_yvi_a0YZEs": {
"title": "Release Strategies",
"description": "Release strategies play a critical role in the responsibilities of a Product Manager. Essentially, a release strategy defines the plan for the distribution of the final version of a product. The role of the Product Manager here is to ensure that new releases deliver on the product vision while meeting business objectives. They must carefully plan and manage product releases, outlining what features will be delivered, deciding on the release date, coordinating the teams involved and ensuring the product is effectively launched into the market. An effective release strategy is crucial to achieve the product goals and maximize the value delivered to the customers and business alike.",
"links": []
},
"7BCnM9A9PwYqsLmcNVfvt": {
"title": "Feature Toggles",
"description": "Feature toggles, also known as feature flags, are a powerful technique giving product managers an advanced control over the features of the product which are visible to specific users. It allows teams to modify a software system's behavior without necessarily changing the code. Feature toggles provide the flexibility of enabling or disabling certain parts of the application, facilitating testing, continuous deployment and facilitating roll-out or roll-back of features. As a product manager, understanding the use of feature toggles is crucial in efficiently managing the release process and reducing risks associated with deploying new features.",
"links": []
},
"8_VCWpSZkRWmsD1_thMYS": {
"title": "Phased Rollouts",
"description": "Phased rollouts refer to the strategy of gradually introducing a new product or service in the market. As a Product Manager, adopting a phased rollout approach is crucial as it allows the identification and resolution of potential issues in real-time, without impacting the entire user base. Additionally, it provides an opportunity to garner early feedback for improvements before a product is fully launched to the entire market. This strategy helps in minimizing risks as well as ensuring a smooth user experience. The valuable insights gained during this process aids the Product Manager in refining the product and building better solutions.",
"links": []
},
"aCoVHIAZllwKckkkwExR7": {
"title": "Dark Launches",
"description": "Dark Launches are a valuable strategy in product management. Essentially, they refer to the release of features to a subset of users before the official launch. These unannounced releases, invisible to the majority of users, provide product managers crucial data about how the feature functions in a live environment. They enable product managers to observe real user interactions, gather feedback, identify bugs and areas of improvement prior to a broad scale rollout. This greatly reduces the risk of encountering major issues post-launch and helps ensure a smoother user experience, making dark launches a critical weapon in a product manager's arsenal.",
"links": []
},
"RfllpwFxWBeHF29oUwGo_": {
"title": "Key Product Metrics",
"description": "Key Product Metrics are essential parameters that Product Managers use to measure the performance and success of a product. These set of metrics help understand the usage, engagement, and overall value of a product to its users. Product Managers rely on these insights to inform their decision-making process, prioritize features, identify areas for improvement and evaluate the impact of changes made to the product. From user acquisition and retention rate to churn rate and time spent on product, choosing the right metrics is vital for driving growth and achieving product goals.",
"links": []
},
"g2EgVtqwQxLfjBjomUqcU": {
"title": "DAU (Daily Active Users)",
"description": "For a Product Manager, understanding the significance of DAU or Daily Active Users is crucial. DAU is a key product metric used in the tech industry to measure the success of a product. It refers to the number of unique individuals who interact with a product or service on a daily basis. This insight helps product managers understand how compelling and sticky a product is and provides valuable data for making strategic product decisions. Monitoring and analyzing DAU trends can assist in identifying potential issues, measuring user engagement, or capturing growth opportunities.",
"links": []
},
"Sbi5Y72nU_B1Jk6xNp17u": {
"title": "MAU (Monthly Active Users)",
"description": "MAU (Monthly Active Users) is a critical performance metric that product managers often use to gauge the user engagement and growth of a digital product such as a mobile app, a SaaS product, or a website. It refers to the unique users who engage with the product at least once within a month. As a product manager, understanding the MAU helps in designing effective marketing strategies, making product enhancements, and ultimately driving the product's success.",
"links": []
},
"avkgeNNVQOCE7dvEKFVZv": {
"title": "Conversion Rate",
"description": "The Conversion Rate is a crucial product metric for any Product Manager. It is the percentage of users who complete a desired action on a product or service, such as making a purchase, signing up for a trial, or subscribing to a newsletter. Monitoring conversion rates allows Product Managers to understand how effectively their product is meeting target audience needs, achieving business goals, and driving desired customer behaviors. It helps in identifying areas of improvement, opportunities for growth, and impact of changes on user interactions.",
"links": []
},
"mfG1UheUwzO8dbS4oglgo": {
"title": "Retention Rate",
"description": "For a product manager, understanding the retention rate is integral to making key business decisions. This metric refers to the percentage of customers who continue to use a specific product over a given time period. By closely monitoring the retention rate, product managers can gauge the degree to which the product, application, or service meets the needs and expectations of consumers. Low retention rates may indicate dissatisfaction or competition, while high retention rates can suggest user satisfaction and loyalty. Understanding this figure can provide insights into changes that can improve customer engagement and satisfaction, making it a vital aspect of a product manager's role.",
"links": []
},
"jRWVaNpTfBXVjpi4WNT7H": {
"title": "Churn Rate",
"description": "Churn Rate is a pivotal term in the world of Product Manager. While understanding key product metrics, the term churn plays a significant role. It is the measurement of the percentage of customers or users who leave a product over a given period of time, divided by remaining customers. For example, if you start your month with 100 users and end with 90, your churn rate is 10%. Keeping a low churn rate can signify that customer satisfaction is high, sustaining customer loyalty and fostering conditions for growth. As a Product Manager, understanding, measuring and acting to reduce churn rate is critical to product strategy and overall business sustainability.",
"links": []
},
"DB-dN0bfG29Xv_a8iV8Yg": {
"title": "LTV (Lifetime Value)",
"description": "The Lifetime Value (LTV) of a customer is a crucial metric for a Product Manager. In its simplest form, LTV is the total revenue a company can expect from a single customer over the duration of their relationship with the company. It's a long-term perspective that ties together the upfront costs of customer acquisition with the ongoing costs of retention and the revenue generated by the customer. With a deep understanding of LTV, Product Managers can make informed decisions about marketing spend, product development, customer retention strategies, and more.",
"links": []
},
"kVd36zDyjLvVG2Nw9gsXi": {
"title": "CAC (Customer Acquisition Cost)",
"description": "Customer Acquisition Cost (CAC) is a fundamental concept in business and specifically, a significant metric for Product Managers to monitor and optimize. Essentially, CAC is the total cost incurred to acquire a new customer, including all the product, research, marketing, and other associated costs. It provides valuable insight about the efficiency and effectiveness of a company's customer acquisition strategies. In the realm of a Product Manager, understanding and managing CAC is key to ensure that the product's value proposition is being communicated effectively, while also staying profitable and scalable. Hence, a detailed understanding and continuous tracking of CAC is an integral part of effective product management.",
"links": []
},
"MYKZIDHSIXr-69BdtFcNR": {
"title": "North Star Metric",
"description": "The North Star Metric is a pivotal element of product management, providing a guiding light for strategic decision-making. This critical value speaks to the core value that a product delivers its customers. As a product manager, identifying, tracking, and improving the North Star Metric is essential to cultivating product growth and enhancing user satisfaction. This metric shines a light on the products mission, assisting product managers in sharpening the focus on what truly matters for the product's success and lasting impact on users.",
"links": []
},
"eO7glnL0HixQYnoF3uvSW": {
"title": "Data-Driven Decision Making",
"description": "As a product manager, having a good grip on data-driven decision making is a pivotal skill to have. It is a process where decisions are made based on actual data rather than intuitions or observations. This process helps product managers evaluate where the product stands in terms of its effectiveness, performance, and reception in the market. Decisions are then made about the product's future based on this analysis - whether it needs improvements, new features, or a different marketing approach. By focusing on data-driven decision making, product managers can make choices that are more likely to bring in positive results and reduce risks associated with intuition-based decision making.",
"links": []
},
"V3yGVN7z_ihLkScO0_92_": {
"title": "A/B Testing",
"description": "The role of a Product Manager often requires making informed decisions to improve product performance and user experience. This is where A/B Testing, a vital aspect of data-driven decision making, comes into play. A/B Testing, also known as split testing, involves comparing two versions of a webpage, ad, or other product experience to see which performs better. It is a methodical approach that enables product managers to determine the impact of changes and make data-driven decisions. It helps reduce the inherent uncertainty in introducing new features or changes and is a key tool in the product manager's arsenal.",
"links": []
},
"APdoU9kzHEqpUgKGKfyp9": {
"title": "Cohort Analysis",
"description": "Cohort Analysis is a valuable tool in a Product manager's data-driven decision-making toolkit. This specific kind of analysis divides a product's user base into related groups. It's not strictly about the demographics, but rather the shared characteristics within a specific timeframe. These groups, or cohorts, could be determined by the users' behaviors, experiences, or traits. Understanding these cohorts and their behaviors proves to be crucial in identifying trends, predicting user actions, and innovating ways to improve overall user experience and product utility.",
"links": []
},
"YsDt5I0prvYeaFfn4_lpx": {
"title": "Predictive Analytics",
"description": "In today's fast-paced digital business landscape, it's imperative for a Product Manager to leverage data for driving effective decision-making. This is where Predictive Analytics comes into play. Predictive Analytics employs statistical algorithms and machine learning techniques to determine the likelihood of future outcomes based on historical data. For Product Managers, this powerful tool allows them to anticipate customer behavior and market trends, inform planning and prioritization, and ultimately enhance their product's value proposition. This proactive approach can markedly reduce risks while maximizing opportunities for enterprise growth and customer satisfaction.",
"links": []
},
"kirIe5QsxruRUbWGfQtbD": {
"title": "Feedback Loops",
"description": "Feedback loops play a vital role in product management. As a product manager, instituting a feedback loop in your workflow is essential in enhancing product quality, user satisfaction, and team performance. This iterative, systematic process involves various stakeholders, including customers, team members, to deliver their insights about the product or service. These insights are critical as they can significantly influence decision-making, product strategy, and future development. Understanding and implementing feedback loops lead to continuous improvement and guide a product manager in successfully driving the product towards its ultimate vision.",
"links": []
},
"5-4MXlRjH-4PlF2giZpVL": {
"title": "Communication Skills",
"description": "Communication Skills are crucial for a product manager as they act as the bridge between different stakeholders such as development, design, marketing, and executives. Effective communication enables a product manager to share their visions, align the team towards common goals, and articulate stakeholder needs clearly. These skills help to prevent misunderstandings and conflicts, ensuring the successful implementation of product strategies. Without efficient communication skills, a product manager will struggle to convey their ideas, which can ultimately lead to ineffective strategies and unsuccessful products.",
"links": []
},
"O5Ipa7PHeXUNEjQ6Mla7Y": {
"title": "Interpersonal",
"description": "Interpersonal skills are a quintessential requirement for a Product Manager. They involve the ability to effectively communicate, facilitate, empathize, and interact with different stakeholders. As a Product Manager, one has to frequently collaborate with diverse teams such as design, marketing, sales, and development. Hence, having robust interpersonal skills are critical for maintaining healthy relationships, overcoming hurdles, and driving successful product outcomes. They aid the Product Manager in gaining buy-in for strategic decisions, resolving conflicts, and leading the team towards a common vision.",
"links": []
},
"LPiCtvd00hWsCAefTIUxy": {
"title": "Business",
"description": "As a Product Manager, having a comprehensive understanding of the business is essential. Business knowledge can help the Product Manager to make better decisions regarding the product direction, market needs, and resource allocation. It encompasses having a clear understanding of the company's business model, financials, competitive environment, and corporate strategy. Furthermore, a business-oriented Product Manager can effectively balance the conflicting needs of the customers, the business, and the product, driving maximum value. This topic, `Business for Product Managers`, emphasizes the importance of business acumen for Product Managers.",
"links": []
},
"XGnJUxZu7_WnPkklvROon": {
"title": "Communication Techniques",
"description": "Product management is not just about understanding and planning products or services. As a Product Manager, mastering effective communication techniques is key to your success. This involves not only sharing your own ideas, but also actively listening, facilitating discussion, confronting issues, and influencing stakeholders. Mastering these skills helps to rally your team around a shared vision, keep stakeholders informed, and ensure that everyone is working toward the same objectives. This includes communication with diverse audiences such as development teams, designers, sales, marketing and alike. With effective communication techniques, a Product Manager can streamline collaboration, speed up decision-making, and avoid misunderstandings.",
"links": []
},
"iWCcvEEllfACoaXm5Ul5D": {
"title": "Difficult Conversations",
"description": "In the world of product management, navigating difficult conversations is an unavoidable part of the job. Product Managers often find themselves in challenging discussions with stakeholder, developers, sales teams, and even customers. These conversations can revolve around product expectations, timelines, resource allocation, and a multitude of other issues. Effectively handling these difficult talks while maintaining strong relationships is vital for a successful product journey. That's why, mastering the art of managing and resolving these talks in an efficient, respectful, and productive manner is an essential skill for every Product Manager.",
"links": []
},
"FwYc1942Z0_KYih0BQ1CL": {
"title": "Active Listening",
"description": "Active Listening is a fundamental skill for a Product Manager. It involves giving full attention to the speaker and showing interest in the information provided. This encompasses comprehending, retaining, and effectively responding to the speaker. For a Product Manager, Active Listening is crucial for understanding the requirements of customers, stakeholders, and team members. It enables a comprehensive understanding of user needs and promotes inclusive decision-making while formulating product strategies.",
"links": []
},
"sQvkXvluZHgTIGS7W3Fj4": {
"title": "Conflict Resolution",
"description": "As a critical element in the Product Manager's skillset, conflict resolution revolves around mediating disagreements and facilitating solutions that benefit all parties involved. Product Managers often need to balance varying views, conflicting priorities, and different personality types within cross-functional teams. As such, the ability to navigate and resolve conflicts effectively becomes essential for the progress of the product and the harmony of the work environment. Key elements of conflict resolution for Product Managers may include active listening, effective communication, problem-solving strategies and negotiation techniques.",
"links": []
},
"D5GXDeApGwjmLG2-KF2pr": {
"title": "Alignment & Buy-In",
"description": "Alignment and Buy-In is a crucial aspect of product management. As a Product Manager, one needs to ensure that the team is aligned with the product vision and roadmap. This involves gaining buy-in from key stakeholders, including those at higher levels (executives, CEOs) and those working on the product directly (designers, developers, etc). An effective Product Manager is skilled at presenting compelling arguments to win the support of different stakeholders, fostering a shared understanding of objectives, and ensuring that everyone is onboard and enthusiastic about the product's success. This dynamic involves communication, leadership, negotiation, and persuasion skills.",
"links": []
},
"XxeB3t8MjTbUzZj2hdKF3": {
"title": "Showing Impact",
"description": "As a Product Manager, one of the essential skills to possess is the ability to demonstrate the impact of the product in the market or to the organization. It involves quantifying and presenting the value and success created by the product through metrics such as sales, customer adoption, or even impact on brand, customer satisfaction, or social responsibility. Showing impact is not just about reporting success, it's also a valuable tool for securing resources, influencing stakeholders, shaping strategy, and fostering a performance-driven culture within the team and company. To effectively show impact, a Product Manager needs a deep understanding of the business model, the market, and the key performance indicators that actually matter to the organization and stakeholders.",
"links": []
},
"X-2mVBut_pn4o_fEGVrib": {
"title": "Managing Stakeholders",
"description": "As a Product Manager, managing stakeholders is one of the most essential and challenging aspects of your role. Stakeholders include anyone who has an interest in the product, its development, and its success. This could range from executive leadership and different teams within the company to clients, users, and even investors. Successful stakeholder management involves understanding the needs and concerns of stakeholders and effectively communicating with them, navigating conflicting interests, and managing expectations. It requires a balanced approach that ensures the interests of all stakeholders align with the overall product strategy and objectives.",
"links": []
},
"Cryuk9pCI3y78HDGv6TMK": {
"title": "Identifying Stakeholders",
"description": "As a Product Manager, it's crucial to identify key stakeholders who have a direct or indirect influence on the product's success. These stakeholders can include anyone from customers, team members, organizational leadership, to external business partners. Identifying stakeholders at an early stage can assist in getting their support, understanding their expectations, and mitigating any potential risks they may pose to the product life cycle. It's not only understanding who your stakeholders are, but also their interests, power dynamics, and their potential influence on the products success. This process is an essential foundation for effective stakeholder management and ensures alignment across the organization in terms of product vision and objectives.",
"links": []
},
"bHA-9gQhvjh40Cy8jbI9u": {
"title": "Stakeholder Mapping",
"description": "Stakeholder mapping is a crucial aspect of product management. It is the process by which a product manager identifies and categorizes the individuals or groups that have a vested interest in the product's development and its overall success. These stakeholders could be internal, such as team members, or external like clients, end-users or strategic partners, each bringing in their unique perspectives, expectations, and requirements. A well-conducted stakeholder mapping helps product managers better understand the influence and impact of each stakeholder, manage their expectations, and effectively communicate throughout the product life cycle.",
"links": []
},
"rvqZRvbt73BY5X98dA3Sq": {
"title": "Stakeholder Engagement",
"description": "Stakeholder engagement is an essential function for a product manager. It involves the identification, communication with, and management of individuals or groups who have an interest or are affected by the products being developed or managed. This could range from internal teams like design, development, and marketing to external entities like customers, partners, and regulators. A product manager must effectively engage stakeholders to understand their needs and concerns, gather valuable inputs, align the product vision, and eventually drive product success.",
"links": []
},
"QGAb7dQM052XPA0Ll-R1P": {
"title": "Remote Stakeholders",
"description": "The role of a Product Manager involves not only managing a product but also interacting and coordinating with diverse stakeholders. Working with remote stakeholders is a common scenario that Product Managers encounter in their work life. Stakeholders could range from engineers based in different locations, sales teams distributed globally, or even customers who could be states or continents away. The nuances of managing these remote stakeholders, understanding their requirements and expectations, communicating effectively despite time zone differences, and creating a synergy towards a common goal are crucial elements in the role of a Product Manager. Getting it right often results in well-executed projects and stellar products.",
"links": []
},
"XG-QBb--HXL-1r-jInYDN": {
"title": "Roadmapping Tools",
"description": "Every exceptional product manager understands the crucial role that product roadmaps play in the successful coordination and execution of product strategy. Roadmapping tools often come into play here, as they help simplify complex processes, while enhancing communication and transparency among teams. These tools deliver visually compelling, data-supported product maps, offering an easy-to-understand view of the prioritized features, projected timelines, strategic alignment, and progress tracking. By utilizing such applications, product managers are not only able to manage and communicate their strategy effectively, but also prioritize requests, track progress, and adjust plans based on insights.",
"links": []
},
"Yjxk2gUi5jQONeLzBaeJz": {
"title": "Project Management Tools",
"description": "As a Product Manager, the utilization of project management tools is vital to effectively oversee and organize various products within a project lifecycle. These tools aid in planning, delegation, tracking, and reporting of tasks, all of which are crucial in managing a product. They bring structure to large scale projects by providing a visual overview of progress, aligning team members, and ensuring timely completion. Whether it's cultivating roadmaps or highlighting dependencies, Project Management tools serve as an indispensable asset for Product Managers.",
"links": []
},
"lJ_7-oYaFWST8aBd5lIgM": {
"title": "Analytics Tools",
"description": "Product Managers, being key decision-makers in the product life cycle, need to have a deep understanding of their products performance. For this, they rely heavily on data. This is where Analytics Tools come into play. These tools provide critical insights into user behavior, product usage, and market trends, which help product managers to make data-driven decisions. They range from user analytics tools to business intelligence platforms, each providing different perspectives of data. Mastering these tools is a fundamental aspect of becoming an effective product manager.",
"links": []
},
"IAta7OX7pAxUzkFdHibY9": {
"title": "Communication Tools",
"description": "As a Product Manager, communication is a vital tool to effectively manage and execute projects. Product Managers usually deal with complex challenges, multiple stakeholder groups, and shifting priorities, thus the effective use of communication tools is crucial. Communication tools, such as emails, meetings, messaging apps, video conferencing tools, project management apps, and more, are used to ensure everyone on the team remains aligned on key objectives, deadlines, and deliverables. By leveraging these tools, a Product Manager can provide clear instructions, set expectations, collect feedback, and ensure transparency and collaboration among team members.",
"links": []
},
"70yvt_oKcadnjZgg8FtAh": {
"title": "Product Board",
"description": "Product Board is a strategic tool that serves as a backbone in the realm of product management. Known for its compelling visual environment, it is widely used to cater decision-making processes and hare insights about the product roadmap. It acts as a guidance system for product managers to prioritize the high-impact assignments and deliver meticulously crafted, user-centric products. Able to integrate with other popular platforms, Product Board offers a seamless user experience with its powerful features to bridge the gap between strategy, execution, and team alignment. Excellent facilitator for feedback management, user segmentation, and iterative planning, it is a must-have tool for every agile product manager.",
"links": []
},
"dr5BLjsZXk50R7vp3cMsu": {
"title": "Aha",
"description": "Aha, as a roadmapping tool, is an indispensable toolset in the arsenal of a Product Manager. It's a comprehensive product management suite that focuses on strategy and roadmapping. Its ability to build visual roadmaps, prioritize features, capture ideas, and define requirements makes it one of the most widely used product management tools. As a product manager, mastering Aha can enable you to envision and articulate strategic product plans while staying aligned with your company's goals.",
"links": []
},
"dk1YzX84UUe_es1x-dfp2": {
"title": "Notion",
"description": "As a Product Manager, Notion is an indispensable tool in your arsenal for creating roadmaps. This powerful platform is a combination of note-taking, database, project management, and much more. With Notion, you can track the progress of various product initiatives, communicate status updates to stakeholders, and clearly lay out the strategic path ahead. With its flexible, customizable interface and integrations with other useful tools, it is perfectly suited towards collating and synthesizing large amounts of information, which is central to effective product management. The visual nature of Notion's interface makes it particularly well suited for creating compelling, easy-to-understand roadmaps.",
"links": []
},
"EPQ4-cKr-RqJ457XniP6w": {
"title": "Jira",
"description": "The role of a product manager often calls for effective project management tools, and one of the most prominent among them is Jira. Developed by Atlassian, Jira is a versatile platform that allows product managers to plan, track, and release top-class software. It's cherished for its user-friendly interface and capabilities to create user stories, plan sprints, and distribute tasks across teams. As a product manager, understanding and utilizing Jira enhances the tracking of issues and workflows, aiding in efficient product development and team collaboration. Moreover, Jira's extensive features and customization options make it an indispensable tool in a product manager's arsenal.",
"links": []
},
"PIIGfDN6t8H6tXZuKuE04": {
"title": "Linear",
"description": "Linear is a powerful project management tool designed to help teams improve their productivity and efficiency. It helps organize, prioritize, and track tasks in one streamlined platform. For the role of a Product Manager, Linear is an essential tool that aids in managing and monitoring progress, evaluating performance, and ensuring the roadmap aligns with the strategic goals of the product. Product managers may utilize the functionalities of Linear to communicate with various stakeholders, delegate tasks, and manage product backlogs effectively. Its clean and user-friendly interface makes it easy for Product Managers to streamline their workflow and focus more on building high-quality products.",
"links": []
},
"SD98_s1ET_j2eIIKmcKRc": {
"title": "Trello",
"description": "Product management entails numerous responsibilities, among which is managing several tasks, teams and deadlines to make sure that products are developed and launched on time. To effectively manage these responsibilities, Product Managers often require robust Project Management Tools. One such tool is \"Trello\".\n\nTrello is an easy-to-use, highly visual tool that aids in organizing projects into boards. It provides an overview of what's being worked on, who is working on what, and how far they've proceeded with their tasks. For Product Managers, Trello can be a substantial asset in managing tasks, collaborating effectively with team members, and ensuring transparency in progress tracking. Overall, Trello can increase productivity and simplify the intricate nature of product management.",
"links": []
},
"Z5oorppEJ0ydvwMXSlk1J": {
"title": "Amplitude",
"description": "Amplitude is an exceptional analytical tool that offers in-depth insights about user behavior, allowing product managers to optimize their products based on real-time data. Equipped with features like funnel analysis, retention analysis, and user segmentation, Amplitude provides an essential understanding of how users interact with products. For product managers, understanding these interactions is crucial in decision-making, prioritizing product improvements, and enhancing the overall user experience. Thus, Amplitude serves as a valuable resource for Product Managers looking to drive product growth and maximize user engagement.",
"links": []
},
"xas-t2sAKmJNfb0-Zcpwy": {
"title": "Heap",
"description": "Heap Analytics is a robust solution for product managers looking to gain actionable insights into their product's usage and performance. It's a powerful analytics tool that allows the automatic capturing of every user interaction across the entire customer journey. From clicks and taps to form submissions and transactions, Heap captures all data without needing any pre-defined tracking set-up. As a Product Manager, understanding the value that Heap brings in effortlessly tracking user engagement and offering data-driven insights is integral for refining product decisions and driving the overall product strategy.",
"links": []
},
"y8Ys_WfPXLVfJngOLryGR": {
"title": "Looker",
"description": "Looker is a modern, cutting-edge data platform that provides robust tools for business analytics. As a Product Manager, understanding and utilizing Looker becomes significant since it enables data-driven decision-making. This tool facilitates comprehensive data exploration, interactive dashboard creation, and sharable reporting, which helps in managing product strategies effectively. Familiarity with Looker's capabilities thus empowers a product manager to explore markets, understand user behaviors, and ultimately define successful products.",
"links": []
},
"UdOJDzkDP_R3E5f_IltYh": {
"title": "Slack",
"description": "As a product manager, effective communication with different stakeholders is a crucial task. Slack emerges as an essential platform for this role. It is a cloud-based team collaboration tool that facilitates quick and efficient communication among team members, from developers and marketing professionals to various stakeholders. This platform also integrates with a variety of other tools that product managers use regularly, thereby acting as an operational hub for project management. Product managers can create channels on Slack for different projects or topics to ensure organized and focused conversations. It also supports direct messaging and file sharing which enhances day-to-day communication and coordination.",
"links": []
},
"z72akk5E5XjEuLraS9Gug": {
"title": "Teams",
"description": "In the landscape of product management, communication plays an extraordinary role and Microsoft Teams is one of the most pivotal communication tools in this aspect. A product manager often engages with diverse teams - engineering, design, marketing, sales, and more, ensuring coherence and alignment towards the product vision. The Microsoft Teams platform boosts this communication process, providing a centralized space for conversations, content, meetings, and tasks. Its features like chat, video meetings, file sharing, and integration with other tools significantly streamline collaboration and decision-making, which are integral to a product manager's role.",
"links": []
},
"e6gO1twjter9xWm14g9S9": {
"title": "Discord",
"description": "Discord is a widely used communication tool that is beginning to make its mark in the field of product management. It offers a secure and user-friendly platform with features that are quintessential for a Product Manager. With its rich text chats, voice channels, and ability to create multiple channels with different access levels, it ensures seamless communication within cross-functional teams. For Product Managers, Discord can be an essential collaboration tool that aids in the exchange of innovative ideas, constructive feedback, and bug reporting, thereby allowing them to design, plan, and execute with efficiency.",
"links": []
},
"oO-ujKApmpoQdkPEkOQG7": {
"title": "Identifying Risks",
"description": "Risk identification is a critical component in the role of a Product Manager. It involves determining potential threats that could negatively affect the success of a product. These risks could exist in various circumstances, including development, marketing, sales, or even post-launch.\n\nA Product Manager must be vigilant in recognizing these potential hazards as early as possible in the product lifecycle. This not only involves identifying the risks, but also analyzing and prioritizing them for further action. By doing so, the Product Manager aids in creating risk mitigation strategies, contributing to the overall product strategy and ensuring the success of the product in the market.",
"links": []
},
"0zRGIArMUe9xVDSKfnoHZ": {
"title": "Risk Identification Techniques",
"description": "Risk identification techniques are critical tools used by Product Managers to anticipate potential obstacles and take preventative measures in product development lifecycle. They involve various methods to identify possible risks that could negatively impact the realization of the products goals. Early detection of risks allows for proper risk management and mitigation, thus ensuring a smooth and successful product launch. These techniques can range from brainstorming sessions and scenario analysis to risk checklists and assessment workshops. Understanding these methodologies is vital for any Product Manager aiming for effective product management and successful project outcomes.",
"links": []
},
"WBnLicFo9p2zm57pyXciI": {
"title": "Risk Register",
"description": "The Risk Register is an important tool for Product Managers as it systematically identifies and manages potential issues that could negatively impact the outcome of a product's development. It consists of a log of potential risks, quantifying their impact, likelihood, and mitigation strategies. This essential document allows Product Managers to prioritize strategies, allocate resources more efficiently, and develop contingency plans. In essence, a Risk Register helps Product Managers to better anticipate, assess, and prepare for the potential bumps on the road to successful product delivery. It encourages a proactive rather than reactive approach to managing risk, contributing to overall product success.",
"links": []
},
"0uRTNYMwTU9JzvIWSvDSm": {
"title": "Risk Assessment",
"description": "Risk Assessment is an essential tool in the lifecycle of product management. It involves the identification and analysis of potential risks that could negatively impact key business initiatives or critical projects. As a Product Manager, understanding and managing these risks can not only prevent potential issues but also prepare the team with strategic solutions to counteract them. Implementing effective risk assessment can result in improved product quality, reduced costs, and increased stakeholder satisfaction. It is a dynamic process that should be revisited throughout the product development process to minimize threats and maximize opportunities.",
"links": []
},
"KXadmIkKJM0XLV4Qz0Stj": {
"title": "Qualitative Risk Assessment",
"description": "Qualitative Risk Assessment is a crucial aspect of a Product Manager's role. It involves evaluating potential risks according to their likelihood and potential impact, rather than using exact numerical measurements. This subjective assessment aids in prioritizing risks that could impact product development and helps implement necessary mitigation strategies. Product Managers need a profound understanding of qualitative risk assessment to successfully navigate the complexities of product management, ensuring the product's success while considering all possible risk factors.",
"links": []
},
"g0sBLcG8kEfeHHtsJSb4i": {
"title": "Quantitative Risk Assessment",
"description": "Product Managers are often required to make important decisions which can significantly affect the success of a product. One of the key decision-making tools they use is Quantitative Risk Assessment (QRA). QRA is a formal and systematic approach to estimating the probability and consequences of potential product risks. It involves the use of objective and empirical data to calculate the likelihood of a risk occurring and the magnitude of its impact. This methodology provides Product Managers with a data-driven framework to identify, assess, and prioritize risks, enabling them to make informed product decisions and to develop effective risk mitigation strategies.",
"links": []
},
"A-srndVB0olGq0qkApnwi": {
"title": "Risk Mitigation",
"description": "Risk Mitigation plays an essential role in the realm of Product Management. It's the responsibility of a Product Manager to anticipate potential pitfalls and create strategies to minimize their impact on the product's development and lifecycle. It requires a deep understanding of the project's scope, stakeholders' expectations, market trends and potential technical constraints. By intimately knowing the product and the environment in which it operates, a product manager can effectively strategize against any risk and ensure that the product stays on its intended course towards success.",
"links": []
},
"4gV80Qrd08_Y8oZB_hahV": {
"title": "Mitigation Strategies",
"description": "For a Product Manager, understanding and implementing mitigation strategies is crucial in the development and lifecyle of a product. These strategies help to prevent, manage, and respond to risks that may arise during the product's development cycle. Acquiring the ability to identify potential risks and planning appropriate countermeasures is a fundamental skill required by Product Managers to ensure the successful launch and sustainability of a product in the market. The process often includes stages such as risk identification, risk assessment, and the development and execution of risk control strategies.",
"links": []
},
"ybq-zRDLvtTTl8X8GnRNf": {
"title": "Contingency Planning",
"description": "Contingency planning constitutes an integral part of risk mitigation strategies for any Product Manager. It involves identifying potential risks and developing plans to prevent, respond to, or minimize the impact of those risks on the product development process. For a Product Manager, contingency planning entails envisioning various scenarios that could lead to setbacks in the delivery of the product and devising alternate plans. This acts as a safeguard to ensure smooth operations and delivery of the product on time, catering to user expectations. It provides a roadmap to manage unforeseen problems and reduces potential losses by maintaining the consistency and quality of the product.",
"links": []
},
"zJGg20NPStLPkeL5LKoGm": {
"title": "Monitoring and Controlling Risks",
"description": "In the realm of product management, monitoring and controlling risks is a critical responsibility. This process entails identifying potential areas of risks in product development and implementing strategies to mitigate them. Consequently, it involves continuous vigilance to ensure that potential threats do not escalate into problems that could jeopardize the success of the product. Product managers are often tasked with predicting likely risks, developing contingency plans and ensuring contractual compliance to keep the product development process smooth and within specified constraints. Their role hence extends beyond mere product vision and development, into a vital aspect of business strategy and risk management.",
"links": []
},
"S2w72SRx-9QvRO7RNBlKZ": {
"title": "Risk Monitoring Tools",
"description": "As a Product Manager, one of the key responsibilities is understanding and managing risks associated with the product. Risk Monitoring Tools play an integral role in this process. These tools are specialized software designed to identify, assess, track, and mitigate risks in product development and releases. They provide data-driven insights on potential hazards, allowing product managers to make informed decisions and implement strategies to prevent or minimize risk impacts. These tools can help in tracking the progress of risk resolution, visualize risk prioritization, and alert the product managers about the upcoming risks in time.",
"links": []
},
"ao2uUq_UZWtB-LRKH1x40": {
"title": "Risk Audits",
"description": "Risk audits form an integral part of the product management process. As a Product Manager, conducting risk audits involves comprehensive assessment of the various potential risks associated with the development and launch of a product. These risks could range from functional issues, design flaws, marketing challenges, to various other uncertainties that may potentially impact the success of a product. Risk audits aim to identify these threats ahead of time, mitigate them effectively, and devise strategies to turn these risks into opportunities. This rigorous process helps a Product Manager to ensure the smooth continuity of production, enabling robust, timely, and financial-efficient deployments of products.",
"links": []
},
"4i_kX9oZunMBFYevu7lyi": {
"title": "Scaling Products",
"description": "Scaling products is a crucial responsibility of a Product Manager. It involves optimizing a product's infrastructure and processes to cater to an increasing number of users or requests, without compromising on its efficiency or functionality. This process not only involves improving actual product features but also business strategies such as go-to-market plans, revenue models, and customer relations. A successful Product Manager has a specific scale-up strategy in place, effectively enabling product growth while managing potential risks. Being able to scale products successfully is a hallmark of a successful product, crucial to the company's long-term sustainability and profitability.",
"links": []
},
"4-w4BpDh4dpmnU9qfjqbU": {
"title": "Growth Strategies",
"description": "For a Product Manager, successful growth strategies are key to the scalability and survival of a product in the long run. They are charged with defining the direction and vision of the product, which includes implementing robust growth strategies. These strategies could range from market penetration, market development, product development to diversification. These strategic decisions directly affect the product's market share, competitiveness, and profitability. A well-versed Product Manager should understand these strategies and how to effectively deploy them based on the product's lifecycle, customer insights, competitive analysis, and market conditions. It is critical for the product manager to be in sync with cross-functional teams including Sales, Marketing, Engineering, Design to implement these growth initiatives effectively and move the product in the intended direction.",
"links": []
},
"lIdogd1DAzCo1ct7cdvYD": {
"title": "Internationalization",
"description": "Internationalization in product management refers to designing a product in a way that can easily be adapted for various international markets without requiring significant changes. This includes not just language translation, but also dealing with cultural differences, local regulations, and multiple time zones. A Product Manager must consider internationalization to ensure its product appeals to different geographical locations thereby facilitating a wider user base, increased market share, and, potentially, profitability.",
"links": []
},
"EEi56Ww04QbuF2I7B7xW8": {
"title": "Platform Thinking",
"description": "The role of a Product Manager extends beyond managing individual products. It often involves taking a broader outlook known as Platform Thinking. In the context of product management and particularly in scaling products, Platform Thinking involves considering the product not merely as a standalone offering but as a part of a larger ecosystem. This ecosystem is constituted by other products, services, users, developers, and other actors. A product manager, thus, needs to strategically design, develop, and scale the product in a way that it seamlessly fits into and contributes to the ecosystem, while also gaining valuable inputs and leveraging opportunities originating from the same platform.",
"links": []
},
"BGtxI9CHtJfhRMdUEIfWa": {
"title": "Portfolio Management",
"description": "Portfolio Management is one of the most critical responsibilities of a Product Manager. It involves the strategic decision-making process aimed at aligning organizational strategy with the efforts of teams tasked with planning, creating, and delivering products. Portfolio management allows product managers to assess how potential products or a set of products can deliver the most value to the company and its customers. Balancing benefits, costs, risks, and resources, while maintaining a keen eye on market trends and competition forms the core of portfolio management for a company. In essence, a Product Manager has to curate the product portfolio in a way that ensures long-term success and growth of a business.",
"links": []
},
"9y_I41kJhkmyBJjiTw8Xd": {
"title": "Advanced Analysis",
"description": "The field of Advanced Analysis plays a pivotal role in the domain of Product Management. As the driving force behind decision-making, it incorporates sophisticated methods and tools to draw meaning from data, enabling Product Managers to extract actionable insights. This subject involves applications such as Predictive Modeling, Statistical Analysis, and Machine Learning algorithms to yield a deep understanding of user behavior, market trends, product performance and forecast potential outcomes. With the power of advanced analysis, Product Managers can create data-driven strategies, optimize the user experience, and accelerate overall product growth.",
"links": []
},
"h5N51_YgjaTHhPUHxkqQR": {
"title": "Predictive Analytics",
"description": "Product Management encompasses a plethora of analytical strategies and one of the essential approaches is Predictive Analytics. As a Product Manager, having insights about future outcomes can make a substantial difference in decision-making. Predictive Analytics is leveraged to analyze historical and current data and make predictions about unseen or future events. This can help in efficient planning, risk management, and strategic decision making. It's a powerful tool for product managers that enables them to predict trends, understand user behavior, forecast demand, and ultimately, to build better products.",
"links": []
},
"rzrxYqFENQ3d0WpZv9-0Q": {
"title": "ML in Product Mgmt.",
"description": "Machine Learning (ML) is revolutionizing various industries and the field of product management is no exception. In a dynamic digital era, product managers are leveraging machine learning techniques to drive product innovation, better understand customer behavior, and forecast trends. With ML, data can be processed at an immense speed allowing product managers to make data-driven decisions and anticipate the future needs of the market, thus creating products that resonate with target audiences. Its contribution to predictive and behavioral analytics, customer segmentation and pricing strategy makes ML an essential tool for modern-day Product Management.",
"links": []
},
"H7sf23kwv73XjnFCdKHPi": {
"title": "AI in Product Mgmt.",
"description": "Artificial Intelligence (AI) has been increasingly instrumental in shaping the field of product management. As a product manager, it is crucial to comprehend the implications and applicability of AI in managing products effectively. AI can aid in forecasting trends, understanding customer behavior, automating routine tasks and improving decision-making processes. Grasping the full potential of AI can greatly assist product managers in building more effective strategies and in constantly refining their products to meet customer needs. It's a powerful tool that can significantly heighten the intelligence and efficiency of a product environment.",
"links": []
},
"WyKJxhfnbz6jx-Tvg40_j": {
"title": "Leadership and Influence",
"description": "The roles of a Product Manager extend beyond merely guiding product development. Leadership and influence are integral to a Product Manager's toolkit. With a unique, cross-functional role that interacts with various departments such as design, engineering, and marketing, a Product Manager needs to inspire and mobilize teams towards a singular product vision. Moreover, they must effectively communicate, influence decisions, and advocate for their product in the face of potential resistance, all the while fostering a climate that empowers team members and stakeholders. This underscores the necessity for skills in leadership and influence in product management, underlining its significance beyond technical knowledge and tactical expertise.",
"links": []
},
"MP-jZtofXCufnvtSldxqU": {
"title": "Building and Leading Teams",
"description": "As a Product Manager, building and leading teams are crucial aspects of one's role. This involves assembling a competent and diverse team and establishing a shared vision and goals. Once the team has been formed, its up to the Product Manager to guide, motivate, and manage the team to drive the grand vision into reality. They need to exhibit strong leadership qualities, foster a healthy and collaborative work environment, recognize individual contributions and ensure that every member feels valued for their work. This involves not just managing but also mentoring and empowering the team to take ownership and deliver their best work. This process of team building and leadership directly influences the successful execution of a product's lifecycle.",
"links": []
},
"CMge123Tm9DrZ31LvipLD": {
"title": "Influencing without Authority",
"description": "As a Product Manager, the ability to influence without authority is a critical skill set. This is often because Product Managers do not necessarily have direct authority over the team yet are expected to guide product strategies and make vital decisions. Influencing without authority involves convincing others to follow your ideas or approach, and can often include multidirectional influence, not just downward but upward and sideways too. A Product Manager navigates between different stakeholders like cross-functional partnerships, sales, marketing, engineering, design, etc., with varying levels of authority. Mastering the art of Influencing without Authority allows Product Managers to motivate and sway these differing parties to work collectively towards a shared vision or goal, thereby driving the product's success.",
"links": []
},
"gyNOziqf1VsfI2j-FaNZ_": {
"title": "Emotional Intelligence",
"description": "Emotional Intelligence (EI) is vital in every aspect of leadership, and in the realm of product management, it is no less significant. A Product Manager with high emotional intelligence can navigate complex work relationships, make better decisions, maintain morale in their team, and efficiently drive a product from conception to completion. In essence, emotional intelligence shapes a successful Product Manager and contributes to the effectiveness of their leadership. With the ability to identify and handle not only their own emotions, but also those of their team members, Product Managers can create a productive, creative, and resilient working environment.",
"links": []
},
"9vy4uIoykk2zSSyIok4_S": {
"title": "Introduction",
"description": "The role of a Product Manager is arguably one of the most important in any tech company. Responsible for guiding the success of a product and leading the cross-functional team that is responsible for improving it, a Product Manager is essentially the chief advocate for a product's feature set and overall business value. In fact, a Product Manager often analyzes market and competitive conditions and lays out a product vision that is differentiated and delivers unique value based on customer demands. The role of a Product Manager spans many activities from strategic to tactical and provides important cross-functional leadership — most notably between engineering, marketing, sales, and support teams. As the product's key strategist and advocate, a Product Manager communicates the voice of the customer and strives to maximize the value of their product, for both users and the company.",
"links": []
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,782 @@
{
"rQArtuVKGVgLn_fw9yO3b": {
"title": "Server-Side Development",
"description": "The term \"server-side\" refers to operations that are performed by the server in a client-server relationship in a computer network. In games, the server-side is responsible for the logic and rules of the game, data persistence, security, and synchronization of the game state among all connected clients. It essentially handles all processing that isn't done on the client-side. Code run on the server-side can be written in various programming languages, but it's often in PHP, Ruby, Python, .NET, Java, or JavaScript (Node.js). Knowing server-side programming is critical for any game developer to create maintainable, scalable, and secure online games.",
"links": []
},
"mUCidjOsVLMAVDf2jmV5F": {
"title": "TCP",
"description": "TCP, an acronym for Transmission Control Protocol, is a fundamental protocol in the suite of internet protocols. It is a connection-oriented, reliable, byte stream service that sits at the transport layer of the OSI Model. In simpler terms, TCP enables two hosts to establish a connection and exchange data. During this communication, TCP ensures that data is not lost or received out of order by providing error checking mechanisms and a system for retransmission of lost data. Furthermore, to ensure efficient use of network resources, TCP implements flow control, congestion control and provides a means for hosts to dynamically adjust the throughput of the connection.",
"links": []
},
"XxBl-zO7CF6DpOZ2bMDxJ": {
"title": "Checksum",
"description": "A **checksum** in TCP (Transmission Control Protocol) is a 16-bit field in the TCP header used to perform error checks on the segments. TCP stack computes the checksum value for the data transmitted and sends it along with the data to the receiving system. The receiving system re-computes the checksum and compares it with the value sent along with the data. If both the computed values match, the data is assumed to be free from transmission errors. However, if the computed values don't match, TCP will detect a possible change in received data, and the receiver will request for the re-transmission of the lost or corrupted data packets. Please note that while the checksum operation helps to ensure data integrity, it is not entirely foolproof as it might not detect all possible errors, particularly those that involve multiple bit changes.",
"links": []
},
"zTCmPUp9j5P1wpGgiboMa": {
"title": "Segment Structure",
"description": "TCP (Transmission Control Protocol) uses a method called \"segmentation\" to manage data transmission. In this approach, TCP divides a stream of data into smaller parts, known as \"segments\". Each of these segments is then independently sent over the internet. A basic TCP segment consists of a header and the data section. The header contains various fields such as source port, destination port, sequence number, acknowledgment number, data offset, reserved section, control bit, window, checksum, urgent pointer, and options. The rest of the segment is occupied by the data transferred by TCP. Understanding the structure of these segments is crucial for understanding how TCP, and thereby much of the Internet, operates.",
"links": []
},
"5sI3RHaLudq4TfpjoYeOp": {
"title": "Connection",
"description": "`Connection` in server-side game development refers to the establishment of a link between the game server and the game client (usually the player's device). This connection can either be persistent or non-persistent, depending on the games requirements. Persistent connections remain active as long as the user is logged in, facilitating real-time communication between the server and the client. Non-persistent connections, on the other hand, are established and discontinued as needed. This element is crucial in multiplayer games where the server handles the synchronization of data among multiple clients, enabling players to interact with each other in the same virtual environment.",
"links": []
},
"LkGI0VpJ3WkpPHkJhJgWk": {
"title": "Resource Usage",
"description": "In server-side game development, **resource usage** broadly refers to how a game uses the server's computational power, memory, storage, and networking capabilities. These resources are crucial in assuring overall game performance and responsiveness. When monitoring resource usage, you typically pay attention to CPU usage, memory utilization, storage capacity, network bandwidth, and database performance. Server-side code must be developed and optimized with these resources in mind, as inefficient code can lead to increased resource usage, potentially causing lag, disconnections, or crashes. Key elements like scalable architecture and serverless technologies are primarily employed to efficiently manage and balance resource usage. Tools and automated solutions are commonly utilized to monitor and manage these resources in real-time, allowing developers to identify potential issues and optimize accordingly.",
"links": []
},
"5bJUcx3v4dpdlIsx7bFvK": {
"title": "Data Transfer",
"description": "Data transfer in server-side game development refers to the movement of data between the server and client or among various components of the server itself. Game data, such as player scores, game states, and updates, are frequently transferred to ensure a consistent and updated gaming environment. Various methods are used for data transfer, including RESTful APIs, websockets, and protocol buffers. The choice of method often depends on factors such as the size and type of data, the target platform, and the specific needs of the game. Remember, efficient and secure data transfer is essential for providing a smooth and engaging gaming experience.",
"links": []
},
"1l5dhQWYPhUSg-cy5pSlK": {
"title": "Max Segment Scaling",
"description": "`Max Segment Scaling (MSS)` is a TCP feature that defines the maximum amount of data that can be received in a single TCP segment. It is specified during the TCP connection establishment phase. The MSS is calculated as the data link layer Maximum Transmission Unit (MTU) minus the size of the TCP and IP headers. The mechanism helps to avoid fragmentation at the IP layer, ensuring the data packets sent are optimal for the network path taken, preventing potential transmission inefficiencies or packet loss issues.",
"links": []
},
"zvBKjceXRSfEe_3MDCEL5": {
"title": "Window Scaling",
"description": "Window Scaling is a mechanism in the Transmission Control Protocol (TCP) that provides support for larger receiver window sizes beyond the maximum limit of 65,535 bytes. This TCP feature is essential when dealing with high latency or high bandwidth networks (common in server-side game development), where frames might be significantly delayed or rapidly transmitted. The window size initially specified in the TCP header is augmented via a scale factor (defined during the connection setup), allowing the receiver window size to be as large as 1 gigabyte. However, keep in mind that Window Scaling can only be employed at the connection setup stage; once the connection is established, the scaling factor cannot be changed.",
"links": []
},
"6KAYNPLEFMp6Jha8FLMAU": {
"title": "Timestamp",
"description": "A `timestamp` in server side game development is essentially a sequence of characters, encoding the date and time at which a certain event occurred. This data is particularly significant when tracking the sequence of certain events, debugging issues, logging, and when performing any sort of data analysis. The timestamp is typically generated by the server and it reflects the server's current date and time. For instance, you might find it in a server log file, indicating when each event occurred, or in a database row, showing when each row was created or last updated. Timestamps are often included in the HTTP headers to let the client know when the resource was last modified.",
"links": []
},
"3OMu3RM-6pMjqY1jAmC2-": {
"title": "Out-of-Band Data",
"description": "\"Out of band\" data, in the context of server-side game development, refers to data that is transmitted separately from the main data stream. This data is used for managing control information rather than actual game data, for instance, data regarding the status of the server, notifications about issues, or urgent commands. Given its importance, it's often designed to bypass any queueing or buffering systems to be delivered straight to the application, hence its name — it is \"out of band\" compared to the normal data transmissions in the game. Please note, out of band data needs proper handling to prevent potential vulnerabilities including security issues.",
"links": []
},
"SPpOO25b7wpajWDIrKi1u": {
"title": "Selective Ack.",
"description": "Selective Acknowledgement (SACK) is a mechanism introduced in TCP to improve its efficiency in handling packet loss in the network. When TCP detects packet loss, it normally retransmits all packets sent after the lost packet, regardless of whether they were received successfully or not. SACK, however, allows the receiver to acknowledge non-consecutive packets, effectively informing the sender exactly which packets were received successfully and which weren't. By using this mechanism, TCP can selectively retransmit only those packets that were lost, saving bandwidth and improving overall performance.",
"links": []
},
"1GML0Jsfdb1Fn-0PNryiQ": {
"title": "Congestion Control",
"description": "",
"links": []
},
"X2KHWgQZDHSVDsTRMUwSj": {
"title": "Reliable Transmission",
"description": "",
"links": []
},
"lDVD-3i64Mk7-KPJrXmFH": {
"title": "Flow Control",
"description": "",
"links": []
},
"vFM311xSa5OqNVove2f6j": {
"title": "Error Detection",
"description": "",
"links": []
},
"w6ysmcsBn9jJ8xMvg7hcD": {
"title": "Max Segment Size",
"description": "",
"links": []
},
"MwLWDlciJOq_0n5S3GoF-": {
"title": "Vulnerability",
"description": "`TCP` (Transmission Control Protocol) is an important protocol known for its reliability in delivering data packets, but it also has several vulnerabilities. The most significant weakness is TCPs susceptibility to a variety of **Denial-of-Service (DoS)** attacks, such as TCP SYN flood attacks, where an attacker sends a succession of SYN requests to a target's system in an attempt to consume server resources to make the system unresponsive. Additionally, sequence prediction can be exploited where an attacker can predict the sequence number of TCP packets to hijack the TCP session. There are also risks of IP spoofing, where an attacker can forge the IP address in the TCP packet header and pretend to be another user in the network. These vulnerabilities may expose sensitive information, disrupt normal functions or allow unauthorized access, especially in the context of a server-side game developer dealing with potentially large volumes of traffic.",
"links": []
},
"TbXJO__4xSnzK1fvvJK86": {
"title": "Denial of Service",
"description": "Denial of Service (DoS) is a malicious attempt to disrupt the regular functioning of a network, service, or server by overwhelming the network or server with a flood of internet traffic. The most common type of DoS attack involves flooding the target with unnecessary requests in an attempt to overload the system. In a Distributed Denial of Service (DDoS) attack, multiple computers are used to carry out the cyber attack. For servers, these attacks can significantly affect the availability and performance of games, causing a poor experience for the users.",
"links": []
},
"ubRiY3jdh3iS3diN482IU": {
"title": "Connection Hijacking",
"description": "`Connection hijacking`, also known as session hijacking, is a serious security threat in the realm of server side game development. It refers to the exploitation of a valid computer session, or more precisely, the intrusion of an unauthorized user into a valid connection between two nodes or endpoints. The attacker intercepts the traffic between these two nodes, thereby 'hijacking' the connection. In game development, this could involve intercepting information between a game server and a client's system. Connection hijacking could expose sensitive data, tamper with the data in transit, or even redirect clients to rogue servers. Hence, implementing necessary security protocols to mitigate such vulnerability is crucial.",
"links": []
},
"ZLTfpRZ0rF-mtd7Z0R2WF": {
"title": "Veto",
"description": "`Veto` is often used in multiplayer games to prevent or allow certain actions during the game. For instance, players can issue commands to block specific actions from their opponents. As a server-side game developer, you must ensure security measures are in place to validate the authenticity of these commands to safeguard against potential vulnerability. A veto vulnerability can occur when malicious players manipulate veto commands to their advantage or disrupt the game, which can lead to an unfair gaming environment or even crash the server. Therefore, your code should always verify who is sending veto commands and check the validity of these commands.",
"links": []
},
"IMyHwnXxJK6oFxzOMLxjS": {
"title": "UDP",
"description": "`UDP`, or User Datagram Protocol, is a communications protocol that sends data over the internet. Unlike TCP (Transmission Control Protocol), it's a connectionless protocol that doesn't ensure data packet delivery. It transmits datagrams an independent, discrete packet of data without first establishing a proper handshake between the sender and the receiver. The sender doesn't wait for an acknowledgment after sending a datagram, and the receiver doesn't send any acknowledgment upon receiving a datagram. This makes UDP faster but less reliable than TCP. UDP is used for time-sensitive transmissions where dropped packets are acceptable, such as in live video streaming, voice over IP (VoIP), and online multiplayer gaming.",
"links": []
},
"Vh81GnOUOZvDOlOyI5PwT": {
"title": "Reliability",
"description": "Reliability refers to how consistently a data packet can be transferred from one system to another over a network. In terms of the User Datagram Protocol (UDP), it has a lack of reliability built into it. This means UDP does not guarantee that your data will reach its destination, it merely sends the packets without any acknowledgement of receipt. Unlike its counterpart, Transmission Control Protocol (TCP), which implements error-checking mechanisms to ensure data integrity and delivery. In summary, if you require high reliability in your server side game development, protocols other than UDP might need to be considered.",
"links": []
},
"wD_HWc9YxPhlkilt585pg": {
"title": "Datagram",
"description": "A **Datagram** is the basic unit of data transfer in network communication using protocols such as User Datagram Protocol (UDP). Each datagram operates independently of each other, meaning they may be received in a different order than they were sent, or they might not be received at all. Therefore, unlike TCP (Transmission Control Protocol), UDP does not guarantee that datagrams are delivered in the same order that they were sent, or even at all - hence known as connectionless protocol. However, it is faster and more efficient for applications that do not require delivery guarantees, such as voice over IP, live video broadcasts, and other real-time applications. Each datagram contains information about the sender, the intended recipient, and the data that it is intended to communicate along with its size and other specifications.",
"links": []
},
"jsNsyrGzegVnjIF2l52vI": {
"title": "Congestion Control",
"description": "`Congestion Control` is a critical feature of TCP, but not inherently a part of UDP. The primary purpose of congestion control is to prevent too much data from being sent into the network such that it can't handle the traffic, leading to packet loss. TCP's congestion control mechanism adjusts the data send rate based on the perceived network congestion. UDP does not provide congestion control by itself. However, this does not mean congestion control can't be implemented if you're using UDP. Developers can implement a custom congestion control mechanism over UDP, but it requires substantial understanding and careful management to achieve this without creating network or server performance issues.",
"links": []
},
"tBOvBpDi3SOKZjAmkxdM0": {
"title": "Checksum",
"description": "The `checksum` is an important element in UDP that ensures the integrity and validation of the data being transmitted. It computes the total sum of all the bytes in a packet and incorporates it as an additional `checksum` field in the UDP header. When the packet arrives at its destination, this process is repeated and compared with the included `checksum`. If a match is observed, the packet is deemed valid. If not, it signifies that an error occurred during transmission possibly due to noise or any third-party interference. In such a case, the packet is simply dropped, as UDP does not initiate any retransmission or error correction procedure. This is why a perfect output cannot be guaranteed with UDP, nor can it determine whether all the recipients are receiving the packets properly.",
"links": []
},
"CCxVnrGDKa1EROXgF_OAm": {
"title": "Packet Structure",
"description": "UDP or User Datagram Protocol is designed to send messages known as datagrams over the network. The packet structure of UDP is relatively simple compared to other protocol types. Each UDP header consists of 4 fields, each of 2 bytes. These 4 fields are namely: Source Port, Destination Port, Length, and Checksum. The `Source Port` is for tracking responses and `Destination Port` is for delivering the datagram on the receiving end. The `Length` specifies the entire datagram size including the header and data while the `Checksum` is used to verify the integrity of the data and header.",
"links": []
},
"RfTcTUjaXyp49FnUf44MK": {
"title": "TCP vs UDP",
"description": "TCP, or Transmission Control Protocol, is a connection-oriented protocol that guarantees delivery of packets to the destination router. It includes error-checking and ensures packets are delivered in the correct order. On the other hand, UDP, or User Datagram Protocol, is a connectionless protocol which doesn't guarantee delivery or ensure correct sequencing of packets. As a result, UDP is considered faster and more efficient for some applications like video streaming or online gaming where speed matters more than accuracy. So, choosing between TCP and UDP really boils down to the specific requirements and priorities of the situation - it's a trade-off between speed and reliability.",
"links": []
},
"MoyBGT9bscUe8vMN4J0bG": {
"title": "Reliable vs Unreliable",
"description": "In the context of network communication, the terms \"reliable\" and \"unreliable\" refer to whether or not data sent across the network is guaranteed to reach its destination. Reliable protocols, such as TCP, ensure that data is delivered from sender to receiver without loss. They do this by establishing a connection, dividing data into packets, sending them one by one, and waiting for acknowledgment of receipt from the receiver. Each sent packet is numbered so if any packet doesn't reach the receiver, it will be identified by the missing sequence number and resent. In this way, reliable protocols ensure data integrity and order.\n\nOn the other hand, unreliable protocols, such as UDP, do not guarantee delivery. They simply transmit data without any checks to ensure it has been received. If a packet is dropped for any reason, it is not resent. These protocols do not establish a connection nor check for successful data transfer. This leads to potential data loss, but it provides a faster and more efficient transmission process which can be desirable in certain situations.",
"links": []
},
"WMdCDmFsytsF2AWQXfzC8": {
"title": "Ordered vs Unordered",
"description": "In the context of TCP vs UDP, \"ordered\" and \"not ordered\" refers to the order in which packets are received. In TCP (Transmission Control Protocol), packets are ordered. This means that the packets of data are sent and received in the same order. For example, if packet 1, packet 2, and packet 3 are sent in that order, they will be delivered and read in that exact order whether, packet 2 takes longer to send or not. On the other hand, UDP (User Datagram Protocol) is not ordered. The packets of data are independent of each other. So, if packet 1, packet 2, and packet 3 are sent in that order, they could be received in a different order such as packet 2, packet 1, then packet 3. This happens because UDP doesn't re-order packets as TCP does.",
"links": []
},
"OYXKtl4A-vaK6yGO6hS6n": {
"title": "Heavy vs Lightweight",
"description": "TCP (Transmission Control Protocol) is often described as a \"heavyweight\" protocol because it provides numerous features such as error-checking, guaranteed delivery, and order-of-arrival of data packets, which makes it more complex to implement in the server. This complexity results in additional server load, making it heavier in terms of processing resources and system requirements.\n\nOn the other hand, UDP (User Datagram Protocol) is known as a \"lightweight\" protocol. It is simpler and faster because it does not offer the same extensive features as TCP. UDP does not guarantee delivery, does not require initial handshake establishment between communicating systems, and does not put data packets in order, thereby reducing the computation and rendering it lightweight.",
"links": []
},
"JE3uZ5U6oe6dVzsmglTl2": {
"title": "Packet vs Datagram",
"description": "**Packet** and **Datagram** are terms used in data communication.\n\nA **Packet** is the most general term that just refers to the encapsulated data passed across networks. It is the generic term used to describe unit of data at all levels of the protocol stack. Packets include not just the data, but also headers and footers with control information, such as source and destination addresses, error checking codes, and sequencing information.\n\nOn the other hand, a **Datagram** is a specific type of data packet. It is an independent, self-contained message sent over the network whose arrival, arrival time, and content are not guaranteed. This term is particularly associated with the UDP (User Datagram Protocol), where each transmission unit is called a datagram.\n\nThe difference between packets and datagrams depends largely on the protocol being used to transmit the data. TCP (Transmission Control Protocol) data is typically referred to as a packet, whereas with UDP it is a datagram.",
"links": []
},
"pJw8fN1dt3BABtZVz7wGE": {
"title": "Streaming vs Broadcast",
"description": "In the context of network protocol, streaming and broadcasting are two methods for transmitting data packets. Streaming, often performed over TCP, entails sending data from one source to a single specific destination. This method is comparable to a one-to-one phone call. The streaming process is characterized by steady data transmission directly to a single receiver who has initiated a connection. On the contrary, broadcasting refers to the transmittal of data packets from one source to all possible destinations in the network. Similar to a public announcement over a loudspeaker, the data is sent to all receptive entities. Broadcasting primarily utilizes the UDP protocol and does not require a direct connection or acknowledgement of receipt from the recipients.",
"links": []
},
"tg94V7K0mgYhpkUMp_Scv": {
"title": "IP",
"description": "**Internet Protocol (IP)** is the primary method used to send and receive messages on the internet. It's a set of rules that dictate how data should be delivered over the internet. An IP address is a unique string of numbers separated by periods that identifies each device using the Internet Protocol to communicate over a network. There are two types: IPv4 and IPv6. IPv4, the most common, consists of four groups of numbers, each ranging from 0 to 255. For example, \"192.168.0.1\". On the other hand, IPv6, the next-generation protocol, provides about 340 undecillion addresses, ensuring the ability to provide unique IPs for every device on the planet. For instance, \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\". Each IP address can be static (permanent) or dynamic (changeable), depending on your network configurations.",
"links": []
},
"5kF1fqr-mn5-15e3aMa9k": {
"title": "Capability",
"description": "In server-side game development, `capability` basically refers to the potential of the server in terms of supporting the game mechanics, the players, the network traffic, and other elements that allow the game to function effectively. Hosting servers condition the player's game interface and user experience, incorporating the aspects of speed, smooth game flow, glitch prevention, and high-performance gameplay. Certain servers have higher capabilities, supporting complex games with vast virtual environments, numerous players, and extensive data traffic. Their capacity extends to facilitating updates and patches immediately. On the other hand, servers with lower capabilities might only cater to simpler games. Ultimately, the `capability` of an IP server is a key factor in developing and maintaining a successful online, multiplayer, or large-scale game.",
"links": []
},
"2jDV-ovvrkBbTTLk5VbR9": {
"title": "Reliability",
"description": "The **Reliability** in terms of IP (Internet Protocol) generally refers to the dependability and consistency of the network connections. It's essentially about how reliable the data transfer is over the network. IP itself is an unreliable protocol, meaning it doesn't guarantee the delivery of data packets. This is where protocols like TCP (Transmission Control Protocol) come in. TCP adds a layer of reliability to IP by ensuring the delivery of the data packets, ordering them correctly and error-checking. This ensures that game data synchronizes correctly across the server and clients without any loss, providing consistency and a smooth gameplay experience. However, the full guarantees of TCP come with some additional overhead; therefore, some games might prefer to use unreliable protocols when high performance is more critical than absolute reliability.",
"links": []
},
"OzY-LPcfj1sBm_0F0WbIJ": {
"title": "Link Capacity",
"description": "Link capacity, also known as bandwidth, refers to the maximum amount of data that can be transmitted over a network link within a given period of time. It is usually measured in bits per second (bps), kilobits per second (Kbps), megabits per second (Mbps), gigabits per second (Gbps), or terabits per second (Tbps). The link capacity is a critical factor in determining the throughput and latency of a server, impacting the overall performance and efficiency of the network communication. Please note that link capacity can be affected by various factors such as the quality of the transmission medium, the distance between the source and destination, and the network congestion.",
"links": []
},
"YPvm8XD_FaFYCQ-b7-KsH": {
"title": "Function",
"description": "In server-side game development, functions are a fundamental building block of programming. These are reusable pieces of code designed to perform a particular task. Developers create functions to streamline code, improve readability, and enhance the efficiency of their program. Functions can take parameters as input and return a result. The syntax for declaring a function varies from one programming language to another. However, the basic structure remains the same. It usually starts with a function keyword, followed by the function name and parentheses `()`. Inside these parentheses, we can pass parameters. These parameters are then utilized within the function's body enclosed within curly brackets `{}`. The outputs are typically returned using a return statement. Remember, each function should ideally perform one task, and the function name should accurately represent its purpose to make the code self-explanatory.",
"links": []
},
"jnQAzUUnwpJgoRuRIFtSe": {
"title": "Datagram Construction",
"description": "Datagram construction is a fundamental process in server-side game development, especially when dealing with UDP (User Datagram Protocol). In this context, a datagram is a basic transfer unit associated with a packet-switched network, which typically encompasses a header and payload data. The process of datagram construction involves encapsulating the specific game data (such as player position, game state, etc.) in the datagram payload and setting appropriate values in the datagram header such as Source and Destination IP addresses, Checksum and other protocol-specific values. Constructing and parsing datagrams correctly is crucial for ensuring reliable and efficient communication between the game server and clients.",
"links": []
},
"3ZcJNDCHw2pFzewmoB-03": {
"title": "IP Addressing",
"description": "IP (Internet Protocol) addressing is a fundamental aspect of networking, at the core of interaction between systems in a network. Each device connected to a network must have a unique address, known as an IP address, to communicate with other devices. In version 4 of the IP protocol (IPv4), these addresses are usually represented as four numbers, each ranging from 0 to 255, separated by periods (e.g., 192.168.1.1). The newer standard, IPv6, introduced to deal with the shortage of available IPv4 addresses, employs a more complex notation using hexadecimal numbers and colons. However, the purpose remains the same: to uniquely identify each device on a network. IP addresses can be either static (permanently assigned to a device) or dynamic (assigned temporarily from a pool of addresses).",
"links": []
},
"bYb7nA-Vn9e6VtdbUT3tq": {
"title": "Routing",
"description": "In server-side game development, **routing** refers to the specification of how an application responds to a client request to a particular endpoint, which is a URI (or path) and a specific HTTP request method (GET, POST, etc.). Each route can have one or more handler functions, which are executed when the route is matched. These handler functions, often coming into play within complex multiplayer game scenarios, handle the logic needed for the route, including data transmission, game state updates, etc. The use of properly configured routes ensures the correct data is sent where it is needed, supporting seamless gameplay interactions.",
"links": []
},
"r2OeI7YC1BLLfctC8q69W": {
"title": "Transactions",
"description": "In server-side game development, **transactions** are critical elements that facilitate the exchange or interaction between different processes and data streams. These are usually carried out via a database or a server and are atomically treated as a single unit of work, ensuring data consistency and integrity. Transactions follow a specific pattern known as ACID (Atomicity, Consistency, Isolation, Durability) which makes sure that all intended operations within a transaction are successfully performed or none of them are, preventing disruptions in the event of an error or failure. It also ensures that concurrent execution of transactions results in a system state that would be achieved if transactions were executed sequentially. It's important for a server-side game developer to understand how to manage and control transactions to maintain the robustness of the game's backend system.",
"links": []
},
"JI_wUdT2hjsrvbIhLvHcT": {
"title": "ARP",
"description": "**ARP** or **Address Resolution Protocol** is a protocol used to map an IP address to a physical address on the network, such as a MAC address. A device uses ARP when it needs to forward a packet to another device on the same network but only has the IP address. ARP broadcasts a request packet to all devices on the local network to find who owns the IP address. The device with the matching IP address replies with its MAC address. ARP maintains a cache of previously resolved addresses to minimize traffic. It is an essential protocol in network communication, but it also exposes certain security vulnerabilities like ARP spoofing.",
"links": []
},
"yNytLrQAMKBw4t73YRL3J": {
"title": "DNS",
"description": "**Domain Name System (DNS)** is an internet service that translates domain names into IP addresses. The internet uses IP addresses to locate and connect different computers, but these numerical addresses can be difficult to remember or use practically. Therefore, DNS allows users to type in a domain name, such as [www.example.com](http://www.example.com), and it translates this name into the equivalent IP address, such as 192.0.2.1. It is used every time you visit a website, send an email, or connect to any service on the internet. DNS serves as the internet's phone book, ensuring that every domain name corresponds to the correct IP address.",
"links": []
},
"aTHJh-xw8soCxC1bIDdXm": {
"title": "DHCP",
"description": "DHCP, or Dynamic Host Configuration Protocol, is an internet protocol that enables automatic assignment of IP addresses to devices on a network. Its key role in network systems is to eliminate the manual task of assigning IP addresses in a large network. DHCP can be implemented in small, medium, or large networks encompassing hundreds of computers or even more. It involves a DHCP server, which is responsible for allocating IP addresses and controlling the process. This server maintains a pool of IP addresses, which it assigns to devices as they connect to the network. DHCP also handles release and renewal of these IP addresses as devices leave and rejoin the network.",
"links": []
},
"NH2eQ1_nij1icTgoO027b": {
"title": "Category",
"description": "The Internet Protocol Addresses (IP Addresses) are categorized into five different classes, namely, Class A, Class B, Class C, Class D, and Class E.\n\n**Class A** IP address is designed for large networks and ranges from 0.0.0.0 to 127.255.255.255.\n\n**Class B** IP addresses are allocated to medium-sized and large-sized networks and ranges from 128.0.0.0 to 191.255.255.255.\n\n**Class C** IP addresses are utilized for small-sized networks and ranges from 192.0.0.0 to 223.255.255.255.\n\n**Class D** IP address is designed for multicast groups and ranges from 224.0.0.0 to 239.255.255.255.\n\nLastly, **Class E** IP address ranges from 240.0.0.0 to 255.255.255.254 and is preserved for research and development purposes.",
"links": []
},
"pHVB0K8Vtk3ToD6n_f1wv": {
"title": "IPv4",
"description": "`IPv4`, or Internet Protocol Version 4, is the fourth version of IP (Internet Protocol). It's a foundational protocol that routes most of the Internet traffic today, even with the growing reach of IPv6. `IPv4` is responsible for identifying devices on a network through an addressing system. The `IPv4` uses a 32-bit address schema allowing for a total of just over 4 billion addresses. Most importantly, `IPv4` determines how data is sent and received over network devices. This standard of `IPv4` helps to route data between networks and has been foundational in the creation of the modern Internet.",
"links": []
},
"TqBlAMfhARhlJed6xD7eg": {
"title": "IPv6",
"description": "IPv6, which stands for Internet Protocol version 6, is the most recent version of the Internet Protocol (IP), formulated to rectify the impending issue of IPv4 address exhaustion. Unlike IPv4, which uses 32-bit address, IPv6 employs a 128-bit address, enabling a massive number of unique IP addresses to exist. This augments the capacity of the internet to accommodate an array of networks and devices, serving as a sustainable solution for an ever-expanding digital world. IPv6 also provides enhanced functionalities including simplified header format, improved support for extensions and options, built-in security using IPsec, and better support for QoS (Quality of Service). In server side game development, IPv6 ensures smooth and lag-free game experiences to players by enabling direct peer-to-peer connections.",
"links": []
},
"qkO0s9zR0sAnjTRWcrLQY": {
"title": "Security",
"description": "In server-side game development, the aspect of IP (Internet Protocol) security is of paramount importance. This primarily involves ensuring the safety of online gaming interactions, protection of sensitive user data being transmitted, and thwarting possible cyber-attacks or threats. This might include mitigation strategies against DDoS (Distributed Denial of Service) attacks, which are common in multiplayer gaming environments, IP spoofing, and session hijacking. Security measures often involve developing secure server architectures, encryption of data in transit and at rest, validation and sanitization of user input, and implementing comprehensive security policies and procedures. Regular risk assessment and vulnerability scanning are also crucial for identifying and addressing potential security loopholes. Therefore, for any game developer, understanding IP security protocols and integrating them into game development processes is essential to provide users with trustworthy gaming environments.",
"links": []
},
"FX8ASd-QzTUFDHzBB93WK": {
"title": "TLS",
"description": "",
"links": []
},
"6ilqzjvI4J1pUCmTJ33PA": {
"title": "Programming Languages",
"description": "Programming languages are an essential part of game development. They create the logic and rules for how your game operates. There are various types of programming languages that a server side game developer can use, such as C++, Python, Ruby, etc. These languages have different syntax and structures, as well as varying degrees of complexity. The complexity and capabilities can affect the game's performance, security, and even its potential compatibility with other platforms. Your choice of language often depends greatly on the specific needs of the project and your personal expertise. Picking up a new language can be time-consuming, so it's important to choose wisely. Markdown is another language that's popular for documentation due to its simplicity and readability, but it isn't typically used to code server-side game elements.",
"links": []
},
"E4H3hniIW6hKpH3Qr--N5": {
"title": "C/C++",
"description": "\"C\" and \"C++\", often written as \"C/CPP\", are two significantly prominent and similar programming languages widely used in server-side game development. \"C\" is a procedural language, which means that it follows a step-by-step procedure to solve a problem, while \"C++\" is both a procedural and object-oriented programming (OOP) language. This dual nature of \"C++\" allows it to handle more complex interrelated data and functions efficiently, which is a beneficial feature in game development. Moreover, \"C++\" is an extension of \"C\", meaning that any legal \"C\" program is also a valid \"C++\" program. Both languages offer a high degree of control over system resources and memory, making them an excellent choice for building fast and efficient server-side applications, such as multiplayer game servers.",
"links": []
},
"DuyUc9a-47Uz03yr4aeyg": {
"title": "C#",
"description": "C Sharp, usually written as C#, is a powerful, object-oriented programming language developed by Microsoft in the early 2000s. C# was designed to be a part of the .NET ecosystem and has its syntax foundations based on C and C++. Over time, C# has evolved to include several modern programming features like generics, asynchronous methods, and support for LINQ queries. Thanks to the .NET Core's cross-platform support, C# can now be used to write applications that run on Windows, Linux, and macOS. While it's widely used to create Windows desktop applications and games, it's also popular for developing web applications, server-side components, and even mobile applications via Xamarin.",
"links": []
},
"LG8JPL1po-gEs1V5JyC8F": {
"title": "Java",
"description": "Java is an object-oriented programming language that is class-based and designed to have as few implementation dependencies as possible. It was originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language's syntax has much in common with C and C++, but its object model is simpler and has less low-level facilities. Java applications are typically compiled to bytecode that can run on any Java Virtual Machine (JVM), making Java applications highly portable. Java is a general-purpose programming language and is used widely for server-side applications, particularly in high-performance environments where speed and scalability are critical.",
"links": []
},
"QGtGx5LBEWa1DD3Y7ztUy": {
"title": "Erlang",
"description": "Erlang is a functional, general-purpose concurrent programming language that supports distributed computation. It originated in the late 1980s, born from Ericson Inc., with the aim to improve the development of telephony applications. Erlang has built-in support for concurrency, distribution and fault tolerance which make it a popular choice for developing large scale, real-time systems. The language is mostly used in sectors where systems must continue to work despite errors, such as banking, eCommerce, computer telephony and instant messaging. Over the years, Erlang has been employed in blockchain development, internet of things (IoT) and online gaming programming where robust server-side development is required.",
"links": []
},
"ufufnULqsglE5VhEIAdSI": {
"title": "JavaScript",
"description": "JavaScript (often abbreviated as JS) is a high-level, interpreted programming language that conforms to the ECMAScript specification. It plays a key role in web development as it is one of the three core languages of the World Wide Web, along with HTML and CSS. In server-side game development, JavaScript can be utilized through runtime environments such as Node.js. Over the years, JavaScript has evolved to incorporate additional features, such as support for object-oriented and functional programming styles. It is dynamically-typed, and supports event-driven programming, which is especially handy in game development for handling user inputs and system events. Despite its name, JavaScript is not related to Java.",
"links": []
},
"d5iQYn97vuoxJnCFGPdOa": {
"title": "Go",
"description": "",
"links": []
},
"HvpuFTCknHPhnFkhmhRc4": {
"title": "Socket Programming",
"description": "Socket programming is a method of communication between two computers using a network protocol, typically TCP/IP. In server-side game development, socket programming is used to facilitate real-time, bi-directional communication between the server and client(s). The server opens a socket that waits for incoming connection requests from the client side. Once a connection is established, the server and client can exchange data until the connection is closed. This facilitates live multiplayer gaming experiences, allowing users on different computers to interact within the same game environment.`socket programming` in Python, for example, includes modules for creating both the server side (`socketserver`) and client side (`socket`) of the conversation.",
"links": []
},
"H21PanCggDfQt34-JzgfO": {
"title": "Byte Manipulation",
"description": "`Byte manipulation`, in the context of socket programming, often refers to the ability to directly interact and manage bytes of data. This could involve creating, modifying, or reading individual bytes or groups of bytes. Common operations include shifting (moving bytes to the left or right), masking (using a binary AND operation to make certain bits 0), and bitwise operations (working with the individual bits within a byte). Byte manipulation commonly takes place in server side game development when dealing with network data or working with specific binary protocols. The ability to accurately manipulate bytes is an essential skill when handling and optimizing the transfer of data between a server and a client.",
"links": []
},
"SBA7pa9o0AM0ZEBepd7UM": {
"title": "Address Conversion",
"description": "In socket programming, address conversion functions are important for handling internet addresses. Functions like `inet_pton()` (presentation to network) and `inet_ntop()` (network to presentation) are frequently used. `inet_pton()` function converts an IP address in human-friendly format (IPv4 addresses in dotted-decimal notation or IPv6 addresses in hexadecimal notation) to its equivalent binary form. Conversely, `inet_ntop()` function does the reverse, i.e., it converts an IP address in binary form to human-friendly format. These functions are important tools when dealing with IP addresses in lower-level network programming.",
"links": []
},
"OAyMj6uLSv1yJ87YAjyZu": {
"title": "Descriptor",
"description": "In the context of socket programming, a **descriptor** is simply an identifier for a resource. With the use of these descriptors, socket applications can interact with system resources such as network connections, files, or data streams. For instance, in C-based languages such as C++, socket programming frequently makes use of file descriptors. These are integer values used by the operating system to identify open files and network sockets. It is crucial for a server-side game developer to understand and make efficient use of descriptors to control and manage all the network protocols, ensuring seamless game experiences.",
"links": []
},
"a2pcxVTGdAPw8aLvdr19M": {
"title": "API",
"description": "API (Application Programming Interface) is a set of rules and protocols implemented for building and integrating software applications. APIs enable two different software applications to communicate and work together. They work as a bridge connecting two software systems, enabling them to exchange information and execute functions. In the context of server-side game development and socket programming, APIs may be used to handle connection establishment, data transmission, and other necessary network communication operations. APIs can be customized or built based on standard protocols such as HTTP for web services, or TCP/UDP for lower-level socket communications.",
"links": []
},
"U_tZFM80W3xJx8jj4skCr": {
"title": "BSD Socket",
"description": "The BSD sockets API is an application programming interface (API) for network communication originally developed as part of the Berkeley Software Distribution (BSD). This API provides a set of functions for creating and manipulating network sockets in operating systems. It has been widely adopted in a variety of platforms due to its simplicity and ease of use for networking tasks. The BSD socket API supports various network protocols and is extensible to support new protocols. It allows low-level access to network services, with the facilities to manage connections, send and receive data, and handle multiple connections concurrently. The API supports both connection-oriented (TCP) and connectionless (UDP) network protocols.",
"links": []
},
"GfTXffisLyQgp66zcQ7Py": {
"title": "Winsock",
"description": "`Winsock` is an acronym for Windows Sockets API, a technical specification that defines how networking software should interact with TCP/IP network protocols, such as TCP, UDP, and ICMP, on a Windows Operating System. Essentially, Winsock provides an interface for developers to use when they need to write network applications. This API provides functionalities to create a socket, bind it to a specific address, listen to incoming connections, send and receive data, and finally, close the connection. Winsock also aids in handling network errors and exceptions. For developing multiplayer server-side games, it is useful in managing client-server communications, multiplayer logic, and real-time updates. Note that in the gaming context, the Winsock library is typically used for real-time, high-performance applications due to its low-level access to the TCP/IP stack.",
"links": []
},
"TS6dz61rUSxm-SqmK6JKe": {
"title": "Serialization",
"description": "Serialization in server-side game development is the process of transforming data objects or structures into a format that can be stored, transmitted, and reconstructed later. It's significant because it enables you to save the state of a game, pass it between servers, or send it to clients. The two main types of serialization are binary and XML/JSON. Binary serialization turns your objects into a very compact binary format. XML/JSON serialization turns your objects into a textual format, which is less efficient but more human-readable and easier to debug. Depending on your specific needs, you may choose one over the other. Note also that each of these methods has its own exacerbations in terms of compatibility, performance, and security implications.",
"links": []
},
"y0ZJQQfi8Qx6sB4WnZlP5": {
"title": "JSON",
"description": "**JSON (JavaScript Object Notation)** is a lightweight data-interchange format that is easy to read and write for humans, also easy to parse and generate for machines. JSON is a text format that is completely language independent but uses conventions familiar to programmers of the C family of languages, including C, C++, C#, Java, JavaScript, Perl, and Python. In JSON, data is organized in name-value pairs and array data types. It is commonly used for transmitting data in server to web applications and vice versa.",
"links": []
},
"v43K6srds7m5SQFqNaY0T": {
"title": "XML",
"description": "XML, or Extensible Markup Language, is a language designed to store and transport data without being dependent on a particular software or hardware. Unlike HTML which displays data and focuses on how data looks, XML works as a tool to transfer data and emphasizes on what the data is. XML data is known as self-describing or self-defining, as it has the ability to define and describe the structure and data types itself. It uses tags just like HTML, but the tags in XML are not predefined; it allows the author to define his/her own tags and document structure. XML also supports Unicode, allowing almost any information in any human language to be communicated. It adheres to a strict syntax and is both human-readable and machine-readable, making it a widely used standard in web and server-side development.",
"links": []
},
"uHcUSVLz_2-Usk6ckSvwr": {
"title": "YAML",
"description": "YAML, which stands for \"YAML Ain't Markup Language,\" is a human-readable data serialization standard that can be used in conjunction with all programming languages. It is often used to write configuration files and in applications where data is being stored or transmitted. YAML supports advanced features like referencing, merging, arrays and dictionaries. Also, it is flexible and supports various data structures like scalars, sequences, associative arrays. Though it might seem similar to JSON and XML, it focuses on data serialization rather than marking up documents, and ensures readability for humans. It uses a whitespace indentation to denote structure, which can simplify file format complexities.",
"links": []
},
"l8iEC3g0ICSfmIE1MxcUl": {
"title": "TOML",
"description": "`TOML`, which stands for Tom's Obvious, Minimal Language, is a configuration file format that is easy to read due to its straightforward and simple syntax. The language is designed to be unambiguous and lean, intending to make it easy for a machine to parse. It supports basic data types, such as Integer, String, Boolean, and Float, Date-Time, Array, and Table. Unlike other similar file formats, `TOML` provides a more structured hierarchy. You can use `TOML` for configuration, serialization, and other similar tasks in game development.",
"links": []
},
"w2zbab_6Gxw6AWS0N759U": {
"title": "Protobuf",
"description": "`Protobuf`, or Protocol Buffers, is a method developed by Google for serializing structured data. It's both language-neutral and platform-neutral. Google designed it to be smaller and faster than XML. You design your data structures in `.proto` files, then use the Protobuf compiler `protoc` to generate data access classes in your chosen language. Google provides support for several languages including: Java, C++, Python, Objective-C, and C#. Community developed support for even more languages is also available. This gives `protobuf` a great deal of versatility, making it a popular choice for data storage and communication between services.",
"links": []
},
"3QSLUMKD0G08N3MIb1cG7": {
"title": "Multithreading",
"description": "Multithreading, a specialized form of multitasking, is the ability of a central processing unit (CPU) to manage multiple executions of instructions concurrently. This essentially means that multiple threads or mini-processes are executing independently yet sharing the resources of a single CPU. In programming, threads are a way to improve the application responsiveness and perform multiple operations simultaneously without requiring multiple CPUs or computers. Threads within a process share the same data space with the main thread and can, therefore, communicate more quickly with each other than if they were separate processes. Developers often use multithreading in server-side game development to manage complex operations with high efficiency.",
"links": []
},
"idmrgKgVWVLZYANbXiZnS": {
"title": "Synchronization",
"description": "In the context of multithreading, **synchronization** is a mechanism which ensures that two or more concurrent threads don't simultaneously execute some particular program segment known as a critical section. Concurrent accesses to shared resource can lead to race conditions. Two or more operating systems' threads can access shared data simultaneously. With synchronization, you can ensure that only one thread can access the shared resource at a time, hence avoiding any data inconsistency. Different synchronization techniques such as locks, semaphores, condition variables, monitors and signaling are used to deal with synchronization situations, each with its own pros and cons.",
"links": []
},
"6k25amPkU9lnZ7FMNn_T6": {
"title": "Barrier",
"description": "`Barrier` in server-side game development refers to a type of synchronization method that can help manage multiple threads in a game's code. When a barrier point is set, all threads that reach this point are prevented from progressing until all the threads have reached this barrier. This functionality is a crucial aspect in synchronization to prevent inconsistencies and unsynchronized access to shared resources. It allows developers to ensure all processes are completed or all information is updated before moving on to the next step in the game's runtime. Barriers can be applied in various instances such as, but not limited to, game start-up, level completion, or during more complex inter-thread communications.",
"links": []
},
"lVXfA_oZr82mFfBvLnnRK": {
"title": "Spinlock",
"description": "`Spinlock` is a type of synchronization mechanism that exists in a busy-wait-state (essentially, 'spinning') until the lock can be acquired. This contrasts with other locking mechanisms that might put a thread to sleep if the desired lock is not available. It's generally used in scenarios where thread sleeping (context switching) could be costlier than spinning. However, it must be handled properly. An improperly managed spinlock can cause high CPU usage, as the wait is active; it continually consumes processing capacity. Hence, their usage is more beneficial in scenarios where the wait time to acquire a lock is reasonably short.",
"links": []
},
"G_BEJKkJ1_Nc43aosy_iS": {
"title": "Mutex",
"description": "`Mutex`, short for mutual exclusion, is a synchronization method used by developers to prevent multiple threads from concurrently accessing some shared resource or part of code. It is a locking mechanism that enforces limits to ensure that only one thread can perform certain operations at a time. If a `mutex` is locked by one thread, the other threads trying to lock it will be blocked until the owner thread unlocks it. This tool is essential especially in multi-threaded programming environments to avoid conditions like race conditions where the program's behavior may depend on the sequence of scheduling or timings of the threads.",
"links": []
},
"DYvzGc_r0SlOArPPc1gNI": {
"title": "Semaphore",
"description": "",
"links": []
},
"zbIbPlqTNSbJUkqH9iLQv": {
"title": "Future & Promises",
"description": "`Futures and promises` or simply `Promises` in programming is a pattern used for handling asynchronous operations. A `Promise` is an object that might produce a single value or error in the future either through a non-blocking way or in an asynchronous way. A `Promise` has three states - pending, resolved (success), and rejected (error). The Promise transitions from the Pending state to either an accomplished Resolved state, or Rejected state. These status changes are irreversible, meaning once the Promise reaches either Resolved or Rejected state, it cannot transition to any other state.",
"links": []
},
"o0Y_hM0KXUApfsXG4PvOY": {
"title": "Coroutine",
"description": "",
"links": []
},
"SXOEMkcVYBsRza6BPmmwy": {
"title": "Channel",
"description": "",
"links": []
},
"xR6pERldq4wPl9GVLHAhT": {
"title": "Condition Variable",
"description": "A `condition variable` is an object that has the ability to block the calling thread until notified to resume. It's used in conjunction with a `mutex` (or `lock`) in the synchronization of threads. A condition variable is made up of a mutex (or lock) and a waiting queue. Typically, a condition variable is used when a thread needs to wait until a certain condition is met. The thread will lock the mutex, check the condition, and if the condition isn't met, it will enter the waiting queue and unlock the mutex. When the condition is met, another thread will notify the condition variable, prompt it to wake up a thread from the waiting queue, and relock the mutex. It's important to mention that condition variables are subject to spurious wakeups and lost wakeups, hence developers need to manage them carefully.",
"links": []
},
"IeD-oQ1bkwlKNC-R0lJjZ": {
"title": "Thread Local Storage",
"description": "`Thread Local Storage (TLS)` is a mechanism by which variables are allocated such that each thread gets its own individually allocated variable, but the name of the variable is the same in each thread. In other words, the same variable can simultaneously hold different values for different threads. TLS is required when you need to use a global or static variable in a thread-safe manner but the data must be unique to each thread. TLS can be used in many applications, but it is particularly useful for storing per-thread state in server applications.",
"links": []
},
"mW2L_9NckgPRH7g5W9NHq": {
"title": "Windows",
"description": "In the context of server-side game development, Windows operating system offers an API for Thread Local Storage (TLS). This refers to a mechanism by which variables are allocated that are unique for each thread in a program. When a thread reads from or writes to a TLS index, it is actually referencing a thread-specific memory block. This memory block is dynamically allocated from the system heap when the thread is created and subsequently freed up when the thread is terminated. This management of memory is done implicitly by the system which can reduce complexity for developers.",
"links": []
},
"HU0yUyl89WD8WnR9PJn7l": {
"title": "pthread",
"description": "`Pthread` or POSIX threads is a standard-based thread programming library for multi-threading development. It provides several functions and methods to efficiently manage multiple threads in a program enhancing concurrency and parallelism. The library enables thread creation, thread joining and cancellation, thread-specific data, and synchronization including mutex locks, read/write locks, and condition variables. Notably, Pthread is an API for C/C++ programming language providing cross-platform support for Linux, Unix, and Windows systems. It's a fundamental tool for server-side game developers to create highly responsive and concurrent applications.",
"links": []
},
"3use5vuLBJTk40wOg9S-X": {
"title": "Sharding",
"description": "Sharding is a type of database partitioning that separates very large databases into smaller, faster, more easily managed parts called data shards. The word shard means a small part of a whole. Each shard is held on a separate database server instance, to spread load and reduce the risk of a single point of failure. Sharding can be done on a horizontal or vertical basis. Horizontal Sharding, also known as data sharding, involves putting different rows onto different tables. Vertical Sharding, on the other hand, involves putting different columns onto different tables. It's possible to shard on the basis of certain columns, and databases can be sharded in many different ways. Sharding is a complex process, but proper planning can allow for increased scalability and performance improvements.",
"links": []
},
"TVJrlUsg30YIM1yjsZfJI": {
"title": "Fiber",
"description": "`Fiber` is a way to manage concurrency at a more granular level than threads. While threads represent a sequence of instructions that can run concurrently with other threads, a fiber is a unit of execution which only runs on its initiating thread. Fibers are scheduled by the application, not the operating system. They are great tools for implementing co-operative multitasking where you have many tasks that you want to have run concurrently, but you want to have explicit control on when they are switched in and out. For server-side game development, fibres can be particularly useful in dealing with multiple user requests, where each request might have its own fiber.",
"links": []
},
"tGQu18PWDatW7HvkTP-uh": {
"title": "Programming Techniques",
"description": "Programming techniques are methods that are used to write series of instructions (code) that a computer can interpret and execute. There are many ways one can write code, unique to both the individual and the programming language they are using. Techniques such as Object-Oriented Programming (OOP) involve the use of encapsulated objects and inheritance. Functional Programming focuses on mathematical functions, avoiding changes in state and mutable data. Procedural Programming focuses on the process of executing predefined steps of functions to achieve the end result, while Event-Driven programming primarily acts upon user interactions, like mouse clicks or key presses. You can choose one technique depending on the game development requirements, the development team's competence, and preference.",
"links": []
},
"gB-TYpgUDV47bxznNJhYn": {
"title": "Design Patterns",
"description": "Design Patterns represent best practices developed by experienced software engineers. They are reusable solutions to common problems that occur in software design and fulfill the requirement to decouple the system as much as possible. Design patterns categorize into Creational, Structural, and Behavioural types. Creational type includes patterns like Singleton, Prototype and Factory; Structural includes Adapter, Composite, and Proxy; Behavioural includes Observer, Strategy, Template, and Visitor. Every design pattern has its own particular structure defined that programmers can follow to solve a particular design problem in your programming code.",
"links": []
},
"FKOhe21PVlaKIoZI4hd49": {
"title": "TDD",
"description": "`Test Driven Development (TDD)` is a development strategy in which developers write tests before writing the bare minimum of code required for the test to be passed. The process involves three stages: red, green, and refactor. In the red phase, a test is written which initially fails (since the code it's testing doesn't exist yet). In the green phase, the minimal amount of code to make the test pass is created. Lastly, in the refactor phase, the written code is improved without affecting its behavior. The process is often visualized as a cycle: \"Red - Green - Refactor\". This repeating process allows for smaller, more defined feature development, reduces bug emergence, and encourages simple design. TDD is primarily used in agile development environments.",
"links": []
},
"uTlxyDOtvt_Qp0gXLWO-j": {
"title": "Dependency Injection",
"description": "`Dependency Injection` (DI) is a programming technique that makes a class independent of its dependencies. This is achieved by decoupling the use of an object from its creation. In this technique, instead of a class creating an object itself, an object is supplied or \"injected\" to the class by an external entity. The actual creation and binding of dependencies are managed by a 'container', which injects the dependencies into the respective classes. Dependency Injection can be done in three ways: Constructor Injection, Setter Injection, and Interface Injection. Each of these methods involves moving the responsibility of the object creation and binding to another class or method.",
"links": []
},
"1c6EqGv1g-d8M1i0vKImb": {
"title": "Dump Analysis",
"description": "**Dump Analysis** is a highly useful technique in server-side game development, primarily used for debugging and troubleshooting. It involves studying the 'dump' or all the information within a system when a program crashes or fails. This dump typically includes the system's memory, the active processes, thread stacks, and more. By analyzing this data, developers can get an insight into what caused the failure. Dump analysis can be manual, using debuggers like WinDbg, lldb, gdb, or automated with tools such as Microsoft's Automatic Debugging Tool (ADPlus) and DebugDiag. Note that the complexity of dump analysis can vary depending on the nature of the program crash or the size of the dump.",
"links": []
},
"HXSWvhgT4L5w6xgOO-3kj": {
"title": "Functional Programming",
"description": "`Functional programming` is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. In functional programming, functions are first-class citizens. This means that functions can be passed as arguments to other functions, returned as values from other functions, and assigned to variables. Examples of functional programming languages include Haskell, Lisp, and Scala. At the heart of functional programming are the concepts of immutability and pure functions. A pure function is a function that provides the same output for the same input and has no side effects. Immutability avoids changes to variables or objects once they've been created, which makes functional programs easier to debug and test.",
"links": []
},
"FLFaGZDg2MSG6_YHnWETM": {
"title": "Databases",
"description": "Databases are structured sets of data. In terms of server-side game development, databases are extremely vital. They store information like user profiles, game states, rankings, and so much more. You have various types of databases to choose from such as relational databases (MySQL, PostgreSQL), NoSQL databases (MongoDB, Cassandra), and in-memory databases (Redis, Memcached). These databases have their own primary language for interaction, like SQL for relational databases. Most importantly, as a game developer, one needs to plan database schemas wisely to ensure efficient data retrieval and storage. Knowledge of indexing and a solid understanding of ACID (Atomicity, Consistency, Isolation, Durability) properties assists in developing robust game backends.",
"links": []
},
"QMNUAKAuRI9lyf2_jUPsj": {
"title": "MS SQL",
"description": "Microsoft SQL Server (MSSQL) is a relational database management system (RDBMS) developed by Microsoft. MSSQL provides an environment used to generate databases that can be accessed from workstations, the internet, or other media such as a personal digital assistant (PDA). Basically, MSSQL is a server-based SQL repository that provides back-end storage for applications. It supports a wide variety of transaction processing, business intelligence and analytics applications in corporate IT environments. MSSQL has various editions with different features to fulfill users' requirements, ranging from a free edition, Express, to the comprehensive Enterprise edition.",
"links": []
},
"HsBqd08Ro0VJnx0FlumMQ": {
"title": "MySQL",
"description": "MySQL is an open-source relational database management system (RDBMS) that uses SQL (Structured Query Language) to interact with data. It is developed, marketed, and supported by MySQL AB, a Swedish company, and is written in C and C++. Since it's open-source, you can use MySQL completely free of charge. MySQL is primarily used for online transactions and for consolidating data. You can install it on various platforms like Linux, Windows, macOS and so on. With its comprehensive set of features like support for full-text search, cursors, triggers, stored procedures, it is powerful enough to manage even very large sets of data, making it suitable for a vast range of applications, whether they be web-based or embedded.",
"links": []
},
"dAiEwN7phwMyaitvM5kRl": {
"title": "PostgreSQL",
"description": "**PostgreSQL** is a powerful, open-source object-relational database system. It extends the SQL language combined with many features that safely store and scale the most complicated data workloads. The origins of PostgreSQL date back to 1986 as part of the POSTGRES project at the University of California at Berkeley. It has earned a strong reputation for its proven architecture, reliability, data integrity, robust feature set, extensibility, and the dedication of the open-source community behind the software to consistently deliver performant and innovative solutions. PostgreSQL runs on all major operating systems and has been ACID-compliant since 2001. It has powerful add-ons like the popular PostGIS geospatial database extender. It can handle ranges, array types and has extensive capabilities for developing at scale.",
"links": []
},
"9vc7sFE_XakYXtKRMxLXi": {
"title": "DynamoDB",
"description": "DynamoDB is a NoSQL database service provided by Amazon that delivers reliable performance at any scale. It's a fully managed, multiregion, multimaster database that offers built-in security, backup and restore, and in-memory caching. It's meant to support applications with large scale, low latency requirements. Developers can create database tables that can store and fetch any amount of data and can serve traffic from a few requests per month to millions of requests per second. As a part of AWS, DynamoDB integrates well with other AWS services and provides developers with high availability across multiple geographical regions.",
"links": []
},
"HYxtPW401-J6aYcTuiGnx": {
"title": "MongoDB",
"description": "MongoDB is a source-available NoSQL database program that uses a document-oriented database model. This model supports a variety of data types and enables you to store them in one place. MongoDB uses JSON-like documents coupled with optional schemas. What distinctly characterizes MongoDB is its scalability and flexibility that allow schemas to evolve with business needs. It can run over multiple servers, the data is duplicated to facilitate keeping the system up and the data available. Also, MongoDB supports rich queries through its powerful querying and aggregation tools. These capabilities encourage fast development and iterations. However, bear in mind that like any database, MongoDB is not a one-size-fit-all solution and understanding its best use cases is crucial for maximizing its benefits.",
"links": []
},
"1jqSxk1nwByiQa1De81F3": {
"title": "Cassandra",
"description": "Apache Cassandra is an open-source, distributed NoSQL database system that is designed to manage large volumes of data across a wide range of servers. It provides high availability with no single point of failure. Cassandra is often used for applications where data is distributed across multiple locations as it has superior replication mechanisms. It utilizes a peer-to-peer architecture, as opposed to master-slaves, which allows for continuous availability and scalability. Cassandra also provides robust support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients.",
"links": []
},
"6KTj_giX2k9l2lPd_Fp-d": {
"title": "Couchbase",
"description": "Couchbase is a NoSQL database technology that provides flexible data models suitable for server-side game development. It provides high-performance and easy scalability, offering a comprehensive platform for managing, manipulating and optimizing data in real-time. The technology behind Couchbase combines the powerful performance of key-value stores with the flexible querying capabilities of SQL-like querying systems. This makes it particularly valuable in gaming environments where performance and flexibility are crucial. Moreover, Couchbase also provides document database capabilities, allowing for complex documents to be stored in a format that can be easily manipulated for individual needs. With its high performance, flexible querying, and document database capabilities, Couchbase is a powerful tool for server-side game developers, and mastering it can significantly enhance your development capabilities.",
"links": []
},
"7YNaELVcoV7DV1Fa06USi": {
"title": "Redis",
"description": "`Redis` is an open-source, in-memory data structure store that can be used as a database, a cache, and a message broker. It provides support for various data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, and more. Redis also allows atomic operations like appending to a string; increasing and decreasing hash, array and sorted sets values; computing set intersection, union and difference; and much more. An interesting feature of Redis is its ability to create transactions and also publish and subscribe to channels. It is a great choice for high-performance software like games because of its versatile nature and efficient performance.",
"links": []
},
"ayeezKxQkXAPJMTShsOBU": {
"title": "Memcached",
"description": "`Memcached` is a high-performance, distributed memory object caching system that is generic in nature, but intended for use in speeding up dynamic web applications by alleviating database loads. It does this by storing data and objects in dynamic memory to reduce the frequency with which an external data source must be read. `Memcached` is fundamentally a key-value store that operates over the network. It uses a clientserver architecture where the servers maintain a common view of the data set. The clients are responsible for partitioning data and determining to which servers data items are to be written or from which servers they are to be read.",
"links": []
},
"OyxWMFy8s7Lxko_K89fjo": {
"title": "ORM",
"description": "ORM stands for Object-Relational Mapping. In server-side game development, ORM is a technique that lets you interact with your database, like you would with SQL. In other words, on the server side, you create classes in your programming language (e.g., Python, JavaScript, etc.) that map to the tables in the database. Each instance of a class represents a row in the respective table. ORM libraries and tools provide methods to perform CRUD (Create, Retrieve, Update, Delete) operations without having to write raw SQL statements. Popular examples of ORM tools include Sequelize for JavaScript, SQLAlchemy for Python, and Hibernate for Java.",
"links": []
},
"dt_SmZuwklLimhupvjxC1": {
"title": "DAL",
"description": "The term **DAL** stands for **Data Access Layer**. It represents a layer of an application that simplifies the interaction with the persistent storage of data. Typically, the DAL is implemented in a separate module, package, or library in your application that directly communicates with the database, thereby enabling the application services and modules to invoke a simple API for CRUD operations (Create, retrieve, update, and delete database entries) and database transactions. The DAL helps maintain the applications database schema and manage connections to the database. Popular libraries and frameworks like SQLAlchemy for Python, Sequelize for Node.js, and Hibernate for Java among others provide a robust DAL implementation. These tools abstract the lower-level details of the data source into a higher-level programming interface.",
"links": []
},
"1788KFqsQBkYARqA0T5GX": {
"title": "Cipher",
"description": "**Cipher** is a vital component in the field of cryptography and is used to encrypt and decrypt information. It is essentially a series of well-defined steps or algorithms followed to convert sensitive information or data into a form that appears to be random and meaningless. This transformed information can only be turned back into its original form with a specific decryption key. Based on their methodology, ciphers are broadly classified into two categories: block ciphers and stream ciphers. Block ciphers work on a chunk of data at once, whereas stream ciphers work on a individual bits or bytes. Examples of ciphers include: Caesar Cipher, Monoalphabetic Cipher, and Vigenere Cipher among others. Usage of ciphers enhances the security in server-side game development by ensuring that player data remains confidential and is not subjected to unauthorized access or manipulation.",
"links": []
},
"PSvPjaVtko71BeIA-hYqf": {
"title": "SSL",
"description": "Secure Sockets Layer (SSL) is a security protocol which provides encrypted communication between a web browser and a web server. This protocol operates via a process where the SSL certificate, held by the web server, creates two cryptographic keys - a Public Key and a Private Key. The public key is placed into a Certificate Signing Request (CSR) - a file also containing detailed information about the web server and your organization. A certificate authority then validates these details and issue an SSL certificate for your web server. This SSL certificate contains the new, unique public key for your web's session data. When a browser connects to this web server and the SSL handshake is complete, an encrypted SSL session is established via the protocols of symmetric cryptography. It's noteworthy to mention that even though SSL has been succeeded by Transport Layer Security (TLS), people still refer to these certificates as SSL.",
"links": []
},
"YxaroYL_Az0vKRCeu2jsp": {
"title": "RPC / REST",
"description": "RPC (Remote Procedure Call) and REST (Representational State Transfer) are two different approaches to client-server communication. RPC is a procedure-oriented service, where the client sends a request to the server invoking a specific procedure along with the parameters it needs to execute. The server-side program then processes these inputs and returns the result back to the client. On the other hand, REST is a resource-oriented architecture, leveraging standard HTTP methods like GET, POST, PUT, DELETE to perform operations. In REST, every single information or service is considered as a \"resource\".\n\nIn the context of game development, both RPC and REST can be used depending on the specific needs of the game and the underlying architecture that supports it. Both of them offer unique characteristics that make them suitable for different aspects or modules inside a game like character control, game state management, real-time networking, etc. While RPC might be more suited for real-time, fast communication, REST can be leveraged for independent, scalable, and stateless nature of its design.\n\nIn sum, RPC and REST terms come up frequently in server-side game development due to their importance in determining how your game will communicate between its different parts, especially in multiplayer environments. It is crucial to make the appropriate choice based on your game's requirements and desired user experience.",
"links": []
},
"Oq3GQ5gBUxIl1Qe8NB3LB": {
"title": "REST",
"description": "REST or Representational State Transfer is an architectural style used in web development. REST systems interact through standard operations on web resource's identified through URIs. It utilizes a stateless, client-server, cacheable communication protocol -- virtually always HTTP. In REST architecture, a client sends a request to the server in order to retrieve or modify data. This data can be identified by a URI and has a specific media type (JSON, XML etc). A key feature of REST is that it's stateless, meaning the server does not keep any data between two requests. While the client holds session state. REST is often used in mobile applications, social networking websites, and automated business processes.",
"links": []
},
"_uqTTBUYAzDHbEUkDzmzg": {
"title": "gRPC",
"description": "`gRPC` (Google Remote Procedure Call) is a high-performance, open-source universal RPC framework designed by Google. The gRPC framework supports a wide range of languages, and it is based on the proto3 protocol buffer (protobuf) language. It uses Protocol Buffers as the interface definition language for defining the method parameters service and return types. gRPC is designed to work over a variety of different pluggable transports and also supports load balancing, tracing, health checking and authentication. It's functionality is particularly suited for point-to-point services within a microservice architecture.",
"links": []
},
"cw7WdFfL5HpeZ_n8wYk2t": {
"title": "Message Queues",
"description": "Message queues are a fundamental element of server-side game development, primarily used for communication and data exchange between different processes, threads, or microservices. A message queue operates on the principle of first-in, first-out (FIFO). In the typical process, a sender submits messages to the queue, and receivers extract messages from the queue. This mechanism ensures seamless coordination between different parts of a system performing at different speeds and allows asynchronous information exchange. Features such as persistence, delivery acknowledgement, prioritization, and scheduling are commonly associated with message queues. Different technologies support message queues including RabbitMQ, Apache Kafka, and AWS SQS among others. The choice of the appropriate message queue technology can depend on specific requirements, such as the relevant programming language and the expected size and rate of message traffic.",
"links": []
},
"gL7hubTh3qiMyUWeAZNwI": {
"title": "Apache Kafka",
"description": "Apache Kafka is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache Software Foundation. It is written in Scala and Java and operates based on a message queue, designed to handle real-time data feeds. Kafka functions as a kind of message broker service in between the data producers and the consumers, facilitating efficient transmission of data. It can be viewed as a durable message broker where applications can process and reprocess streamed data. Kafka is a highly scalable and fault-tolerant system which ensures data delivery without loss.",
"links": []
},
"UESjGrFyUbNf4pQamaBoy": {
"title": "RabbitMQ",
"description": "RabbitMQ is an open-source message broker software that implements the Advanced Message Queuing Protocol (AMQP). It's designed to offer a common platform for passing messages between different parts of a system or between separate systems. RabbitMQ allows these parts to speak and understand each other even if theyre written in different programming languages or implemented on different platforms. RabbitMQ is not just limited to AMQP protocol but supports a variety of different messaging protocols including MQTT, STOMP, and more. Also, RabbitMQ is language agnostic, meaning it can be used with almost any programming language. In addition, it comes with a web user interface for managing and monitoring your RabbitMQ server. It's widely used in production systems around the world and can support large scale distributed systems as it supports clustering and fail-over.",
"links": []
},
"_jd91rrAXGbJI9RhXlSx8": {
"title": "Multithreading",
"description": "`Multithreading 2` in game development usually refers to an advanced level of understanding, managing, and implementing multithreaded programming. At this stage, developers are expected to manage inter-thread communications and synchronization effectively. This includes mastering the use of mutexes, locks, semaphores, and condition variables. This level extends to the fine-tuning of performance and resolving complex issues such as race conditions, deadlocks, and starvation. Furthermore, it could cover advanced topics like thread-pools and executing modern multithreaded game architectures efficiently and safely. In multithreading 2, developers learn to leverage more concurrent computing power, thus making the server more performant and responsive.",
"links": []
},
"KUQEgHldZPOLwFoXqQ2vM": {
"title": "Actor Model",
"description": "The **Actor Model** is a conceptual model to deal with concurrent computation. It defines some general rules for how the system's components should behave and interact with each other. In the Actor Model, each object (actor) has its own private state and communication with other actors is done by exchanging messages. Actors read messages from a personal mailbox and may change their own inner state, create more actors, or send messages to other actors. The Actor Model makes it easier for developers to write concurrent and distributed systems by providing high-level abstractions over low-level threading details.",
"links": []
},
"SsOz9Pj6Jc_55PgpmziL6": {
"title": "Akk.net (C#)",
"description": "\"[Akka.NET](http://Akka.NET)\" is a toolkit and a runtime for designing concurrent and distributed applications. This technology is directly inspired by the Actor Model concept, implementing its principles to create robust and highly functional server-side applications. [Akka.NET](http://Akka.NET) allows developers to create systems that are capable of handling millions of messages in a concurrent manner while maintaining high performance. It supports actor-based concurrency, network and cloud distribution, and powerful event sourcing techniques. Building systems with [Akka.NET](http://Akka.NET) involve not only working with primary actors but also working with different types, including the likes of Persistent actors, FSM (Finite State Machine) actors and more. Please remember, [Akka.NET](http://Akka.NET) is a part of the broader Akka toolkit, which also includes libraries for Java and Scala.",
"links": []
},
"eAEpEUVZcSKO9uCIlMN5y": {
"title": "Akka (Java)",
"description": "Akka is an open-source toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM. It implements the Actor Model for handling concurrency, allowing developers to create systems that can handle high volumes of transactions in a distributed environment. Yet, Akka is not only about Actors, it features other tools for building reactive applications, including Event Sourcing, CQRS, Cluster Sharding, and Distributed Data. Written in Scala and providing APIs in both Scala and Java, Akka powers numerous business-critical systems in sectors such as finance, tech, streaming, and others.",
"links": []
},
"ThBxS9xIMt9OrXfnto3rW": {
"title": "Asynchronous",
"description": "**Asynchronous programming** is a programming paradigm where the execution of functions or routines does not wait for the activities within them to complete before moving on to subsequent ones. This allows for tasks to be processed independently, making the most of system resources. When a function contains an operation such as I/O, database access, or network communication, which may take a long time to complete, this function is wrapped into a future or promise and sent for execution. Meanwhile, the core program continues to run. When the wrapped function gets executed, a callback function is used to notify that the computation or I/O is complete. This forms the core of non-blocking or asynchronous execution. It is widely used in server-side programming, game development, and any scenario where I/O latency or user experience is a concern. Notably, it is at the core of Node.js and many modern web frameworks.",
"links": []
},
"7mYpgn2gr-5vAYW-UR7_x": {
"title": "Reactor",
"description": "The **Reactor** is a design pattern that deals with synchronous I/O multiplexing. It is a part of the server side game development concept where it mainly handles service requests delivered concurrently to an application by one or more clients. The reactor allows multiple requests to be managed efficiently by the resources of a single thread. It uses an event loop and callbacks to control and manage all the different I/O streams. Often, Reactor is combined with the Proactor pattern to achieve concurrency and efficiency in utilizing system resources.",
"links": []
},
"5-5toy2CblZPCV9d5QPEo": {
"title": "select",
"description": "",
"links": []
},
"D9Yeyn8phDhB1ohMWccgr": {
"title": "WSA Poll",
"description": "",
"links": []
},
"qaWv4gxnnj3uX8lEm9KQ4": {
"title": "epoll",
"description": "",
"links": []
},
"caK32NMMrn-3BGAXZoPPr": {
"title": "kqueue",
"description": "",
"links": []
},
"Tvxe2NemcH21y-eB4bosv": {
"title": "Proactor",
"description": "The **Proactor** pattern is an event-driven application design pattern used in asynchronous programming, and is a variant of the Reactor Pattern, but with an important distinction in terms of control flow handling. Instead of the application explicitly triggering and managing operations, this responsibility is delegated to the asynchronous operation processor, also known as the proactor. The proactor initiates an asynchronous operation, and once the operation is complete, it determines the appropriate service to dispatch the completion event to. In other words, proactors are responsible for initiating asynchronous operations, while completion handlers are responsible for dictating what happens next, after the operations complete.",
"links": []
},
"7pgdOZomhGilBTwfJLMbm": {
"title": "IOCP",
"description": "",
"links": []
},
"YH7u1FKh85wz78J0stuzS": {
"title": "io_uring",
"description": "",
"links": []
},
"94hJX1iGifDzIuaU3zU5j": {
"title": "Registered IO",
"description": "",
"links": []
},
"LKPcEeqBOPhQOztD3cM3T": {
"title": "Task-Based",
"description": "Task-based multithreading refers to a model where tasks are the units of work abstracted from threads. In this model, application logic is divided into smaller tasks, each capable of running independent of the others. The tasks are then executed by a pool of threads, managed by a scheduler. Unlike traditional thread-centric models where each thread performs a specific task, task-based multithreading allows for greater flexibility by decoupling the tasks from the threads and letting the system dynamically assign tasks to idle threads. With task-based multithreading, developers no longer need to manually manage threading details like creation, control, synchronization, and termination, hence enabling more focus on the development of the game logic.",
"links": []
},
"f-L_eaZd0EjBW9-n9Pllt": {
"title": "goroutine (Go)",
"description": "`Goroutine` is a lightweight thread managed by the Go runtime. They are functions or methods that run concurrently with other functions or methods in the Go programming language. Goroutines are cheaper than threads as they use less memory, and their creation and destruction are more efficient in terms of performance. Unlike threads in other languages, the Go runtime manages the scheduling of Goroutines, taking a lot of the complexities away from the developer. Goroutines are one of the unique features of Go, making it an excellent choice for concurrent programming, especially useful in server-side game development.",
"links": []
},
"RT9XvlxvIM_hHTtNmbva3": {
"title": "Concurrency (Java)",
"description": "Concurrency is a property of systems that allows multiple tasks to run in an overlapped or simultaneous manner. This is widely used in server side game development where it is common to have multiple players interfacing with the system at the same time. It is essential to keep the system responsive and efficient under high load. Concurrency is often achieved through multithreading or asynchronous programming. Multithreading involves multiple threads of execution within a single program, with each thread running on a separate processor core. Asynchronous programming, on the other hand, achieves concurrency by allowing tasks to progress without waiting for other tasks to complete. This can be particularly useful in situations where tasks involve I/O operations or network requests, which can take a significant amount of time to complete, and would otherwise block the execution of other tasks.",
"links": []
},
"mAXMpUDmhGOncnCRrENJv": {
"title": "Asnc-await (C#)",
"description": "`Async/await` are extensions of Promises in JavaScript that allow for handling asynchronous code in a more synchronous manner. Using `async` keyword before a function, means the function returns a Promise. On the other hand, `await` keyword is used to pause async function execution until a Promise is resolved or rejected, and to resume execution of the async function after fulfillments. Before the `await` keyword, the Promise resolves to the actual value. Notably, `await` only works within async function block.",
"links": []
},
"tiG0mZpLJ2zUr2IPYyhnv": {
"title": "Thread Building Block (C++)",
"description": "The **Thread Building Blocks** (TBB) is an open-source C++ library developed by Intel. It is designed to take advantage of multi-core processors by simplifying the process of deploying parallel tasks. Using TBB, you can easily break down your tasks into smaller sub-tasks that can be processed in parallel, improving the speed and efficiency of your game server. TBB encompasses generic parallel algorithms, concurrent containers, a scalable memory allocator, work-stealing task scheduler, and low-level synchronization primitives. However, it's not a library for threading as POSIX or Win32 threads, rather, it's a higher-level, task-based parallelism that abstracts platform details and threading mechanism for performance and scalability.",
"links": []
},
"Vl-WW0LThrQTOO_tFl51B": {
"title": "Reactive Approach",
"description": "",
"links": []
},
"yWj70LpF4LKB8J6GbYvsq": {
"title": "OORP",
"description": "**Object-Oriented Reactive Programming (OORP)** is a programming paradigm that combines object-oriented programming (OOP) and reactive programming. In OORP, developers design the system in terms of objects that communicate with each other through messages. These messages trigger functions or \"reactions\" in the receiving objects, hence the term \"reactive\". Each object in OORP encapsulates state and behavior, follows inheritance, and promotes data abstraction, similar to traditional OOP. However, OORP operates in a more event-driven manner, responding to external events, changes, or transactions that occur over time or in response to other objects.",
"links": []
},
"xDYOvIbXc-iJ2zOKqe0YL": {
"title": "FRP",
"description": "`Functional Reactive Programming (FRP)` is an approach to programming that combines functional and reactive concepts, mainly used in front-end and server-side development especially in games. FRP helps to deal with dependent changes, effectively handling 'time-varying values'. It is the elegant solution to describe systems where the current state depends on the future or the past state in a clear and efficient way. Its major concepts include streams (sequences of events over time), observers (consumers of values from a stream), and observables (producers of values), which are the heart of the FRP system. Through these characteristics, it manages data flows and propagation of change making software logic more readable and easier to understand.",
"links": []
},
"p0P3ZGq_QTCop0vMwe7P3": {
"title": "Reactive Model",
"description": "The Reactive Model is an approach in server-side game development that positions the server as a responder to requests made by the client. In this model, the server is not running its own threads, but simply reacting to incoming requests from clients. It focuses on asynchronous I/O operations, meaning that the system doesn't stall or wait for data to be written or read. When the client sends a request, the server reacts by performing a specific action, like accepting a network connection or reading data. It is built around the idea of event-driven programming, where logic is coded against events, ideally resulting in highly scalable systems. It's often used in conjunction with non-blocking I/O models, such as Node.js or other event-driven architectures.",
"links": []
},
"l5QTk408Ubagw8XzRAfoZ": {
"title": "Synchrony",
"description": "In a reactive paradigm, \"synchrony\" is a key concept related to data management and interactions among multiple components in a server-side game development context. It refers to the idea that operations or processes are executed 'in sync', meaning that the next operation starts strictly after the previous operation has already finished. In a synchronous communication, for instance, the sender can't start a new communication until the receiver confirmed receiving the last parcel. It's different from \"asynchrony\" where various operations can run concurrently, not waiting for previous operations to finish before moving on. Overall, understanding the concepts of synchrony and asynchrony are crucial for making efficient use of resources in server-side game development, and picking the right approach depends on the specific use case and requirements.",
"links": []
},
"zFx1jjt1hKgCpYHFTzbZZ": {
"title": "Determinism",
"description": "\"Determinism\" in the context of server side game development is a principle that highlights predictability and consistency in the system's output given specific and consistent inputs. It implies that a system will always produce the same outcome if the initial conditions and the sequence of events leading up to the outcome are identical. Determinism is incredibly important and beneficial in multi-player gaming situations like MMORPGs where synchronized and equal gameplay across all user instances is key. This level of predictability helps in offering a fair play environment to all players and in ease of debugging and replaying certain sequences for the developers.",
"links": []
},
"3Eat22rFjUl4eTtGz8u4N": {
"title": "Update Process",
"description": "In the reactive model, the client sends requests to the server, which then processes the request and sends back a response. This model is called 'reactive' because the server only acts or 'reacts' when it receives a request from the client. The \"update process\" plays a vital role in this model. It's the server's responsibility to keep the game world updated and synchronized among all players. This updating process is typically done in a loop that processes all the changes that happen in the game like players actions, NPC movements, in-game events or game physics. It updates the game world and informs the players about the changes. Also, if a player makes changes like moving a character or attacking an enemy, it sends this information to the server adding it to the update loop. The frequency of this updating process is often referred to as 'tick rate'.",
"links": []
},
"LVwGXmZhMewGQy61qwNyu": {
"title": "Reactive Approach",
"description": "In the realm of server-side game development, the reactive approach is an important element when dealing with multithreading. This approach is based on the concept of reacting to changes or events happening in the system rather than calling methods or running operations continuously. It incorporates observables, which are objects that represent a stream of data or a series of events, and observers, which are methods that respond to the events or changes in these observables. Reactive programming is based on the observer pattern and is designed to handle asynchronous data calls and events efficiently. This pattern is particularly relevant in situations with a large amount of data, high level of complexity, or stringent real-time requirements. With this approach, it is also simpler to handle concurrency and to write programs that are efficient, clean, and less prone to errors and callback pyramids.",
"links": []
},
"hhtqvFfTCuVPT0OPu4Y1a": {
"title": "Cloud",
"description": "The **cloud** refers to servers that are accessed over the Internet, and the software and databases that run on those servers. By using cloud technology, data can be accessed from anywhere via the Internet, rather than from a local server or a personal computer. Cloud services are typically provided by different companies, such as Google, Amazon, and Microsoft. There are three main types of cloud computing: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). Examples of the cloud in gaming include multiplayer online games, game streaming and digital distribution platforms. The cloud is also used in game development for testing, development, and distribution of games.",
"links": []
},
"73uoFNGcCALxIuRNbebav": {
"title": "Azure",
"description": "Azure is Microsoft's public cloud computing platform. Azure provides a broad spectrum of cloud services, including those for analytics, storage, and networking. As a server-side game developer, you can use these functionalities to build, deploy, and manage applications and services through Microsoft-managed data centers. Furthermore, Azure supports a wide range of tools and frameworks, including both Microsoft-specific and third-party software. It also offers 4 different forms of cloud computing: infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS), and serverless. Each allows developers to choose the level of control and complexity they wish to maintain over their application and infrastructure.",
"links": []
},
"wD6dUrS-tP2gpCHPghFp5": {
"title": "GCP",
"description": "**Google Cloud Platform (GCP)** is a suite of public cloud computing services offered by Google. It provides a range of services including compute, storage, networking, Big Data, machine learning, and the internet of things (IoT), plus cloud management, security, and developer tools. The core cloud computing products in GCP consist of Google Compute Engine, Google App Engine, Google Container Engine, Google Cloud Storage, and Google Cloud SQL. Google also offers cloud services for source code management, load balancing, security and privacy, and more. The architecture of GCP is built on the same infrastructure that Google uses for its global products such as YouTube, Google Search, and Google Maps.",
"links": []
},
"Rkx2A6oWsddlCTseZlpRU": {
"title": "AWS",
"description": "**Amazon Web Services (AWS)** is a secure cloud services platform offered by Amazon. It provides a broad set of infrastructure services, such as computing power, storage options, networking and databases, delivered on-demand with pay-as-you-go pricing. AWS services assist server side game developers in many tasks such as storing player data, syncing games across devices, and even hosting multiplayer game servers. These services help developers scale their games to a world-wide audience without the need for up-front investments in costly hardware and infrastructure. A popular choice for start-ups and large game development companies alike, AWS has an extensive, feature-rich set of tools that allow developers to deploy, monitor and scale applications quickly.",
"links": []
},
"DOmbRRK_RRPElOuTB7AAK": {
"title": "Serverless",
"description": "**Serverless** is a cloud architecture model where the application developers don't have to provision, scale, and manage servers or runtimes, to build their applications. The name serverless comes from the idea that the tasks traditionally performed by a server are handled elsewhere, abstracting the responsibility of managing servers away from the developer. Developers can write and deploy code without worrying about the underlying infrastructure. A serverless model uses backends as a service (BaaS) and functions as a service (FaaS), providing automatic scaling, patching, and capacity provisioning. Popular examples of serverless providers are AWS Lambda, Google Cloud Functions, and Azure Functions.",
"links": []
},
"XCJvgUSS7-oDR-XGdDY33": {
"title": "Data Clustering",
"description": "`Data Clustering` refers to the process of segregating data into various groups or clusters. These organized subsets of data, or clusters, contain similar data points that exhibit common traits, attributes, or characteristics. Clustering is essentially a type of unsupervised machine learning where the data is unlabeled, and the algorithm identifies similarities to group them together. There are several methods used for data clustering including partitioning methods like K-means, hierarchical methods, density-based methods like DBSCAN, and grid-based methods. These methods differ based on how they form the clusters and the types of data they work best with. Data clustering aids in the organization of large amounts of data, making it easier for developers to handle, understand, and utilize in game development.",
"links": []
},
"yrWiWJMSyTWxDakJbqacu": {
"title": "Apache Spark",
"description": "Apache Spark is an open-source, distributed computing system used for big data processing and analytics. It offers an interface for programming entire clusters with impeccable data parallelism and fault tolerance. With its high-level APIs in Java, Scala, Python and R, it provides a framework for distributed task dispatching, scheduling and basic I/O functionalities. Notable modules include SQL and DataFrames, MLlib for machine learning, GraphX for graph processing, and Structured Streaming for incremental computation and stream processing. Apache Spark can run standalone, on Hadoop, or in the cloud, and is capable of accessing diverse data sources such as HDFS, Apache Cassandra, Apache HBase, and Amazon S3.",
"links": []
},
"k3FJY26SVxdZx4MLLE25h": {
"title": "Containerization",
"description": "Containerization in game development refers to the usage of software like Docker, Kubernetes, or similar tools to encapsulate the game's server-side functionality into a single, deployable package. These units, known as containers, include everything the software needs to run, such as libraries, system tools, code, and runtime. Containers are platform-agnostic, meaning they can work across different operating environments in the same way. This enables developers to create a consistent experience, reduce the risk of software conflicts, and facilitate easier updates and deployment of their games. Unlike Virtual Machines (VMs), containers do not include whole operating systems, which makes them more lightweight and efficient to run. Developers can run multiple containers on the same machine, each handling different aspects of the server-side functionality. Containers can also communicate with each other, enabling more efficient use of resources.",
"links": []
},
"zW_7VLeEHQp8fp_f5N__0": {
"title": "Docker",
"description": "\"Docker\" is an open-source platform that allows developers to automate the deployment, scaling, and management of applications. It uses containerization technologies to wrap up an application with its runtime environment into a container, which can then be run on almost any operating system. Docker containers are lightweight and fast because they do not need the extra load of a hypervisor, but run directly within the host machine's kernel. Additionally, Docker ensures that the application runs seamlessly in any environment by bundling its own software, libraries and system tools. Docker really simplifies the process of managing and deploying services in a distributed environment and breaking down tasks into separate services.",
"links": []
},
"yAf7VDX7dyaT5AdlNnuKD": {
"title": "Docker Compose",
"description": "`Docker Compose` is a tool that allows you to define and manage multiple containers as a single entity. The containers are defined in a `docker-compose.yml` file using a YAML format. This tool is primarily focused on the runtime aspects of your application such as service definitions, configuration, and connections. With `Docker Compose`, you can start, stop, and manage the entire stack of services with a single command. This makes it a very powerful tool for managing multi-container applications. It is also a good method to define a local development environment that mimics your production environment.",
"links": []
},
"lUBUUoETjfADmM4OPtwwX": {
"title": "Kubernetes",
"description": "Kubernetes, often referred to as K8s, is an open-source platform designed to automate deploying, scaling, and operating application containers. It organizes containers into clusters to provide a flexible, powerful foundation for distributed systems. The platform was originally developed by Google, drawing on their long experience with managing containerized applications. It groups an application's containers into logical units for easy management and discovery. Kubernetes offers features like automatic bin packing, horizontal scaling, automated rollouts and rollbacks, and storage orchestration, among many others. It supports a variety of underlying infrastructures, from physical servers to virtual machines and cloud-based deployments, allowing you to run your apps wherever and however you choose.",
"links": []
},
"dkCVwuy8GKeEi3VJar_Zo": {
"title": "AI",
"description": "Artificial Intelligence (AI) in server side game development refers to the use of algorithms and computational procedures to create systems capable of performing tasks that would require human intelligence. Such tasks include learning and adapting to change, recognizing speech, or even making decisions. In game development, AI is often used to give non-player characters (NPCs) their own 'intelligence', making them even more life-like. This could be as simple as the ability to follow a player around in an environment, or as complex as crafting strategies for combat. AI can also be used to generate procedurally or dynamically generated content, creating potentially infinite unique experiences for the player. AI in games is often programmed in a way where it must strike a balance between appearing intelligent and providing an enjoyable experience for the player.",
"links": []
},
"XvvlvDKfYRCcYtTdWohsd": {
"title": "Cloud ML",
"description": "`Cloud Machine Learning` or `Cloud ML` is a branch of Artificial Intelligence that utilizes cloud computing services to provide machine learning capabilities. It enables developers and data scientists to build, train, and deploy machine learning models in a cloud-based environment. Cloud ML platforms usually offer a range of pre-trained models and services for tasks like image recognition, natural language understanding, and predictive analytics. These platforms support popular ML frameworks, such as TensorFlow and PyTorch, which can be used to design custom models. Importantly, Cloud ML abstracts the complex infrastructure management associated with large-scale ML computations providing users with more agile, scalable, and accessible machine learning solutions.",
"links": []
},
"U0RlO_puezQPZP0-iBXgW": {
"title": "Amazon ML",
"description": "Amazon Machine Learning (Amazon ML) is a robust, cloud-based service that makes it easy for developers of all skill levels to use machine learning technology. It provides visualization tools and wizards that guide you through the process of creating machine learning (ML) models without needing to learn complex ML algorithms and technology. With Amazon ML, you can create and train your data models, and then use those models to make predictions. These predictions can be used to implement sophisticated applications, such as user trend detection, sentiment analysis, fraud detection, and much more.",
"links": []
},
"vBqwmlzoT5XVEhV9IeGso": {
"title": "Azure ML",
"description": "Azure ML is a cloud-based service provided by Microsoft for building, training, and deploying machine learning models. It provides a suite of tools including automated machine learning and model management services, bolstering the productivity of data scientists and making complex machine learning tasks more achievable. Azure ML is designed to work with popular data science and machine learning frameworks such as PyTorch, TensorFlow, and scikit-learn. It bestows the capabilities of handling large volumes of data, providing scalability, and offering real-time insights. Furthermore, it supports open-source technologies, making it flexible for a wide array of applications. Azure ML stresses on high-level security and compliance, complying with major global and industry-specific standards. It's a comprehensive tool aimed at accelerating the entire machine learning lifecycle.",
"links": []
},
"jkWvfp4GqckYPQ48GtjlR": {
"title": "Deep Learning",
"description": "Deep Learning is a subset of machine learning that imitates the workings of the human brain in processing data and creating patterns for decision-making. This technique utilizes multiple layers of algorithms (or neural networks) to process information. Deep learning involves training a model using large volumes of data and neural network architectures that contain many layers. A server-side game developer might use deep learning algorithms to create complex AI characters, improve game physics, or even analyze player data. Deep learning can be supervised, semi-supervised or unsupervised and it's extensively applied in various domains such as voice recognition, image recognition, natural language processing, etc. It is a crucial element for many modern AI applications.",
"links": []
},
"iJE9RnKC8QjPnsFeZAbtl": {
"title": "TensorFlow",
"description": "**TensorFlow** is an open-source, end-to-end platform initially developed by Google Brain Team. Focusing on machine learning and equipped to handle deep learning tasks, TensorFlow takes input as a multi-dimensional array also known as a 'tensor'. The framework allows developers to create dataflow graphs. These graphs describe how data moves in a computing unit, be it a machine or a cloud. Within the graph, nodes represent mathematical operations while edges symbolize the tensors. TensorFlow is highly scalable and allows for computations across multiple CPUs or GPUs, making it appropriate for various tasks - be it server-side game development or research.",
"links": []
},
"LTSIfq10qDJMTCnIIyqvb": {
"title": "Pytorch",
"description": "**PyTorch** is an open-source machine learning library developed by Facebook Artificial Intelligence Research team for Python-based computation. This powerful tool emphasizes flexibility and allows users to manipulate Tensor computations with the convenience of deep neural networks built on a tape-based autodifferentiation system. It provides a great platform for implementing deep learning models and is very popular for understanding and expressing dynamic neural networks. PyTorch supports dynamic computational graphs, which means the graph structure can be modified during runtime. This is particularly useful while working with recurrent neural networks. It integrates seamlessly with the python data science stack to leverage the power of libraries such as NumPy.",
"links": []
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,459 @@
{
"HlUUGj3dOZ68t4gIjerXh": {
"title": "Introduction",
"description": "Technical writing involves explaining complex concepts in a simple, easy-to-understand language to a specific audience. This form of writing is commonly utilized in fields such as engineering, computer hardware and software, finance, consumer electronics, and biotechnology. The primary objective of a technical writer is to simplify complicated information and present it in a clear and concise manner. Duties of a technical writer may include creating how-to guides, instruction manuals, FAQ pages, journal articles, and other technical content that can aid the user understanding. The ultimate goal is to enable the user to understand and navigate a new product or concept without difficulty.",
"links": []
},
"ZRGsokU313Ky-anWbWK6q": {
"title": "Who is a Technical Writer?",
"description": "A **Technical Writer** is a professional communicator whose role is focused on creating, updating, and managing technical documentation, instructional manuals, how-to guides, and similar documents. These professionals have the skillset to translate complex technical information into simplified terms that can be easily understood. Technical writers often work closely with software engineers, project managers, system analysts, and other technical experts to gather information. They can be found across a wide range of industries, including IT, engineering, scientific research, medical, and others. The ultimate aim of a technical writer is to enable the end-users, whether they are customers, employees, or any stakeholders, to comprehend and use a product or service effortlessly.",
"links": [
{
"title": "What Is a Technical Writer?",
"url": "https://boffin.education/introduction-to-technical-writing/#2-what-is-a-technical-writer",
"type": "article"
},
{
"title": "A Day in the Life of a Technical Writer",
"url": "https://boffin.education/technical-writing-roles-and-responsibilities/#4-a-day-in-the-life-of-a-technical-writer",
"type": "article"
},
{
"title": "Glossary of Technical Writing Terms: \"Technical Writer\"",
"url": "https://boffin.education/glossary-of-technical-writing-terms/#technical-writer",
"type": "article"
}
]
},
"jl1FsQ5-WGKeFyaILNt_p": {
"title": "What is Technical Writing?",
"description": "Technical writing involves explaining complex concepts in a simple, easy-to-understand language to a specific audience. This form of writing is commonly utilized in fields such as engineering, computer hardware and software, finance, consumer electronics, and biotechnology.\n\nThe primary objective of a technical writer is to simplify complicated information and present it in a clear and concise manner. The duties of a technical writer may include creating how-to guides, instruction manuals, FAQ pages, journal articles, and other technical content that can aid the user's understanding.\n\nTechnical writing prioritizes clear and consistent communication, using straightforward language and maintaining a uniform writing style to prevent confusion. Technical writers often integrate visual aids and leverage documentation tools to achieve these objectives.\n\nThe ultimate goal is to enable the user to understand and navigate a new product or concept without difficulty.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Indeed: What Is Technical Writing?",
"url": "https://www.indeed.com/career-advice/career-development/technical-writing",
"type": "article"
},
{
"title": "TechWhirl: What Is Technical Writing?",
"url": "https://techwhirl.com/what-is-technical-writing/",
"type": "article"
},
{
"title": "Amruta Ranade: What do Technical Writers do?",
"url": "https://www.youtube.com/watch?v=biocrCx5T_k",
"type": "video"
},
{
"title": "Technical Writer HQ: What is Technical Writing?",
"url": "https://www.youtube.com/watch?v=KEI5JzBp2Io",
"type": "video"
}
]
},
"j69erqfosSZMDlmKcnnn0": {
"title": "Role of Technical Writers inOrganizations",
"description": "The role of a **Technical Writer** is primarily to translate complex technical information into simpler language that is easy to understand for a non-technical audience. They design, write, edit, and rewrite technical pieces like operating instructions, FAQs, installation guides, and more. Apart from this, they also gather and disseminate technical information among customers, designers, and manufacturers. Essentially, their job involves communicating technical terminologies and a clear understanding of complex information to those who need it in an easy-to-understand format.",
"links": []
},
"cNeT1dJDfgn0ndPzSxhSL": {
"title": "Forms of Technical Writing",
"description": "These can range from user manuals, how-to guides, white papers, design specifications, and project plans, among others. Each form serves a different purpose and audience. For instance, user manuals are typically directed towards end users, providing step-by-step instructions on how to use a particular product. On the other hand, design specifications target developers or technical teams, detailing how a certain technology or product should be designed or built. These various forms highlight the breadth and diversity of output that a technical writer can create. It's essential for a technical writer to understand the distinctions and appropriate usage of these forms to effectively communicate technical information.",
"links": []
},
"FVxNjbDBxgf6vkZWw1Awt": {
"title": "Growth as a Technical Writer",
"description": "The growth phase in the field of technical writing is intriguing. As a technical writer gains experience and demonstrates excellent work consistently, they are likely to encounter many opportunities for growth. This can include taking on more complex projects, managing teams, or even moving toward strategic roles. Career advancement may involve specializing in specific industries or gaining fluency in cutting-edge tools and formats. Technical writers may also grow by expanding their skill set to encompass related fields like data analysis, UX writing, content management, or project coordination.",
"links": []
},
"8rjUZ9NZPGwVRGmk6Dlyb": {
"title": "Required Skills",
"description": "Here are Core Skills required to become a proficient **Technical Writer**:\n\n1. **Writing Skills**: Excellent grasp over language and grammar, superior spelling ability, and an understanding of punctuation are essential for a technical writer.\n \n2. **Technical Expertise**: They should have a good understanding of complex technical concepts and translate them into understandable content.\n \n3. **Research Skills**: Identifying the needs of the end-user, and the ability to quickly understand new concepts and technologies.\n \n4. **Tools Proficiency**: Technical writers must be proficient in various communication and publishing tools like Microsoft word, Google Docs, Adobe Acrobat, and Photoshop, etc.\n \n5. **Design skills**: Understanding of basics of layout and design is a huge plus for technical writers.\n \n6. **Attention to Detail**: They should be detail-oriented to create clean, high-quality content.\n \n7. **Organization Skills**: They should have the ability to manage multiple projects and consistently meet deadlines.",
"links": []
},
"DubLTESNn3wvEH_bKQZbP": {
"title": "Technology Expertise",
"description": "**Tech Expertise**: The technical expertise of a technical writer mainly refers to their understanding of the technology or the topic they are writing about. It encompasses their ability to efficiently understand complex technical processes, terminologies, and products, and translate them into simpler, more understandable language. This understanding might be based on their formal education in technical disciplines, personal interest, or gained experience in the industry. It's worth noting that tech expertise is not about being a subject matter expert on every technical field, but rather having the skills to comprehend and interpret information accurately. It involves the use of various software tools, Research and Development (R&D), and sometimes coding. This proficiency allows technical writers to create thorough, accurate, user-friendly documents and manuals.",
"links": []
},
"kNIiAJrvrNoOAllUbRtUB": {
"title": "Language Proficiency",
"description": "\"Language Proficiency\" is extensively required in the area of technical writing. This skill involves having an exceptional command over the language that the technical document is being written in. This includes not just general fluency, but also understanding the intricacies of grammar, semantics, syntax, and vocabulary. In particular, a technical writer should be able to explain complex ideas using simple and accessible language. This helps in enhancing the clarity and effectiveness of the technical documents being produced. It's also beneficial to be familiar with the terms and phrasing commonly used in the specific industry or field that the technical documentation pertains to.",
"links": []
},
"7-3tqRUpntoQP4nK_nul5": {
"title": "Written Communication Proficiency",
"description": "Written communication is a critical asset in a technical writer's skill set. This skill is not just about having a good command of grammar and vocabulary, but also the ability to convey complex information in an understandable, clear and concise manner. A proficient technical writer should know how to structure their content appropriately, maintain a consistent tone and voice, and use illustrative examples to make the concepts more relatable for the audience. Accuracy is essential in written communication as technical writing often involves descriptions of intricate processes or use-cases where there is no margin for error. Understanding the nuances of different writing styles and adapting to the intended audience's comprehension level are also a part of effective written communication.",
"links": []
},
"_5xFbl2BHx0f2u9HmSVS8": {
"title": "Tooling",
"description": "In the realm of technical writing, \"tooling\" refers to the various software and applications technical writers utilize to create, manage, and publish high-quality technical documentation. This can include word processors, desktop publishing apps, XML editors, content management systems, and many more. Some popular examples of tools used by technical writers include Microsoft Word, Google Docs, Adobe FrameMaker, MadCap Flare, Markdown, GitHub, and Jira. These tools enhance productivity by allowing for document versioning, enabling collaboration, offering templates for consistent formatting, providing features for managing large amounts of content, and even offering functionality for translating documentation into multiple languages. The choice of tools depends on the specific needs and workflow of the technical writer or the organization they are working for.",
"links": []
},
"jC3ZrpskBqzxiV6SKf4Uf": {
"title": "Publishing Tools",
"description": "When discussing the realm of tooling in technical writing, publishing plays a significant role. It involves the final process of making the documentation accessible to users. There are various tools used for publishing like Adobe FrameMaker, MadCap Flare, Jekyll, etc, which support different formats like PDF, HTML, ePubs, etc. They could also include features for version control, collaboration, and content reuse. This not only makes the content accessible to the users but also ensures that the documentation is kept consistent and up-to-date.",
"links": []
},
"cSZbTOB0FPPOlGzy-MkSi": {
"title": "Plagiarism Checker",
"description": "**Plagiarism** refers to the act of copying someone else's work, ideas, or expressions and presenting them as your own without giving due credit to the original author. This unoriginal practice is seen as theft of intellectual property and can incur serious repercussions in both academic and professional settings. In the case of technical writing, using specialized plagiarism detection softwares is crucial to ensure the originality and authenticity of the content. Some of these detection tools include Turnitin, Grammarly, Copyscape, and many more. They work by cross-referencing your work with a vast database of academic and professional documents to identify any matching phrases that could constitute plagiarism.",
"links": []
},
"Am_ocP3r0HM45LYfMcQxM": {
"title": "Editing Tools",
"description": "### Editing\n\nEditing refers to the process of reviewing and correcting written material to improve accuracy, readability, and fitness for its purpose, and to ensure that it is free of error, omission, inconsistency, and repetition. In the context of technical writing, effective editing is essential for producing high quality content. This involves checking the document for grammatical errors, punctuation errors, and spelling errors. It also includes checking for factual correctness, logical flow, and coherency. There are several tools available for editing such as Grammarly, Hemingway App, and ProWritingAid, among others. These tools aid the technical writer in the editing process by providing features such as grammar checking, spell checking, and feedback on writing style.",
"links": []
},
"ffJyulu9GPB_TDqjeJYyV": {
"title": "Git / Version Control",
"description": "Git is a free and open-source distributed version control system, designed to handle everything from small to very large projects with speed and efficiency. It is easy to learn and has a tiny footprint with lightning-fast performance. Git allows and encourages you to have multiple local branches that can be entirely independent of each other. The creation, merging, and deletion of those lines of development take seconds. It also provides strong support for non-linear development, numerous workflows, and robust features such as strong cryptographic authenticity of history.",
"links": []
},
"TJ1iuzQ9u_WbrllRQkgm_": {
"title": "Markdown",
"description": "Markdown is a lightweight markup language with plain-text-formatting syntax. It was created by John Gruber, with significant contributions from Aaron Swartz, with the goal of allowing people \"to write using an easy-to-read, easy-to-write plain text format\". Key features include automatic production of well-structured, ready-to-publish documents from 'readable' text files. Its syntax includes items like headers (`# Header`), bullet lists (`- item`), italics (`*text*`), bold (`**text**`), links (`[description](url)`) and so forth. Markdown files usually end with `.md` or `.markdown`.",
"links": []
},
"0XWiraeoicNBbaGYQnNZr": {
"title": "Research Tools",
"description": "In the work of a technical writer, **Research Tools** are critical, as they aid in sourcing, verifying, and organizing information needed for creating technical documents. Various specific tools are available, depending on the information you're seeking. For instance, scientific papers may be searched using **Google Scholar** or specialized databases like **PubMed**. **Semantic Scholar** can help find academic papers across many disciplines. For less formal online sources, **Google Alert** can be set up to watch for new information on a specific topic. Further, **Evernote** can be used to compile and manage information from multiple sources. For organizing and evaluating data, tools like **Microsoft Excel**, **Tableau**, or **Google Sheets** can be employed. Please remember that the choice of tool will depend on your subject, the type of information you need, and how you want to manage and present that information.",
"links": []
},
"sdoFe4A3y_-Zp3mlrJ5r8": {
"title": "Blogging Platforms",
"description": "\"Blogging Platforms\" refers to software services that allow users to create, post, and manage blogs online. Some well-known examples of blogging platforms include WordPress, Blogger, Tumblr, and Medium. These platforms often feature user-friendly interfaces and offer various customization tools to suit your blogging needs. WordPress, for instance, offers significant flexibility and a wide range of themes and plugins, while Blogger is known for its reliable Google integration. Tumblr's social sharing functionality makes it a prominent choice among creative bloggers, and Medium is noted for its emphasis on high-quality content and its user-friendly editor. [Dev.to](http://Dev.to), Hashnode and Hackernoon are free, beginner-friendly blogging platforms that cater to developers, and allow them to share ideas with each other. Each platform offers different strengths depending on your particular needs and specialization as a technical writer.",
"links": []
},
"FD-8LQ_g2_O_i2Qwp-Gpv": {
"title": "SEO Tools",
"description": "SEO tools are critical for any technical writer as they help streamline the process of optimizing content for search engines. There is a wide variety of these tools available in the market, some of the most popular ones being Google Analytics, SEMRush, Moz, and Ahrefs. These tools provide different functionalities such as keyword research, backlink analysis, and website audits. They can work as stand-alone tools or be integrated within content management systems for seamless functioning. Remember though, while these tools assist in SEO, effective optimization still largely depends on quality content and strategic planning.",
"links": []
},
"yYLsG2LuPaNUuhXSVev_0": {
"title": "Best Practices",
"description": "As a technical writer, adhering to established best practices helps to ensure the consistency, clarity, and overall quality of your work. Some common best practices include:\n\n* **Always consider the audience**: Write the content with the user's perspective in mind. Make sure the technical jargon, language, and complexity level match your intended readers.\n \n* **Organize the content logically**: Divide the material into sections, subsections, bulleted lists, and tables. Use headlines to help the readers navigate through the content.\n \n* **Use diagrams and images when necessary**: Visual aids can often enhance the understanding of a complex idea or process.\n \n* **Write clear and concise sentences**: Avoid ambiguous information and jargon that the reader may not understand. Always aim for readability.\n \n* **Edit, edit, edit**: Proofread your work, correct grammar and spelling errors, and ensure the information is accurate and current.\n \n\nFollowing these best practices can increase the effectiveness of your technical writing and ensure your audience understands and retains the information easily.",
"links": []
},
"27muFD1Ld1gF6hhIh22sG": {
"title": "Story Telling",
"description": "**Story Telling** is a powerful tool for technical writers. It allows you to communicate complex concepts and information in a more relatable and understandable way. Essentially, it revolves around presenting information as a narrative with a clear beginning, middle, and end. This entails establishing context (beginning), explaining the process or concept (middle), and summarizing the outcome, conclusion, or application of the process or concept (end). Story telling in technical writing can take various forms including business scenarios, case studies, user stories, etc. It is essential to keep your 'story' relevant, realistic, and as concise as possible. Remember, the purpose is not primarily to entertain but to educate and inform your audience while keeping them engaged.",
"links": []
},
"lxSSjgtqJk-PtRp4hARDw": {
"title": "Subtle Selling",
"description": "**Subtle Selling**: This is an approach in technical writing where the writer indirectly promotes or advocates for a particular product, service, or idea. Subtle selling is about providing informative, helpful content without overtly pushing a sale or marketing a product. It often involves highlighting the unique features or aspects of a product or service in the context of solving a problem or addressing a particular need, hence subtly influencing the reader to consider it. It's about clever positioning rather than overt persuasion, emphasizing the value a product or service can provide in a discreet and unobtrusive manner.",
"links": []
},
"Ezz2e4lYLD_bdNNwvsV_y": {
"title": "Content Structure",
"description": "Content structure in technical writing is a crucial aspect that ensures readers can follow through and understand the information seamlessly. It involves organizing content logically, creating outlines, using headings and subheadings, and writing in a linear and clear manner. Furthermore, the structure includes the application of sequences such as chronological orders, step-by-step guides, or flowcharts. The table of contents and index also play a significant role in structure, as they allow readers to navigate quickly to different areas of the document. Additionally, elements such as glossaries help to define complex terms used in the text. Ultimately, a well-structured document creates an excellent user and reading experience.",
"links": []
},
"a1ChwDwztjZBi79y38AGa": {
"title": "Call to Actions",
"description": "Call-to-Actions (CTAs)\n----------------------\n\nCall-to-Actions are critical components in technical writing. They primarily direct readers toward performing specific tasks or activities. Often used in manuals, guidelines, procedures, and any instructive materials, they make the content actionable. CTAs can take several forms such as, \"_Click here_\", \"_Submit a request_\", or \"_Download now_\". They should be concise, clear, and direct. Incorporating compelling verbs can make the CTA more effective. Always remember to place CTAs where readers can easily see them, and it's recommended to use a contrasting color, if possible, for a standalone CTA button to make it more noticeable.",
"links": []
},
"8qSL2esjsA3YYuB4d7B9z": {
"title": "References",
"description": "References are an essential part of any technical document. They provide a means to verify the information you have given, adding credibility to your work. Cite sources from where you gather your data, facts or figures. According to the style of writing you are using, you may be required to provide in-text citations or footnotes. Also, there are various formats for creating a reference list or bibliography at the end of your document. Examples of some commonly used formats include APA, MLA, and Chicago. Always make sure that your references are relevant, current, and correctly cited to avoid plagiarism. The number of references may vary based on the type, length, and complexity of the technical document.",
"links": []
},
"WmOvQYlnedX0QgC5Adeen": {
"title": "Crafting Great Titles",
"description": "Creating great titles is an essential best practice for technical writers. Titles should be engaging, accurate, clear, concise, and should provide a quick summary of what your article or document is all about. They should include keywords relevant to your content, but avoid jargon that could alienate your readers. Use active verbs instead of passive wherever possible to give your titles more impact. Also, make sure that your title doesn't promise something that the content doesn't deliver. Consider your audience and what would be most valuable and informative to them. Finally, always review and revise your titles as needed.",
"links": []
},
"7FGMPztd6ouvqemcGhIol": {
"title": "Content Objectives & Intent",
"description": "Content objectives refer to the identified goals or targets that a technical writer aims to fulfill with a piece of content. Often, these goals are aligned with the overall project aims and may include educating users, providing clear instructions, or explaining a specific topic in a digestible format. It is important for technical writers to define their content objectives clearly, in order to tailor their writing approach, style, and structure accordingly. Moreover, content objectives serve as a guide in creating, reviewing, and revising the content to ensure that it meets the intended purpose. Therefore, content objectives serve as the underlying basis, which significantly influences the quality of the final content output.",
"links": []
},
"UuV51vM2JT_LFFXORSwru": {
"title": "User Persona",
"description": "User Persona is a significant and efficient tool used by technical writers to address their audience effectively. It is a fictional character, a typical member of the target audience who is characterized by behavior patterns, goals, skills, attitudes, etc. The persona is built based on the data about real users. It serves to help technical writers visualize the audience, understand their needs and expectations, ensure that the content is clearly understood, and enhance the overall readability. User Personas allow writers to design effective communication strategies and create more user-centered documentation, making information easy to find, understand, and use.",
"links": []
},
"cnEVPsqZqs9ZdyqmOuLGA": {
"title": "Writing Style Guides",
"description": "As a technical writer, creating a **writing guide** is essential to ensure consistency and quality in all documents you create. A writing guide can entail a set of rules about the style, tone, terminology, syntax, punctuation, and lexicon in your text. This should aid in maintaining a uniform approach to your writing, which is vital when dealing with technical information. Your writing guide will depend on the project requirements and preferences of your target audience, and it needs to be easily understood and followed by anyone involved in the project. Additionally, your guide may also include procedures on how to incorporate images, links, or other similar elements in your text. Importantly, make sure to keep updating your guide as you gain more knowledge and skills in technical writing.",
"links": []
},
"O-dZEkmU0tP3dUIUPM6YJ": {
"title": "Content Research",
"description": "`Content research` involves a systematic investigation into a specific subject matter in order to gather reliable and relevant information. This process is crucial for a technical writer as it helps in generating valuable content that's accurate, informative, and engaging. It goes beyond basic internet search; it includes reading technical documents, interviewing experts, conducting surveys, and analyzing data. Content research should be conducted in a strategic manner, taking into consideration the purpose of the information, the target audience, and the key message to be conveyed. A well-executed content research process helps technical writers produce high-quality content that's both clear and concise.",
"links": []
},
"SX4vL_JEHrwqHdThyqKKO": {
"title": "Topic Score",
"description": "`Topic Score` is a computational study that calculates how well a particular content piece covers a specified topic. Usually measured on a scale of 0 to 100, it uses different metrics such as keyword usage, semantic relevance, depth of topic coverage, among others. The higher the topic score, the more comprehensively your content is considered to cover the targeted topic. It can be beneficial for content strategists and technical writers to focus on target keywords in order to improve overall content quality and boost SEO performance.",
"links": []
},
"JtFLW5WwH5Ixmnb0qikia": {
"title": "Keyword Volume",
"description": "`Keyword volume`, also referred to as `search volume` or `keyword search volume`, is a metric that reflects the number of times a specific keyword was searched for in a search engine (like Google) within a specified timeframe. This data is typically monthly but can be analyzed over different time periods. A higher keyword volume means that more people are searching for that particular term. SEO tools like Google Keyword Planner, SEMrush, or Ahrefs can be used to find the volume of keywords. Note that keyword volume doesn't assess the quality of a keyword, it only measures popularity.",
"links": []
},
"QMehC1tmWPVWaTsiV9sFC": {
"title": "Communities & Forums",
"description": "Forums can be essential sources of information for a technical writer during the content research process. These are online platforms where people discuss different types of subjects. Often, they are used to ask questions, answer queries, or share ideas about a particular topic. Examples of forums include \"Reddit\", \"Quora\", or specialized tech forums like \"Stack Exchange\". These sites allow a technical writer to learn about common issues, troubleshoot problems, comprehend user experiences, and stay updated with the latest trends or changes in a specific field. Depending on the industry or field you're writing for, there are different niche forums you can explore. Always make sure to cross-check the information you find on forums as it can vary in reliability.",
"links": []
},
"IZqyEqkrBoEfLBwIQwJl6": {
"title": "Search Trends",
"description": "\"Search Trends\" refers to the analysis of the patterns, fluctuations, and shifts in the popularity of specific search terms over a given period. This data-driven approach can be leveraged to identify the trending topics or keywords among users, often within specific regions and contexts. Google Trends is a common platform for examining these trends, providing ample insights into the most recent or popular search queries. Utilizing search trends can allow technical writers to keep their content resonating with their audience by incorporating the latest or topical keywords, resulting in improved content visibility and relevancy.",
"links": []
},
"xFMsHYYxC0hLueY9xxART": {
"title": "Support Request Evaluation",
"description": "`Request Evaluation` in the context of a technical writer refers to the process of assessing or defining the requirements and the scope of a given writing project. It includes assessing information sources, understanding the objectives of the document, defining the target audience, understanding regulatory specifications if any, and considering the timelines and deadlines. This stage is critical in giving the writer a comprehensive understanding of what is expected from the project, thereby equipping them to structure an efficient content strategy.",
"links": []
},
"xV8mox1WnSbl2jAGqQpeg": {
"title": "Types of Technical Content",
"description": "There are several types of technical writing, each focused on different aspects. **End-user documentation writers** specialize in creating materials for product users (like user manuals and quick start guides). **Traditional technical writers** draft articles, FAQs, guides, and other content primarily for websites. **API/SDK writers** are responsible for creating and maintaining documentation for application programming interfaces (Software Development Kits), which requires knowledge of multiple programming languages. **Medical writers** work in the medical sector and must understand medical concepts. **Grant and proposal writers** are essential for organizations obtaining funds for projects. Note that these are not all mutually exclusive; many technical writers span multiple categories.",
"links": []
},
"d9mTdwqx6QWKYO5PA_rDH": {
"title": "Product Content",
"description": "**Product Content** is a significant type of technical writing which pertains to any information about a product, usable for consumer guidance. This includes user manuals, installation guides, frequently asked questions (FAQs), product descriptions, and software application interfaces. Product content not only involves detailing how a product works but also providing information about dealing with potential issues. The aim of this type of technical writing is to simplify complex concepts and instructions relevant to the product to help users understand its functionalities as easily as possible. This area of technical writing requires accuracy, clarity, simplicity, and thorough research about the product.",
"links": []
},
"UFuMiHtWq1M8dS8547lOp": {
"title": "General Product Prose",
"description": "**Product Prose** is a form of technical writing focused on explaining how a particular product works, its features, and how it can be beneficial to users. This type of technical writing usually takes the form of user guides, product manuals, and online help systems. It's generally written in a simple, understandable language and employs diagrams, images, and screenshots for better understanding. The aim of product prose is to assist users in utilizing the product effectively and resolving any issues that may arise during its use. A product prose writer must possess an in-depth understanding of the product, strong communication skills, and the ability to write clear, concise instructions.",
"links": []
},
"C-eVVtF6Yabp2a6XvMeh_": {
"title": "How-to Guides",
"description": "\"How to Guides\" is a type of technical writing that prioritizes instructive, step-by-step information. Typically, these guides are designed to help the reader understand how to perform a specific task or process. They may depend on clear written instructions, accompanied by visuals like diagrams or screenshots. This format ensures in-depth accuracy and demonstrates each phase of the process explicitly. Examples of \"how to guides\" can range from software user manuals, product assembly instructions, tutorial blog posts, to recipe instructions. These guides thrive on simplicity, targeting a wide audience including both professionals and novices.",
"links": []
},
"e8oNoXw1KLY4jDzojIXyk": {
"title": "Developer Docs",
"description": "Developer docs, also known as developer documentation or API documentation, is a form of technical writing specifically aimed towards software developers. This type of documentation usually includes technical specifications of APIs, code comments, software design and architecture, and other detailed technical descriptions involved in software development. Developer docs are essential tools for developers as they provide the necessary guidelines, standards, and examples for using and integrating specific software, libraries, or APIs. The structure and comprehensiveness of developer docs can vary greatly depending on the complexity of the software it describes, but the main purpose is to help developers understand, utilize, and contribute to the software efficiently.",
"links": []
},
"FgyBWRtE34VNqBt_5QhAf": {
"title": "User Goals",
"description": "User Goals\n----------\n\nUser goals pertain to the actions that a user wants to perform or the outcomes they hope to achieve with a certain product or service. For technical writers in the context of developer docs, understanding user goals is critical as it drives the creation of accurate, relevant, and effective documentation. Whether it's installing a software, using an API, debugging an issue, or learning advanced functionalities, these goals should guide all aspects of document planning and writing. It is essential to isolate these goals through user feedback, surveys, or usability testing to produce documentation that improves user-product interaction and problem-solving processes, making users more self-sufficient. From a developer's perspective, user goals may involve tasks related to code implementation, product integration, problem troubleshooting, and more.",
"links": []
},
"2pNW7wDGih_m73lhGZRg6": {
"title": "Developer Journey",
"description": "Developer Journey\n-----------------\n\nThe term \"developer journey\" usually refers to the full spectrum of experiences a developer goes through - from learning about a system or tool for the first time, to getting set up, to building or integrating applications with it. This journey typically involves a series of phases including initial discovery, setup and installation, first use, ongoing development, troubleshooting and optimisation. Developer docs play an integral role in this journey, providing necessary instruction and guidance at each step. Recognising key stages in the developer journey can help guide the design and organisation of developer docs, ensuring they deliver pertinent, useful content that enhances the overall developer experience.",
"links": []
},
"jYhfx6RETFgDulyNqdTBy": {
"title": "Docs Structure",
"description": "The **documentation structure** refers to the arrangement and organization of information within the documentation. It should offer an intuitive and logical user navigation to facilitate quick comprehension and locate vital information effortlessly. The structure usually includes sections such as **Overview**, explaining the product and its issues it solves. **Getting Started** or **Quick Start Guide** offers initial information about using a product right away. **Tutorials** provide a step-by-step guide to completing a particular task. **How-to guides** solve a problem or accomplish specific user goals. **Concept guides** offer deeper understanding about the product's functionality while **API/SDK Documentation** contains code-based information. Lastly, **Reference Manuals** or **User guides** provide comprehensive details of the products functionality. The structure may vary depending on the type of product/service.",
"links": []
},
"z5_73Q7dWbBd4m_OrdZlH": {
"title": "API Reference",
"description": "API References are comprehensive guides designed to understand the details of the API. Usually, they include information such as endpoints, request examples, response types and examples, and error codes. API References help developers learn the specifics of your APIs endpoints and understand how to successfully integrate the API into their software.\n\n **API References**\n API References offer in-depth information about the functionalities of APIs. Details such as `endpoints`, `request examples`, `response types`, `response examples`, and `error codes` are thoroughly enumerated. They are made to assist developers in understanding the intricate workings of the API, allowing them to incorporate the API seamlessly into their software.",
"links": []
},
"iBBeZopD8SNo7sWTohMim": {
"title": "Docs Generation Tools",
"description": "API documentation generation tools are software applications that create API documentation directly from the source code. This streamlines the process for developers and also ensures that the documentation stays updated with the code changes. Examples of these tools include Doxygen, Sphinx, Javadoc, Swagger UI, and Slate. Doxygen works with several programming languages including C++, Python, and Java. Sphinx is often used for Python. Javadoc is specifically for Java code. Swagger UI lets you visually interact with your APIs resources without having any of the implementation logic in place. Slate generates static HTML that looks great, is responsive, and can be easily hosted on sites like Github.",
"links": []
},
"co-35BsWMrD6PXohpFqba": {
"title": "API Definitions",
"description": "API stands for Application Programming Interface. Essentially, it's a set of rules and protocols for building and integrating application software. APIs allow different software programs to communicate with each other, acting as a bridge between them. They define the kinds of calls or requests that can be made between applications, how to make them, the data formats that should be used, and the conventions to follow. APIs can be used for web-based services, operating systems, databases, or software libraries. They are designed to provide a consistent experience, simplify programming, and support modularity and scalability. APIs often come in the form of a library that includes specifications for routines, data structures, object classes, and protocols used to communicate between the consumer and the provider of the API.",
"links": []
},
"e_bsYrZ0eQqduURg2ybX4": {
"title": "Help Content",
"description": "\"Help Content\" refers to a variety of resources specifically designed to provide users with detailed information, assistance, and troubleshooting advice for software products, hardware devices, or complex services. This includes guides, FAQs, how-to articles, and video tutorials. Help content should be easily accessible, clear, concise, and focused on helping the end-user to perform specific tasks effectively or resolve issues independently. The complexity and depth of the help content may vary based on the target audience's technical expertise and familiarity with the product or service.",
"links": []
},
"8fJcJi96Ige6z2PBuTquC": {
"title": "Troubleshooting",
"description": "Troubleshooting is a vital aspect of help content where the technical writer provides solutions to potential problems end-users might encounter while using a product or a service. Typically formatted as a step-by-step guide, troubleshooting guides arent necessarily there to fix the issue immediately but to identify what course of action to take in case of certain problems. Clear, precise, and easy-to-follow, these guides should cover common software issues, hardware malfunctions, or system errors, significantly improving user experience and reducing the need for support service contacts.",
"links": []
},
"7w1SjK-LV9SBZJ673eAUd": {
"title": "Developer Support",
"description": "\"Support content\" is another critical aspect of technical writing. It is the material that assists users in troubleshooting issues, understanding complex topics, or learning how to use a product or service independently. An integral part of user assistance, support content often takes the form of FAQs, tutorial articles, video demonstrations, manuals, or help guides. It caters to the end-users' immediate and long-term needs, helping them navigate and maximize the use of a product or service. For example, if a user encounters a problem using a software, instead of reaching out to technical support, they might refer to support content, such as a how-to guide or an instructional video, to resolve the issue independently. Clear, easy-to-follow, and accessible support content significantly enhances user experience and satisfaction.",
"links": []
},
"How-4Re1NhxPLDoshUM-G": {
"title": "Platform Support",
"description": "The **Support Manual** is a comprehensive document that details the use and maintenance of a product or service. It's intended to guide users while troubleshooting or strategizing for optimal use. Inside a support manual, you'll often find a product or service overview, step-by-step instructions for various procedures, a troubleshooting section to resolve common issues, and a list of contacts for more in-depth support. Each part is written clearly and concisely, with simplified language and visuals when necessary, to ensure that users of varying levels of expertise can effectively understand and apply the guidelines.",
"links": []
},
"mJ1s5-SGd_tj8y0LLZxYg": {
"title": "Technical Content Marketing",
"description": "`Marketing` is a business strategy which involves identifying customer needs and determining how best to meet those needs. In other words, it is about ensuring that a business or product is positioned in such a way that it will attract the desired audience, encouraging them to buy in. This strategy comprises multiple aspects including `market research`, `branding`, `product development`, `sales`, `promotion`, and `public relations`. Marketers use these tactics to create a company image, build customer relationships, attract potential customers and retain existing ones. The ultimate aim of marketing is to boost sales and help the business grow.",
"links": []
},
"O1apL6I_g9DQl8VbL3X4W": {
"title": "ICP & Buyer Persona",
"description": "The **ICP (Ideal Customer Profile)** and **Buyer Persona** are key concepts in marketing and sales. The **ICP** refers to a hypothetical company which perfectly meets the selling organization's product/service. It's a detailed description of their ideal target company, taking into account factors such as industry, size, budget, pain points, needs, and challenges. On the other hand, a **Buyer Persona** is a semi-fictional representation of your ideal customer, often based on market research and real data about existing customers. While ICP targets companies as a whole, a buyer persona focuses on individuals, giving insights into customer behaviors, goals, skills, attitudes, and demographic information. Both constructs help tailor marketing efforts to attract the right audience and convert them into customers.",
"links": []
},
"EhhKxYPtoLztZXBXl3ZGl": {
"title": "Buyer Journey & Content Funnel",
"description": "The **Buyer Journey** refers to the process a customer goes through from the moment they become aware of a need or desire until the point of purchase. It is often categorized into three main stages: Awareness, Consideration, and Decision. In the _Awareness_ stage, the customer realizes they have a problem or need. During the _Consideration_ stage, they evaluate different options to satisfy that need. Finally, in the _Decision_ stage, they choose a specific solution. Understanding the buyer journey is instrumental for businesses, as it helps them tailor their marketing strategies to the right audience at the right time.",
"links": []
},
"-IBL9S4DelIi07w_fmrX3": {
"title": "Content SEO",
"description": "\"SEO\" stands for \"Search Engine Optimization\". It is a digital marketing strategy focused on boosting the online visibility of a website or a web page in a search engine's unpaid results. Typically, the higher ranked on the search results page or more frequently a site appears in the search results list, the more visitors it will receive from the search engine's users. SEO tactics can target various types of search like image search, local search, video search, academic search, news search and industry-specific vertical search engines. It involves a range of activities such as keyword research and optimization, link building, and content creation, geared towards making a site more attractive to search engines. Beyond assisting with visibility, SEO also helps to improve the user experience and usability of a website.",
"links": []
},
"UphVii3y4T_PkRMqFJ4r_": {
"title": "Backlinking",
"description": "Backlinking, often referred as \"inbound links\" or \"incoming links\", is a method used in search engine optimization (SEO) where other websites link to your content. Backlinks are significant indicators of content's relevance, quality, and credibility to search engines. Achieving backlinks can be a result of great content naturally earning shares, or a strategic move of reaching out to relevant websites, guest posting, or engaging in content promotion. The more high-quality backlinks your website obtains, the more likely it is to rank well in search engine results. However, it's also crucial to consider where your backlinks originate from, as links from spam or low-quality websites can potentially harm your ranking. In addition, Google values various backlink parameters like anchor text distribution, dofollow and nofollow ratio, and link acquisition rate while evaluating a website.",
"links": []
},
"eAioe6b7w8pV2Dvawl_fw": {
"title": "Short-tail Keywords",
"description": "\"Short Tail Keywords\" are concise search phrases, typically containing one or two words. They bear a broad search intent due to their general nature and high search volume. An example might be a keyword as simple as 'Shoes'. It poses an immense search intent possibility ranging from the need to buy shoes to finding shoe repair services. Short tail keywords are incredibly competitive in SEO, often dominated by large and well-established corporations, making it harder for smaller businesses or new websites to rank for these terms.",
"links": []
},
"2LAvq7W11WMIubSprlK_l": {
"title": "Long-Tail Keywords",
"description": "Long Tail Keywords are more specific keyword phrases usually three to four words long that your audience might be searching for when they're closer to needing your products or services. They're a bit counter-intuitive, at first, but they can be incredibly useful if you understand their potential. With long-tail keywords, you can reach a more targeted audience that is typically further along in the buying cycle. They are less competitive than more common \"head\" keywords, and often have a higher conversion rate because they can better match with the specific services or products your business offers.",
"links": []
},
"IA6TuXmOZr_-Y3HLHqxp0": {
"title": "SEO Keywords",
"description": "\"SEO Keywords\" are the words and phrases in your web content that allow people to find your site via search engines such as Google. When used effectively, they can dramatically increase the visibility of your content, making it easier for those who are looking for information on your topic to find you. Used in titles, subheadings, meta descriptions, image descriptions, URL structures, and throughout the webinar, these keywords make it evident what the content is about. For maximizing effectivity, the SEO Keyword should align closely with the content topic, be relevant to your target audience, and be phrases that people commonly search for. An important aspect to note is that keyword stuffing, the practice of overloading content with keywords in an unnatural manner, is heavily penalized by search engines. Keywords usage should be strategic and the content should always prioritize providing value to the reader.",
"links": []
},
"5dnZe0oCIzb5qGwgI6pwH": {
"title": "Top-funnel Content",
"description": "\"Top funnel\" refers to the awareness stage of a customer's journey, where they first come into contact with a business or product. In this stage, they become aware of a problem they have and begin to search for information or solutions. Content at this stage aims to capture the attention and interest of potential customers by offering solutions or valuable information that relates to their problem. This content is typically broad and informative, rather than product-specific. The aim is to inform and educate the audience, while establishing trust and brand authority.",
"links": []
},
"wBDjGa2PgdmeXxHnILFjY": {
"title": "Pillar Content",
"description": "\"Pillar content\" is a comprehensive piece of content on a specific topic or theme that can be broken down into many smaller related sections. This could range from an extensive blog post, to an e-book or a guide. The main intention of creating pillar content is to share highly valuable and in-depth information about a particular subject. It forms the core or the 'pillar' of your content strategy. Supporting contents or 'cluster contents', which are essentially various sub-topics related to the pillar content, link back to this main pillar, creating a content cluster. These cluster content pieces can be blog posts, podcasts, infographics, or videos, etc., which keep your audience engaged and drives them back to your pillar content. Pillar content not only positions you as an authority in your field but also improves your SEO rankings.",
"links": []
},
"7S2lymeBZSMBZSsmei7us": {
"title": "Awareness Blog Posts",
"description": "\"Awareness blogs\" is a commonly used term in digital marketing, particularly concerning \"top funnel\" strategies. As the phrase implies, these blogs are designed to create, increase, or maintain awareness of a particular topic, issue, or brand. These articles typically contain knowledgeable content that highlights key information and facts, often aiming to educate the reader and provide value. The goal isn't to hard sell a product or service, but rather to softly introduce what the business, product, or service is about. As a technical writer, you may be asked to write these types of posts to raise awareness of a brand, product, service, or concept, aiming at attracting potential customers and maintaining the engagement of existing ones.",
"links": []
},
"HoNQSWy82ybT0YmejCzRb": {
"title": "Research Reports",
"description": "Research reports are comprehensive documents that encompass a detailed study, investigation, or analysis carried out on a particular subject. They are used to understand a specific research problem by collecting and presenting sufficient evidence to provide solutions. These reports can be prepared by organisations, research institutions, or individuals in the field of study. They are used to understand industry trends, demographic data, market activity, and competition. They can also be used to analyze a hypothesis, prove a point, or provide insightful conclusions for a particular issue or topic. Research reports are essential resources for technical writers as they provide the necessary background and context to communicate complex technical information effectively.",
"links": []
},
"Q2KD70IKwBXAH3UQgeZpp": {
"title": "Mid-funnel Content",
"description": "\"Mid Funnel\" refers to the phase in the marketing funnel where the consumer has moved beyond initial awareness and is now considering various options. At this stage, potential buyers are evaluating the information and comparing solutions. It is the job of a technical writer to provide content, such as case studies, webinars, whitepapers, demonstrative videos, etc., that helps guide the consumer towards choosing their solution. Technical writers must provide accurate information, uphold the brand's integrity, and position the product or service as a solution that meets the potential customer's needs effectively.",
"links": []
},
"XDX2QxMUkUok2fcS3tFki": {
"title": "Generic Gated Content",
"description": "\"Generic Gated\" refers to the type of content, usually informative or educational, that requires a user to provide certain information, like an email address, before gaining access to it. It's a strategy frequently used by businesses to generate leads. This can include a range of content, such as white papers, ebooks, webinars, or research reports. This strategy helps businesses capture the contact information of potential customers who scale through the top of the funnel content and have shown interest in the mid funnel \"Generic Gated\" content. These potential customers are individuals who could likely convert to customers, making them valuable leads.",
"links": []
},
"Xa7yBWcbP2aPs4u0C4cLJ": {
"title": "White-papers",
"description": "White papers are authoritative reports or guides that help readers comprehend an issue, solve a problem, or make a decision. As a technical writer, crafting white papers comprise primarily of intricately marrying data with insightful commentary. These documents are usually more detailed and lengthier than blogs or articles, often extending to multiple pages. They have a formal tone, due to their informational and problem-solving nature, and they may include graphs, charts, or other visual aids to help explain the information presented, along with a detailed methodology and analysis.",
"links": []
},
"5zQpravkqwafvwXVOuNPX": {
"title": "eBook",
"description": "`Ebooks` are longer-form content that allows a business or individual to delve deeper into a specific subject matter. They typically range from 10 to 100 pages and offer more comprehensive content than a blog post or an infographic. An ebook might consist of a multitude of different components, like a table of contents, chapters, headers, body content, and images. Despite their length, they should be designed for easy reading, considering they are usually downloaded and read on a customers own time. They work especially well for technical subjects that need more in-depth explanations, diagrams, or step-by-step guides for understanding the topic effectively. Because they are more substantial, they are usually gated - this means that the reader would need to provide their contact details or other information to access the download link.",
"links": []
},
"vo1udIIRpxNZCpA3g32F3": {
"title": "Bottom-funnel Content",
"description": "\"Bottom funnel\" refers to the final stage in the marketing funnel where potential customers are ready to make a purchase. This phase typically includes actions like negotiations, sales calls, and the final transaction. For a technical writer, understanding the \"bottom funnel\" can be crucial as it could influence the type of technical content they create. For instance, they might need to create in-depth product guides, FAQs, or troubleshooting articles that potential customers could use during the decision-making process. The main goal during the \"bottom funnel\" stage is to convince the potential customer to finalize their purchase and become an actual customer.",
"links": []
},
"2wjRA_pQ9cCG9Ww994FEM": {
"title": "Comparative Posts",
"description": "\"Comparative posts\" are articles that focus on comparing different products, services, or tools. In these posts, the technical writer analyzes each item's features, application, and usability, sometimes even their prices, to help clients make informed decisions. It's imperative to note, comparative posts don't just pinpoint 'which is better?'. Instead, they delve deep into the specifics of why and how an aspect of a product or service outshines the other. This kind of technical write-up is typically unbiased, comprehensive, and objective to maintain credibility and usefulness.",
"links": []
},
"K459CcDrcPMJCimIcCzM6": {
"title": "Tutorials",
"description": "`Tutorials` fall under the bottom-funnel content in technical writing. They are usually step-by-step guides designed to help users achieve a specific task using a software, hardware, or system. Tutorials can take various forms, including written step-by-step instructions, annotated screenshots, videos, or even interactive modules where users can practice what they are learning in real-time. They are more hands-on and practical, often tackling real-world scenarios to ensure that users can transfer what they learn directly to their context. Tutorials are usually concise, clear and orientated towards specific tasks, this makes them accessible and user-friendly for people with varying levels of expertise.",
"links": []
},
"-GZXLc9RjY6eWkKC1K_Rg": {
"title": "Release Notes / Product Announcements",
"description": "Release notes, often a part of software documentation, are brief, high-level summaries provided to the users during a new release of the product. They contain vital information about the updates, including new features, enhancements, bug fixes, and often known issues of the released software version. Each release note is associated with a specific software version and aids the users in understanding what changes or improvements to expect in that particular release. An effective release note will discuss new features or enhancements in a user-focused manner, identify any action required by the user, highlight known issues and workarounds, and contain links to more detailed information if necessary. It empowers users to use the software more effectively and troubleshoot potential issues.",
"links": []
},
"W44q1iEj7RKM55-9jabMJ": {
"title": "Customer Case-Studies",
"description": "\"Case Studies\" are in-depth analyses often used by technical writers. They offer a detailed investigation into a specific subject, typically presenting real-world applications or scenarios. By employing a systematic approach, case studies can provide valuable insights which might not be achieved with other methods. They may contain extensive research, including interviews, observations, and data collection for quantitative and qualitative assessment. Case studies can encompass unique perspectives or complex matters, offering a rich understanding of the subject matter. They are often used in scientific, academic, and business contexts.",
"links": []
},
"pgrKfp1trcIxhDdvLk95g": {
"title": "Frequently Asked Questions",
"description": "\"FAQs\" stands for \"Frequently Asked Questions\". This is a crucial part of any technical document or user guide that compiles a list of common questions (with their respective answers) that users might have about a particular product, service, or topic. Good FAQs are clear, concise, and organized in a logical way. Typically, they are updated regularly based on user queries and feedback to remain helpful and relevant. FAQs can include instructions to resolve common user problems, terms and definitions, links to related resources, and other information useful for understanding and using the product or service effectively.",
"links": []
},
"tAFenZA0MFhMPE5cevNuD": {
"title": "Technical Website Copy",
"description": "\"Web copy\" refers to all the text content that appears on a website. This includes everything from the headlines, subheadlines, body content, call-to-action statements, product descriptions to all the metadata like the title tags and meta descriptions. The primary purpose of web copy is to communicate the site's purpose or value proposition to its visitors and motivate them to take a certain action—be it make a purchase, subscribe to a newsletter, etc. It's a critical component in search engine optimization (SEO) as search engines rank websites based on the quality and relevance of the website's copy to user searches. Markdown, a lightweight markup language, can be used to write web copy; it allows writers to format text (like headers, lists, and links) in plain text which will then be converted into HTML for web display.",
"links": []
},
"XyFEYDJvJpGZ7qSdoSZeI": {
"title": "Content Optimization",
"description": "\"Content Optimization\" is a vital technique in digital writing, focusing on making your content more appealing and useful to your target audience. It involves several strategies such as keyword usage, meta-tag optimization, using relevant links and references, maintaining proper content length, utilizing images and infographics effectively, and ensuring a mobile-friendly layout. Also, optimization of your content for search engines (SEO) is vital, enabling your content to rank higher in search rankings. However, it's not just about SEO; attention must be given to the readability, clarity, and overall user experience. The aim is to both engage human readership and satisfy search engine algorithms. Remember, content optimization isn't a one-time process but requires regular updates and review for achieving consistent advantages.",
"links": []
},
"TbSBCITdLswhVB82fErTP": {
"title": "Content Analysis",
"description": "Content Analysis is a research methodology used by technical writers to interpret and quantify textual data. It involves a systematic process of coding and identifying themes or patterns within a body of text from different sources such as books, blogs, articles, or other document types. The primary goal is to provide a subjectively interpreted, yet valid and replicatable, inference from the data. This technique helps decipher whether the content in question conveys the desired communication effectively or if there are areas that require improvement. For example, you may conduct a content analysis to measure the user-friendliness of a software manual or the clarity and comprehensibility of an instructional guide.",
"links": []
},
"qpOfqbgLy5TzlNQEyt6DG": {
"title": "Link Shorteners / Tracking",
"description": "URL shorteners, as the name suggests, are tools that allow you to shorten the length of any given URL. These can be extremely handy, especially in situations where you're dealing with very long and complex URLs with several parameters. A few examples of these tools include [Bit.ly](http://Bit.ly), TinyURL, and Google URL Shortener (now defunct, replaced by Firebase Dynamic Links). They work by creating a unique short link for your long URL, and then redirecting anyone who clicks on it to the original link. This simplifies the URL and makes it easier to share with others, either verbally or digitally. While these tools are straightforward to use, it's always a good idea to familiarize yourself with how they work and any associated privacy or security implications. Markdown is not particularly required for URL shorteners as they take any kind of link, regardless of the content.",
"links": []
},
"hlhBgI3SvU3tMtNaHtu8k": {
"title": "Platform Tracking and Metrics",
"description": "`Platform tracking` in the context of technical writing refers to the process of monitoring and analyzing how users interact with a particular content on different platforms. It involves tracking user behavior, content read, the devices used, operating systems, geographical location, time spent, and more. This data helps understand how effectively the content serves its purpose across various platforms. It's important to note that platform tracking should always respect user privacy and data protection regulations.",
"links": []
},
"UiXn-CnPcLWAflKJzaJ2a": {
"title": "Conversion Tracking",
"description": "`Conversion Tracking` is a powerful tool in online marketing and business analytics. It allows you to identify how well your campaign, ads, prompts, or any other initiative is working by tracking how users interact and convert on your site or app. `Conversion` can be actions such as signing up for a newsletter, downloading a file, making a purchase, or any other key performance indicator (KPI) for your project. Essentially, `Conversion Tracking` involves placing a piece of code, often known as a pixel, on your website or app. Once a user performs an action that you've defined as a 'conversion', this pixel is triggered and records the action. By implementing conversion tracking across different digital platforms, you can effectively decode user behavior, and use these insights to optimize your ongoing and future campaigns for better performance.",
"links": []
},
"JgdrXG7MX1gGuNG9uyubA": {
"title": "Content Aging & Timelines",
"description": "`Content Aging` refers to the natural process where the information or data presented becomes outdated or irrelevant over time. This typically happens in rapidly evolving industries or topics, where new developments or advancements regularly occur. As a technical writer, it's crucial to regularly review and update your content to ensure its accuracy and relevance. Ignored, aged content can lead to misinformation, confusion, and loss of trust among your readers. Therefore, a systematic approach to manage content aging, like implementing a review cycle or updating schedule, is an integral part of content management strategy.",
"links": []
},
"mrqBxsNRl1CQEKtuYSy9F": {
"title": "Content Distribution",
"description": "Content distribution refers to the process of sharing, publishing, or disseminating content to your audience through various mediums. These mediums can include different channels like social media platforms (Facebook, Twitter, LinkedIn, etc.), email newsletters, blogs, podcasts, websites, or even offline venues like magazines and newspapers. The nature of content being distributed can range from blog posts, articles, videos, infographics, to podcasts. The aim of content distribution is to make your content accessible to as many relevant audiences as possible, increasing reach, visibility, and engagement. The strategy may involve both organic and paid means of distribution, and typically pursues a multichannel approach to maximize reach.",
"links": []
},
"NIxIhMEOxrUR8nbjbF_Fp": {
"title": "Canonical Link",
"description": "A `canonical link` is an HTML element that helps prevent duplicate content in search engine optimization by specifying the \"preferred\" version of a page. The canonical tag is added to the HTML head of a page and has a link leading to the version of the web page that is the most complete or authoritative. Irrespective of the number of URLs pointing to similar content, the canonical link denotes which is the key version. This is crucial in guiding search engine bots to index and rank the right pages.",
"links": []
},
"AarJ887P-SFRnKaOOv9yw": {
"title": "OpenGraph Data",
"description": "OpenGraph is a technology first introduced by Facebook in 2010 that allows integration between the social media platform, user's website, and their shared content. It works by allowing any web page to become a rich object in a social network by adding basic metadata to the page. With the help of OpenGraph protocol, we can use a web page as a part of a social graph. It is used to control how URLs are presented when they are shared on social media. The data includes details like the title of the content, description, URL, and an associated image.\\`\\`\\`markdown\n\nOpenGraph Data\n--------------\n\nOpenGraph data is a protocol that enables any web page to become a rich object in a social graph. It was introduced by Facebook to allow for an integration between the user's website, Facebook, and any shared content. OpenGraph involves adding basic metadata to a page, enabling it to be used as part of a social graph. This metadata can control how URLs are presented when shared on social media, encompassing details such as the title, description, URL, and corresponding image of the content.",
"links": []
},
"m9-DqsQfeukmhjhIfCph-": {
"title": "Content Distribution Channels",
"description": "Content distribution channels refer to the mediums through which content creators disseminate their work to reach their chosen audience. Broadly, these channels can be divided into three categories: owned, earned, and paid. Owned channels are those controlled by the content creators themselves, such as their websites, blogs or email newsletters. Earned channels are ones where others distribute the content on the creator's behalf out of their own desire, such as shares on social media or word-of-mouth recommendations. Paid channels, as the name implies, are those where content creators pay to have their work distributed, such as through sponsored posts or advertisements on social media, promotional emails, or paid search results in search engines.",
"links": []
},
"_cAGbAswDhOqpoiiikPbD": {
"title": "Content Distribution Amplification Strategies",
"description": "In technical writing, **amplification strategies** are tactics utilized to increase the reach and impact of the content produced. This often involves promoting and sharing the content through various mediums to ensure it gets in front of the largest and most relevant audience. These strategies can include everything from social media promotion and email marketing campaigns to leveraging influencers and using SEO (Search Engine Optimization) strategies. Additionally, they can also involve repurposing content into different formats (like infographics or videos) to engage wider demographics. These amplification techniques help to maximize the reach and effectiveness of the technical content produced.",
"links": []
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,671 @@
{
"liUKYf7UghuPk25xMPPYj": {
"title": "Human Decision Making",
"description": "Human decision making is the cognitive process through which individuals analyze information, evaluate alternatives, and select a course of action based on their preferences, goals, and desires. It plays a vital role in the field of UX design, as designers must understand how users make decisions in order to create intuitive and efficient interfaces.\n\nFactors Influencing Decision Making\n-----------------------------------\n\n* **Cognitive biases**: These are mental shortcuts or patterns of thinking that can influence decision making. Examples include anchoring bias (relying too heavily on initial information) and confirmation bias (seeking information that confirms beliefs).\n* **Emotions**: Emotions can significantly sway decisions, even when people believe they are making rational choices. UX designers should consider how design elements can elicit positive emotions and minimize negative ones.\n* **Information overload**: Too much information can lead to cognitive overload and negatively impact decision making. UX designers need to organize and present information in a digestible and accessible way.\n\nDecision Making Models\n----------------------\n\nUnderstanding different decision-making models helps UX designers create interfaces that cater to various user needs and preferences. Some common models include:\n\n* **Compensatory model**: In this model, individuals consider all available options, weighing their pros and cons in a systematic manner. UX design implications include providing detailed information, filters, and comparisons to help users make informed decisions.\n* **Non-compensatory model**: Here, users employ a variety of heuristics or shortcuts to make decisions quickly. This may involve relying on a single attribute or establishing a threshold for certain criteria. In these cases, UX design should focus on highlighting key features and simplifying the decision-making process.\n* **Satisficing model**: In this approach, users make decisions by selecting the first available option that meets their minimum criteria. UX designers should consider implementing features like 'top choices' and recommendations to support this decision-making style.\n\nDesign Principles for Supporting Decision Making\n------------------------------------------------\n\nTo enhance user decision-making experience, consider the following principles:\n\n* **Progressive disclosure**: Present information gradually to avoid overwhelming users. This technique can include using tooltips, labels and expanding sections.\n* **Cognitive aids**: Help users remember important information or tasks by providing timely reminders, notifications, and visual cues.\n* **Feedback**: Instant feedback can help users understand the results of their decisions and guide them towards desired outcomes. This can be achieved through visual cues, messages, and animations.\n* **Defaults**: Use smart defaults to help users make decisions in a context-appropriate manner, which could range from pre-filled forms to suggested options.\n\nUnderstanding human decision making and incorporating these principles into UX design will enable designers to create more intuitive, enjoyable, and efficient user experiences.",
"links": [
{
"title": "List of Cognitive Biases",
"url": "https://thedecisionlab.com/biases",
"type": "article"
},
{
"title": "Types of Cognitive Bias",
"url": "https://www.youtube.com/watch?v=wEwGBIr_RIw",
"type": "video"
}
]
},
"6ffY5wO-XhkiDJJ5YcI0x": {
"title": "Nudge Theory",
"description": "**Nudge Theory** is a behavioral science concept that focuses on understanding how humans make choices and how small, subtle changes in our environment can have a significant impact on our decision-making process. Developed by Richard Thaler and Cass Sunstein, the central idea is that by \"nudging\" people's behavior in a specific direction, we can encourage them to make better, more informed decisions without the need for heavy-handed rules or regulations.\n\nIn the context of UX design, nudge theory can be applied in various ways to influence user behavior and drive desired outcomes. This might include:\n\n* **Choice Architecture**: Designing the layout and ordering of choices in a way that influences user decisions. For example, placing more desirable options at the top of a list or making them more visually prominent.\n* **Defaults**: Setting default options that encourage users to make better decisions. For example, pre-selecting a more environmentally-friendly shipping option or having a privacy setting enabled by default.\n* **Social proof**: Showing how others have made similar choices or have had positive experiences. For example, presenting product ratings and reviews, or indicating that a large number of users have taken a particular action such as signing up for a newsletter.\n* **Timely interventions**: Providing guidance or prompts at the right moment in the user's journey. For example, offering help when a user encounters a complex task or reminding them of the benefits of completing a process when their motivation may be wavering.\n\nWhen applying nudge theory in UX design, it's crucial to maintain a balance between encouraging positive behaviors and respecting user autonomy. Designers should aim to empower users with meaningful choices and useful information, rather than manipulating or deceiving them.",
"links": [
{
"title": "Nudge Theory overview with examples",
"url": "https://www.businessballs.com/improving-workplace-performance/nudge-theory/",
"type": "article"
},
{
"title": "Nudge Theory Explained in less than 10 minutes",
"url": "https://youtu.be/fA5eGIMZTRQ",
"type": "video"
}
]
},
"K22gvF9DLt0Ikc80yZLCb": {
"title": "Persuasive Technology",
"description": "Persuasive technology is an area of UX design that focuses on using technology to influence human behavior and encourage users to take specific actions. It combines the principles of psychology and design to create experiences that impact user behavior in a desired way. The goal of persuasive technology is to subtly persuade or encourage users to adopt specific habits or behaviors, often with the intent of improving their overall experience or achieving a particular outcome.\n\nSome common examples of persuasive technology include:\n\n* **Reinforcement**: Providing users with positive feedback or rewards for completing specific actions (e.g., badges or points in a gamified interface).\n \n* **Social influence**: Leveraging social connections and norms to encourage actions or decisions, such as displaying the number of friends who have also enjoyed a product on a shopping site.\n \n* **Scarcity**: Using the concept of scarcity (limited availability, time-limited offers) to instill a sense of urgency in users and encourage them to take action before they miss out.\n \n* **Personalization**: Tailoring content or experiences to the individual user based on their preferences, behaviors, or demographic information, which makes the experience more relevant and engaging.\n \n* **Commitment and consistency**: Encouraging users to make small commitments with the intent to build towards larger commitments over time, often through a progression of small tasks or milestones.\n \n\nIncorporating persuasive technology into UX design can lead to more engaging and effective user experiences. However, it's crucial to use these techniques responsibly and ethically, ensuring that the end goal aligns with the best interests of users and does not exploit or manipulate them in any negative way.",
"links": []
},
"zYCBEUqZVlvjlAKnh5cPQ": {
"title": "Behavior Design",
"description": "Behavior Design is an approach that combines elements of psychology, neuroscience, and design principles to understand and influence human behaviors. The goal behind behavior design is to make it easier for users to accomplish their goals or desired actions within a product, service, or system.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Behavior Design",
"url": "https://www.interaction-design.org/literature/topics/behavioral-design",
"type": "article"
}
]
},
"D553-nVELaB5gdxtoKSVc": {
"title": "Behavioral Science",
"description": "Behavioral science is the interdisciplinary study of human behavior, which encompasses disciplines like psychology, sociology, and anthropology. This field- primarily focuses on understanding what impacts our decisions, actions, and emotions. In the context of UX design, applying behavioral science concepts and principles can enhance user experience by improving user engagement, usability, and overall satisfaction.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Behavioral Science",
"url": "https://uxplanet.org/how-to-use-behavioral-science-to-influence-user-behavior-in-design-581dc0805f7c",
"type": "article"
},
{
"title": "Future of Behavioral Science",
"url": "https://behavioralscientist.org/what-is-the-future-of-design-and-behavioral-science-a-conversation-with-cliff-kuang/",
"type": "article"
}
]
},
"_lv6GJ0wlMfhJ7PHRGQ_V": {
"title": "Behavioral Economics",
"description": "Behavioral Economics is a subfield of economics that studies the psychological, social, and emotional factors that influence decision-making and economic behavior. It seeks to understand why people make choices that deviate from the traditional economic model, which assumes that individuals behave rationally and seek to maximize their utility.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Behavioral Economics",
"url": "https://www.interaction-design.org/literature/article/behavioural-economics-ideas-that-you-can-use-in-ux-design",
"type": "article"
}
]
},
"2NlgbLeLBYwZX2u2rKkIO": {
"title": "BJ Fogg's Behavior Model",
"description": "B.J. Fogg, a renowned psychologist, and researcher at Stanford University, proposed the Fogg Behavior Model (FBM). This insightful model helps UX designers understand and influence user behavior by focusing on three core elements. These key factors are motivation, ability, and prompts.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Meaning of BJ Fogg's Behavior Model",
"url": "https://behaviormodel.org/",
"type": "article"
},
{
"title": "The Fogg Behavior Model",
"url": "https://blog.logrocket.com/ux-design/fogg-behavior-model/",
"type": "article"
}
]
},
"kcG4IpneJzA6di0uqTiwb": {
"title": "CREATE Action Funnel",
"description": "Stephen Wendel's CREATE Action Funnel is a behavioral design framework aimed at helping individuals or organizations encourage specific behaviors in others, especially in the context of product design. It breaks down the process of motivating action into six key stages. Each stage helps identify where users might drop off or face barriers, allowing designers or strategists to address these pain points effectively. These stages are:\n\n* **CUE:** The user must notice a cue or prompt that tells them to act. This could be a notification, a visual element, or any kind of reminder.\n \n* **REACTION:** The user must react positively to the cue. This stage involves emotional and cognitive processing, where the individual decides if the action is relevant or attractive.\n \n* **EVALUATION:** The user evaluates whether the action is worth their time, energy, or resources. They assess the benefits versus the effort required.\n \n* **ABILITY:** The user must feel capable of taking the action. This involves ensuring that the action is easy enough to do and aligns with their skills and resources.\n \n* **TIMING:** The action needs to happen at the right time. Users need to have the opportunity and be in the right context to act.\n \n* **EXECUTION:** Finally, the action must be carried out successfully. This is the stage where the behavior is completed.\n \n\nThe CREATE Action Funnel is helpful for product designers, marketers, or behavior change professionals, as it provides a structured way to understand user actions and design interventions to improve completion rates. It identifies and solves the gaps that occur between intention and action.",
"links": [
{
"title": "Behavioral Science Crash Course: Steve Wendel's CREATE Action Funnel",
"url": "https://www.prodify.group/blog/behavioral-science-crash-course-steve-wendels-create-action-funnel",
"type": "article"
}
]
},
"0Df110GZcDw5wbAe1eKoA": {
"title": "Spectrum of Thinking Interventions",
"description": "The _Spectrum of Thinking Interventions_ provides a structure for understanding the different types of decision-making processes by illustrating how our minds would respond in a _default, lowest energy way_, if we didn't consciously do something different. This spectrum ranges from situations requiring minimal thought to those demanding intensive thinking, and includes the mechanisms (\"interventions\") that our minds will likely use.\n\n* **Habits:** Triggering a learned routine based on familiar cues\n* **Other intuitive responses:** Used in familiar or semi-familiar situations, with responses based on past experiences\n* **Active mindset or self-concept:** Used in ambiguous scenarios with multiple possible interpretations\n* **Heuristics:** Used in situations requiring conscious attention, but where decisions can be made more easily\n* **Focused, conscious calculation:** Used in unfamiliar scenarios or crucial decisions where deliberate focus is needed\n\nWith this spectrum in mind, it is essential as a UX designer to leverage on the mind's decision-making process, analyze which mechanisms are most applicable to your target users and design the most accessible and effective solutions.",
"links": []
},
"kWA8CvocP1pkom2N7O4gb": {
"title": "Dual Process Theory",
"description": "The Dual Process Theory is a psychological concept that suggests that human thinking operates on two different levels an intuitive, fast, and automatic level (known as System 1), as well as a more deliberate, slow, and logical level (System 2). In the context of UX design, understanding these two systems can help designers create user interfaces and experiences that cater to both types of thinking.\n\n**System 1: Intuitive and Fast**\n\n* Relies on intuition, heuristics, and mental shortcuts\n* Makes quick judgments based on emotions and past experiences\n* Prone to errors and biases, but highly efficient for everyday tasks\n\n**System 2: Deliberate and Slow**\n\n* Involves conscious, controlled thinking and decision making\n* Requires more mental effort and can handle complex problems\n* Less prone to errors, but slower and more resource-intensive\n\nIn order to create user experiences that cater to both System 1 and System 2 thinking, UX designers should:\n\n* **Make tasks simple and intuitive**: Reduce cognitive load by simplifying tasks, using familiar patterns, and providing clear instructions.\n* **Provide visual cues**: Use visual cues such as icons, colors, and typography to guide users through tasks, while promoting clarity and efficiency.\n* **Minimize errors**: Design systems that help prevent errors by using constraints, providing feedback, and allowing users to undo their actions.\n* **Accommodate different thinking styles**: Recognize that different users may approach tasks using different cognitive styles, and design experiences that cater to a range of preferences.\n* **Test and iterate**: Continuously test your designs with real users, and iterate based on their feedback to ensure that your designs are catering to both System 1 and System 2 thinking.\n\nBy understanding the Dual Process Theory and designing for both types of cognitive processing, UX designers can create user experiences that are both delightful and efficient, ultimately leading to higher user satisfaction and engagement.",
"links": []
},
"lRBC8VYJPsR65LHDuuIsL": {
"title": "BJ Fogg's Behavior Grid",
"description": "The BJ Fogg Behavior Grid is a framework that helps UX designers, product managers, and marketers understand and identify different types of behavior change. Created by Stanford University professor B.J. Fogg, the grid consists of 15 behavior types based on the combination of three dimensions: Duration, Frequency, and Intensity.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "BJ Foggs Behavior Grid",
"url": "https://behaviordesign.stanford.edu/resources/fogg-behavior-grid",
"type": "article"
},
{
"title": "The Fogg Behavior Model",
"url": "https://blog.logrocket.com/ux-design/fogg-behavior-model/",
"type": "article"
}
]
},
"PLLTcrHkhd1KYaMSRKALp": {
"title": "Nir Eyal's Hook Model",
"description": "The Hook Model is a concept developed by Nir Eyal, a writer and entrepreneur. It is a framework designed to help create habit-forming products and services by engaging users on a deeper level. Eyal's model is based on four key components, which are meant to encourage user interactions and repeat usage, ultimately leading to user addiction. These components are:\n\n* **Trigger:** Triggers are cues that prompt users to take action, either through external stimuli or internal motivations. External triggers can be notifications, advertisements, or even recommendations from friends, while internal triggers stem from users' thoughts or emotions, such as boredom or a need for social connection.\n \n* **Action:** The action is the simple task the user performs in response to the trigger. The action will depend on the context and product, but generally, it should be easy to do and have a clear connection to the trigger. An example might be swiping left or right on a dating app after receiving a notification.\n \n* **Variable Reward:** Rewarding users for taking action is an essential part of the Hook Model. Variable rewards refer to the idea that users receive varying levels of gratification for their actions - this unpredictability keeps them engaged and curious. Social media platforms are excellent examples, as users receive likes, comments, or retweets randomly, prompting them to keep interacting to trigger more rewards.\n \n* **Investment:** This component focuses on users investing time or effort into the product, which increases the likelihood of future engagement. An investment might include creating a profile, adding friends, or curating content. Users often feel a sense of ownership after investing in a product, making them more likely to return and continue using it.\n \n\nBy incorporating these components into your UX design, you can create experiences that encourage users to develop habits and become more attached to your product. Keep in mind, however, that \"addiction\" is not the primary goal - rather, it's about promoting genuine value and enhancing users' lives in a positive manner.",
"links": []
},
"X1AroUI8Fge_lRpKab4A9": {
"title": "Cue Routine Reward Model",
"description": "The Cue-Routine-Reward Model, also known as the Habit Loop, is a neurological framework that describes how habits are formed and maintained in our brains. By understanding this model, UX designers can create more engaging and addictive user experiences, encouraging users to come back to the product repeatedly. The model consists of three key components:\n\n* **Cue**: A stimulus, or trigger, that prompts your brain to start a habit. This can be anything from a notification on your phone to a daily routine or a specific location.\n\n Example: Receiving an email notification (Cue) prompts you to check your inbox.\n \n\n* **Routine**: The actual habit or default action you take in response to the cue. This is typically an automated behavior that occurs without much conscious thought.\n\n Example: After receiving the email notification (Cue), you open your email app and read the message (Routine).\n \n\n* **Reward**: The satisfaction or positive reinforcement your brain gets from completing the routine. This release of dopamine in the brain helps to strengthen and reinforce the habit over time.\n\n Example: Reading the email (Routine) gives you a sense of accomplishment or connection with the sender, resulting in a positive emotion (Reward).\n \n\nTo apply the Cue-Routine-Reward model in UX design:\n\n* Identify potential **cues** that can act as triggers for users to engage with your product. This can include push notifications, visual prompts, or personalized messages.\n \n* Design seamless **routines** that are intuitive, user-friendly, and make it easy for users to complete tasks within the product. This can involve anything from clear calls-to-action, minimalist design, or familiar design patterns.\n \n* Ensure a meaningful **reward** is provided to users so they feel a sense of accomplishment or receive some form of positive feedback. This can include personalized content, social validation, or progress tracking.\n \n\nBy incorporating the Cue-Routine-Reward model into your UX design, you can tap into users' natural habit-forming tendencies and ultimately create more addictive, engaging experiences.",
"links": []
},
"PTZROvpPtEvu06szwmt4K": {
"title": "Support Conscious Action",
"description": "The process of changing user behavior involves understanding the factors that influence the way people interact with your product, and applying strategies to help users adopt new, desirable behaviors. The goal is to make users feel comfortable and confident while using your product, ultimately creating a more enjoyable and effective user experience.\n\nThere are several key principles and strategies for changing user behavior in UX design:\n\n* **Understand the user's current behavior**: To effectively change user behavior, you first need to understand their current habits and patterns. Conduct user research through interviews, surveys, and observation to identify their pain points and motivations.\n \n* **Set clear goals**: Define specific, measurable, attainable, and relevant goals for the behavior change you want to achieve. This might include increasing the number of completed tasks or reducing the time taken to complete tasks.\n \n* **Leverage behavioral psychology**: Utilize theories and models from behavioral psychology, such as the Fogg Behavior Model or the Theory of Planned Behavior, to design interventions that target key aspects of user behavior. These models can help explain the relationship between different factors that influence behavior, such as motivation, ability, and triggers.\n \n* **Design for simplicity**: Make it as easy as possible for users to adopt the desired behavior. Reduce barriers, streamline processes, and minimize the cognitive load required to perform tasks.\n \n* **Provide feedback and reinforcement**: Help users understand the impact of their actions by providing immediate, clear, and specific feedback. Positive reinforcement, such as rewards or praise, can also encourage users to continue engaging in the desired behavior.\n \n* **Leverage social influence**: People are often influenced by the behaviors of others, so consider incorporating elements of social proof, competition, or collaboration into your UX design.\n \n* **Personalize the experience**: Tailor your onboarding process, messaging, and content to the individual preferences and learning styles of your users. This can improve engagement and increase the likelihood of behavior change.\n \n* **Iterate and evaluate**: Continuously test and refine your design to improve the effectiveness of your behavior change strategies. Evaluate the success of your interventions by measuring changes in user behavior and adjusting your approach accordingly.\n \n\nBy applying these strategies in your UX design, you can change user behavior and drive positive outcomes for your users and your product.",
"links": []
},
"SLXjoYL-lhPef8s9V3jpf": {
"title": "Educate & Encourage User",
"description": "One of the primary goals of UX design is to guide users through the intended flow of an application or website, and that often involves encouraging them to change their behavior or habits. Educating and encouraging users can be achieved through various methods such as guidance, feedback, and positive reinforcement.\n\n* **Guidance:** Provide clear and concise instructions, explanations, and help text to ensure users understand how to use your application. Using onboarding tutorials, tooltips, and contextual help can greatly improve the user experience and aid in changing their behavior if required.\n \n * Example: Show a brief tutorial during a user's first interaction with your app, highlighting key features they may not be aware of.\n* **Feedback:** Give users real-time feedback as they interact with your application. This can range from basic notifications to more detailed information tailored to their specific behaviors.\n \n * Example: When a user creates a password, show an interactive strength meter indicating whether their chosen password is strong or weak. This may encourage the user to choose a stronger and more secure password.\n* **Positive reinforcement:** Encourage users to continue using your application by rewarding them for achieving milestones or completing tasks. This can be achieved through gamification elements like badges, points, and progress indicators.\n \n * Example: Award a badge to users who complete their profile or connect their social media accounts. This can encourage users to fully engage with your application and form a habit of using it regularly.\n* **Social influence:** Utilize social proof to promote a change in user behavior. Showcasing the actions or opinions of other users can create a sense of community and drive users to follow suit.\n \n * Example: Display the number of users who have completed a task or upvoted a piece of content, which may motivate other users to follow the apparent trend.\n* **Personalization:** Cater to users by presenting them with tailored content based on their preferences, usage patterns, and prior interactions. Personalization can make users feel more invested in the application, which may encourage them to consistently use and engage with it.\n \n * Example: Offer users personalized recommendations for articles or products based on their browsing history, which can enhance their experience and increase the likelihood of repeat visits.\n\nBy effectively educating and encouraging your users, you can create a user experience that promotes desired behaviors, fosters positive habits, and ultimately leads to a more successful and impactful application. Remember to always put your user at the center of your design process to ensure you're addressing their needs and desires in the most effective way possible.",
"links": []
},
"e9n9an1PGxDPGkLCOHIwz": {
"title": "Help User think about their Action",
"description": "To successfully change user behavior, it's crucial to encourage users to think about their actions consciously. This can be achieved by employing various strategies in your UX design. Following are some effective methods to help users think about their actions:\n\n* **Incentives**: Offer rewards or incentives to the users for completing specific actions, which will make them more likely to think about their actions and participate actively in the process.\n \n* **Progress indicators**: Display clear progress indicators to show the user where they are in the process and how far they've come. This will help the user evaluate the outcomes of their actions and motivate them to complete the process.\n \n* **Feedback**: Providing users with real-time feedback on their actions is a great way to make them more conscious of their actions. You can use notifications, messages, or visual cues to inform users about the positive or negative results of their actions.\n \n* **Guidance**: Offer guidance and support to users as they engage with your interface. Through onboarding tutorials, tooltips, or context-based instructions, help users understand the effects of their actions, why they are relevant, and how to use them efficiently.\n \n* **Confirmation**: Ask users for confirmation before they proceed with a critical action that may have significant consequences. This pause will compel them to think about their choice and assess the potential impact of their action.\n \n* **Make it personal**: Connect the outcomes of the user's actions to their personal goals or aspirations. Users are more likely to think about their actions if they perceive the effects in the context of their own life.\n \n\nBy incorporating these techniques within your UX design, you will encourage users to actively think about their actions, leading to more mindful engagement with your product, informed decision-making, and improved user satisfaction.",
"links": []
},
"zVXJPpqZvUFIxTGVrr0rN": {
"title": "Cheating",
"description": "Cheating, in the context of behavior change strategies, refers to creating shortcuts and loopholes within a designed system, in order to overcome any obstacles users may face while achieving their goals. As a UX designer, you need to understand that users often look for the easiest path to reach their objectives, even if it means bending or breaking the established rules.\n\nWhen to use Cheating:\n---------------------\n\n* **Overcoming limitations**: Allow users to overcome constraints imposed by the system or environment when these limitations prevent them from moving forward in a meaningful way.\n* **Increasing motivation**: When users feel stuck or overwhelmed, cheating mechanisms can help them feel a sense of progress or achievement, thus motivating them to keep going.\n* **Enhancing user experience**: Sometimes, cheating can create fun and engaging experiences, turning ordinary tasks into enjoyable challenges that users might enjoy exploring and exploiting.\n\nDesigning for Cheating:\n-----------------------\n\nWhen designing cheat mechanisms in your UX, consider the following best practices:\n\n* **Balance**: Cheating should provide an alternative solution without compromising the overall challenge or value offered by the system. Strive for a balance between making tasks easier and avoiding excessive exploitation that could lead to unearned rewards or trivializing the user's experience.\n* **Limited Access**: Cheating should not become the default behavior or the most commonly used strategy in your design. Limit access or opportunities to cheat to avoid undermining the user's sense of accomplishment or alienating non-cheating users.\n* **Documentation and communication**: If permitting cheating is an intentional design choice, communicate this to your users explicitly, so they don't feel guilty about exploiting loopholes. Making users aware of cheat options can help you foster an environment where users knowingly bend the rules, thus adding an interesting dynamic to the overall user experience.\n* **Monitoring**: Constantly monitor how users are interacting with your design and how prevalent cheating behavior is. If cheating becomes too widespread or harmful, consider tweaking the system and addressing any unintended consequences.\n\nBy carefully designing and implementing cheating strategies, you can effectively enhance the user experience, while still maintaining the integrity of your system and the motivation of your users. Remember, the goal is to make the experience enjoyable and rewarding, not to provide users with a way to cheat their way to success.",
"links": []
},
"IpKCXqf_PkxIllwmiIZsq": {
"title": "Defaulting",
"description": "Defaulting in UX design refers to the practice of pre-selecting options or settings for users based on what is likely to be the most common or preferred choice. The goal is to simplify the decision-making process and minimize the effort required for users to complete a task or interact with an interface.\n\nBenefits of defaulting include:\n\n* **User convenience**: By pre-selecting options for users, you save them time and effort in making choices. This leads to a smoother user experience, especially for users who may not have a strong preference or in-depth knowledge about the task at hand.\n \n* **Reduced errors and confusion**: Default options can help users avoid making errors, like selecting an incompatible format or an incorrect setting. By choosing sensible defaults, you can guide users towards appropriate choices which can minimize confusion and potential problems later on.\n \n* **Promote desired behavior**: If you want to encourage users to adopt a specific action or setting, making it the default choice can increase its adoption rate. For example, setting the default privacy settings to 'high' can promote better security practices among users.\n \n\nWhen implementing defaulting, keep the following guidelines in mind:\n\n* **Consider user needs and preferences**: Defaults should align with the most common or preferred user actions, based on user research and understanding of your audience.\n \n* **Be transparent**: Make it clear to users that you have pre-selected some choices on their behalf, and offer ways to change these selections if needed.\n \n* **Regularly review and adjust**: As your user base or product evolves, it's essential to review and adjust your default settings to ensure they remain relevant and helpful to users.\n \n\nIn summary, defaulting is a powerful UX design technique that, when used thoughtfully, can streamline user interactions and lead to better usability and user satisfaction.",
"links": [
{
"title": "The Power of Defaults",
"url": "https://www.nngroup.com/articles/the-power-of-defaults/",
"type": "article"
}
]
},
"Ix5Fll_dAINWLxVF2DXFI": {
"title": "Making it Incidental",
"description": "In UX design, making something incidental refers to subtly introducing a feature or element while the user is engaged in a different, primary task. The intention behind this approach is to avoid interrupting the user's flow, prevent them from feeling overwhelmed, and make the discovery of that feature feel more natural and serendipitous.\n\nBenefits of Making It Incidental\n--------------------------------\n\n* **Less Overwhelming:** Users are not bombarded with too much information at once, as an incidental introduction happens when they are already engaged in another task.\n* **Avoids Distractions:** It doesn't disrupt the flow of the application, allowing users to maintain focus on their original task.\n* **Increases User Engagement:** As users chance upon a feature or element that they possibly need or find useful in the future, this may deepen their connection with the product.\n\nTechniques to Make it Incidental\n--------------------------------\n\n* **Progressive disclosure:** Reveal information or features when relevant, in the context of the user's current task.\n* **Guided interactions:** Introduce features while users are actively engaged in tasks, where the discovery is an organic part of the interaction.\n* **Contextual hints:** Provide subtle cues or suggestions for users that signal the presence of additional features, which can be used when needed.\n\nRemember, the key to making something incidental is to strategically place it within the user journey, so that it feels like a natural and seamless discovery. This approach can help create delightful and efficient user experiences.",
"links": []
},
"ZufrLRNkMoJ4e2T-vWxCR": {
"title": "Automate the Act of Repetition",
"description": "To enhance user experience and streamline interactions, it's crucial to automate repetitive tasks that often lead to frustration and decreased efficiency. Properly implemented automation can save time, reduce errors, and improve user satisfaction by minimizing tedious actions. As a UX designer, consider strategies such as pre-filling forms with previously entered information, remembering user preferences, providing smart suggestions based on past behavior, enabling batch actions for group tasks, and offering keyboard shortcuts for common actions. By focusing on these automation techniques, you can create a seamless and enjoyable experience that meets users' needs and increases retention.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Repeating Elements",
"url": "https://helpx.adobe.com/au/xd/help/create-repeating-elements.html",
"type": "article"
}
]
},
"y6CqgqTvOt-LrvTnPJkQQ": {
"title": "Make or Change Habits",
"description": "Making or changing habits is an essential aspect of UX design that focuses on helping users adopt new behaviors and patterns. In order to create a lasting impact, designers need to implement strategies that will facilitate the formation or modification of habits for users. Below, we've outlined some key components to consider when creating or changing habits in UX design.\n\n* **Identify user goals and barriers**: First and foremost, determine the end goal of your users and identify any obstacles that may inhibit them from achieving their desired outcome. By addressing these barriers through design, you can help users overcome challenges and form new habits.\n \n* **Utilize triggers**: Triggers, or prompts, can be incorporated into a design to remind users to take specific actions. These can be visual (e.g., a button), auditory (e.g., a notification sound), or contextual (e.g., a reminder based on time or location). Including triggers in your design can improve habit formation for users.\n \n* **Simplify the process**: Break down complex tasks or goals into smaller, more manageable steps to make it easier for users to form new habits. This way, users will feel less overwhelmed and will be more likely to stick to the desired behavior.\n \n* **Incorporate feedback and rewards**: Positive reinforcement is a powerful tool that can be used to encourage new habits. Provide users with immediate feedback on their progress and offer rewards (e.g., badges, points, etc.) for completing tasks or achieving goals. This will motivate users and help them stay engaged with your product.\n \n* **Leverage social influence**: Humans are social creatures by nature; we tend to follow the behaviors and trends of our peers. Incorporate social elements into your design to promote healthy competition and create a sense of community among users, further incentivizing them to form new habits.\n \n* **Iterate and improve**: Finally, always strive for improvement by continuously analyzing and iterating on your designs. Gather user feedback to identify areas where users may be struggling to form or maintain new habits, adjusting your design accordingly.\n \n\nBy understanding the principles of habit formation and incorporating these strategies into your UX design process, you can help users adopt new behaviors more easily and create lasting change.",
"links": []
},
"S2TgqNDjvmcJTaXncM09u": {
"title": "Help user Avoiding the Cue",
"description": "In UX design, it's important to understand the existing behaviors and habits of your users. One aspect of this process is helping users avoid the cues that trigger unwanted or unnecessary actions. Cues are the signals or prompts that lead users to perform specific behaviors. By identifying and mitigating these cues, you can effectively guide users to have a more streamlined and efficient user experience.\n\nHere are some strategies to help users avoid the cue:\n\n* **Identify the cue**: The first step is to recognize the cues that lead to unwanted behaviors. This can be achieved by observing users, conducting usability testing or through user feedback.\n \n* **Remove the cue**: Once the cue is identified, remove or minimize it to prevent users from performing the undesired action. This could be achieved by redesigning the interface, altering the layout or adjusting the visual hierarchy of elements.\n \n* **Provide alternatives**: Offer alternative actions or paths for users to take in order to achieve their goal without encountering the unwanted cue. Make sure these alternatives are easily accessible and have clear call-to-action elements.\n \n* **Educate users**: Sometimes, simply removing a cue isn't enough. In these cases, it's important to educate your users about the new optimal way to perform a task. This can be done through in-app guides, tutorial videos or tooltips.\n \n* **Monitor user behavior**: Continuously assess user behavior and feedback to ensure that the unwanted cues are no longer causing problems. Be prepared to make further adjustments if necessary, and consider implementing A/B testing to optimize your solution.\n \n\nBy helping users avoid unwanted cues, you'll create a more seamless user experience, leading to increased user satisfaction and a more effective product overall.",
"links": []
},
"_C-55tciBzc6_Kyk6272k": {
"title": "Replace the Routine",
"description": "In the UX design process, understanding and working with existing user behavior is crucial. One key aspect of this is the concept of \"replace the routine\". This involves observing and analyzing the current habits and routines of your users, and then designing your product around it.\n\nReplacing the routine in UX design is about finding more efficient, delightful, and engaging ways for users to complete their tasks. You should not look to force a completely new set of behaviors upon your users but instead improve their experience by offering a better alternative to their existing habits.\n\nConsider the following points when replacing the routine:\n\n* **Understand the user's context**: Study the users life cycle and create personas to better comprehend their . This helps you identify their preferences, pain points, and habits, which in turn enables the creation of a meaningful and effective design.\n \n* **Identify the existing routine**: Analyze the current habits and routines of your users. What are the steps they are used to taking in order to complete the task? This information will be vital in designing a product that smoothly replaces their existing routine with an improved one.\n \n* **Design an improved routine**: Create a new user flow that achieves the same goal but in a manner that is more efficient, simpler, and more intuitive for the user. This new routine should leverage the knowledge you have gained about your users and their preferences.\n \n* **Test the new routine**: The importance of usability testing cannot be overstated. Validate your design by having real users test it out, and gather feedback to identify any areas that can be further optimized. Ensure that the new routine actually improves upon the existing one and doesn't create any new confusion.\n \n* **Iterate and refine**: UX design is an ongoing process. Continuously refine and optimize the new routine based on the user feedback and changing user behavior trends.\n \n\nBy adopting the \"replace the routine\" approach in your UX design, you can provide your users with a better experience that aligns with their existing behaviors, while also introducing new efficiencies and possibilities. Doing so increases user satisfaction, promotes adoption, and ultimately leads to happier, loyal users.",
"links": []
},
"use-consciousness-to-interfere@0MbrHG-VDrdZqQ0jWtiDo.md": {
"title": "Use Consciousness to Interfere",
"description": "",
"links": []
},
"d1dXGCHmMF2EFpL5yKVJA": {
"title": "Mindfulness to Avoid Acting on the Cue",
"description": "Mindfulness is a powerful technique that can help designers and users alike to avoid acting on the cues that trigger unwanted behaviors. Mindfulness practices can strengthen one's self-awareness and self-regulation skills, allowing individuals to recognize cues and make more conscious decisions about their actions.\n\nHow to practice mindfulness in UX design\n----------------------------------------\n\n* **Be present:** When designing or using a product, focus on the task at hand and avoid multitasking. By fully engaging in the moment, you'll be more aware of the cues that may trigger unwanted behaviors.\n \n* **Observe without judgment:** Take note of any compulsions or urges that arise while interacting with a product, but don't judge them as good or bad. Simply acknowledging their existence can help you understand your responses and make better choices in the future.\n \n* **Pause and reflect:** When you notice a cue, take a moment to pause and evaluate your options. Consider whether the action you're about to take is aligned with your goals or if it's something you'd like to change.\n \n* **Respond with intention:** Once you've reflected on your options, make a conscious decision about your next action. This may mean going through with the original behavior, choosing a more desirable alternative, or refraining from acting entirely.\n \n\nIncorporating mindfulness techniques into your designs\n------------------------------------------------------\n\nIn addition to practicing mindfulness personally, consider how you can create designs that encourage users to be more mindful and avoid acting on unwanted cues.\n\n* **Design for minimal distractions:** Aim to reduce visual clutter, unnecessary alerts, and anything that might pull users' attention away from the present moment.\n \n* **Provide clear action cues:** Make sure that cues for desired actions are clear and easy to understand, allowing users to make more conscious decisions about their actions.\n \n* **Support user reflection:** Consider incorporating features that prompt users to reflect on their actions, such as goal-setting or progress tracking tools, which can encourage more mindful decision-making.\n \n\nBy fostering mindfulness in both your design process and your end product, you can create UX experiences that help users better navigate their interactions with technology, avoiding unwanted behaviors and promoting healthier habits.",
"links": []
},
"B0gg7Z5JL9m9Srb89KcN5": {
"title": "Crowd Out Old Habit with New Behavior",
"description": "One of the most effective ways to change users' existing behavior and improve their experience with your product is by replacing old habits with new ones. This method involves identifying the actions and habits that users currently perform and finding ways to replace them with more efficient, healthy, or enjoyable behaviors.\n\nIdentifying Old Habits\n----------------------\n\nFirst, start by observing and researching how users interact with your product or a similar product to understand their current behavior. This can be done through user interviews, surveys, or by analyzing collected usage data. Try to identify the habits that are no longer useful, might be frustrating or time-consuming, or can be significantly improved.\n\nDesigning New Behaviors\n-----------------------\n\nAfter identifying the habits that need to be replaced, focus on designing new behaviors that are more efficient, enjoyable or beneficial to users. To do this, consider employing the following strategies:\n\n* Make the new behavior simple: Ensure the new behavior is easy to understand and perform so that users can naturally adopt it.\n* Use visual cues: Incorporate visual cues in your design to subtly remind users of the new behavior they should perform.\n* Positive reinforcement: Encourage users to adopt the new behavior by providing feedback, rewards or incentives.\n* Progressive onboarding: Gradually introduce users to the new behavior, giving them sufficient time to adjust and understand its benefits.\n\nImplementation and Testing\n--------------------------\n\nOnce you have designed the new behavior, it's time to implement it in your product and test its effectiveness. This testing can be done through A/B testing, focus groups, or beta users who can provide valuable feedback.\n\nMonitor user behavior and analyze data to determine if the new behavior is successfully replacing the old habit. If needed, iterate on your design to make necessary improvements, and continue tracking user behavior until the new habit is well-established.\n\nIn summary, crowding out old habits with new behaviors is an effective method of improving user experience in your product. By identifying existing behaviors that need change, designing new habits that are beneficial to users, and constantly testing and iterating, you can ensure a successful transition for your users and an overall improved UX.",
"links": []
},
"w_QWN80zCf1tsVROeyuvo": {
"title": "Behavior Change Strategies",
"description": "Behavior change strategies are techniques that aim to help users adopt new behaviors or break existing ones to achieve specific goals, such as healthier lifestyles or improved productivity. In UX design, these strategies are applied to design elements and features within digital products or services to motivate and support users in making lasting changes in their actions.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Behavioral Change Strategies",
"url": "https://blog.logrocket.com/ux-design/starter-guide-behavioral-design/",
"type": "article"
}
]
},
"q1WX2Cp4k4-o1T1vgL8FH": {
"title": "Understanding the Product",
"description": "Before diving into UX design, it's crucial to have a thorough understanding of the product you're working on. This doesn't only mean understanding its core features and functionalities, but also being aware of the underlying business goals and the target audience.\n\nKey Components of Understanding the Product\n-------------------------------------------\n\n* **Business Goals:** Understand the objectives and goals of the company or client for whom you're designing. Are they looking to increase their user base, boost sales, or provide a seamless experience? Knowing the goals will shape your design decisions and ensure that your UX design aligns with the company's vision.\n \n* **Target Audience:** Clearly identify the target audience or user persona for the product. Understand their demographics, pain points, and preferences. This insight will help you design an experience tailored to their needs and expectations, resulting in higher engagement and satisfaction.\n \n* **User Journey:** Map out the user journey for the product, from the initial point of contact to their ultimate goal. This process will help you identify areas where users might encounter difficulties or confusion, and it will provide you with a blueprint for crafting a smooth user flow.\n \n* **Competitor Analysis:** Evaluate the strengths and weaknesses of competitors' products to identify opportunities for differentiation and improvement, as well as to glean inspiration from successful or innovative designs.\n \n* **Brand Consistency:** Familiarize yourself with the company's brand identity, including colors, fonts, and themes. It's important that your design aligns with the brand in order to create a cohesive and recognizable user experience.\n \n\nStrategies for Understanding the Product\n----------------------------------------\n\n* **Interview Stakeholders:** Engage with stakeholders, such as product managers and business owners, to gain insights into their goals, requirements, and expectations for the project.\n* **User Research:** Conduct user interviews, surveys, or focus groups to gather information on user needs, pain points, and preferences.\n* **Involve Users in Design:** Involve users in the design process through activities like participatory design or usability testing, where users can provide feedback on prototypes and designs.\n* **Stay Updated on Industry Trends:** Keep yourself informed on current trends in UX design and technology to ensure your design remains relevant and up-to-date.\n\nBy investing time in understanding the product from the business, user, and competition perspectives, you'll be better equipped to create a successful and impactful UX design.",
"links": []
},
"7J8F9dn1jGaVlhLVVRPrG": {
"title": "Target Outcome",
"description": "The target outcome is a clear, measurable, and time-bound objective that your product aims to achieve. It defines the desired results for your users and becomes the focal point for the entire product design process. A well-defined target outcome ensures that your UX design is aligned with your users' needs and your business goals.\n\nHere are a few key elements to consider when defining your target outcome:\n\n* **User needs**: Focus on the main problems and needs your users have, and how your product can address them. It's crucial that your target outcome is directly linked to user satisfaction.\n \n* **Specific and measurable**: Your target outcome should be specific enough to guide your design decisions and measurable, so you can assess whether you've achieved the desired results. For example, instead of aiming for \"improving user engagement,\" a target outcome could be \"increase the average time spent on the app by 10% within 3 months.\"\n \n* **Realistic**: Your target outcome should be achievable given your current resources, team, and product. Setting overly ambitious objectives may lead to frustration and a lack of focus in your design process.\n \n* **Time-bound**: Establish a clear timeline for achieving your target outcome. A deadline helps keep the team focused and on track and allows you to evaluate your progress along the way.\n \n\nTo sum up, defining a clear target outcome is a critical step in the UX design process, as it guides decision-making and helps ensure that your product delivers true value to your users. By focusing on user needs, making your target outcome specific and measurable, setting realistic goals, and establishing a timeline, you can ensure that your product's UX design is aligned with both user needs and business objectives.",
"links": []
},
"FRn2MaR0-ehSD3zmwXcCI": {
"title": "Target Actor",
"description": "A **Target Actor** refers to the specific user or group of users for whom a product or service is designed to cater. These users have particular needs, goals, and expectations from the product, and understanding their characteristics is essential for creating a UX design that provides them with an optimal user experience. The term is often used interchangeably with \"target audience\" or \"user persona.\"\n\nWhen designing for a target actor, it is crucial to consider the following factors:\n\n* **Demographics**: Age, gender, education, occupation, and location play a significant role in determining user preferences and behavior. These factors help designers create a relatable and appropriate user experience.\n \n* **Psychographics**: This refers to the psychological aspects of the target actor, such as their attitudes, motivations, and personality traits. Understanding these aspects helps designers align the product with users' mental models and expectations.\n \n* **Goals and Pain Points**: Identifying the problems target actors face and their goals helps designers create solutions that address their specific needs. This information also helps in prioritizing features and functionalities within the product.\n \n* **Technology proficiency**: Users' familiarity with devices and applications greatly impacts their expectations and behavior while using a product. Designers must take into account their target actor's proficiency with technology to ensure a smooth and frustration-free user experience.\n \n\nTo effectively design for target actors, user research methods such as interviews, surveys, and usability tests can be employed to gather data and insights. This information helps designers create accurate user personas and make informed design decisions tailored to the needs of the target actors. By keeping the target actors at the forefront throughout the design process, you will ultimately create a more satisfying and successful product experience.",
"links": []
},
"AXn-N15U_z4OagClNoXrW": {
"title": "Target Action",
"description": "Target action is a fundamental concept in designing user experiences that focuses on the primary goal a user wants to achieve while interacting with your product. It refers to the specific action or task users are aiming to complete, which helps them solve their problem or fulfill a need.\n\nUnderstanding the target action helps you create a more streamlined and effective design by optimizing the interface, elements, and navigation around users' primary goals. Here are the key aspects of target action:\n\n* **Identify the Target Users:** To begin with, know your audience. Consider demographics, interests, and behaviors to get a clear picture of who your target users are. This will help you align the product design with users' needs and expectations.\n \n* **Determine User Goals:** Understand what users want to achieve with your product. Analyze their needs, preferences, pain points, and habits to identify their primary goals.\n \n* **Establish Clear Actions:** Based on user goals, determine the most critical actions they need to perform within your product. Simplify these actions by making them clear, obvious, and easy to access.\n \n* **Design for Success:** Prioritize target actions in your design. Focus on providing a clear path and guiding users towards attaining their goals by emphasizing essential elements, simplifying decision-making, and minimizing distractions.\n \n* **Validate with Testing:** Verify whether your design indeed supports users in achieving their target actions by conducting usability tests. Gather user feedback, analyze the results, and iterate the design until users can effortlessly complete their primary goals.\n \n\nBy incorporating the target action concept in your UX design process, you'll be able to create a more intuitive and user-centric product that effectively addresses users' primary goals and maximizes user satisfaction.",
"links": []
},
"s2KJ5kNv9UcnsP0QKIKQ7": {
"title": "Create User Personas",
"description": "User personas are fictional representations of your target users, created to help you understand their needs, behaviors, and goals. They are essential in UX design as they help your team stay focused on user needs and maintain empathy for the user throughout the design process. Here's a brief overview of how to create user personas:\n\n* **Gather User Data**: Conduct user research through methods such as interviews, surveys, and observations to collect data about your target users. This will provide you with valuable insights and help you identify patterns in user behavior.\n \n* **Identify Key Characteristics**: Analyze the collected data to identify common characteristics, such as demographics, goals, motivations, and pain points. These characteristics will form the foundation of your personas.\n \n* **Create Persona Profiles**: Based on the identified characteristics, create 3-5 distinct user personas. Each persona should have a name, a picture (to help humanize them), and details such as age, occupation, background, and a brief description of their typical day.\n \n* **Define User Goals and Scenarios**: List the primary, secondary, and tertiary goals of each persona, along with realistic scenarios in which they interact with your product or service. This will help you understand how different users approach your product and what they expect from it.\n \n* **Share and Refine**: Share your personas with your team and gather feedback. Make any necessary changes to ensure that the personas accurately represent your target users.\n \n\nRemember, user personas are not static, and should be updated as you gather more user data and insights. Keep them in mind throughout the design process, and always consider their needs and goals when making design decisions.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Personas A Simple Introduction",
"url": "https://www.interaction-design.org/literature/article/personas-why-and-how-you-should-use-them",
"type": "article"
},
{
"title": "Personas Make Users Memorable for Product Team Members",
"url": "https://www.nngroup.com/articles/persona/",
"type": "article"
},
{
"title": "Personas in UX",
"url": "https://youtube.com/playlist?list=PLJOFJ3Ok_ids-oEPCltCVtmdDOXiyttpq&si=v7ZaI65bQNTfXKHJ",
"type": "video"
}
]
},
"SGO9hHju49_py0n0ASGBe": {
"title": "Business Model Canvas",
"description": "The **Business Model Canvas** is a strategic management and visual representation tool that allows you to describe, design, challenge, and pivot your existing business model. Developed by **Alexander Osterwalder** and **Yves Pigneur**, it helps organizations to understand how they create, deliver, and capture value. The canvas is divided into nine building blocks, which represent the essential elements of a business model:\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Business Model Canvas",
"url": "https://www.interaction-design.org/literature/topics/business-model-canvas",
"type": "article"
}
]
},
"sc8jJ_77CrkQuxIJYk28Q": {
"title": "Lean Canvas",
"description": "Lean Canvas is a streamlined, single-page approach to visualizing the essential components of a business model. It was developed by Ash Maurya as an adaptation of the Business Model Canvas, with a focus on helping startups and entrepreneurs quickly develop and communicate their business ideas. Lean Canvas helps you define your Unique Value Proposition (UVP), identify your target customers, and outline your strategy. Let's go through its key components:\n\nProblem\n-------\n\nStart by identifying the main problems your product aims to solve. Be specific, and try to focus on the most pressing issues faced by your target customers.\n\nCustomer Segments\n-----------------\n\nDefine your target audience. Be as specific as possible, describing the types of customers who would benefit most from your product or service.\n\nUnique Value Proposition (UVP)\n------------------------------\n\nClearly articulate the unique value your product or service offers to your target customers. Your UVP should be distinctive and competitive, differentiating you from other solutions in the market.\n\nSolution\n--------\n\nList the key features, functionalities, or aspects of your product that address the identified problems, and align with your UVP.\n\nChannels\n--------\n\nOutline the various methods through which you plan to reach your target customers, such as social media, search engine optimization (SEO), email campaigns, or paid advertising.\n\nRevenue Streams\n---------------\n\nIdentify the ways you plan to generate income from your product or service. This could include sales, subscriptions, sponsorships, affiliate partnerships, or other revenue-generating channels.\n\nCost Structure\n--------------\n\nList your main costs and expenses associated with building, launching, and maintaining your product, including development, marketing, operations, and support.\n\nKey Metrics\n-----------\n\nDetermine the indicators you'll use to track your performance and gauge the success of your product. Metrics could include sales, user engagement, customer satisfaction, or any other relevant success indicators.\n\nUnfair Advantage\n----------------\n\nIdentify and describe any unfair advantages your product or business may have over your competitors. This could include unique expertise, proprietary technology, or strategic partnerships.\n\nBy completing a Lean Canvas, you'll have a clear and concise overview of your business model, allowing you to refine your concept, focus on what matters most, and communicate your vision to team members, investors, and customers. It's a powerful tool that can be an excellent starting point for any entrepreneur or startup looking to create a successful UX design.",
"links": []
},
"GI06-DbGyJlQXq5Tyi-aH": {
"title": "Business Model Inspirator",
"description": "A Business Model Inspirator is a tool or method that helps you to generate new or creative ideas for the strategic, operational, and financial aspects of a business. It helps entrepreneurs, startups, and established companies to explore different ways of designing or improving their business models by drawing inspiration from various sources.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Business Model Inspirator",
"url": "https://businessdesign.org/knowledge-base/business-model-inspirator",
"type": "article"
}
]
},
"HUZ5n2MRHzQPyjwX2h6Q4": {
"title": "Competitor Analysis",
"description": "**Competitor Analysis**\n\nCompetitor analysis is a crucial part of UX design, especially when dealing with new business models. It involves evaluating your competitors within your industry, understanding their strategies, strengths, and weaknesses, and comparing them with your own offerings.\n\nBy conducting a thorough competitor analysis, you can gain valuable insights into the market and potentially discover opportunities to differentiate yourself from the competition. Here's a brief overview of how to perform a competitor analysis:\n\n* **Identify your competitors:** Start by listing all the companies that offer a similar product or service within your target market. This may include direct competitors (who offer similar products and services) and indirect competitors (who offer alternative solutions to the same problem).\n \n* **Analyze their products and services:** Investigate your competitors' products and services by studying their features, benefits, and user experiences. Look for any gaps in their offerings or areas where you might have an advantage.\n \n* **Study their websites and apps:** Evaluate your competitors' digital platforms, such as their websites, mobile apps, or software. Assess their usability, visual design, content, and overall user experience.\n \n* **Evaluate their marketing strategies:** Analyze their communication channels and promotional activities, such as email campaigns, social media presence, and content marketing efforts. Take note of any strategies that seem particularly successful or unique.\n \n* **Examine customer reviews and feedback:** Collect and analyze customer reviews and feedback from popular review platforms, social media, and forums. This information can help you understand common pain points and areas for improvement in your competitors offerings.\n \n* **Identify opportunities and niches:** Based on your research, identify weaknesses in your competitors' strategies or markets, where potential opportunities exist for your business to be successful.\n \n* **Benchmark your own offerings:** Compare your products and services with those of your competitors. Identify your unique selling points and assess if your offerings cater to the needs of your target audience in a way that sets you apart from the competition.\n \n\nRemember that competitor analysis is not a one-time task. Instead, it should be an ongoing process that helps you stay up-to-date with the trends and changes within your industry, allowing you to make informed decisions about your UX design and overall business strategy.",
"links": []
},
"F9gpGTRwXq08jNo5pPKm6": {
"title": "Five Forces Model",
"description": "**Five Forces Model**\n\nThe _Five Forces Model_ is a strategic framework developed by Harvard Business School professor Michael Porter. It is designed to analyze the competitive environment and help businesses understand the factors that influence competition, profitability, and overall industry attractiveness. This model is essential in UX design as it helps you identify opportunities, make informed decisions, and ultimately design products that satisfy users' needs and preferences.\n\nThe Five Forces Model consists of five components:\n\n* **Competitive Rivalry:** This component addresses the intensity of competition among existing competitors within the industry. Factors affecting competitive rivalry include the number of competitors, diversity of competitors, the level of growth and demand, and barriers to exit. Knowing your competitors is crucial in UX design, as it guides you in creating features and improvements that build a competitive edge.\n \n* **Threat of New Entrants:** The possibility of new entrants entering the market impacts the competitive landscape. This force is determined by factors such as capital requirements, economies of scale, switching costs, and access to distribution channels. To remain competitive as a UX designer, you must continuously gauge potential threats and evolve your strategy to create and maintain a unique value proposition.\n \n* **Threat of Substitutes:** This force examines how easily users can switch between products or services that offer similar benefits. Factors affecting the threat of substitutions include the availability of alternatives, the price-performance ratio, and the perceived level of product differentiation. It is crucial to understand these factors and design your product in a manner that sets it apart, making it difficult for users to find substitutes.\n \n* **Bargaining Power of Suppliers:** This component evaluates the influence suppliers have over the price and quality of goods and services in your industry. Factors impacting bargaining power include the number of suppliers, availability of substitute inputs, brand strength, and cost structure. In UX design, it's essential to consider how the supplier landscape impacts product development and identify ways to work closely with suppliers to create valuable partnerships.\n \n* **Bargaining Power of Buyers:** Lastly, this force examines the degree of control customers have over your product's price, features, and overall quality. Factors that affect buyer power include market size, consumer information availability, product differentiation, and price sensitivity. In UX design, it's crucial to align your product with user expectations and preferences, ensuring they perceive it as valuable and are less likely to seek alternatives.\n \n\nTo effectively use the _Five Forces Model_ in UX design, it's essential to research and understand these forces in your industry, act on insights, and continually reassess your position as the competitive landscape evolves. By doing so, you'll create a robust and sustainable UX strategy that satisfies both user needs and market demands.",
"links": []
},
"XiEn1OGFY1bMCoB0Pk8N_": {
"title": "SWOT Analysis",
"description": "A SWOT analysis is a useful tool for assessing the strategic position of a company or product. It stands for:\n\n* **Strengths**: Identify the internal factors that give an advantage over the competition. Examples include a strong brand presence, skilled workforce, or access to unique resources.\n* **Weaknesses**: These are internal factors that may hinder your business growth or success. Examples include limited resources, outdated technology, or poor management.\n* **Opportunities**: These are external factors that can be seized to grow or improve the business. Examples include an expanding market, technological advancements, or potential partnerships.\n* **Threats**: These are external factors that may negatively impact the business, such as competitors, government regulation, or economic instability.\n\nPerforming a SWOT analysis can help you identify and prioritize the areas that need improvement, capitalize on opportunities, and address significant threats before they become a crisis. This analysis not only provides valuable insights into your current situation but also helps you prepare for the future by assessing risks and potential areas for growth.\n\nTo ensure a comprehensive SWOT analysis, follow these steps:\n\n* **Gather Relevant Information**: Begin by collecting data on internal strengths and weaknesses, such as financial performance and organizational structure. For the external analysis, examine market trends, competitor strategies, and other factors impacting the business environment.\n* **Notable Factors**: List down factors impacting your business's performance and classify them under strengths, weaknesses, opportunities, and threats.\n* **Evaluate and Prioritize**: Assess the importance of each item within the SWOT matrix, considering both its impact on the business and the resources required to address it.\n* **Develop Strategies**: Use the SWOT results to create effective strategies that leverage strengths, address weaknesses, capitalize on opportunities, and mitigate threats.\n* **Monitor Progress**: Continuously track the progress of your strategies, assessing their effectiveness and updating the SWOT analysis as required.\n\nIn summary, a SWOT analysis can serve as an excellent starting point in creating a robust UX design strategy. By understanding the internal and external factors influencing your business, you can make informed decisions while designing user experiences that resonate with your target audience and promote business growth.",
"links": []
},
"r6D07cN0Mg4YXsiRSrl1_": {
"title": "Conceptual Design",
"description": "Conceptual design, often referred to as the \"big idea\" phase, is a fundamental step in the UX design process. It entails creating and defining an overarching concept, vision, or framework for a product or service.\n\nIn this stage, designers focus on gathering information, understanding the problem, and generating ideas that will guide the overall user experience. This includes defining goals, needs, and target users, as well as considering the broader context in which the solution will exist. The output should be a clear and concise direction for future design work and development.\n\nKey components of conceptual design include:\n\n* **Problem Definition**: Identify and describe the core problem or challenge that your design aims to address. This should include insights from user research, business objectives, and a clear design goal.\n \n* **User Personas and Scenarios**: Develop representative user personas, providing demographic and behavioral information to help understand target user needs, motivations, and goals. Scenarios can then be created to illustrate how users might interact with the proposed solution in various contexts.\n \n* **Information Architecture**: Define the high-level structure of the product or service, organizing content and features in a way that is easy for users to understand and navigate. This helps ensure that information is presented clearly and consistently throughout the experience.\n \n* **Sketches and Wireframes**: Create rough sketches or wireframes to visualize key aspects of the user interface and explore various design alternatives. These early prototypes can help identify potential issues and guide future design decisions.\n \n* **Design Principles and Guidelines**: Establish a set of high-level principles and guidelines that will shape the design and serve as a foundation for further development. This may include aesthetic and functional criteria, as well as ensuring accessibility and usability.\n \n* **Iteration**: Continually refine and iterate on the initial concept, using feedback from user testing and stakeholder input to make informed design adjustments. This iterative approach allows for flexibility and adaptability as the project progresses.\n \n\nUltimately, the goal of conceptual design is to create a coherent and engaging vision that meets user needs and aligns with business objectives. By investing time and effort into this foundational stage, designers can lay the groundwork for a successful and enjoyable user experience.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "How to apply design thinking in UX",
"url": "https://medium.com/digital-experience-design/how-to-apply-a-design-thinking-hcd-ux-or-any-creative-process-from-scratch-b8786efbf812",
"type": "article"
}
]
},
"tkbkpvHlWQeOnReanR8J7": {
"title": "User Stories",
"description": "User stories are an essential component of UX design, particularly during the process of creating a product backlog. They help to ensure that a product is designed with the end-user in mind, by capturing their needs, desires, and goals in a simple, concise format. In this section, we will explore what user stories are, why they are important, and how to create them.\n\nWhat are User Stories?\n----------------------\n\nA user story is a brief, informal description of a specific user's need or interaction with a product. They are written from the perspective of the user and typically follow this format:\n\n As a [type of user], I want to [perform an action or achieve a goal] so that [reason or benefit].\n \n\nFor example: As a busy parent, I want to be able to quickly find activities for my children in my local area, so that I can keep them entertained without spending hours searching the web.\n\nWhy are User Stories Important?\n-------------------------------\n\nUser stories serve several crucial functions in the UX design process:\n\n* **Empathy**: By writing user stories, designers and product managers can better empathize with the users they are designing for, ultimately leading to more user-centered design decisions.\n* **Communication**: User stories are an effective way to communicate the needs, goals, and concerns of target users to stakeholders, developers, and other team members.\n* **Prioritization**: By considering user stories during the creation of a product backlog, teams can more effectively prioritize features and elements of the product that align with user needs.\n* **Validation**: User stories provide a useful benchmark for validating design concepts and evaluating the effectiveness of the final product in meeting the needs of its users.\n\nHow to Create User Stories\n--------------------------\n\nWhen creating user stories, it is essential to keep the end-users in mind. Follow these steps to create effective user stories:\n\n* **Identify User Personas**: Start by identifying the various user personas that will be interacting with your product. Consider their unique characteristics, needs, and goals.\n* **Clarify Needs**: For each persona, clarify the specific needs that they have in relation to your product. Consider how your product will help them achieve their goals or fulfill their needs.\n* **Write User Stories**: Using the provided format, write user stories that explicitly capture the needs of your identified personas. Be concise, clear, and specific.\n* **Review and Refine**: Review the user stories with your team and stakeholders to ensure they accurately reflect user needs and goals. Refine them as necessary to maintain focus and clarity.\n\nIn conclusion, user stories are a powerful tool for creating a user-centered, empathetic design process. By effectively capturing user needs and goals, user stories help to guide product development and ensure that the final product is tailored to the end-users' desires.",
"links": []
},
"QNJ-LxfYtR8lbnmuy2Qm9": {
"title": "In general, keep it short and simple",
"description": "The principle of \"Keep it short and simple\" (also known as the KISS principle) is an essential aspect of UX design. It is about creating user interfaces and product designs that are easy to understand, navigate and interact with, while minimizing unnecessary elements and complexities.\n\nHere are a few tips to implement the KISS principle in your UX design process:\n\n* **Simplicity**: Limit the number of elements on the screen, and have a clear, straightforward layout. This makes it easier for users to focus on important information and reduces cognitive load.\n \n* **Clear Hierarchies**: Categorize and group information logically, making sure that the most essential information is presented first. This helps users quickly understand the structure of your content.\n \n* **Minimal Clicks**: Aim to provide the shortest possible path for users to achieve their goal. Evaluate and eliminate any unnecessary steps or clicks to make the overall experience smooth and hassle-free.\n \n* **Consistency**: Keep key design elements and interactions consistent across your interface. This enables users to recognize patterns and anticipate behavior, which in turn makes it easier for them to learn and interact with your product.\n \n* **Content**: Write easy-to-understand and concise content that clearly communicates your message. Avoid jargon, and use clear language that is appropriate for your target audience.\n \n* **Visual Clarity**: Use simple and clean visual elements, such as icons, typography, and color schemes. Make sure your designs are legible and visually appealing without adding unnecessary clutter.\n \n* **Feedback**: Provide clear and timely feedback to users about the results of their actions. This helps them understand if they're on the right track or if they need to course-correct.\n \n\nBy following the KISS principle, you can create a more efficient and enjoyable user experience, ultimately leading to increased user satisfaction and higher conversion rates.",
"links": []
},
"vAu2c45c7DgoRydHR2tvD": {
"title": "Make it easy to understand and complete",
"description": "In UX design, the key to creating a great user experience is making it easy for users to navigate, understand, and interact with your product or interface. Here are some important aspects to keep in mind while designing with the \"Make It Easy\" principle:\n\n* **Clarity**: Keep the design and layout clean, with clear fonts and a simple interface. Avoid using too many different colors or elements that can clutter the screen and make it difficult for users to focus on their tasks.\n \n* **Consistency**: Keep a consistent design throughout the interface, by maintaining a standard pattern for elements, buttons, and symbols. This helps users understand the flow of your interface and what they need to do next.\n \n* **Intuitive Navigation**: Keep the navigation structure clear and easy to understand. Avoid using confusing labels or having too many layers of navigation that can make it difficult for users to find what they're looking for.\n \n* **Efficient Interaction**: Minimize the steps required to complete a task. Ensure that the user doesn't have to go through unnecessary steps or provide unnecessary input to achieve their goal.\n \n* **Error Prevention**: Help users minimize the chances of making errors by designing for error prevention. This can include things like disabling actions that aren't allowed, providing clear and concise instructions, or implementing user-friendly input fields.\n \n* **Flexibility**: Provide multiple ways for your users to complete tasks, so they can choose the approach that works best for their individual preferences and needs.\n \n* **Feedback**: Give users continuous feedback on the outcome of their actions. This can be through visual cues, sounds, and even haptic feedback. Providing feedback helps users understand what's happening and builds their confidence in the interface.\n \n\nRemember, the easier it is for users to interact with your product, the more likely they are to enjoy using it, thus leading to a better overall user experience.",
"links": []
},
"8YePym3cQtoVY0DJQLllK": {
"title": "Make progress visible to user",
"description": "Making progress visible is an essential part of UX design, as it helps users understand where they are in a process, and it gives them a sense of control and achievement. In this section, we'll discuss the importance of making progress visible and provide some practical tips for incorporating this approach into your designs.\n\nImportance of Making Progress Visible\n-------------------------------------\n\nVisible progress can significantly impact user experience. It helps in:\n\n* **Reducing user anxiety**: When users can see that they're making progress, they experience less anxiety and frustration.\n* **Building engagement**: Progress indicators help users feel invested and engaged with a task or product.\n* **Avoiding drop-offs**: When users can see the end of a process, they're more likely to complete it.\n\nTips for Making Progress Visible\n--------------------------------\n\nIncorporate these best practices into your UX design to make progress visible:\n\n* **Use progress bars:** A simple and effective way to show progress is through progress bars. You can use them for linear processes, like form completion or steps in a tutorial.\n* **Break tasks into manageable steps:** Chunking tasks into smaller steps makes them more manageable for users, and it allows users to see progress as they complete each step.\n* **Give feedback on progress:** Provide clear feedback on the user's progress, such as a tick or checkmark, accompanying text, or a change of color.\n* **Estimate time or effort:** Give users a sense of how long a task will take, or how much effort is involved, by showing time estimates or the number of steps involved.\n* **Enable users to review progress:** Allow users to review their progress and easily navigate between completed steps if they need to make changes.\n\nBy making progress visible, you can provide users with a sense of accomplishment, reduce anxiety, and encourage engagement with your product. Keep this approach in mind during your UX design process to create more satisfying and user-friendly experiences.",
"links": []
},
"D3LVYuCDHD6-kU8GhXokf": {
"title": "Make progress meaningful to reward user",
"description": "When designing a UX, one crucial aspect to consider is creating a sense of progress and achievement for users. By making progress meaningful and rewarding users, you can enhance their overall experience, satisfaction, and engagement with your product or service. Here's a brief summary of some key points to consider when implementing this principle in your design.\n\nSet Clear Goals and Milestones\n------------------------------\n\nHelp users understand the objectives they need to achieve within your product or service. The goals should be specific, measurable, attainable, relevant, and time-bound (SMART). By providing well-defined milestones, users can easily visualize their progress and feel motivated to continue using your product.\n\nProvide Feedback\n----------------\n\nContinuously inform users about their progress and actions by providing feedback through visual cues, messages, notifications, or sounds. This will reassure them that they are on the right track and help maintain their engagement.\n\nCelebrate Achievements\n----------------------\n\nRecognize and celebrate user accomplishments, whether it's completing a task, reaching a new level, or mastering a new skill. This can be done through messages, badges, trophies, or other visual elements that give users a sense of achievement and recognition.\n\nPersonalize Rewards\n-------------------\n\nTailor rewards to cater to individual user preferences, taking into account their needs, desires, and achievements. This could mean offering different types of rewards or varying the difficulty levels to unlock them based on the user's past experiences with your product.\n\nEncourage Social Sharing\n------------------------\n\nLeverage the power of social networks to allow users to share their achievements and progress with friends, family, or other users. Providing incentives for sharing can also help enhance the feeling of accomplishment and increase the likelihood of continued engagement.\n\nGamification\n------------\n\nIncorporate gamification elements into your UX design to make progress and rewards more engaging and entertaining. Gamification techniques can include points, levels, leaderboards, and other game-like components that encourage users to invest time and effort in your product.\n\nBy making progress meaningful and rewarding for users, you can significantly enhance the overall user experience, foster user loyalty, and improve the chances of your product's long-term success. Always consider the unique needs and preferences of your target audience to customize your approach for the best results.",
"links": []
},
"94V3wUtZ0NMm_0Vb1pBju": {
"title": "Make successful completion clearly visible",
"description": "When designing user experiences, it's essential to ensure that users can easily recognize when they've completed a task or achieved their goal. This is important because it provides users with a sense of accomplishment and satisfaction; it also helps build trust in the digital product. Here are some tips to make successful completion clearly visible:\n\n* **Visual feedback:** Provide clear visual cues (e.g., color changes, checkmarks, or other symbols) to indicate when a user has successfully completed a task. This reinforces the user's understanding that their actions have had the desired outcome.\n \n* **Success messages:** Display context-appropriate messages or confirmation screens to acknowledge that tasks have been successfully completed. For example, after submitting a form, show a success message containing a confirmation number and relevant next steps.\n \n* **Progress indicators:** Use progress bars or other indicators to help users track their progress towards task completion. This helps users understand how much work remains and can motivate them to continue working towards their goal.\n \n* **Transitions:** Utilize smooth animations and transitions when moving between different states or screens. This helps users recognize that they've successfully completed a task and are moving on to the next step.\n \n* **Accessible design:** Ensure that your success indicators and feedback are accessible to all users, including those with visual impairments. Use suitable text labels, alt text, and other accessibility features to guarantee that everyone can perceive and understand when they've completed a task.\n \n\nBy incorporating these elements into your UX design, you will create a user experience that not only guides users through tasks efficiently but also provides them with the satisfaction of clearly visible successful completions. This, in turn, can lead to more enjoyable interactions with your digital product and improved user engagement.",
"links": []
},
"0KEqAjHFBjfmGA1bKzXuD": {
"title": "Customer Experience Map by Mel Edwards",
"description": "A **Custom Experience Map** is a powerful visual representation that helps designers and stakeholders understand the entire user journey. It captures the various touchpoints, interactions, and experiences a user goes through while using a product or service. This map can be created to suit the specific needs of your project or organization, giving you a comprehensive view of the user experience.\n\nKey Components of a Custom Experience Map\n-----------------------------------------\n\nBelow are some crucial components of an effective custom experience map:\n\n* **User Persona**: This includes the demographics, goals, and pain-points of the target user, which helps in understanding the user's perspective throughout the journey.\n \n* **Stages**: The different logical steps or phases the user goes through during their interaction with the product or service.\n \n* **Touchpoints**: These are the specific interactions the user has with the product or service, such as clicking a button, opening an app, or talking to a customer representative.\n \n* **Channels**: These refer to the mediums or platforms through which the interactions take place, such as website, mobile app, email, or in-person.\n \n* **Emotions**: The emotional state of the user during each touchpoint, which can highlight areas of frustration or delight.\n \n* **Opportunities**: Areas where improvements can be made, new features can be introduced, or further research can be conducted to enhance the overall user experience.\n \n\nBenefits of a Custom Experience Map\n-----------------------------------\n\nCreating a custom experience map offers several advantages for both designers and stakeholders:\n\n* It helps identify the pain-points, gaps, or opportunities to improve user experience.\n* It enables a better understanding of how users navigate and interact with the product or service.\n* It facilitates the prioritization of UX design tasks and helps focus on high-impact areas.\n* It promotes collaboration and communication across different team members within the organization.\n\nTips for Effective Experience Mapping\n-------------------------------------\n\nTo make the most of a custom experience map, consider the following tips:\n\n* Involve different stakeholders and team members in the process to ensure diverse perspectives are taken into account.\n* Use the map as a communication tool for sharing insights and findings with the team.\n* Update the map as the product evolves or new data becomes available to keep it relevant and useful.\n* Regularly review the map during design iterations to ensure user goals and pain-points are consistently addressed.\n\nBy leveraging the power of a custom experience map, UX designers can visualize and uncover valuable insights, which lead to more informed decisions and ultimately a better user experience.",
"links": []
},
"JCP5_jyvh9u7hxp379iW2": {
"title": "Simple Flowchart",
"description": "A simple flowchart is a useful deliverable in the UX design process that helps visually represent the flow of a user's journey through a website or an app. It's a diagrammatic representation of the user interactions and decision points, showcasing the steps they will take to achieve a specific goal.\n\nThis straightforward visual aid can assist the entire project team, including designers, developers, and stakeholders, to understand the overall structure and organization of the proposed design solution.\n\nKey Elements of a Simple Flowchart\n----------------------------------\n\n* **Shapes**: Standard shapes like rectangles, diamonds, and ovals are utilized to indicate different actions or decisions in a flowchart. Each shape has a specific meaning, which aids in understanding the flow of the user interaction.\n* **Lines and Arrows**: These are used to connect the various shapes and define the sequence of steps.\n* **Labels**: Brief descriptions or texts inside the shapes describe the action, decision, or process represented by that particular shape.\n\nBenefits of Using Simple Flowcharts\n-----------------------------------\n\n* **Shared Understanding**: Flowcharts are easy to read and understand, fostering a shared understanding between team members and stakeholders.\n \n* **Effective Communication**: They provide a clear way to communicate the steps involved in a process, making it easier for teams to discuss and collaborate.\n \n* **Identifying Potential Issues**: Flowcharts help identify potential bottlenecks or points of friction in a user's journey, enabling the team to address issues early in the design process.\n \n* **Documentation**: As a deliverable, flowcharts can serve as documentation, capturing the broader structure and steps in a process for future reference.\n \n\nTo create a simple flowchart, start by listing all the essential steps and decisions in the user journey you want to document. Organize them sequentially and then use standard shapes and arrows to create the flowchart. Make sure to include annotations or labels to clarify the meaning of each shape.\n\nIn summary, a simple flowchart is a valuable UX deliverable that helps visualize user interactions and design solutions in an easy-to-understand format, facilitating better communication and collaboration within project teams.",
"links": []
},
"nccToz_0FUvHMJytpDpM0": {
"title": "Event-driven Process Chain Model (EPC)",
"description": "The Event Driven Process Chain (EPC) model is a flowchart-based diagramming method that supports the documentation and analysis of business processes. EPCs are frequently used in the field of UX design to aid in identifying areas for optimization and improvement.\n\nIn an EPC model, events, functions, and control flow are the primary components.\n\n* **Event**: Represents a specific point in time, such as the start, end or a change in a process.\n* **Function**: Represents an action or task that needs to be performed. Functions typically connect to events and other functions within a process chain.\n* **Control Flow**: Illustrates the flow of activities in the process chain by connecting events and functions with arrows, showing the sequence of tasks.\n\nCreating an EPC model involves the following steps:\n\n* Identify the main activities and events in the process to be modeled.\n* Define the flow of activities by connecting events and functions using arrows.\n* Identify decision points or branches in the process, where alternative paths may be followed.\n* Analyze the model to identify areas for improvement, such as bottlenecks, inefficiencies or redundancies.\n\nEPC models are beneficial for UX designers as they provide a clear, visual representation of the business processes. This helps in understanding how a user's interactions with a product or service are tied to the overall process flow. Consequently, insights gained from EPC models can inform the UX design process in terms of the required steps and interactions, potential pain points, and opportunities for innovation.",
"links": []
},
"jy5jtSEyNE8iJpad27rPX": {
"title": "Business Process Model & Notation (BPMN)",
"description": "Business Process Model and Notation (BPMN) is a graphical representation of business processes, providing a standardized and easy-to-understand method for visualizing different aspects of a business. By using BPMN, UX designers can analyze and optimize business processes and workflows, which ultimately improves the overall user experience.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Business Process Model and Notation (BPMN)",
"url": "https://aguayo.co/en/blog-aguayp-user-experience/business-process-model-notation-for-ux/",
"type": "article"
},
{
"title": "How to Design BPNM",
"url": "https://devlight.io/blog/how-to-design-business-process-model-and-notation-for-a-mobile-app/",
"type": "article"
}
]
},
"6yCBFwntQ_KxFmmGTJ8iR": {
"title": "Prototyping",
"description": "Prototyping is a crucial stage in the UX design process, where designers create a representation of the product to test its usability and functionality. This allows designers to uncover any issues, gather feedback, and iterate on the design before the actual development stage. Prototypes can range from simple sketches to fully interactive and detailed models. There are several types of prototyping, such as:\n\nLow-Fidelity Prototyping\n------------------------\n\nLow-fidelity prototypes are simple, rough representations of the design that focus on the overall structure and main functionalities. They are fast to create and allow designers to quickly test ideas and gather user feedback. Examples include:\n\n* Paper sketches: Drawings made on paper that convey the basic layout and structure of the interface.\n* Wireframes: Simple digital representations of the user interface, showing the placement of elements without any visual styling.\n\nHigh-Fidelity Prototyping\n-------------------------\n\nHigh-fidelity prototypes are more detailed and interactive, closely resembling the final product. They include the visual design, animations, and interactions, allowing for effective user testing and showcasing the design to clients or stakeholders. Examples include:\n\n* Interactive mockups: Clickable representations of the interface that incorporate visual design and interactions, often created using prototyping tools such as Sketch, Adobe XD, or Figma.\n* HTML prototypes: Interactive prototypes built using HTML, CSS, and JavaScript, which can be a good option if the designers have coding skills and want a more accurate representation of the final product.\n\nChoosing the Right Prototyping Method\n-------------------------------------\n\nThere is no one-size-fits-all approach to prototyping. The best method depends on factors such as the project's goals, the stage of the design process, available resources, and the level of detail needed. Generally, low-fidelity prototyping is best for early stages of design, when the focus is on testing the main structure and functionality, while high-fidelity prototyping is better suited for later stages when refining the visual design and interactions.\n\nBenefits of Prototyping\n-----------------------\n\nPrototyping is essential in UX design because it:\n\n* Saves time and money: By identifying and addressing usability or design issues early in the process, you can avoid costly redesigns or development changes.\n* Facilitates collaboration: Prototypes enable designers, stakeholders, and developers to discuss the design and give meaningful feedback.\n* Enhances user experience: Iterative testing and refining the design based on feedback ensures the final product meets user needs and expectations.\n\nIn conclusion, prototyping is a crucial step in the UX design process that helps designers test ideas, gather feedback, and iterate on the design, ultimately leading to a more user-centered final product.",
"links": []
},
"90_M5qABC1vZ1nsXVyqFJ": {
"title": "Good Layout Rules",
"description": "In the world of UX design, a good layout is crucial to ensure your prototype is intuitive and user-friendly. By following these good layout rules, you can ensure your designs are efficient, attractive, and easy to navigate for users.\n\nConsistency\n-----------\n\nBeing consistent with your design is vital in creating an easy-to-navigate interface. Utilize the same color schemes, typography, and other design elements consistently throughout your prototype to make it visually cohesive and user-friendly.\n\nAlignment and Spacing\n---------------------\n\nEnsure all the elements on your prototype are aligned and spaced properly. This helps create a well-structured and clean look, while also making it easy for users to navigate and understand your design.\n\nVisual Hierarchy\n----------------\n\nEstablish clear visual hierarchy by using size, color, contrast, and white space effectively. This helps users identify important elements on the screen quickly and understand the flow of your design easily.\n\nGrouping of Elements\n--------------------\n\nGroup related elements together, such as navigation menus or form input fields. This helps users recognize the purpose and function of each section more quickly and intuitively.\n\nBalance and Proportion\n----------------------\n\nCreate a balanced and proportional look by distributing elements on the screen evenly. This can be achieved through the use of grids or other layout techniques that help maintain a sense of harmony and order in your design.\n\nAccessibility\n-------------\n\nEnsure your design is accessible to all users by considering factors such as text size, contrast, and color combinations. Aim to create an inclusive prototype that caters to people of different abilities and preferences.\n\nResponsiveness and Flexibility\n------------------------------\n\nMake sure your prototype can adapt to different screen sizes and devices, ensuring a seamless user experience across various platforms. This is particularly important when designing for web and mobile applications.\n\nIterating and Testing\n---------------------\n\nAs you develop your design, continually test and iterate on your layout based on user feedback and data. This process will help refine your design and ensure it meets the needs and expectations of your users.\n\nBy incorporating these good layout rules into your prototyping process, you'll be well on your way to creating a user-friendly and effective design that meets the goals and objectives of your project.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "User Interface Design Guidelines: 10 Rules of Thumb",
"url": "https://www.interaction-design.org/literature/article/user-interface-design-guidelines-10-rules-of-thumb",
"type": "article"
}
]
},
"t46s6Piyd8MoJYzdDTsjr": {
"title": "Figma",
"description": "[Figma](https://www.figma.com/) is a powerful and versatile web-based design tool that allows designers, developers, and stakeholders to collaborate on UI and UX projects in real-time. It's an excellent choice for creating wireframes and high-fidelity prototypes and supports vector editing, responsive design, and team collaboration.\n\nKey Features\n------------",
"links": []
},
"HI_urBhPqT0m3AeBQJIej": {
"title": "Adobe XD",
"description": "Adobe XD (Experience Design) is a powerful design and prototyping tool that allows UX designers to create wireframes, mockups, and interactive prototypes for various digital projects. It is available for both Mac and Windows, and it focuses on providing an easy-to-use, intuitive interface for designing responsive websites, mobile apps, and more.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Adobe XD Platform",
"url": "https://adobexdplatform.com/",
"type": "article"
},
{
"title": "Getting Started with Adobe XD",
"url": "https://helpx.adobe.com/xd/get-started.html",
"type": "article"
},
{
"title": "Learn Adobe XD",
"url": "https://www.adobe.com/ph_en/products/xd/learn/get-started-xd-design.html",
"type": "article"
}
]
},
"nb7Ql1gvxqEucsGnIWTyY": {
"title": "Sketch",
"description": "Sketch is a powerful digital design tool specifically tailored for user interface (UI) and user experience (UX) design. As part of the creative process, designers use Sketch to create wireframes, visual mockups, and interactive prototypes that help plan and iterate their ideas.\n\nKey Features\n------------",
"links": []
},
"fZkARg6kPXPemYW1vDMTe": {
"title": "Balsamiq",
"description": "Balsamiq is a popular wireframing tool that helps designers, developers, and product managers to quickly create and visualize user interfaces, web pages, or app screens. It's an easy-to-use software that allows you to focus on ideas and concepts rather than getting caught up in pixel-perfect designs.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Balsamiq Website",
"url": "https://balsamiq.com/",
"type": "article"
}
]
},
"U4ZEFUcghr9XjSyf-0Np7": {
"title": "Call to Action",
"description": "A **Call to Action (CTA)** is a UX pattern that encourages users to take a specific action on a website, app, or other digital product. It is an essential component of effective UX design, as it helps guide users through the experience and accomplish their goals. CTAs can come in various forms, including buttons, links, images, or text.\n\nImportance of Call to Action\n----------------------------\n\n* **Increased conversion rates**: A well-placed and well-designed CTA can significantly increase conversion rates, leading to more sign-ups, purchases, or other desired user actions.\n* **Guides user behavior**: CTAs help to guide users through the flow of your product, and can assist in providing a clear and concise user journey.\n* **Highlighting key features**: A strong CTA can bring attention to key features or important information that you want your users to notice and engage with.\n\nDesigning an Effective Call to Action\n-------------------------------------\n\nTo create an effective CTA, consider the following factors:\n\n* **Placement**: The placement of a CTA is crucial to its effectiveness. It should be easily noticeable and accessible without overwhelming or distracting users. In most cases, placing CTAs above the fold (the portion of the website visible without scrolling) has proven to be effective.\n* **Size and shape**: The size and shape of a CTA should be consistent with the overall design of your product. Make sure it is large enough to be easily noticed, but not too large that it overwhelms other content.\n* **Color and contrast**: Choose a color for your CTA that stands out from the rest of your design. High contrast between the CTA button and its surrounding elements can make it more noticeable and draw attention.\n* **Clear and concise copy**: The text on your CTA should be clear, concise, and tell users exactly what to expect when they click on it. Use action-oriented language like \"Sign Up,\" \"Learn More,\" or \"Start Now\" to encourage users to take action.\n\nCTA Best Practices\n------------------\n\nHere are some best practices to follow when designing and implementing CTAs:\n\n* Limit the number of CTAs on a single page or screen to maintain focus and avoid confusion.\n* Ensure the CTA is relevant to the content and user experience.\n* Test different CTA variations, placements, and designs to determine which is most effective for your target audience.\n\nBy incorporating CTAs into your UX design, you can create a more engaging, user-friendly experience that helps guide users through your product and ultimately drives them to take the desired actions.",
"links": []
},
"G4Ap91NgZfkV-54EuWe-Z": {
"title": "Status Reports",
"description": "Status reports are an essential component of UX patterns that aid in keeping users informed about the current state of the system, task progress, and any relevant updates. By providing real-time feedback, users can understand the outcome of their actions which ultimately helps in building trust, reducing confusion, and enhancing overall user satisfaction.\n\nHere are some key aspects to consider when designing status reports for your application:\n\nTiming\n------\n\nChoose the appropriate time to display status reports so that it doesn't interrupt the user's ongoing activities. For instance, progress bars should be visible only when a task requires some time to complete, while error messages should appear right after an incorrect input.\n\nPlacement\n---------\n\nPosition the status reports in a way that they naturally draw users' attention without distracting them from their primary tasks. Some commonly used placements include the top or center of the page for critical alerts, and near the input fields for validation feedback.\n\nContent\n-------\n\nKeep the content of your status report simple, concise, and informative. It should be easy for the user to understand what's happening and, if necessary, provide clear instructions on how to proceed. Avoid jargon and use plain language that users can easily comprehend.\n\nVisual Hierarchy\n----------------\n\nDesign your status reports using visual hierarchy principles to prioritize the most important information. Make use of contrast, typography, and other visual elements to help users quickly understand the message and its level of importance.\n\nAccessibility\n-------------\n\nEnsure your status reports are accessible by providing descriptive text, like alternative text for images, or using ARIA roles for screen readers. This ensures that users with disabilities can also benefit from these useful reports.\n\nDismissal\n---------\n\nOffer users the option to dismiss non-critical status reports as per their preference. This can be done by providing a close button for banners, tooltips, and pop-ups.\n\nIn conclusion, status reports are a valuable aspect of UX design that effectively communicate essential information to users, thus improving their overall experience with your product. Integrating these principles into your UX pattern can considerably enhance your design's effectiveness and user satisfaction.",
"links": []
},
"mzWd-xSr7sO2RgfPbKy4T": {
"title": "How-to-Tips",
"description": "This design pattern design to provide users with guidance or tips on how to use a product or service. This pattern can be implemented in various ways, such as through tooltips, pop-ups, modals, or other interactive elements that appear on the screen.\n\nThe purpose of the \"How-to-tips\" UX pattern is to help users learn how to use a product or service quickly and easily, without having to refer to external documentation or search for answers online. By providing guidance and tips directly within the user interface, this pattern can improve the user experience and reduce frustration, especially for new or inexperienced users.\n\nExamples of this pattern include:\n\n* Tooltips that appear when users hover over or click on certain elements, providing information about the function or purpose of that element.\n* Pop-ups or modals that appear when users first interact with a product or service, providing an overview or tutorial on how to get started.\n* Interactive tutorials or walkthroughs that guide users through key features or functions of a product or service, step-by-step.\n\nOverall, the \"How-to-tips\" UX pattern is a valuable tool for improving the usability and accessibility of a product or service, helping users to learn how to use it effectively and efficiently.",
"links": []
},
"wFWidrOZ5EHPgo9uuUclK": {
"title": "Reminders & Planning Prompts",
"description": "In the realm of UX design, **reminders and planning prompts** are essential components that ensure users remember to complete specific actions or tasks at the right time. By including these prompts within the user flow, you can aid users in staying on track and reduce the likelihood of missed deadlines or incomplete tasks.\n\nWhy Use Reminders and Planning Prompts?\n---------------------------------------\n\nUsers often have multiple tasks to juggle simultaneously, making it easy for things to slip through the cracks. By incorporating reminders and planning prompts into your application, you can help combat:\n\n* **Forgetfulness**: People sometimes need a gentle nudge to remember their next step or obligation.\n* **Procrastination**: Timely reminders can encourage users to prioritize their tasks and meet deadlines.\n* **Lack of motivation**: Well-crafted planning prompts can inspire users to take action and stay engaged with your product.\n\nTypes of Reminders and Planning Prompts\n---------------------------------------\n\nTo provide effective, well-timed reminders and prompts, consider employing the following methods:\n\n* **Push notifications**: Utilize mobile or desktop notifications to remind users about upcoming tasks, appointments, or deadlines.\n* **In-product prompts**: Place on-screen prompts to encourage users to take specific actions while using the application.\n* **Email reminders**: Send scheduled emails to users as reminders for tasks or appointment confirmation.\n* **Badges**: Use badges or other visual cues to indicate pending tasks, such as unread messages or incomplete items in a to-do list.\n* **Calendar integration**: Integrate your application with calendar tools, so users can easily add and access reminders and events.\n\nStrategies for Effective Reminders and Planning Prompts\n-------------------------------------------------------\n\nTo ensure that your reminders and planning prompts encourage users to take action, follow these guidelines:\n\n* **Customization**: Allow users to customize their reminders, such as setting preferred notification times or choosing the method of delivery.\n* **Context**: Provide context around the reminder so users have enough information upfront to determine the task's priority.\n* **Actionable**: Make your reminders engaging and actionable, so users can directly take action from the reminder or prompt.\n* **Timeliness**: Consider the user's time zone and availability when scheduling reminders and plan accordingly.\n\nIncorporating reminders and planning prompts into your UX design strategy can improve user engagement, satisfaction, and product success. By considering the different types and strategies outlined above, you can create a user experience that keeps your audience actively engaged with your application.",
"links": []
},
"9vA3ZWMiKG6NiEqGDvcFR": {
"title": "Decision-Making Support",
"description": "Decision making support plays a crucial role in UX design by providing users with the necessary information, options, and feedback to make informed choices when interacting with a product or interface. This UX pattern focuses on helping users make decisions through clear presentation of information, minimizing cognitive load, and offering guidance throughout the various interactions.\n\nKey Elements of Decision Making Support\n---------------------------------------\n\n* **Clear presentation of information**: Present complex information in a simple, easily digestible format. Break down large amounts of data into smaller chunks, use visuals (e.g., icons, images, graphs) to convey information, and provide clear labeling and headings.\n \n* **Minimize cognitive load**: Reducing the mental effort required by users when making decisions can lead to better decision-making and higher satisfaction. Limit the number of options presented, group similar items together, and use progressive disclosure to provide additional details when necessary.\n \n* **Feedback and guidance**: Providing feedback and guidance can help users understand the implications of their decisions and options. Use micro-interactions (e.g., hover effects, tooltips) to clarify the meaning of interactive elements and provide suggestions or recommendations.\n \n* **Defaults and pre-selected options**: Set sensible defaults and pre-selected options to help users make decisions quickly, while also allowing flexibility for customization. This can prevent decision paralysis and reduce frustration for users with limited knowledge or expertise.\n \n* **Comparison tools**: Offer easy-to-use comparison tools for users to weigh different options, especially in cases where the decision involves multiple factors. This can be provided through side-by-side comparison tables, or visual aids that highlight differences between options.\n \n\nTips for Implementing Decision Making Support\n---------------------------------------------\n\n* Empathize with your users and create user personas to understand their needs, goals, and preferences when making decisions.\n* Conduct usability tests to evaluate the effectiveness of your decision-making support features and iterate based on user feedback.\n* Take into account different use cases and decision-making styles across your target audience, and design support features that cater to these variations.\n* Be cautious not to overwhelm users with too much decision support, which can lead to increased cognitive load and poor user experience.\n\nBy incorporating effective decision-making support into your UX design, you can enhance user experience, increase satisfaction, and ultimately, help your users make better choices while interacting with your product.",
"links": []
},
"JSBiw0C6aq1LhA33y79PM": {
"title": "Behavior Change Games",
"description": "Behavior change games are a powerful UX design pattern that help users adopt new habits or make positive lifestyle changes. These games are typically designed to be engaging, enjoyable, and motivating, utilizing various game elements and mechanics to encourage users to take desired actions. When designing behavior change games, it's essential to keep user experience in mind, and create an enjoyable and motivating experience. Balancing fun and educational elements can result in a powerful tool for guiding users towards positive change in their lives.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Behavioral Change Games",
"url": "https://medium.com/@jgruver/designing-for-behavioral-change-a-new-approach-in-ux-ui-design-59f9fb0086d1",
"type": "article"
}
]
},
"fbIur1tEIdNDE6gls4Bru": {
"title": "Gamification",
"description": "Gamification is a UX design pattern that involves incorporating elements of game design into non-game applications or websites to enhance user engagement and create enjoyable experiences. By using game mechanics like points, achievements, competition, and progress-tracking, designers can make mundane tasks more appealing and motivate users to interact with the content or perform certain actions.\n\nBenefits of Gamification\n------------------------\n\n* **Increased engagement**: Gamification helps in capturing the user's attention and encourages them to spend more time interacting with the product.\n* **Motivation**: Game mechanics like points, badges, and leaderboards act as incentives, motivating users to perform a desired behavior or accomplish specific goals.\n* **Improved learning**: Gamification can make learning new concepts or skills more enjoyable, allowing users to better retain information.\n* **User retention**: By creating a sense of achievement and fostering friendly competition, gamification can inspire users to keep returning to the product.\n\nKey Elements of Gamification\n----------------------------\n\n* **Points**: Points are a quantifiable way to track the user's accomplishments and give immediate feedback. They can be used as a currency to unlock specific content or features.\n* **Badges**: Badges are visual representations of achievements that users can earn by completing certain activities or reaching milestones, which creates a sense of accomplishment.\n* **Leaderboards**: Leaderboards display users' progress in comparison to others, encouraging competition and fostering motivation to improve one's standing within the community.\n* **Progress tracking**: Providing a progress bar or checklist helps users visualize their journey and gives them a clear idea of what they have achieved and what's remaining.\n\nImplementing Gamification\n-------------------------\n\nWhen implementing gamification in your UX design, consider the following factors:\n\n* **Target audience**: Define your target audience and analyze their demographics, preferences, and pain points to provide a suitable gamification experience.\n* **Purpose**: Identify the desired outcome the gamification process aims to achieve, such as increased engagement, user acquisition, or learning.\n* **Relevance**: Ensure that the gamification elements align with your product's purpose and add value to the user experience, rather than feeling forced or gimmicky.\n* **Balancing challenge and reward**: Create a balance between the level of challenge and the offered rewards to maintain user interest.\n* **Feedback**: Provide users with timely feedback on their progress and performance to keep them engaged and informed.\n\nBy incorporating gamification into your UX design, you can create more engaging and captivating experiences that keep users coming back for more. Just remember to ensure that the game elements are relevant to the product's purpose and contribute positively to the overall user experience.",
"links": []
},
"eYZf67rnhOksfh44hnzHg": {
"title": "Planners",
"description": "Planners are an essential aspect of UX design, helping users accomplish complex tasks by breaking them down into manageable steps. Planners are particularly useful in situations where users are expected to make decisions or deal with a range of options. They help to create an engaging and interactive experience, guiding users to achieve their goals efficiently.\n\nCharacteristics of Planners\n---------------------------\n\nThere are a few key characteristics that define planners in UX design:\n\n* **Clear Guidance:** Planners provide clear instructions and guidance on the various steps involved, making it easier for users to navigate through the process.\n \n* **Progress Indicators:** Planners typically use some form of progress indicator, such as a progress bar or a checklist, to show users how far along in the process they are.\n \n* **Error Prevention & Handling:** Planners strive to prevent user errors by providing input validation, feedback, and clear guidelines on what needs to be done. They also handle errors effectively, allowing users to recover and move forward, without getting frustrated.\n \n* **Flexibility:** Planners offer users the flexibility to complete tasks at their own pace, and provide options for changing or updating information at any stage in the process.\n \n* **Consistency:** Planners maintain consistency in the design and presentation of information, ensuring that the user experience is familiar and predictable at all times.\n \n\nTypes of Planners\n-----------------\n\nThere are various types of planners used in UX design, depending on the specific needs of the project:\n\n* **Decision Trees:** These provide users with a sequence of binary options, guiding them through a series of choices until they reach a specific end result.\n \n* **Wizards:** These are step-by-step guides that walk users through a process, presenting one question or task at a time, and only moving on once the user has completed the previous step.\n \n* **Task Checklists:** These provide users with a list of sub-tasks or actions they must complete in order to achieve a larger goal. Users can check-off tasks as they complete them, and see their progress towards the goal.\n \n* **Interactive Conversations:** These mimic a conversational interaction between the user and the system, using natural language processing to guide users through tasks or decision-making processes.\n \n\nImplementing Planners\n---------------------\n\nWhen incorporating planners into your UX design, consider the following best practices:\n\n* Identify the core tasks or decisions your user needs to make and create a logical flow for each process.\n \n* Use clear and concise language to guide users through steps, ensuring instructions are easy to follow and understand.\n \n* Implement appropriate progress indicators or feedback mechanisms to show users how close they are to completing the task.\n \n* Focus on error prevention and offer easy ways for users to recover from mistakes.\n \n* Ensure that your planner design is consistent with the overall user interface and user experience goals, while also being flexible to accommodate user preferences and habits.\n \n\nBy following these best practices and tailoring planners to meet the needs of your users, you can create a more engaging and user-friendly experience that allows users to complete complex tasks with ease.",
"links": []
},
"esWGzYUJwv7_xGjq6kpVE": {
"title": "Reminders",
"description": "**_Reminders_** play an essential role in the user's experience, especially when it comes to retaining user attention and engagement. They can be helpful in making sure that the user stays focused on their tasks, remembers essential information or deadlines, and continually interacts with your product or design.\n\nImportance of Reminders\n-----------------------\n\n* **User Engagement**: Reminders can act as an opportunity to drive users back to your app or website, ensuring they don't forget to use your product or service.\n* **Timely Notifications**: When a reminder is well-timed and relevant, it can be a useful tool to prevent users from missing out on crucial information or essential tasks.\n* **Positive User Experience**: Effective use of reminders can create a positive experience for users, making them feel supported and confident in using your product or service.\n\nTypes of Reminders\n------------------\n\nThere are several types of reminders that can be used in UX design. Here are some common ones:\n\n* **Time-based Reminders**: Set at specific intervals or times, these reminders are designed to ensure users don't forget important tasks or events related to your product or service.\n* **Location-based Reminders**: Triggered by entering or leaving certain locations, these reminders can be useful for tasks related to a specific place or area.\n* **Action-based Reminders**: Initiated by user actions, these reminders can provide useful prompts or follow-up actions based on user behaviors within your app or website.\n\nBest Practices\n--------------\n\nHere are a few best practices to consider when incorporating reminders into your UX design:\n\n* **Be Timely and Relevant**: Ensure that reminders are helpful to the user by making them timely and relevant to the user's needs.\n* **Keep it Simple**: Use clear, concise language that is easy for users to understand and act upon.\n* **Avoid Overloading Users**: Too many reminders can become overwhelming and irritating, negatively impacting the user experience. Strike a balance between providing important reminders and respecting the user's time and attention.\n* **Allow Personalization**: Where possible, provide the user with options to customize the timing and frequency of reminders, enabling them to personalize their experience to suit their preferences.\n* **Consider Design Elements**: Reminders can be delivered through several methods, including in-app notifications, push notifications, and emails. Consider the most appropriate method for your user base and ensure the design of the reminder is visually appealing and easy to engage with.\n\nIn conclusion, thoughtfully implemented reminders can significantly enhance the user experience and improve user engagement, retention, and satisfaction. By following best practices and considering the user's needs, you can create effective reminders that users appreciate and value.",
"links": []
},
"FoKtBRuTuMD2SZDHLWS-5": {
"title": "Social Sharing",
"description": "In the realm of UX design, **Social Sharing** is a crucial pattern that allows users to share content from a website or app to various social media platforms. It helps in creating interaction between users and the content, engaging the audience and generating more traffic to the source.\n\nBenefits of Social Sharing\n--------------------------\n\n* Increase in brand visibility and awareness\n* Drive more traffic to the website or app\n* Higher chances of content going viral\n* Encourages engagement and conversation around your content\n* Improves organic search rankings\n\nDesigning Effective Social Sharing Buttons\n------------------------------------------\n\n* **Positioning**: Place the social sharing buttons at an easily accessible location on the page, e.g., top, bottom, or alongside the content.\n* **Size and Style**: Opt for clear and recognizable social icons that are easy to tap or click. Ensure their size is adequate to avoid any UX issues.\n* **Customization**: Tailor the design of social sharing buttons to complement your website or app's visual appeal.\n* **Selective platforms**: Focus on the most popular or relevant social media platforms for your target audience; not every platform may be necessary.\n* **Share counts**: Show the number of shares for individual content pieces when appropriate, as it adds social proof and encourages more shares.\n* **Mobile optimization**: Ensure your social sharing buttons are functional and visually appealing on mobile devices, as a significant portion of sharing occurs via mobile.\n\nIncorporating social sharing into your UX design not only provides opportunities for increased engagement but also serves as an effective marketing tool. Remember, a well-designed and strategically placed social sharing component can lead to a higher reach and greater success for your brand.",
"links": []
},
"g-bcan_JnjJfg0_fMOb64": {
"title": "Goal Trackers",
"description": "Goal trackers are essential UX patterns that enable users to monitor their progress towards accomplishing a specific task or objective. Essentially, they help users stay motivated, organized and informed about their journey within an app, website, or system. In this guide, we'll explore the significance of goal trackers, and how to effectively design and incorporate them in your projects.\n\nWhy use goal trackers?\n----------------------\n\n* **Motivation**: By visibly displaying the progress made, goal trackers constantly motivate users to actively participate in the experience and work towards completing their goals.\n* **Expectation Management**: They provide clear guidance on the steps required, inform users about the remaining tasks or subgoals, and aid users in estimating the time and effort needed.\n* **Sense of Achievement**: Goal trackers can enhance user satisfaction by celebrating milestones and achieved objectives, reaffirming that the effort invested has produced tangible results.\n* **Personalization**: Users can customize their experience by setting up personalized goals and tracking their progress, fostering a greater sense of ownership and connection.\n\nEssential components of goal trackers\n-------------------------------------\n\nA well-designed goal tracker will typically include the following elements:\n\n* **Visual Progress Bar**: This represents the user's progress towards completing the overall goal. It is usually color-coded, with a percentage or numerical value indicating the extent of the progress made.\n* **Step Indicators**: These are specific milestones or subgoals that users need to complete in order to achieve the main goal. They help break down the overall process into manageable, smaller tasks.\n* **Animations & Feedback**: Using animations, notifications, and other visual cues can make users feel rewarded for their progress, reinforcing positive behavior.\n* **Summaries & Overviews**: A concise summary or overview of the user's progress and remaining tasks/subgoals allows users to quickly ascertain their position within the overall structure.\n\nDesigning effective goal trackers\n---------------------------------\n\nWhen designing a goal tracker, consider these best practices for optimal UX:\n\n* **Simplicity**: Keep the design and presentation of the goal tracker simple and clear, avoiding unnecessary complexity or clutter.\n* **Relevance**: Ensure that the tracked goals are closely aligned with the user's objectives, and make the process of updating or setting these goals as seamless as possible.\n* **Adaptable**: Make the goal tracker adaptable and flexible, allowing users to change or modify their goals as needed.\n* **Accessibility**: Design the goal tracker to be easily accessible, allowing users to monitor their progress without disrupting their workflow or navigation.\n\nIn conclusion, goal trackers play an important role in UX design to drive user engagement, satisfaction, and overall success. By understanding their purpose and components, and incorporating thoughtful design principles, you can create goal trackers that enhance your users' experience and promote the accomplishment of their desired objectives.",
"links": []
},
"f0n2JKxpcuP0JW-h4CvwN": {
"title": "Tutorials",
"description": "Tutorials are an important aspect of UX Design, as they help users understand and learn how to navigate through a new application, software or website. It is essential to create engaging, informative and easy-to-follow tutorials to ensure users can quickly comprehend the interface and become efficient in navigating it.\n\nIn this section, we will discuss the importance of tutorials in UX Design and provide best practices for creating effective tutorials.\n\nImportance of Tutorials\n-----------------------\n\n* **Guidance for new users:** Tutorials provide an opportunity for users to learn how to use a new software or application proficiently. They are particularly helpful for first-time users, who are often intimidated by the learning curve.\n* **Boost user confidence:** Well-executed tutorials help users gain confidence in their ability to navigate a software, ultimately leading to increased user satisfaction and long-term engagement.\n* **Minimize confusion:** Tutorials can help users avoid confusion and frustration by offering clear instructions and demonstrations, which ultimately reduces the need for user support.\n\nBest Practices for Creating Tutorials\n-------------------------------------\n\n* **Keep it simple and clear:** Use easy-to-understand language, avoid jargon, and break down complex concepts into smaller, manageable steps.\n* **Use visuals:** Incorporate diagrams, screenshots, and videos if possible. Visuals can enhance learning and make it easier for users to understand complex instructions.\n* **Make it interactive:** Encourage user engagement by making the tutorial interactive. This can be achieved by incorporating quizzes, allowing users to practice new skills, and providing immediate feedback.\n* **Be concise:** Long tutorials can be overwhelming and discourage users. Present only the necessary information, and keep the tutorial as short and to-the-point as possible.\n* **Test and iterate:** Regularly test your tutorials to ensure they are still relevant and effective. Gather user feedback to identify areas for improvement, and make updates accordingly.\n\nRemember, a well-designed tutorial can greatly enhance a user's experience with your software or application. Invest time and effort into creating engaging, informative and easy-to-follow tutorials, and enjoy the benefits of a more skilled and satisfied user base.",
"links": []
},
"VUf72i5hYaLR_8ul9EzmM": {
"title": "UX Best Practices",
"description": "UX design, or user experience design, is essential for creating user-friendly and effective products. In this section, we'll discuss some of the best practices that can help you create an optimal user experience for your products.\n\nUnderstand your users\n---------------------\n\nBefore you start designing any product or feature, it's crucial to **know and understand your users**. Conduct user research, create user personas, and use these insights to tailor your design to the needs and preferences of your target audience.\n\nFocus on usability\n------------------\n\nOne of the main goals of UX design is to create products that are **easy to use and navigate**. Aim for simplicity, consistency, and clarity in your design, and make sure to test your product with real users to identify potential usability issues.\n\nDesign for accessibility\n------------------------\n\nDesigning for **accessibility ensures that your product can be used by people with disabilities**, such as visual or motor impairments. This involves providing alternative input methods, like keyboard navigation, as well as preparing your site for assistive technologies such as screen readers.\n\nUtilize responsive design\n-------------------------\n\nToday's users access digital products from various types of devices, and it's important to ensure that your product offers a consistent, enjoyable experience on all screens. Utilize **responsive design techniques** to accommodate different device sizes and capabilities.\n\nOpt for clear and concise content\n---------------------------------\n\nWell-written, easy-to-understand content is a crucial part of UX design. Use **simple language, clear headings, and bullet points** to help users quickly find and digest the information they need.\n\nEnable user control and feedback\n--------------------------------\n\nAllow users to **control their experience** by making it easy for them to undo actions, navigate through your product, and provide feedback. Providing visual feedback, like error messages or confirmation messages, can help users feel more confident using your product.\n\nOptimize page load times\n------------------------\n\nSlow-loading pages can negatively affect user experience and lead to users leaving your product. To ensure a positive experience, **optimize the performance of your website or application** by compressing images, minimizing the use of scripts, and employing caching techniques.\n\nBe consistent in design and layout\n----------------------------------\n\nConsistency in design elements, such as typography, colors, and layout, creates a cohesive user experience and helps to build familiarity and trust with users. Create and follow a **design system or style guide** to maintain consistency across your product.\n\nTest and iterate\n----------------\n\nUsability testing and iterative design are essential components of the UX design process. **Conduct usability tests** with real users to identify pain points and areas of improvement, and continually iterate and improve your design based on feedback and insights gained.\n\nBy applying these UX best practices, you'll be well on your way to creating user-friendly, effective products that lead to greater user satisfaction and success.",
"links": []
},
"IjqH_Ev2fDWG0QDQ9c9eN": {
"title": "Clear the Page of Distractions",
"description": "To create an effective UX design, it is essential to focus on the user's attention and reduce any distractions that might be present on the webpage. This will not only improve the usability of your website, but it will also make it more visually appealing and engaging. Here are some tips for eliminating distractions from your design:\n\nKeep it Simple\n--------------\n\nIt's crucial to ensure your design is clean and straightforward. Stick to essential design elements, and avoid using excessive images, icons, or other visual elements that may distract users from the main content.\n\nUse White Space\n---------------\n\nIncorporate white space, also known as negative space, throughout your design. The appropriate use of white space provides relief for users and makes it easier to process the information on the page.\n\nEstablish a Visual Hierarchy\n----------------------------\n\nOrganizing content according to its importance will help users focus on the most crucial information. Creating a clear visual hierarchy can be achieved by using font sizes, colors, and positioning to guide the user's attention.\n\nUse Consistent Navigation\n-------------------------\n\nKeep your website's navigation consistent throughout the site to reduce potential confusion. This allows users to quickly find what they are looking for without getting lost or overwhelmed.\n\nMinimize Popups and Ads\n-----------------------\n\nExcessive use of popups or ads can be distracting and annoying to users. Keep their usage to a minimum, and ensure they are not disruptive to the overall user experience.\n\nOptimize Load Times\n-------------------\n\nEnsure that your webpage loads quickly, as slow loading times can lead to user frustration and abandonment. Optimize images and other media, and consider lazy loading techniques for a smoother experience.\n\nBy following these guidelines and effectively clearing your page of distractions, you can create a user-friendly and aesthetically pleasant design that will keep your users engaged and focused on the most important elements of your website.",
"links": []
},
"hDj3HaYAM7K1UJmP_T52n": {
"title": "Make it Clear, Where to Act",
"description": "When designing a user interface, it is essential to guide your users in such a way that they can effortlessly understand where they need to act. This means making it abundantly clear where the actionable elements are on the screen.\n\nHere are a few strategies to ensure users can easily identify where to act:\n\n* **Use Affordances:** Make use of [affordances](https://www.interaction-design.org/literature/topics/affordances) to give users clues about the functionality of individual elements. For instance, buttons should look clickable, links should be visually distinguishable from plain text, and input fields should resemble an area where text can be entered.\n \n* **Visual Hierarchy:** Establish a [visual hierarchy](https://www.interaction-design.org/literature/topics/visual-hierarchy) within the interface by placing important actions more prominently, making them larger or more noticeable. This can be achieved through the use of size, color, contrast, and proximity.\n \n* **Consistent Element Patterns:** Use consistent element patterns throughout your design, ensuring that all actionable elements have the same visual styling. This helps users recognize which elements they can interact with and which ones they can't.\n \n* **Clear Labels and Instructions:** Provide clear labels and instructions to help users understand what different elements do, and what is expected of them. This could be explicit instructions or simply using descriptive, concise labels that are easy-to-understand.\n \n* **Whitespace:** Make good use of [whitespace](https://www.interaction-design.org/literature/topics/white-space) to provide breathing room between elements and group related content. This allows users to quickly grasp the structure of the page and find the points of interaction.\n \n* **Feedback:** Provide feedback to users when they interact with various elements. This can include hover effects, button presses, and animations that serve as confirmations of successful actions.\n \n\nBy making it clear where users need to act, your interface becomes more accessible, efficient, and enjoyable for them to use. This will ultimately result in a more successful and engaging user experience.",
"links": []
},
"FXJpJDIp-JBc0-0z4PIRo": {
"title": "Tell User what the Action is and ask for it",
"description": "In the world of UX design, one of the key objectives is to maintain effective communication with users and ensure that their needs and expectations are being met. One powerful technique to achieve this is through **Tell User and Ask** strategy.\n\nTell User\n---------\n\nThis approach requires the designer to provide clear, concise, and relevant information to the user throughout their interaction with the product. This can be achieved through various means:\n\n* **Visual cues**: Utilize colors, icons, and typography effectively to signal the user about important elements on the page or screen.\n* **Microcopy**: Provide short, helpful pieces of text, such as labels or tooltips, to guide the user in taking appropriate actions.\n* **Notifications**: Offer live updates, system status, and contextual feedback to keep the user informed about any ongoing processes or significant events.\n\nAsk User\n--------\n\nAnother important aspect of creating an engaging and interactive experience is through soliciting user input or feedback. This can facilitate two-way communication and ultimately contribute to a more personalized and efficient user experience. Some ways to incorporate this strategy into your design:\n\n* **Forms and surveys**: Collect information from users in a structured and organized manner, using various input fields such as text, multiple-choice, and dropdowns.\n* **Interactive elements**: Encourage users to engage with the interface, such as sliding for content, using progressive disclosure techniques, or utilizing drag-and-drop functionality.\n* **Feedback mechanisms**: Provide quick and easy ways for users to express their opinions or report issues, such as clickable star ratings, feedback forms, or live chat features.\n\nBy combining the \"Tell User\" and \"Ask User\" strategies, UX designers can create a more dynamic and engaging user experience, while also staying in tune with the evolving needs and expectations of their audience.",
"links": []
},
"ahhffBkmd-feroleBrhJm": {
"title": "Make UI Professional and Beautiful",
"description": "Creating a professional and beautiful user interface (UI) is essential for a positive intuitive reaction. This not only captures the users' attention but also keeps them engaged with your product. A visually appealing UI establishes trust and confidence, ultimately enhancing the overall user experience (UX). In this section, we will discuss key aspects to keep in mind for designing a professional and beautiful UI.\n\nColor Scheme\n------------\n\nChoose a color scheme that complements your brand and the message you want to convey. Use colors that evoke emotions and are aesthetically pleasing. Aim for a balanced mix of primary, secondary, and accent colors. You can use online color palette generators or other resources to create a harmonious color scheme.\n\nTypography\n----------\n\nTypography plays a critical role in making your UI more readable and user-friendly. Spend time selecting a typeface that aligns well with your brand personality. Make sure that the font sizes, line heights, and letter spacing are optimized for readability. Maintain consistency in typefaces and styles throughout your design.\n\nLayout and Grid System\n----------------------\n\nOrganize the interface elements in a clear, consistent, and logical manner using a grid system. It helps you achieve a clean and professional look. A well-defined layout not only enhances the visual appeal but also improves the usability of the interface.\n\nIconography and Imagery\n-----------------------\n\nUse high-quality icons and images that are consistent in style and theme. Icons should be easily recognizable and convey the purpose of their associated actions. Opt for vector graphics and SVG files as they scale better for different screen sizes and resolutions.\n\nConsistency and Patterns\n------------------------\n\nMaintain consistency in your UI elements and their interactions. Established design patterns help users feel comfortable and familiar with your interface. Standardize navigation, buttons, and other interface components to create an intuitive and seamless experience.\n\nResponsive Design\n-----------------\n\nEnsure your design adapts well to various screen sizes and resolutions. Cater to different devices and platforms to maximize accessibility and user satisfaction. Utilize responsive design techniques, such as fluid grids, flexible images, and media queries.\n\nWhite Space\n-----------\n\nMake effective use of white space (also known as negative space) to create visual hierarchy, separate different elements, and guide the users' attention. White space is essential for a clean, balanced, and professional appearance.\n\nFeedback and Micro-interactions\n-------------------------------\n\nProvide visual feedback and subtle animations to enhance user interaction. Micro-interactions, such as hover effects, progress indicators, and animations, showcase attentiveness to detail and contribute to an engaging UX.\n\nBy incorporating these aspects, you can craft a professional and beautiful UI that promotes a positive intuitive reaction. Remember that a visually appealing interface, combined with smooth and efficient functionality, leads to a better UX, ultimately benefiting both the users and your business.",
"links": []
},
"C1NwA0Pivoo73GANoOaPi": {
"title": "Deploy Social Proof",
"description": "Deploying social proof is a powerful UX design principle that helps to encourage a positive intuitive reaction among users. Social proof is the concept that people tend to conform to the actions, beliefs, and attitudes of those around them, especially when they are unsure of the correct behavior in a given situation. In UX design, this means leveraging user-generated content and testimonials that demonstrate how your product or service is positively impacting others. This helps to instill trust and credibility in your design, and it can ultimately influence user engagement and decision-making.\n\nKey Aspects of Deploying Social Proof\n-------------------------------------\n\n* **User Testimonials and Reviews**: Sharing direct quotes and reviews from satisfied users can help build trust in your product, and create a perceived sense of popularity. Make sure to include testimonials on your website or app that highlight the most compelling benefits of your product.\n \n* **Social Media Mentions**: Showcasing positive word-of-mouth spread organically by real users can help persuade potential customers to try your product. Incorporate social media mentions, shares, or ratings on your website or app as a way of demonstrating your product's reputation.\n \n* **Expert Opinions and Endorsements**: If your product is endorsed by industry experts, leaders, or influencers, this can add authority to your brand. Include these supporters' names or quotes in your UX design to show that knowledgeable individuals trust and are using your product or service.\n \n* **Usage Statistics**: Displaying the total number of users, downloads, or customer success stories can provide a strong indicator of the popularity of your product or service. Ensure that these statistics are accurate and up-to-date in order to maintain credibility with your audience.\n \n* **Trust Seals and Certifications**: Including trust seals from established organizations or certifications from industry leaders can further enhance your product's credibility. Ensure that these are relevant to your target audience and displayed prominently within your UX design.\n \n\nBy deploying social proof strategically within your UX design, you can create a positive intuitive reaction that encourages users to trust your product, comply with your suggestions, and ultimately, choose your product over the competition.",
"links": []
},
"C5dKHIIgBzxtBpFgDs-hB": {
"title": "Deploy Strong Authority on Subject",
"description": "Deploying strong subject authority refers to providing the user with a sense of trust and confidence when they interact with your product. This can be achieved by showcasing your expertise and establishing your position as a reliable source of information, products or services. Let us explore the key aspects of deploying strong subject authority in UX design:\n\nReliable Content:\n-----------------\n\n* **Accuracy:** Make sure the information provided is accurate, relevant, and up-to-date. Inaccurate information can lead to distrust and dissatisfaction.\n* **Expertise:** If possible, involve subject matter experts to ensure the content is reliable and credible. Expert opinions and insights add more value to the content.\n* **Curation:** Curate your content carefully to avoid information overload, and ensure it remains focused, informative, and useful for your target audience.\n\nDesign and Aesthetics:\n----------------------\n\n* **Professional design:** A well-designed interface instills confidence in the user. Choose professional-looking fonts, colors, and other design elements that resonate with your target audience.\n* **Consistency:** Maintain consistency in layout, color schemes, and overall branding. This helps users to associate your content with a familiar and trustworthy organization.\n* **Navigation:** Ensure the navigation is intuitive and easy to use, helping users to explore your content with confidence.\n\nTestimonials and Social Proof:\n------------------------------\n\n* **Testimonials:** Share real testimonials from satisfied users/customers to build trust with your audience.\n* **Case Studies:** Showcase your expertise with detailed case studies that demonstrate your skills and accomplishments.\n* **Social Proof:** Display social proof by featuring badges, certifications, or collaborations with renowned organizations.\n\nAccessibility and Support:\n--------------------------\n\n* **Accessibility:** Ensure your content is accessible to everyone, regardless of their abilities, by meeting accessibility standards.\n* **Customer Support:** Offer easily accessible support options and resources, such as a help center, live chat, or customer service contact information.\n\nTo deploy strong subject authority in your UX design, focus on providing reliable content, maintaining a professional appearance, sharing testimonials and social proof, and offering accessible support. By incorporating these elements into your design, users are more likely to have a positive, intuitive reaction to your product and become loyal, satisfied customers.",
"links": []
},
"m30ePaw_qa36m9Rv9NSFf": {
"title": "Be Authentic and Personal",
"description": "When creating a user experience (UX) design, it's essential to be authentic and personal. This means that your design should be genuine, truthful, and relatable to your users. By being authentic and personal, you can create a positive intuitive reaction in your users, as they feel connected and engaged with your website or application.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Rethinking Personas",
"url": "https://uxdesign.cc/rethinking-personas-empathy-and-inclusion-in-ux-design-37145d2ee807",
"type": "article"
}
]
},
"jBQtuiHGl3eyCTZG85Vz5": {
"title": "Prime User-Relevant Associations",
"description": "Priming user relevant associations is a vital concept in UX design, aiming to create positive associations with various aspects of the user's experience. To achieve this, designers must tap into the cognitive aspects influencing a user's perception, decision-making, and overall satisfaction with the product or service.\n\nUnderstanding User Relevance\n----------------------------\n\nTo prime user-relevant associations, it's essential to first understand the users and their expectations. Conduct user research to identify their motivations, preferences, and context of use. This helps in shaping the product's design and creating experiences that resonate with their specific needs and desires.\n\nCreating Meaningful Experiences\n-------------------------------\n\nFoster meaningful experiences to evoke positive emotions and establish strong resonating associations. This can be done through:\n\n* Consistent Branding: Provide a cohesive and continuous visual language throughout the experience. Create harmony by using uniform colors, typography, imagery, and overall design system.\n \n* Emotional Design: Create memorable experiences by incorporating emotionally-driven visuals, copy, and interactions. Appeal to users' emotions through the use of storytelling, relatability, and various other persuasive techniques.\n \n* Design for Real-life Usage: Understand and address user pain points by offering practical solutions. Design for the user's context of use so they find purpose in the product.\n \n\nReinforcing Positive Associations\n---------------------------------\n\nConstant reinforcement of positive associations is crucial throughout the user journey. This can be achieved by:\n\n* Timely Feedback: Ensure that the user receives feedback on the outcome of their actions, both for successful and unsuccessful attempts. Use appropriate visual and auditory cues to guide users and reassure them of their progress.\n \n* Reward System: Encourage users through rewards - this could be as simple as congratulatory messages or more complex mechanisms like progress bars or achievements.\n \n* Personalization: Customize the user experience to each individual user, tailoring the content, visuals, and interactions as per their preference and past behaviors.\n \n\nBenefits\n--------\n\nBy successfully priming user-relevant associations, designers can:\n\n* Foster user satisfaction\n* Build trust and credibility\n* Establish long-lasting customer relationships\n* Increase user engagement and product adoption\n* Encourage brand loyalty\n\nBy closely understanding and addressing users' needs and preferences, UX designers can create favorable conscious evaluations and ultimately lay a solid foundation for a successful user experience.",
"links": []
},
"zXinWCEH4LlYvXekLK0Ju": {
"title": "Leverage Loss-Aversion",
"description": "Loss aversion is a psychological phenomenon where individuals are more likely to avoid losses than to achieve equivalent gains. In other words, people feel the pain of losing something more strongly than they feel the pleasure of gaining something of equal value. As a UX designer, you can leverage loss aversion to encourage user engagement, increase conversions, and boost overall user satisfaction.\n\nTips for applying loss aversion in UX design:\n---------------------------------------------\n\n* **Highlight potential losses:** Emphasize the negative consequences of not taking action. For example, instead of focusing on the benefits of signing up for a newsletter, you could stress the valuable insights and opportunities the user will miss out on if they don't subscribe.\n \n* **Use time-sensitive offers:** Creating a sense of urgency can be a powerful motivator for users to take action. Limited-time offers, discounts, or exclusive content can tap into users' fear of missing out (FOMO) and prompt them to engage with your product or service.\n \n* **Free trials and progress tracking:** Offer free trials with limited features or time frames that encourage users to explore the full potential of your product. Show users the progress they've made during the trial and remind them what they'll lose if they don't upgrade or purchase.\n \n* **Saved user data:** Retain user preferences, settings, or shopping cart data for a limited time, and remind them that this information will be lost if they don't act. This can be especially persuasive, as users may have already invested time and effort into customizing their experience.\n \n* **Social proof and testimonials:** Showcase the success stories and testimonials of satisfied customers or users. This can create a sense of loss for prospects who may feel like they're falling behind or missing out on the advantages enjoyed by others.\n \n* **Risk reversal and guarantees:** Reduce the perceived risk by offering money-back guarantees, free returns, or no-strings-attached trials. By taking away the potential for loss, users may be more likely to give your product or service a try.\n \n\nRemember, the goal is to create a balanced user experience that informs and helps users make informed decisions, without resorting to manipulative tactics. Use loss aversion thoughtfully and ethically, and always prioritize the needs and emotions of your users.",
"links": []
},
"iKHU0O0z6gCunCgv_aZye": {
"title": "Use Peer Comparisons",
"description": "Peer comparisons involve using feedback or showcasing how other users, especially those with similar attributes or objectives, are interacting with your product. This can be a powerful tool in influencing user behavior and driving favorable conscious evaluation.\n\nWhy Use Peer Comparisons?\n-------------------------\n\n* **Social Proof:** Peer comparisons provide social proof of the value of your product, which can reassure users and boost their willingness to adopt it.\n* **Healthy Competition:** Comparisons with peers can motivate users to improve their performance and fully utilize your product to stay ahead.\n* **Personal Relevance:** Peer comparisons are more relatable than general statistics or testimonials, since users see the results of others who are in similar situations.\n* **Guidance:** By observing the actions of their peers, users can learn best practices and common pitfalls, improving their overall experience with your product.\n\nHow to Implement Peer Comparisons\n---------------------------------\n\n* **Choose Relevant Peers:** To make comparisons meaningful and motivating, focus on users who share key attributes, goals, or contexts with the target user. Tailor the comparisons accordingly.\n* **Highlight Key Metrics:** Showcase an individual's progress, usage, or success with the product in comparison to their peers. Ensure these metrics are relevant and understandable to your users.\n* **Provide Context:** Make sure that users can understand why they are being compared to a particular peer group, minimizing potential resentment or disinterest.\n* **Maintain Anonymity:** To respect user privacy and avoid potential negative experiences, ensure that personal information is not shared without consent.\n* **Enable Opt-Out:** Users should always have the option to opt out of peer comparisons if they find it intrusive or unhelpful.\n\nCaveats\n-------\n\n* Be aware that peer comparisons can lead to unintended consequences if not handled properly, such as demotivation, social pressure, or decreased self-esteem.\n* Always respect user privacy and ensure a positive, supportive environment when implementing peer comparisons in your UX design.\n\nBy effectively leveraging peer comparisons, you can enhance user engagement and satisfaction, ultimately creating a more successful and enjoyable product experience.",
"links": []
},
"6Mvm8SrISyTT99AJ-VFaW": {
"title": "Use Competition",
"description": "Utilizing competition in UX design can lead to more engaging and motivating user experiences. By incorporating competitive elements, you encourage users to not only interact with your product or system but also compare their performance with others. This comparison can fuel their desire to improve, return to the app, and spend more time on your platform. Below are key points to keep in mind when using competition in UX design:\n\nIdentify appropriate competitive elements\n-----------------------------------------\n\nIt is crucial to determine which competitive elements are suitable for your target audience and the nature of your product. For example:\n\n* **Leaderboards:** Show rankings of top users based on points or achievements, encouraging users to climb higher in rankings.\n* **Badges and awards:** Recognize users' achievements by awarding virtual trophies or badges for completing specific tasks.\n* **Challenges:** Set up periodic or one-time events where users need to complete a task within a certain timeframe to win prizes.\n\nBalance competition with collaboration\n--------------------------------------\n\nEnsure that your UX design balances competition and collaboration. Too much competition can create a hostile environment, while collaboration allows users to support each other and work together. For example, you could have a group leaderboard where users can form teams and compete against other teams or create collaborative challenges where users must work together to succeed collectively.\n\nConsider the target audience\n----------------------------\n\nKeep your target audience in mind when incorporating competitive elements in your UX design. Understand the motivation and preferences of your users to create competition that appeals to them. For example, casual users might prefer low-pressure, friendly competitions, whereas professional or hardcore users might appreciate more intense, skill-based competitions.\n\nBe mindful of negative impacts\n------------------------------\n\nBe aware of the potential for negative implications that competition can bring, such as increased stress or social comparison. To mitigate these, consider:\n\n* Allowing users to opt-out of competitive features and leaderboards.\n* Maintaining a friendly and positive tone in your app's language.\n* Rewarding users for improvements in their performance, rather than just absolute performance levels.\n\nMeasure success\n---------------\n\nEvaluate the effectiveness of the competitive features in your UX design by tracking relevant metrics such as user engagement, time spent in the app, user retention, and user satisfaction. Use this data to iterate and refine the competition aspects based on user feedback and performance.\n\nIn conclusion, using competition in UX design can create engaging experiences that motivate users, encouraging them to delve deeper into your app or platform. By carefully considering your target audience and the potential pitfalls of competition, you will be well on your way to crafting a user experience that keeps users coming back for more.\n\n* * *",
"links": []
},
"4AzPOKXUN32CkgchRMrRY": {
"title": "Avoid Cognitive Overhead",
"description": "Cognitive overhead refers to the mental effort needed to understand or operate a given system, tool, or interface. In UX design, it is crucial to minimize cognitive overhead to create user-friendly and efficient experiences. The less mental effort a user needs to invest, the more likely they will have a positive conscious evaluation of your design.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Cognitive Overload",
"url": "https://blog.logrocket.com/ux-design/cognitive-overload/",
"type": "article"
},
{
"title": "Reducing Cognitive Overload",
"url": "https://uxdesign.cc/reducing-cognitive-overload-designing-for-human-cognition-350f07cff9c4",
"type": "article"
}
]
},
"8wxlu4KA2iu9CJa1UAUll": {
"title": "Avoid Choice Overload",
"description": "Choice overload occurs when users face too many options, leading to decision paralysis, anxiety, and dissatisfaction. As a UX designer, it's important to simplify decision-making by limiting the number of options to 5-7 at a time, prioritizing the most relevant choices. Organizing options into logical categories with visual cues can help users navigate their selections more easily. Implementing smart defaults can streamline decisions by pre-selecting commonly used options, while advanced filtering and sorting features allow users to refine their choices in complex scenarios. By addressing choice overload with these strategies, you can enhance user experience and facilitate a more seamless decision-making process.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Choice of Overload",
"url": "https://medium.com/@evamiller091/the-impact-of-choice-overload-in-ux-f5defb6cee5d",
"type": "article"
}
]
},
"iQNvKhwhvbis4Yn1ZxQua": {
"title": "Avoid Direct Payments",
"description": "Avoiding direct payments is a crucial aspect of UX design that can lead to favorable conscious evaluations from users. Direct payments refer to instances where users are required to pay for your product or service upfront, which can create a negative perception and less willingness to engage. By finding alternative ways to monetize or offer premium features, you can create an enjoyable experience and encourage users to appreciate and invest in your offerings without feeling forced.\n\nVisit the following resources to learn more:",
"links": [
{
"title": "Payment UX Best Practices",
"url": "https://gocardless.com/guides/posts/payment-ux-best-practices/",
"type": "article"
}
]
},
"S9rJr8pc-Ln8BxG0suBWa": {
"title": "Frame Text to Avoid Temporal Myopia",
"description": "Temporal myopia, also known as short-termism, occurs when individuals or organizations prioritize immediate gains over long-term benefits. This focus on the present can lead to suboptimal decisions, negatively impacting the overall user experience (UX) in the long run. As a UX designer, your goal is to avoid temporal myopia and create designs keeping the long-term user experience in mind.\n\nLong-term vs. Short-term UX\n---------------------------\n\nIt's essential to balance short-term goals, such as increasing conversions or sales, with long-term UX objectives, such as user satisfaction and loyalty. Consider the following when avoiding temporal myopia in your designs:\n\n#### 1\\. Sustainable Design Solutions\n\nDesign for both the present and future by creating sustainable design solutions that adapt to evolving user needs and technology advancements. This approach will ensure a seamless experience across different contexts and platforms, catering to growth and change.\n\n#### 2\\. Prioritize User Needs\n\nUnderstand and prioritize user needs throughout the development process. Strive to balance business objectives with end-user satisfaction, focusing on designing experiences that create lasting value for both parties.\n\n#### 3\\. Iterate and Test\n\nAdopt a continuous improvement mindset and emphasize the importance of iteration and testing in the design process. This approach will enable you to refine and perfect your designs over time, addressing any negative impacts of short-term decisions and meeting long-term user requirements.\n\n#### 4\\. User Feedback\n\nIncorporate user feedback into your design process, gathering insights from diverse sources such as usability testing, surveys, and customer reviews. Analyzing user feedback will help you identify elements that contribute to a positive long-term experience and can inform your design choices.\n\n#### 5\\. Build Trust and Loyalty\n\nDesign experiences that foster trust and loyalty with users, including employing principles of personalization, security, transparency, and accessibility. Establishing long-term relationships with users will help you better understand their needs and adapt your designs as their requirements change over time.\n\nBy avoiding temporal myopia in your UX design process, you'll create experiences that cater to both immediate and long-term user needs while fostering trust and loyalty. Balancing short-term gains with a long-term user-centric focus will help you deliver designs that stand the test of time and provide lasting value to both users and organizations.",
"links": []
},
"kR-UbUFdELVeiPJqT0GlZ": {
"title": "Remind of Prior Commitment to Act",
"description": "Sometimes, users need a gentle reminder of the commitments or decisions they've made in the past to help them move forward in their user journey. As a UX designer, you can incorporate these reminders to create a sense of urgency and promote desired actions from users.\n\nBenefits of Reminding Users of Prior Commitments\n------------------------------------------------\n\n* **Motivate users to act**: When reminded of a commitment they've already made, users are more likely to follow through with the action, especially if they feel they've invested time or resources toward that action.\n* **Create a sense of urgency**: By emphasizing the importance of their commitments, users are more likely to prioritize their tasks and act sooner.\n* **Promote consistency**: Reminding users of their prior commitments can promote consistency in their behavior and decision-making, leading to a better user experience.\n\nStrategies to Remind Users of Prior Commitments\n-----------------------------------------------\n\n* **Display progress indicators**: Show users how far they have come in a process, such as filling out a form or completing a survey, to remind them of their progress so far.\n* **Use notifications**: Send timely notifications or reminders to remind users of their prior commitments, such as appointments they made or tasks they wished to complete.\n* **Leverage personalized content**: Customize content to emphasize a user's previous actions, for example, by showing related products based on prior purchases, or pre-filling forms with previously entered data.\n* **Create social proof**: Showcase testimonials, reviews, or follower counts to remind users of their decision to join a community or use a product, creating a sense of belonging and reinforcing their initial commitment.\n\nBy incorporating reminders of prior commitments in the user experience, you can make users feel more invested in the process, create a sense of urgency, and ultimately, improve the overall UX design.",
"links": []
},
"dOL2z6ULpmzRD5N3MrYCy": {
"title": "Make Commitment to Friends",
"description": "One of the key strategies to create a sense of urgency in your UX design is to encourage users to make commitments with their friends. This approach leverages the power of social influence and personal accountability to drive user engagement and action.\n\nWhy it's effective\n------------------\n\n* **Social Proof:** When users see that their friends have already made a commitment, they are more likely to follow suit. This creates a sense of social validation and peer pressure, which can nudge users towards making similar decisions.\n* **Accountability:** Making a commitment with friends can increase a user's sense of responsibility and dedication to follow through on their decision. Knowing that their actions are being observed by others makes backing out less attractive, hence increasing the chances of users following through on their commitments.\n\nHow to implement it in your UX design\n-------------------------------------\n\n* **Show friend's activity:** Design your interface to portray commitments and actions made by friends. For example, social media platforms often show a user's friends who have already signed up for an event or have endorsed a product.\n* **Enable sharing:** Make it easy for users to share their commitments, interests, or goals with their friends. This could include features like sharing buttons or personalized social media posts.\n* **Create group goals:** Allow users to commit to a shared goal together. Design experiences that encourage collaboration and teamwork, such as group challenges or competitions.\n* **Offer incentives for group commitments:** Reward users for achieving goals together, for example, offering discounts or exclusive features for a group of friends who sign up for a service together.\n\nBy incorporating the \"make commitment to friends\" concept in your UX design, you can tap into people's natural tendencies of social conformity and accountability. This encourages users to engage with your product, convert to actions, and more importantly, stick around for the long haul.",
"links": []
},
"1pzONoWafLAeX8eWbH-Dz": {
"title": "Make Reward Scarce",
"description": "One of the effective techniques to create urgency in UX design is to make rewards scarce. Making a reward scarce means limiting its availability in terms of quantity or time. This scarcity increases its perceived value leading to urgency among users to act fast in order to avail the reward. Here, we'll discuss some strategies to make rewards scarce in your design:\n\nLimited Quantity\n----------------\n\nIntroduce rewards with limited quantities, making users feel that they need to act fast before the rewards are gone. This exerts psychological pressure as users do not want to miss out on the opportunity.\n\n_Example_: You can offer a limited quantity promotion wherein the first 50 customers to make a purchase receive a bonus gift or a special discount.\n\nLimited Time Offers\n-------------------\n\nCreating time-based limitations on rewards is another effective way to increase urgency. The inherent nature of time works its magic by encouraging users to be quick to avoid missing out on the reward.\n\n_Example_: Flash sales, 24-hour promotions and countdown timers are examples of limited-time offers that create urgency to buy now or miss out on the deal.\n\nExclusive Access\n----------------\n\nOffering exclusive access to specific features, content or experiences for a limited number of users not only increases perceived value but also adds a sense of exclusivity.\n\n_Example_: Granting access to a members-only online event, beta release of an application, or special product launches can create urgency to sign-up or purchase for the privilege of having that exclusive access.\n\nSeasonal Rewards\n----------------\n\nAlign the rewards with seasons, events, or holidays, creating a natural sense of scarcity due to the time-bound nature of these events.\n\n_Example_: Offering discounts, special promotions, or limited edition items connected to holidays or events like Christmas, Valentine's Day, Black Friday, etc., can create a sense of urgency as users are aware that these opportunities only come around once a year.\n\nRemember to apply these strategies ethically and transparently when designing experiences in your application. Creating genuine scarcity and urgency will ensure that your users value your offers and continue to engage with your product.",
"links": []
},
"EmDgiwaknBz5lXr1rwalE": {
"title": "Elicit Implementation Intentions",
"description": "Eliciting implementation intentions is a powerful technique used in UX design to help users achieve their goals while using your platform or product. Implementation intentions are formed when users are encouraged to think about and plan specific actions they will take to reach a desired outcome. By incorporating prompts and guidance for users to make these plans, you can boost their chances of success and improve overall user satisfaction. In this section, we will discuss how to effectively elicit implementation intentions.\n\nWhy Implementation Intentions Matter\n------------------------------------\n\nNumerous studies show that when people form implementation intentions, they are more likely to follow through with their plans and achieve their goals. Instead of just having a vague idea of what they want to accomplish, users with implementation intentions have a clear roadmap of how and when to take action. This removes much of the guesswork and ambiguity that can hinder success and can make your UX design more effective at helping users achieve their desired outcomes.\n\nHow to Elicit Implementation Intentions\n---------------------------------------\n\nTo encourage users to form implementation intentions, you'll want to create prompts and guidance within your UX design that help them identify and plan for the specific actions they will take. Here are some tips to help you do this:\n\n* **Break down goals into subtasks**: To help users make plans, divide their overarching goal into smaller, more manageable subtasks. Present these subtasks clearly within your design and encourage users to think about how and when they will complete them.\n \n* **Provide clear instructions**: Offer step-by-step guidance to help users accomplish each subtask. This can take the form of tooltips, onboarding flows, or even simple checklists.\n \n* **Set attainable deadlines**: Encourage users to set specific deadlines for when they will complete each subtask. Including a built-in calendar or scheduling functionality can help make this process more seamless.\n \n* **Create reminders and notifications**: Incorporate reminder mechanisms into your design to help users stay on track with their plans. This can include push notifications, email reminders, or in-app alerts.\n \n* **Track progress**: Make it easy for users to track their progress toward goal completion. Visual aids, such as progress bars and checklists, go a long way in helping users see how far they've come and encouraging them to keep going.\n \n* **Offer encouragement and feedback**: Positive reinforcement can help keep users motivated and engaged with their plans. Congratulate users on milestones reached and provide feedback on their progress.\n \n\nBy incorporating these strategies into your UX design, you can foster an environment that supports users in forming implementation intentions and helps them achieve their goals more effectively. Remember, the easier it is for users to make plans and take actionable steps towards their objectives, the more successful and satisfied they will be with your product.",
"links": []
},
"wE5gt1vMgbF3csA61VO2-": {
"title": "Default Everything",
"description": "One of the key principles in UX design is to **make it easy for users** by creating a seamless and intuitive interface. One effective way to achieve this is by implementing **default settings** for various user actions and input fields. Default settings not only simplify the decision-making process but also save time and prevent errors. In this section, we will discuss the importance of default settings and provide some practical tips for implementing them in your UX design.\n\n#### Why are default settings important?\n\n* **Save time and effort:** Defaults reduce the cognitive load on the user, as they don't have to manually set options while interacting with your product. They can quickly proceed without worrying about customizing every single element.\n \n* **Increase usability:** Defaults make it easier for users to use your product without needing to understand the complexities involved. This is especially helpful for new users who are still exploring your product and might be overwhelmed by too many options.\n \n* **Reduce errors:** Errors are more likely to occur when users have to configure complex settings manually. Providing default options minimizes the chances of error and ensures a smoother experience.\n \n\n#### Tips for implementing default settings in your UX design:\n\n* **Choose sensible defaults:** It's essential to carefully consider which default settings are most appropriate for your target user group. Keep their needs and preferences in mind while making these choices.\n \n* **Allow customization:** While providing default settings, it's crucial to give users the flexibility to change these settings as per their needs. Make sure that customization options are easily accessible so that users can modify them if required.\n \n* **Set progressive defaults:** Progressive defaults adjust over time based on a user's behavior and choices. For example, if a user always selects a specific option, make that the new default for that user. This personalizes the experience and demonstrates that your product is actively adapting to the user's preferences.\n \n* **Test your defaults:** It's important to test and validate your default settings to ensure that they benefit your users. Collect feedback, conduct user testing, and iterate to find the most effective defaults for your product.\n \n\nBy implementing default settings in your UX design, you'll simplify the user's experience and make it easier for them to interact with your product. By choosing the right defaults and constantly testing and refining them, you'll provide a more satisfying and efficient experience for your users.",
"links": []
},
"gf7et64xCqkYBrP9HwWs_": {
"title": "Lessen the Burden of Action / Info",
"description": "The goal of \"lessening the burden of action information\" is to simplify and streamline the user experience so that users can efficiently accomplish their tasks without confusion or frustration. Here are some key ways to do this:\n\n* #### Provide Clear Instructions\n \n Clearly communicate to your users what they need to do. Ensure language is clear, concise and easily understood. This reduces the chances of users feeling lost or not knowing what to do.\n* #### Minimize Steps\n \n Reduce the number of steps or actions users need to take in order to complete a task. This not only simplifies the process but also saves users' time and effort.\n* #### Declutter Interface\n \n Remove unnecessary elements from your interface that might distract or confuse your users. Focus on presenting only the essential information and UI components, which will allow your users to navigate and interact more easily.\n* #### Group Related Actions\n \n Organize similar actions and options together. This helps users understand the logical flow of completing a task and makes the interface easier to navigate.\n* #### Break Down Complex Tasks\n \n Break complex tasks into smaller, more manageable sub-tasks or steps. This helps users understand the overall process better and allows them to focus on one step at a time.\n* #### Make Default Values Meaningful\n \n Set default values that make sense and help users to complete actions more quickly. This saves users the time and effort of manually entering or selecting values in certain cases.\n\nBy implementing these techniques in your UX design, you will make it easier for users to interact with and complete tasks within your product, leading to a more satisfying and successful experience.",
"links": []
},
"gqOnzmiLQHmIXuEe4jG2e": {
"title": "Deploy Peer Comparisons",
"description": "Deploying peer comparisons in UX design involves showing users how their actions or decisions stack up against those of other users in a similar context. This technique can be highly effective in motivating users to take desired actions, especially when backed by strong social proof. It's crucial, however, to implement peer comparisons in a way that is both ethical and user-friendly. Let's explore key considerations and best practices for including peer comparisons in your UX design.\n\nBenefits of Peer Comparisons\n----------------------------\n\n* **Motivation** - Users often feel encouraged to take desired actions when they see peers doing the same. This phenomenon is called social proof, a powerful motivator for persuasive design.\n* **Informative** - Comparisons can provide users with valuable insights, such as how they rank against peers or how much improvement they can make.\n* **Friendly Competition** - Peer comparisons can introduce a healthy sense of competition among users, which can lead to positive outcomes.\n\nBest Practices for Deploying Peer Comparisons\n---------------------------------------------\n\n* **Ensure Relevance** - Make sure the peer comparisons displayed are relevant and useful to the user. Irrelevant comparisons can lead to confusion or frustration.\n* **Don't Shame Users** - Avoid designing comparisons that put users down in any way. Focus on creating a positive experience and highlighting the benefits of adopting desired behaviors.\n* **Respect Privacy** - Be mindful of users' privacy by obtaining consent before displaying their personal data or comparing their actions with others.\n* **Provide Opt-Out Options** - Give users the choice to remove themselves from peer comparisons or view comparisons anonymously.\n* **Avoid Overwhelming Users** - Display comparisons sparingly and thoughtfully. Excessive peer comparisons can be overwhelming or counterproductive.\n\nBy carefully implementing peer comparisons in your UX design, you can effectively motivate users to take desired actions, while maintaining a positive and intuitive user experience. Remember to be considerate of users' privacy and preferences when introducing this powerful technique.",
"links": []
},
"GgBazWfF2OvOqkuo3DO2L": {
"title": "Measuring the Impact",
"description": "Measuring the impact of UX design is crucial to understand its effectiveness and make necessary improvements. In this section, we'll explore the key metrics, methods, and tools to help you measure the impact of your UX design efforts.\n\nKey Metrics\n-----------\n\nSeveral metrics can help you find out whether your UX design is meeting the objectives. Some prominent ones include:\n\n* **User satisfaction**: Gather feedback through surveys, ratings, or interviews to evaluate users' satisfaction with your design.\n* **Task completion**: Measure the percentage of users who can complete specific tasks within the design without trouble.\n* **Completion time**: Analyze the time taken by users to complete tasks, indicating efficiency and ease of use.\n* **Error rate**: Track the number of errors users make while interacting with your design to assess usability.\n* **Conversion rate**: Calculate the percentage of users who achieve the targeted action (sign-ups, purchases, etc.) to measure design effectiveness.\n\nMethods of Measurement\n----------------------\n\nVarious methods can be employed to measure the impact of UX design, such as:\n\n* **Usability testing**: Conduct tests with real users to observe their interactions with your design, identify issues and improvement areas.\n* **A/B testing**: Compare two different versions of your design to determine which one better meets your objectives.\n* **Heatmaps**: Visualize user interactions (clicks, taps, scrolls) within your design to identify popular areas and potential trouble spots.\n* **User surveys and interviews**: Collect qualitative data on user satisfaction, preferences, and pain points to assess the design's impact.\n\nTools for Measuring Impact\n--------------------------\n\nSeveral tools can assist you in measuring the impact of your UX design, including:\n\n* **Google Analytics**: A free tool to track user behavior, such as conversion rates, bounce rates, and user flows within your design.\n* **Hotjar**: A popular tool to create heatmaps, collect user feedback, and record user sessions for analysis.\n* **Optimizely**: A platform for A/B testing, multivariate testing, and personalization of your design.\n* **UsabilityHub**: A user testing platform that offers a range of tools to test your design, including first-click tests, preference tests, and five-second tests.\n\nBy regularly measuring the impact of your UX design and analyzing the gathered data, you can effectively enhance your design, ensuring positive user experiences and achieving your business goals.",
"links": []
},
"Q4xBz9f3yyZi2F_aZ5ixL": {
"title": "Incremental A/B Testing",
"description": "Incremental A/B testing is the process of testing small design, content, or functionality changes in your user experience (UX) design to evaluate their impact on your conversion goals. Instead of making a large, sweeping change to your design, incremental A/B testing focuses on smaller, iterative changes that can be measured and analyzed. This approach has several benefits:\n\nReduced Risk\n------------\n\nBy making smaller, more focused changes, you can reduce the risk associated with bigger changes that may affect several aspects of your design. This allows you to isolate specific elements of the user experience and determine the impact of your changes more accurately.\n\nEasier Implementation\n---------------------\n\nIncremental changes are typically easier to implement and test, which can lead to shorter development cycles and a quicker turnaround time on improvements. This can help you save valuable resources, such as time and budget, while improving your UX design.\n\nMore Data-Based Insights\n------------------------\n\nSince incremental A/B testing generates more specific and focused results, you can gather more data-based insights to help you make better, informed decisions on your UX design. This can lead to a more targeted approach when making future design improvements.\n\nHow to Conduct Incremental A/B Testing:\n---------------------------------------\n\n**Step 1: Identify Your Goal**\n\nBefore you begin testing, you need to have a clear understanding of the goal you are trying to achieve with your incremental change. This could be increasing conversion rates, reducing bounce rates, or improving user engagement.\n\n**Step 2: Define a Hypothesis**\n\nDevelop a hypothesis for each change. Your hypothesis should be based on research and data and should clearly state your expected outcome from the incremental change.\n\n**Step 3: Design and Implement Changes**\n\nDesign and implement your changes in line with your hypothesis. Keep your changes specific, targeted, and incremental to improve data accuracy and make implementation easier.\n\n**Step 4: Set up A/B Testing**\n\nUse a reliable A/B testing tool to set up your testing environment. Ensure that you have a control version (without changes) and a treatment version (with changes) to compare within the test.\n\n**Step 5: Analyze and Interpret Results**\n\nOnce you've completed your test, analyze the results to determine if your incremental change has had the desired impact on your goal. Evaluate the data and make decisions based on your findings.\n\n**Step 6: Iterate and Improve**\n\nBased on your results, iterate and make improvements to your UX design. Continue running incremental A/B tests as you fine-tune your design to achieve the best possible user experience.\n\nBy making use of incremental A/B testing, you thoroughly understand the impact of each small change in your UX design, which empowers you to create an optimized user experience and reach your conversion goals effectively.",
"links": []
},
"-_T2nzp1vV1jUcpsC5DI3": {
"title": "Multivariate Testing",
"description": "Multivariate testing is an advanced user testing method that allows designers to test multiple elements or variations within a single test. Its primary goal is to identify the best-performing variations among several competing design alternatives. Multivariate testing provides insights on how different design variations impact user experience and conversions, and helps in identifying which combination of elements works best for your users.\n\nHow it Works\n------------\n\nIn a multivariate test, several design variations are presented to different groups of users simultaneously. The test seeks to measure the performance of each design variation utilizing clearly-defined metrics like conversion rates, number of clicks, or user engagement. Data is collected and analyzed to determine which variation has the greatest positive impact on those pre-identified metrics.\n\nKey Advantages\n--------------\n\n* **Optimization**: Multivariate testing enables designers to optimize their designs by identifying the best-performing variations for each element. This ultimately leads to improved overall performance of the user interface.\n* **Increased Confidence**: By comparing multiple design elements simultaneously, designers can gather data-driven insights to make informed decisions, increasing confidence in their design choices.\n* **Efficiency**: Multivariate testing enables designers to test several elements in a single test. This saves time, effort, and resources compared to testing each element individually.\n\nWhen to Use Multivariate Testing\n--------------------------------\n\n* **Complex Designs or High Traffic**: Multivariate testing is particularly suitable for complex designs with multiple combinations, or situations when the design is expected to generate high traffic.\n* **Confirming Best-Performing Variations**: When simplistic A/B testing does not provide enough information to determine which variation is the best, multivariate testing can provide deeper insights.\n* **When Hypotheses are Uncertain**: If you're unsure which design element is responsible for driving desired user behavior, a multivariate test can provide valuable information to guide your design decisions.\n\nThings to Consider\n------------------\n\nMultivariate testing may require a larger user sample size compared to A/B testing, as more variations of the design are being analyzed. Additionally, this method works best when there is sufficient traffic or a high volume of user engagement.\n\nKeep in mind that while multivariate testing can provide valuable insights, it's important not to lose sight of the big picture. Focus on testing elements that are truly critical to your design goals and prioritize user feedback at every stage of the process.",
"links": []
},
"Emby09Nsm_j6uNreT58r6": {
"title": "Gather Lessons, Prioritize & Integrate",
"description": "One of the most important aspects of measuring the impact of UX design is to gather lessons, prioritize them, and integrate them into future iterations. This process ensures that you're continuously improving your product design and user experience.\n\nGather Lessons\n--------------\n\nThe first step in this process is to gather the lessons you've learned as a result of your UX design impact measurements. You should take note of both the strong and weak points of your current design. Some methods to gather these lessons include user feedback, quantitative data from usability tests, and qualitative insights from user interviews or surveys. Collecting this data helps you to get a comprehensive understanding of what is working well and what needs improvements in your product design.\n\nPrioritize\n----------\n\nAfter gathering the lessons, it's crucial to identify and prioritize the most important issues that need to be addressed. Prioritization can be based on various factors, such as the severity of the issue, the number of users affected, the effort required for the improvement, and the potential impact on user satisfaction.\n\nTo help with prioritization, you can make use of methods such as:\n\n* Impact-Effort Matrix: Rank issues based on their potential impact on users and the effort required to resolve them.\n* MoSCoW Method: Classify issues as \"Must-Have,\" \"Should-Have,\" \"Could-Have,\" or \"Won't-Have.\"\n* Kano Model: Identify issues that will delight users, satisfy their basic needs, or cause dissatisfaction if not addressed.\n\nBy prioritizing issues, you'll be able to allocate the right resources and time to solve them effectively.\n\nIntegrate\n---------\n\nOnce you have prioritized the key issues, the next step is to integrate them into your product roadmap and design process. This means addressing these issues during iteration planning, incorporating them into your design requirements, and working closely with your development team to ensure they're implemented appropriately.\n\nMonitoring the progress and evaluating the impact of these changes in subsequent iterations is also important. This will help you validate the success of your efforts and provide valuable insights for continuous improvement.\n\nTo summarize, gathering lessons, prioritizing, and integrating them into your UX design process is essential for measuring the impact and knowing the areas of improvement. By continuously iterating and learning from user feedback and data, you can build a more effective and engaging product for your users.",
"links": []
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 KiB

BIN
public/roadmaps/devrel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 548 KiB

After

Width:  |  Height:  |  Size: 527 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

BIN
public/roadmaps/php.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

BIN
public/roadmaps/redis.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

View File

@@ -1,5 +1,5 @@
<p align="center">
<img src="public/images/brand.png" height="128">
<a href="https://roadmap.sh/"><img src="public/images/brand.png" height="128"></a>
<h2 align="center"><a href="https://roadmap.sh">roadmap.sh</a></h2>
<p align="center">Community driven roadmaps, articles and resources for developers<p>
<p align="center">
@@ -36,15 +36,19 @@ Here is the list of available roadmaps with more being actively worked upon.
- [Backend Roadmap](https://roadmap.sh/backend) / [Backend Beginner Roadmap](https://roadmap.sh/backend?r=backend-beginner)
- [DevOps Roadmap](https://roadmap.sh/devops) / [DevOps Beginner Roadmap](https://roadmap.sh/devops?r=devops-beginner)
- [Full Stack Roadmap](https://roadmap.sh/full-stack)
- [Git and GitHub](https://roadmap.sh/git-github)
- [API Design Roadmap](https://roadmap.sh/api-design)
- [Computer Science Roadmap](https://roadmap.sh/computer-science)
- [Data Structures and Algorithms Roadmap](https://roadmap.sh/datastructures-and-algorithms)
- [AI and Data Scientist Roadmap](https://roadmap.sh/ai-data-scientist)
- [AI Engineer Roadmap](https://roadmap.sh/ai-engineer)
- [AWS Roadmap](https://roadmap.sh/aws)
- [Linux Roadmap](https://roadmap.sh/linux)
- [Terraform Roadmap](https://roadmap.sh/terraform)
- [Data Analyst Roadmap](https://roadmap.sh/data-analyst)
- [MLOps Roadmap](https://roadmap.sh/mlops)
- [Product Manager Roadmap](https://roadmap.sh/product-manager)
- [Engineering Manager Roadmap](https://roadmap.sh/engineering-manager)
- [QA Roadmap](https://roadmap.sh/qa)
- [Python Roadmap](https://roadmap.sh/python)
- [Software Architect Roadmap](https://roadmap.sh/software-architect)
@@ -58,6 +62,7 @@ Here is the list of available roadmaps with more being actively worked upon.
- [Vue Roadmap](https://roadmap.sh/vue)
- [Angular Roadmap](https://roadmap.sh/angular)
- [Node.js Roadmap](https://roadmap.sh/nodejs)
- [PHP Roadmap](https://roadmap.sh/php)
- [GraphQL Roadmap](https://roadmap.sh/graphql)
- [Android Roadmap](https://roadmap.sh/android)
- [iOS Roadmap](https://roadmap.sh/ios)
@@ -69,6 +74,7 @@ Here is the list of available roadmaps with more being actively worked upon.
- [Design System Roadmap](https://roadmap.sh/design-system)
- [PostgreSQL Roadmap](https://roadmap.sh/postgresql-dba)
- [SQL Roadmap](https://roadmap.sh/sql)
- [Redis Roadmap](https://roadmap.sh/redis)
- [Blockchain Roadmap](https://roadmap.sh/blockchain)
- [ASP.NET Core Roadmap](https://roadmap.sh/aspnet-core)
- [System Design Roadmap](https://roadmap.sh/system-design)
@@ -79,6 +85,7 @@ Here is the list of available roadmaps with more being actively worked upon.
- [Docker Roadmap](https://roadmap.sh/docker)
- [Prompt Engineering Roadmap](https://roadmap.sh/prompt-engineering)
- [Technical Writer Roadmap](https://roadmap.sh/technical-writer)
- [DevRel Engineer Roadmap](https://roadmap.sh/devrel)
There are also interactive best practices:

View File

@@ -90,9 +90,6 @@ const COMPRESS_CONFIG = {
case '.avif':
imageBuffer = await sharp(image).avif(COMPRESS_CONFIG.avif).toBuffer();
break;
case '.gif':
imageBuffer = await sharp(image).gif(COMPRESS_CONFIG.gif).toBuffer();
break;
case '.heif':
imageBuffer = await sharp(image).heif().toBuffer();
break;
@@ -111,6 +108,8 @@ const COMPRESS_CONFIG = {
case '.webp':
imageBuffer = await sharp(image).webp(COMPRESS_CONFIG.webp).toBuffer();
break;
case '.gif':
continue;
}
if (!imageBuffer) {

View File

@@ -0,0 +1,184 @@
import fs from 'node:fs/promises';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import type { Node } from 'reactflow';
import matter from 'gray-matter';
import type { RoadmapFrontmatter } from '../src/lib/roadmap';
import { slugify } from '../src/lib/slugger';
import { markdownToHtml } from '../src/lib/markdown';
import { HTMLElement, parse } from 'node-html-parser';
import { htmlToMarkdown } from '../src/lib/html';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export const allowedLinkTypes = [
'video',
'article',
'opensource',
'course',
'website',
'podcast',
] as const;
// Directory containing the roadmaps
const ROADMAP_CONTENT_DIR = path.join(__dirname, '../src/data/roadmaps');
const allRoadmaps = await fs.readdir(ROADMAP_CONTENT_DIR);
const editorRoadmapIds = new Set<string>();
for (const roadmapId of allRoadmaps) {
const roadmapFrontmatterDir = path.join(
ROADMAP_CONTENT_DIR,
roadmapId,
`${roadmapId}.md`,
);
const roadmapFrontmatterRaw = await fs.readFile(
roadmapFrontmatterDir,
'utf-8',
);
const { data } = matter(roadmapFrontmatterRaw);
const roadmapFrontmatter = data as RoadmapFrontmatter;
if (roadmapFrontmatter.renderer === 'editor') {
editorRoadmapIds.add(roadmapId);
}
}
const publicRoadmapsContentDir = path.join('./public', 'roadmap-content');
const stats = await fs.stat(publicRoadmapsContentDir).catch(() => null);
if (!stats || !stats.isDirectory()) {
await fs.mkdir(publicRoadmapsContentDir, { recursive: true });
}
for (const roadmapId of editorRoadmapIds) {
console.log(`🚀 Starting ${roadmapId}`);
const roadmapDir = path.join(
ROADMAP_CONTENT_DIR,
roadmapId,
`${roadmapId}.json`,
);
const roadmapContent = await fs.readFile(roadmapDir, 'utf-8');
let { nodes } = JSON.parse(roadmapContent) as {
nodes: Node[];
};
nodes = nodes.filter(
(node) =>
node?.type &&
['topic', 'subtopic', 'todo'].includes(node.type) &&
node.data?.label,
);
const roadmapContentDir = path.join(
ROADMAP_CONTENT_DIR,
roadmapId,
'content',
);
const stats = await fs.stat(roadmapContentDir).catch(() => null);
if (!stats || !stats.isDirectory()) {
await fs.mkdir(roadmapContentDir, { recursive: true });
}
const roadmapContentFiles = await fs.readdir(roadmapContentDir, {
recursive: true,
});
const contentMap: Record<
string,
{
title: string;
description: string;
links: {
title: string;
url: string;
type: string;
}[];
}
> = {};
for (const node of nodes) {
const ndoeDirPatterWithoutExt = `${slugify(node.data.label)}@${node.id}`;
const nodeDirPattern = `${ndoeDirPatterWithoutExt}.md`;
if (!roadmapContentFiles.includes(nodeDirPattern)) {
contentMap[nodeDirPattern] = {
title: node.data.label,
description: '',
links: [],
};
continue;
}
const content = await fs.readFile(
path.join(roadmapContentDir, nodeDirPattern),
'utf-8',
);
const html = markdownToHtml(content, false);
const rootHtml = parse(html);
let ulWithLinks: HTMLElement | undefined;
rootHtml.querySelectorAll('ul').forEach((ul) => {
const listWithJustLinks = Array.from(ul.querySelectorAll('li')).filter(
(li) => {
const link = li.querySelector('a');
return link && link.textContent?.trim() === li.textContent?.trim();
},
);
if (listWithJustLinks.length > 0) {
ulWithLinks = ul;
}
});
const listLinks =
ulWithLinks !== undefined
? Array.from(ulWithLinks.querySelectorAll('li > a'))
.map((link) => {
const typePattern = /@([a-z.]+)@/;
let linkText = link.textContent || '';
const linkHref = link.getAttribute('href') || '';
let linkType = linkText.match(typePattern)?.[1] || 'article';
linkType = allowedLinkTypes.includes(linkType as any)
? linkType
: 'article';
linkText = linkText.replace(typePattern, '');
return {
title: linkText,
url: linkHref,
type: linkType,
};
})
.sort((a, b) => {
const order = [
'official',
'opensource',
'article',
'video',
'feed',
];
return order.indexOf(a.type) - order.indexOf(b.type);
})
: [];
const title = rootHtml.querySelector('h1');
ulWithLinks?.remove();
title?.remove();
const htmlStringWithoutLinks = rootHtml.toString();
const description = htmlToMarkdown(htmlStringWithoutLinks);
contentMap[node.id] = {
title: node.data.label,
description,
links: listLinks,
};
}
await fs.writeFile(
path.join(publicRoadmapsContentDir, `${roadmapId}.json`),
JSON.stringify(contentMap, null, 2),
);
console.log(`✅ Finished ${roadmapId}`);
console.log('-'.repeat(20));
}

View File

@@ -0,0 +1,44 @@
// get all the base64 encoded images and save them to a file from the given markdown file
const fs = require('fs');
const path = require('path');
const matter = require('gray-matter');
const guidePath = path.join(process.cwd(), 'src/data/guides');
const tempDir = path.join(process.cwd(), '.temp');
const guideId = process.argv[2];
if (!guideId) {
console.error('Guide ID is required');
process.exit(1);
}
const guideContent = fs.readFileSync(
path.join(guidePath, `${guideId}.md`),
'utf8',
);
// Create temp directory if it doesn't exist
const guideTempDir = path.join(tempDir, guideId);
if (!fs.existsSync(guideTempDir)) {
fs.mkdirSync(guideTempDir, { recursive: true });
}
const { data, content } = matter(guideContent);
// Find all base64 image references in the content
const images = content.match(/\[(.+?)\]:\s+?<data:image\/([^;]+);base64,([^\s]+)/g);
if (images) {
images.forEach((image) => {
const imageName = image.match(/\[(.+?)\]/)[1];
const imageExtension = image.match(/<data:image\/([^;]+);base64/)[1];
const imageData = image.match(/base64,([^\s]+)/)[1];
// Write file using Buffer to properly decode base64
fs.writeFileSync(
path.join(guideTempDir, `${imageName}.${imageExtension}`),
Buffer.from(imageData, 'base64')
);
});
}

View File

@@ -372,7 +372,7 @@ function getRoadmapDefaultTemplate({ title, description }) {
</svg>
</div>
<div tw="text-[30px] flex leading-[30px]">
6th most starred GitHub project
7th most starred GitHub project
</div>
</div>
<div tw="flex items-center mt-2.5">

View File

@@ -0,0 +1,645 @@
import OpenAI from 'openai';
import path from 'path';
import fs from 'fs';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
/**
* @typedef {Object} Node
* @property {string} id - The unique identifier for the node
* @property {string} text - The text content of the node
*/
const roadmapId = 'php';
/** @type {Node[]} */
const nodes = [
{
"id": "_hYN0gEi9BL24nptEtXWU",
"text": "PHP > Introduction to PHP"
},
{
"id": "_LhLDVZjLt1DoAP1NuUES",
"text": "PHP > Introduction to PHP > What is PHP?"
},
{
"id": "b2CuLrhsUNnb4OxI6RRAS",
"text": "PHP > Introduction to PHP > Evolution and History"
},
{
"id": "6sHRQTcoKL3TlgNJlwyx8",
"text": "PHP > Introduction to PHP > PHP Versions and Features"
},
{
"id": "3_TuxOSzBuktBlBF05r_z",
"text": "PHP > Installing PHP"
},
{
"id": "36Y1HkHxhuxh2qVQB8NVE",
"text": "PHP > WAMP"
},
{
"id": "-wniKEBwbF0Fi1fHpF-Gc",
"text": "PHP > XAMPP"
},
{
"id": "t7p7TU2khaxsZPYAdwFAA",
"text": "PHP > MAMP"
},
{
"id": "7LjxtrmgJtTJc0_kP83Tr",
"text": "PHP > LAMP"
},
{
"id": "hzBUHSuFwLYNooF_vEmrs",
"text": "PHP > Basic PHP Syntax"
},
{
"id": "D0BtyxyjIBcpfn5wP23WC",
"text": "PHP > Variables and Scope"
},
{
"id": "srIHPZabaCGdB5VvUXaMa",
"text": "PHP > Data Types"
},
{
"id": "pzReF4C0mcCWAnpfIJbwl",
"text": "PHP > Casting Data Types"
},
{
"id": "2ykzBBdYhWuM-neGf0AWP",
"text": "PHP > echo"
},
{
"id": "NQUmO90sqe7fnzod3Ia8H",
"text": "PHP > print"
},
{
"id": "wsC7OGXOyfCY4pLLNrR2v",
"text": "PHP > print_r"
},
{
"id": "JCCeVC0hOrvIeyfg1ScKA",
"text": "PHP > var_dump"
},
{
"id": "VLRLymQmLfscrBfzXKvHi",
"text": "PHP > Constants"
},
{
"id": "IhKjvT6CjRz4dsSU7SNQo",
"text": "PHP > Arrays"
},
{
"id": "j2S8dP3HlAOOoZdpj-7Dx",
"text": "PHP > Arrays > Indexed Arrays"
},
{
"id": "i_NRsOJNNp7AOqMgu5Jg8",
"text": "PHP > Arrays > Associative Arrays"
},
{
"id": "uARTOZ-ZwugSmbCJoRS5Y",
"text": "PHP > Arrays > Multi-dimensional Arrays"
},
{
"id": "38YksjvhXCbgnHqkl57Cz",
"text": "PHP > Conditionals"
},
{
"id": "-McOv-ZPTGayX7Mx2Thw1",
"text": "PHP > Conditionals > if/else"
},
{
"id": "bgJ9-m6Fiu3VCc-NZlbpn",
"text": "PHP > Conditionals > switch"
},
{
"id": "3gNzX-bw2iqur7U7-_W38",
"text": "PHP > Conditionals > match"
},
{
"id": "w0ntgFBhgGd5RUFd-qlPK",
"text": "PHP > Conditionals > Null Coalescing Operator"
},
{
"id": "1NXSk8VZDr89jQTTkOL7x",
"text": "PHP > Conditionals > Null Safe Operator"
},
{
"id": "qwt8xN4vuTrY-D0czYITI",
"text": "PHP > Loops"
},
{
"id": "WiGv7vi7Mtw-YqPMcnnyw",
"text": "PHP > Functions"
},
{
"id": "1nODJchgSuWbcvSlxnWeE",
"text": "PHP > Functions > Function Declaration"
},
{
"id": "mpQKoBzsOa-5iWo08sOhQ",
"text": "PHP > Functions > Parameters / Return Values"
},
{
"id": "RgVP99rJJ8FVecIA45w20",
"text": "PHP > Functions > Default / Optional Params"
},
{
"id": "RkNjYva8o_jXp9suz5YdG",
"text": "PHP > Functions > Named Arguments"
},
{
"id": "Nr5m6wQLp7VyG3AucrSc8",
"text": "PHP > Functions > Anonymous Functions"
},
{
"id": "x7hA2KAzJIjc-prgCEw6V",
"text": "PHP > Functions > Callback Functions"
},
{
"id": "mP1BIkqbWVVTU-zZv1ZL6",
"text": "PHP > Functions > Arrow Functions"
},
{
"id": "D9ybK5INH5zSOcYMb5ZPi",
"text": "PHP > Functions > Recursion"
},
{
"id": "rtmytETfyyLdcXUC0QyzL",
"text": "PHP > Functions > Variadic Functions"
},
{
"id": "Kaaqu-mN7xvHN6CbIn616",
"text": "PHP > File Handling > require"
},
{
"id": "-CyJbsg2ho3RvfzKnJj5C",
"text": "PHP > File Handling > require_once"
},
{
"id": "hKfv7V6bl2LXssq9Ffi7C",
"text": "PHP > File Handling > include"
},
{
"id": "SwtLDgyPmDry20qS4FBfH",
"text": "PHP > File Handling > include_once"
},
{
"id": "S9wTlkbv9-R6dohhZ47hs",
"text": "PHP > File Operations > Reading Files"
},
{
"id": "two4UycJaCfSp6jQqtTAb",
"text": "PHP > File Operations > Writing Files"
},
{
"id": "tgIyG6vHWpe9sz6lHmj5a",
"text": "PHP > File Operations > File Permissions"
},
{
"id": "MRDjEjbkMpk7shcWAoPOF",
"text": "PHP > File Operations > CSV Processing"
},
{
"id": "DB2cxZE58WCCavW2PNwmf",
"text": "PHP > File Operations > JSON Processing"
},
{
"id": "ggkWo0DRSSDDkHpbiyUyf",
"text": "PHP > File Operations > XML Processing"
},
{
"id": "tn_iIfaJZVtPK6vFds7FH",
"text": "PHP > HTTP / Request Handling > HTTP Methods"
},
{
"id": "GFYGFVfxkOoPI5mI4zSt1",
"text": "PHP > HTTP / Request Handling > $_GET"
},
{
"id": "qNG-a4iIO-puZsMwAMzYC",
"text": "PHP > HTTP / Request Handling > $_POST"
},
{
"id": "A6rfW4uJhyfAX2b18_EEC",
"text": "PHP > HTTP / Request Handling > $_REQUEST"
},
{
"id": "7Ja2at_N9tRTlvSGahrqn",
"text": "PHP > HTTP / Request Handling > $_SERVER"
},
{
"id": "sYI7f1PYP7G30_Uj2mZRv",
"text": "PHP > Form Processing"
},
{
"id": "HNo8QO4aPbvgePiA4l6tq",
"text": "PHP > File Uploads"
},
{
"id": "CGehmZjcgTWC7fQAvxmNW",
"text": "PHP > State Management"
},
{
"id": "so03-fK7E2WvTm6XsPq4i",
"text": "PHP > State Management > Cookies"
},
{
"id": "qobzzgzArNHLLn9Oiqc6G",
"text": "PHP > State Management > Sessions"
},
{
"id": "93oEIZttb85S23C1fLraP",
"text": "PHP > Basics of Security > Input Validation"
},
{
"id": "801vB_JMas4ucriUmfrLg",
"text": "PHP > Basics of Security > SQL Injection"
},
{
"id": "DxqQrToZSayWplKdCkTgT",
"text": "PHP > Basics of Security > XSS Prevention"
},
{
"id": "J9yIXZTtwbFzH2u4dI1ep",
"text": "PHP > Basics of Security > CSRF Protection"
},
{
"id": "JbWFfJiCRrXDhnuIx_lqx",
"text": "PHP > Basics of Security > Password Hashing"
},
{
"id": "HJJzKYXdK4BWITLP4APLZ",
"text": "PHP > Basics of Security > Auth Mechanisms"
},
{
"id": "tfC1tCrbvH5J43WUpG9Yb",
"text": "PHP > Basics of Security > Sanitization Techniques"
},
{
"id": "cJtPz1RMN1qDE4eRdv4N_",
"text": "PHP > Database Connectivity > PDO"
},
{
"id": "YLuo0oZJzTCoiZoOSG57z",
"text": "PHP > Database Connectivity > MySQLi"
},
{
"id": "SeqGIfcLuveZ2z5ZSXcOd",
"text": "PHP > Advanced Database Techniques > Object-Relational Mapping (ORM)"
},
{
"id": "FY-F6n9j29hQrnFry3VGb",
"text": "PHP > Advanced Database Techniques > Database Transactions"
},
{
"id": "txUyPR_tdC8iTJV3RtvBz",
"text": "PHP > Advanced Database Techniques > Connection Pooling"
},
{
"id": "M1nVsh_sCSFJRf6-7Ttsj",
"text": "PHP > Advanced Database Techniques > Performance Optimization"
},
{
"id": "meplwvmHMtI3Sb_fyodzZ",
"text": "PHP > Advanced Database Techniques > Database Migrations"
},
{
"id": "yTviiPFR5b_dr3WyxdxxQ",
"text": "PHP > OOP Fundamentals"
},
{
"id": "PIuplWreo7PFG3Mdn2t6W",
"text": "PHP > OOP Fundamentals > Classes and Objects"
},
{
"id": "oNUt1oT8pYBVvH0S2P6cb",
"text": "PHP > OOP Fundamentals > Constructor / Destructor"
},
{
"id": "MRAPXshy9RoYdReY6grf_",
"text": "PHP > OOP Fundamentals > Properties and Methods"
},
{
"id": "RD2RaBmA2XWkEa13PTCTX",
"text": "PHP > OOP Fundamentals > Access Specifiers"
},
{
"id": "qlkpwXfOc1p7j37hrzffI",
"text": "PHP > OOP Fundamentals > Static Methods and Properties"
},
{
"id": "c5q2e_jyMt8Pir5Od3lRi",
"text": "PHP > OOP Fundamentals > Inheritance"
},
{
"id": "gtq5KrghF28f5G8nuDcYQ",
"text": "PHP > Polymorphism"
},
{
"id": "ub79EkMiOmPBwXLRuYFL8",
"text": "PHP > Abstract classes"
},
{
"id": "vu0H-TsD7hkJgOQbSRj92",
"text": "PHP > Interfaces"
},
{
"id": "GR09ns9B-0cONQaQ_uj-7",
"text": "PHP > Traits"
},
{
"id": "9raJ06lKRZITbjWeLil-F",
"text": "PHP > Namespaces"
},
{
"id": "rSXsPWto7Jeyw3Szl9pvf",
"text": "PHP > Magic methods"
},
{
"id": "sPW-Ti2VyNYzxq6EYkbn7",
"text": "PHP > Type Declarations"
},
{
"id": "KEE50C6lOS4eX8sAbfhYe",
"text": "PHP > Dependency injection"
},
{
"id": "zsscRQZIq5o0JZir9hlz-",
"text": "PHP > Laravel"
},
{
"id": "57VSMVePOr9qUD5x_LNdf",
"text": "PHP > Symfony"
},
{
"id": "yVFDu2aTiEZ4PWMdKdW2P",
"text": "PHP > Composer"
},
{
"id": "xZf2jjnCVHwYfDH2hs9kR",
"text": "PHP > Packagist"
},
{
"id": "qFiTsf6Es-gwqe6J6bdL1",
"text": "PHP > Autoloading"
},
{
"id": "NfBKKwG2GGBPppOjoLLBg",
"text": "PHP > PHPUnit"
},
{
"id": "d6MydchA52HIxfAUjmZui",
"text": "PHP > Pest"
},
{
"id": "6eWgZVLV479oQzl0fu-Od",
"text": "PHP > Style Tools"
},
{
"id": "fSpvZ_4kGFMbFVCWhA8vn",
"text": "PHP > Style Tools > PHPCodeSniffer"
},
{
"id": "r07k_hT2z2EiIBH4q3F7-",
"text": "PHP > Style Tools > PHP CS Fixer"
},
{
"id": "PrG_5dyBblXsWYYRcOJMa",
"text": "PHP > Static Analysis"
},
{
"id": "12k71gNfwAcT9K5aLWgbZ",
"text": "PHP > Static Analysis > PHPStan"
},
{
"id": "T1XD93j6Lkpl88JSmys9b",
"text": "PHP > Static Analysis > Psalm"
},
{
"id": "B45YVzov8X_iOtneiFEqa",
"text": "PHP > Static Analysis > Phan"
},
{
"id": "KC6D81-T-FwQc7Osw1rlY",
"text": "PHP > External Integrations > cURL"
},
{
"id": "_Al4NXKVQAnk8OikwvXCL",
"text": "PHP > External Integrations > Guzzle"
},
{
"id": "SD9k16UlVve9WtNMDA5Za",
"text": "PHP > PHP-FIG"
},
{
"id": "3tONibbRgK7HCwGTE2Gqw",
"text": "PHP > PHP-FIG > PSR Standards"
},
{
"id": "_Dh78x_tPLqZweg--qZFQ",
"text": "PHP > Performance Optimization > Profiling Techniques"
},
{
"id": "Av-BMa57RvrLlAXLffOH0",
"text": "PHP > Performance Optimization > Caching Strategies"
},
{
"id": "bt7dK2PcOZ72B9HXPyMwL",
"text": "PHP > Performance Optimization > Memory Management"
},
{
"id": "VpwwF8j5ZtXVSbzNfE7Sx",
"text": "PHP > Performance Optimization > Configuration Tuning"
},
{
"id": "NieqZd1juaNYoZOrB7e31",
"text": "PHP > Performance Optimization > Opcode Caching"
},
{
"id": "AoGS-5MSkp8gtJFQVPSBE",
"text": "PHP > Performance Optimization > PHP-FPM"
},
{
"id": "qp5Xi12c0qcSzTanzJq0Z",
"text": "PHP > System Interactions"
},
{
"id": "VhyYNGhOdKKrz_-uTkrjD",
"text": "PHP > System Interactions > Executing System Commands"
},
{
"id": "NTKUMgsKGYISIyhgOJPQn",
"text": "PHP > System Interactions > Process Control"
},
{
"id": "fitjnLYKLHJ2P5G7JAvzm",
"text": "PHP > System Interactions > Environment Variables"
},
{
"id": "DTaAZaU1CwzW7esoDhj85",
"text": "PHP > System Interactions > Configuration Files"
},
{
"id": "lFoHoMRywCWa056ii5cKQ",
"text": "PHP > Debugging Tools > Xdebug"
},
{
"id": "KpQb5Zh3GUcbYUyXHvyu2",
"text": "PHP > Debugging Tools > Zend Debugger"
},
{
"id": "KMQqePqAjQ-ReDwHqeofx",
"text": "PHP > Web Servers > Apache"
},
{
"id": "aspZpACHEKOsi_Er5FYPY",
"text": "PHP > Web Servers > Nginx"
}
];
const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
if (!OPENAI_API_KEY) {
console.error('OPENAI_API_KEY is not set');
process.exit(1);
}
const openai = new OpenAI({
apiKey: OPENAI_API_KEY,
});
const prompt = `
You are a helpful assistant that can help me generate content for a roadmap tree.
User will give you roadmap topics in the form of "Parent > Child > Leaf". You need
to generate content for the last node in the hierarchy in relation to the parents.
Remember that you are explaining the topics for PHP showing what the given topic is
with respect to PHP and giving a short code sample ONLY when required.
Also, I hate it when you say "In the realm of..."
or "In the context of..." or "..in the context of..." or "when we talk about..." or something
similar.
Content should be helpful and engaging for a technical audience.
It can include things like (you can include more or less, depending on the topic):
- Briefly explain the given topic in relation to PHP.
- Code sample if applicable.
- Add a link to PHP documentation
The content should be a a single textual paragraph.
IMPORTANT: Use simple and clear English. Avoid complex words and jargon when possible.
Write in a way that is easy to understand. Use short sentences and common words.
`;
/**
* Generates content for a given node using OpenAI's GPT model
* @param {Node} node - The node to generate content for
* @returns {Promise<string>} The generated content
*/
const generateContent = async (node) => {
try {
const content = await openai.chat.completions.create({
model: 'gpt-4',
messages: [
{ role: 'system', content: prompt },
{
role: 'user',
content: `Node: ${node.text}`,
},
],
});
return content.choices[0].message.content;
} catch (error) {
console.error(
`Error generating content for node ${node.id}:`,
error.message,
);
throw error;
}
};
const roadmapContentDir = path.join(
__dirname,
`../src/data/roadmaps/${roadmapId}/content`,
);
const contentFiles = fs.readdirSync(roadmapContentDir);
/**
* Processes a single node by generating content and writing to file
* @param {Node} node - The node to process
* @param {string} roadmapContentDir - Directory path for content files
* @param {string[]} contentFiles - List of existing content files
* @returns {Promise<void>}
*/
const processNode = async (node, roadmapContentDir, contentFiles) => {
try {
const nodeId = node.id;
const relevantFileName = contentFiles.find((file) =>
file.endsWith(`${nodeId}.md`),
);
if (!relevantFileName) {
console.warn(`No matching file found for node ${nodeId}`);
return;
}
const fileTitle = node.text
.replace(/\s+>\s+/g, '>')
.split('>')
.pop();
const content = await generateContent(node);
const filePath = path.join(roadmapContentDir, relevantFileName);
await fs.promises.writeFile(filePath, `# ${fileTitle}\n\n${content}`);
console.log(`Successfully processed node ${nodeId}`);
} catch (error) {
console.error(`Failed to process node ${node.id}:`, error.message);
}
};
/**
* Main function to run the content generation
* @returns {Promise<void>}
*/
const main = async () => {
try {
// Process nodes in parallel with concurrency limit
const BATCH_SIZE = 20; // Adjust based on API rate limits
for (let i = 0; i < nodes.length; i += BATCH_SIZE) {
const batch = nodes.slice(i, i + BATCH_SIZE);
const promises = batch.map((node) =>
processNode(node, roadmapContentDir, contentFiles),
);
await Promise.allSettled(promises);
// Add a small delay between batches to avoid rate limiting
if (i + BATCH_SIZE < nodes.length) {
await new Promise((resolve) => setTimeout(resolve, 1000));
}
}
console.log('Content generation completed');
} catch (error) {
console.error('Fatal error in main process:', error);
process.exit(1);
}
};
// Add error handling for uncaught exceptions
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
process.exit(1);
});
process.on('unhandledRejection', (error) => {
console.error('Unhandled Rejection:', error);
process.exit(1);
});
main();

38
src/api/leaderboard.ts Normal file
View File

@@ -0,0 +1,38 @@
import { type APIContext } from 'astro';
import { api } from './api.ts';
export type LeaderboardUserDetails = {
id: string;
name: string;
avatar?: string;
count: number;
};
export type ListLeaderboardStatsResponse = {
streaks: {
active: LeaderboardUserDetails[];
lifetime: LeaderboardUserDetails[];
};
projectSubmissions: {
currentMonth: LeaderboardUserDetails[];
lifetime: LeaderboardUserDetails[];
};
githubContributors: {
currentMonth: LeaderboardUserDetails[];
};
referrals: {
currentMonth: LeaderboardUserDetails[];
lifetime: LeaderboardUserDetails[];
};
};
export function leaderboardApi(context: APIContext) {
return {
listLeaderboardStats: async function () {
return api(context).get<ListLeaderboardStatsResponse>(
`${import.meta.env.PUBLIC_API_URL}/v1-list-leaderboard-stats`,
{},
);
},
};
}

15
src/api/project.ts Normal file
View File

@@ -0,0 +1,15 @@
import { type APIContext } from 'astro';
import { api } from './api.ts';
export function projectApi(context: APIContext) {
return {
listProjectsUserCount: async function (projectIds: string[]) {
return api(context).post<Record<string, number>>(
`${import.meta.env.PUBLIC_API_URL}/v1-list-projects-user-count`,
{
projectIds,
},
);
},
};
}

67
src/api/roadmap.ts Normal file
View File

@@ -0,0 +1,67 @@
import { type APIContext } from 'astro';
import { api } from './api.ts';
import type { RoadmapDocument } from '../components/CustomRoadmap/CreateRoadmap/CreateRoadmapModal.tsx';
import type { PageType } from '../components/CommandMenu/CommandMenu.tsx';
export type ListShowcaseRoadmapResponse = {
data: Pick<
RoadmapDocument,
| '_id'
| 'title'
| 'description'
| 'slug'
| 'creatorId'
| 'visibility'
| 'createdAt'
| 'topicCount'
| 'ratings'
>[];
totalCount: number;
totalPages: number;
currPage: number;
perPage: number;
};
export function roadmapApi(context: APIContext) {
return {
listShowcaseRoadmap: async function () {
const searchParams = new URLSearchParams(context.url.searchParams);
return api(context).get<ListShowcaseRoadmapResponse>(
`${import.meta.env.PUBLIC_API_URL}/v1-list-showcase-roadmap`,
searchParams,
);
},
isShowcaseRoadmap: async function (slug: string) {
return api(context).get<{
isShowcase: boolean;
}>(`${import.meta.env.PUBLIC_API_URL}/v1-is-showcase-roadmap/${slug}`);
},
};
}
export type ProjectPageType = {
id: string;
title: string;
url: string;
};
export async function getProjectList() {
const baseUrl = import.meta.env.DEV
? 'http://localhost:3000'
: 'https://roadmap.sh';
const pages = await fetch(`${baseUrl}/pages.json`).catch((err) => {
console.error(err);
return [];
});
const pagesJson = await (pages as any).json();
const projects: ProjectPageType[] = pagesJson
.filter((page: any) => page?.group?.toLowerCase() === 'projects')
.map((page: any) => ({
id: page.id,
title: page.title,
url: page.url,
}));
return projects;
}

View File

@@ -1,6 +1,7 @@
import { type APIContext } from 'astro';
import { api } from './api.ts';
import type { ResourceType } from '../lib/resource-progress.ts';
import type { ProjectStatusDocument } from '../components/Projects/ListProjectSolutions.tsx';
export const allowedRoadmapVisibility = ['all', 'none', 'selected'] as const;
export type AllowedRoadmapVisibility =
@@ -99,6 +100,7 @@ export type GetPublicProfileResponse = Omit<
> & {
activity: UserActivityCount;
roadmaps: ProgressResponse[];
projects: ProjectStatusDocument[];
isOwnProfile: boolean;
};

View File

@@ -1,16 +0,0 @@
type AIAnnouncementProps = {};
export function AIAnnouncement(props: AIAnnouncementProps) {
return (
<a
className="rounded-md border border-dashed border-purple-600 px-3 py-1.5 text-purple-400 transition-colors hover:border-purple-400 hover:text-purple-200"
href="/ai"
>
<span className="relative -top-[1px] mr-1 text-xs font-semibold uppercase text-white">
New
</span>{' '}
<span className={'hidden sm:inline'}>Generate visual roadmaps with AI</span>
<span className={'inline text-sm sm:hidden'}>AI Roadmap Generator!</span>
</a>
);
}

View File

@@ -0,0 +1,189 @@
import { useEffect, useRef, useState } from 'react';
import { isLoggedIn } from '../../lib/jwt';
import { httpGet } from '../../lib/http';
import { useToast } from '../../hooks/use-toast';
import { Zap, ZapOff } from 'lucide-react';
import { useOutsideClick } from '../../hooks/use-outside-click';
import { StreakDay } from './StreakDay';
import {
navigationDropdownOpen,
roadmapsDropdownOpen,
} from '../../stores/page.ts';
import { useStore } from '@nanostores/react';
import { cn } from '../../lib/classname.ts';
import { $accountStreak, type StreakResponse } from '../../stores/streak.ts';
import { InviteFriends } from './InviteFriends.tsx';
type AccountStreakProps = {};
export function AccountStreak(props: AccountStreakProps) {
const toast = useToast();
const dropdownRef = useRef(null);
const [isLoading, setIsLoading] = useState(true);
const accountStreak = useStore($accountStreak);
const [showDropdown, setShowDropdown] = useState(false);
const $roadmapsDropdownOpen = useStore(roadmapsDropdownOpen);
const $navigationDropdownOpen = useStore(navigationDropdownOpen);
useEffect(() => {
if ($roadmapsDropdownOpen || $navigationDropdownOpen) {
setShowDropdown(false);
}
}, [$roadmapsDropdownOpen, $navigationDropdownOpen]);
const loadAccountStreak = async () => {
if (!isLoggedIn()) {
return;
}
if (accountStreak) {
setIsLoading(false);
return;
}
setIsLoading(true);
const { response, error } = await httpGet<StreakResponse>(
`${import.meta.env.PUBLIC_API_URL}/v1-streak`,
);
if (error || !response) {
toast.error(error?.message || 'Failed to load account streak');
setIsLoading(false);
return;
}
$accountStreak.set(response);
setIsLoading(false);
};
useOutsideClick(dropdownRef, () => {
setShowDropdown(false);
});
useEffect(() => {
loadAccountStreak().finally(() => {});
}, []);
if (!isLoggedIn() || isLoading) {
return null;
}
let { count: currentCount = 0 } = accountStreak || {};
const previousCount =
accountStreak?.previousCount || accountStreak?.count || 0;
// Adding one to show the current day
const currentCircleCount = Math.min(currentCount, 5) + 1;
// Adding one day to show the streak they broke
const leftCircleCount = Math.min(5 - currentCircleCount, previousCount) + 1;
// In the maximum case, we will show 10 circles
const remainingCount = Math.max(0, 10 - leftCircleCount - currentCircleCount);
const totalCircles = leftCircleCount + currentCircleCount + remainingCount;
return (
<div className="relative z-[90] animate-fade-in">
<button
className={cn(
'flex items-center justify-center rounded-lg p-1.5 px-2 text-purple-400 hover:bg-purple-100/10 focus:outline-none',
{
'bg-purple-100/10': showDropdown,
},
)}
onClick={() => setShowDropdown(true)}
>
<Zap strokeWidth={1} className="size-5 fill-current" />
<span className="ml-1.5 text-sm font-semibold">
{accountStreak?.count}
</span>
</button>
{showDropdown && (
<div
ref={dropdownRef}
className="absolute right-0 top-full z-50 w-[335px] translate-y-1 rounded-lg bg-slate-800 shadow-xl"
>
<div className="py-5 pl-4 pr-5">
<div className="flex items-center justify-between gap-2 text-sm text-slate-500">
<p>
Current Streak
<span className="ml-2 font-medium text-white">
{accountStreak?.count || 0}
</span>
</p>
<p>
Longest Streak
<span className="ml-2 font-medium text-white">
{accountStreak?.longestCount || 0}
</span>
</p>
</div>
<div className="mb-6 mt-9">
<div className="grid grid-cols-10 gap-1">
{Array.from({ length: totalCircles }).map((_, index) => {
let dayCount,
icon,
isPreviousStreakDay,
isBrokenStreakDay,
isCurrentStreakDay,
isRemainingStreakDay,
isToday;
if (index < leftCircleCount) {
// Previous streak days
dayCount = previousCount - leftCircleCount + index + 1 + 1;
isPreviousStreakDay = true;
isBrokenStreakDay = index === leftCircleCount - 1;
icon = isBrokenStreakDay ? (
<ZapOff className="size-5 fill-current" />
) : (
<Zap className="size-5 fill-current" />
);
} else if (index < leftCircleCount + currentCircleCount) {
// Current streak days
const currentIndex = index - leftCircleCount;
dayCount =
currentCount - currentCircleCount + currentIndex + 1 + 1;
isCurrentStreakDay = true;
isToday = currentIndex === currentCircleCount - 1;
icon = <Zap className="size-5 fill-current" />;
} else {
// Remaining streak days
const remainingIndex =
index - leftCircleCount - currentCircleCount;
dayCount = currentCount + remainingIndex + 1 + 1;
isRemainingStreakDay = true;
}
return (
<StreakDay
key={`streak-${index}`}
dayCount={dayCount}
icon={icon}
isBrokenStreakDay={isBrokenStreakDay}
isPreviousStreakDay={isPreviousStreakDay}
isCurrentStreakDay={isCurrentStreakDay}
isRemainingStreakDay={isRemainingStreakDay}
isToday={isToday}
/>
);
})}
</div>
</div>
<p className="-mt-[0px] mb-[1.5px] text-center text-xs tracking-wide text-slate-500">
Visit every day to keep your streak going!
</p>
<InviteFriends
refByUserCount={accountStreak?.refByUserCount || 0}
/>
</div>
</div>
)}
</div>
);
}

View File

@@ -0,0 +1,7 @@
.react-calendar-heatmap text {
fill: rgb(148, 163, 184) !important;
}
.react-calendar-heatmap rect:hover {
stroke: rgb(148, 163, 184) !important;
}

View File

@@ -0,0 +1,189 @@
import CalendarHeatmap from 'react-calendar-heatmap';
import dayjs from 'dayjs';
import { formatActivityDate } from '../../lib/date';
import { Tooltip as ReactTooltip } from 'react-tooltip';
import 'react-calendar-heatmap/dist/styles.css';
import './AccountStreakHeatmap.css';
const legends = [
{ count: 1, color: 'bg-slate-600' },
{ count: 3, color: 'bg-slate-500' },
{ count: 5, color: 'bg-slate-400' },
{ count: 10, color: 'bg-slate-300' },
{ count: 20, color: 'bg-slate-200' },
];
type AccountStreakHeatmapProps = {};
export function AccountStreakHeatmap(props: AccountStreakHeatmapProps) {
const startDate = dayjs().subtract(6, 'months').toDate();
const endDate = dayjs().toDate();
return (
<div className="mt-4">
<CalendarHeatmap
startDate={startDate}
endDate={endDate}
values={[
{
date: '2024-08-01',
count: 4,
},
{
date: '2024-08-02',
count: 10,
},
{
date: '2024-08-03',
count: 5,
},
{
date: '2024-08-04',
count: 3,
},
{
date: '2024-08-05',
count: 7,
},
{
date: '2024-08-06',
count: 2,
},
{
date: '2024-08-07',
count: 6,
},
{
date: '2024-08-08',
count: 8,
},
{
date: '2024-08-09',
count: 9,
},
{
date: '2024-08-10',
count: 1,
},
{
date: '2024-08-11',
count: 3,
},
{
date: '2024-08-12',
count: 5,
},
{
date: '2024-08-13',
count: 7,
},
{
date: '2024-08-14',
count: 8,
},
{
date: '2024-08-15',
count: 2,
},
{
date: '2024-08-16',
count: 4,
},
{
date: '2024-08-17',
count: 6,
},
{
date: '2024-08-18',
count: 8,
},
{
date: '2024-08-19',
count: 10,
},
{
date: '2024-08-20',
count: 2,
},
{
date: '2024-08-21',
count: 4,
},
{
date: '2024-08-22',
count: 6,
},
{
date: '2024-08-23',
count: 8,
},
{
date: '2024-08-24',
count: 10,
},
{
date: '2024-08-25',
count: 30,
},
]}
classForValue={(value) => {
if (!value) {
return 'fill-slate-700 rounded-md [rx:2px] focus:outline-none';
}
const { count } = value;
if (count >= 20) {
return 'fill-slate-200 rounded-md [rx:2px] focus:outline-none';
} else if (count >= 10) {
return 'fill-slate-300 rounded-md [rx:2px] focus:outline-none';
} else if (count >= 5) {
return 'fill-slate-400 rounded-md [rx:2px] focus:outline-none';
} else if (count >= 3) {
return 'fill-slate-500 rounded-md [rx:2px] focus:outline-none';
} else {
return 'fill-slate-600 rounded-md [rx:2px] focus:outline-none';
}
}}
tooltipDataAttrs={(value: any) => {
if (!value || !value.date) {
return null;
}
const formattedDate = formatActivityDate(value.date);
return {
'data-tooltip-id': 'user-activity-tip',
'data-tooltip-content': `${value.count} Updates - ${formattedDate}`,
};
}}
/>
<ReactTooltip
id="user-activity-tip"
className="!rounded-lg !bg-slate-900 !p-1 !px-2 !text-xs"
/>
<div className="mt-2 flex items-center justify-end">
<div className="flex items-center">
<span className="mr-2 text-xs text-slate-500">Less</span>
{legends.map((legend) => (
<div
key={legend.count}
className="flex items-center"
data-tooltip-id="user-activity-tip"
data-tooltip-content={`${legend.count} Updates`}
>
<div
className={`h-2.5 w-2.5 ${legend.color} mr-1 rounded-sm`}
></div>
</div>
))}
<span className="ml-2 text-xs text-slate-500">More</span>
<ReactTooltip
id="user-activity-tip"
className="!rounded-lg !bg-slate-900 !p-1 !px-2 !text-sm"
/>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,87 @@
import { Copy, Heart } from 'lucide-react';
import { useAuth } from '../../hooks/use-auth';
import { useCopyText } from '../../hooks/use-copy-text';
import { cn } from '../../lib/classname';
import { CheckIcon } from '../ReactIcons/CheckIcon';
type InviteFriendsProps = {
refByUserCount: number;
};
export function InviteFriends(props: InviteFriendsProps) {
const { refByUserCount } = props;
const user = useAuth();
const { copyText, isCopied } = useCopyText();
const referralLink = new URL(
`/signup?rc=${user?.id}`,
import.meta.env.DEV ? 'http://localhost:3000' : 'https://roadmap.sh',
).toString();
return (
<div className="-mx-4 mt-6 flex flex-col border-t border-dashed border-t-slate-600 px-4 pt-5 text-center text-sm">
<p className="text-slate-500">Invite people to join roadmap.sh</p>
<div className="flex flex-col items-center rounded-lg bg-slate-900/40 pb-4 pt-5 my-4">
<p className="text-xs text-slate-500">
{refByUserCount === 0 && <>You haven't invited anyone yet.</>}
{refByUserCount > 0 && refByUserCount < 10 && (
<>{refByUserCount} of 10 users joined</>
)}
</p>
{refByUserCount >= 10 && <>🎉 You've invited {refByUserCount} users</>}
<div className="my-3 flex flex-row items-center justify-center gap-1">
{Array.from({ length: 10 }).map((_, index) => (
<Heart
key={index}
className={cn(
'size-[23px] fill-current',
index < refByUserCount ? 'text-yellow-300' : 'text-slate-700',
)}
/>
))}
</div>
<p className={'mb-3 text-xs text-slate-500'}>
Share the link below with anyone you think would benefit from using
roadmap.sh
</p>
<p className="text-slate-500">
<button
onClick={() => {
copyText(referralLink);
}}
className={cn(
'rounded-md hover:bg-slate-500/80 hover:text-slate-100 px-3 py-1 text-xs text-slate-300 bg-slate-600',
{
'bg-green-500 text-black hover:text-black hover:bg-green-500': isCopied,
},
)}
>
{!isCopied ? 'Copy Invite Link' : 'Invite Link Copied'}{' '}
{!isCopied && (
<Copy
className="relative -top-[1.25px] ml-1.5 inline-block size-3"
strokeWidth={3}
/>
)}
{isCopied && (
<CheckIcon additionalClasses="relative ml-1.5 -top-[1.25px] inline-block size-3" />
)}
</button>
</p>
</div>
<p className="text-center text-xs">
<a
href="/leaderboard"
className="text-purple-400 underline-offset-2 hover:underline"
>
See how you rank on the leaderboard
</a>
</p>
</div>
);
}

View File

@@ -0,0 +1,52 @@
import type { ReactNode } from 'react';
import { cn } from '../../lib/classname';
import { ChevronDown } from 'lucide-react';
type StreakDayProps = {
isToday?: boolean;
isCurrentStreakDay?: boolean;
isPreviousStreakDay?: boolean;
isBrokenStreakDay?: boolean;
isRemainingStreakDay?: boolean;
dayCount: number;
icon?: ReactNode;
};
export function StreakDay(props: StreakDayProps) {
const {
isCurrentStreakDay,
isPreviousStreakDay,
isBrokenStreakDay,
isRemainingStreakDay,
dayCount,
icon,
isToday = false,
} = props;
return (
<div
className={cn(
'relative flex flex-col items-center justify-center gap-1.5',
{
'text-red-400 opacity-40': isPreviousStreakDay,
'text-slate-600': isRemainingStreakDay,
'text-yellow-300': isCurrentStreakDay,
'text-slate-400': isToday,
},
)}
>
<div
className={cn('flex size-6 items-center justify-center rounded-full', {
'bg-slate-700': isRemainingStreakDay,
'border border-dashed border-slate-500 striped-bg': isToday,
})}
>
{isToday ? null : icon}
</div>
<span className={cn('text-xs')}>{dayCount}</span>
{isToday && (
<ChevronDown className="absolute bottom-full left-1/2 h-3.5 w-3.5 -translate-y-[0.75px] -translate-x-1/2 transform stroke-[2.5px] text-slate-400" />
)}
</div>
);
}

View File

@@ -5,6 +5,10 @@ import { ResourceProgress } from './ResourceProgress';
import { pageProgressMessage } from '../../stores/page';
import { EmptyActivity } from './EmptyActivity';
import { ActivityStream, type UserStreamActivity } from './ActivityStream';
import type { ProjectStatusDocument } from '../Projects/ListProjectSolutions';
import type { PageType } from '../CommandMenu/CommandMenu';
import { useToast } from '../../hooks/use-toast';
import { ProjectProgress } from './ProjectProgress';
type ProgressResponse = {
updatedAt: string;
@@ -47,11 +51,14 @@ export type ActivityResponse = {
};
}[];
activities: UserStreamActivity[];
projects: ProjectStatusDocument[];
};
export function ActivityPage() {
const toast = useToast();
const [activity, setActivity] = useState<ActivityResponse>();
const [isLoading, setIsLoading] = useState(true);
const [projectDetails, setProjectDetails] = useState<PageType[]>([]);
async function loadActivity() {
const { error, response } = await httpGet<ActivityResponse>(
@@ -68,11 +75,29 @@ export function ActivityPage() {
setActivity(response);
}
async function loadAllProjectDetails() {
const { error, response } = await httpGet<PageType[]>(`/pages.json`);
if (error) {
toast.error(error.message || 'Something went wrong');
return;
}
if (!response) {
return [];
}
const allProjects = response.filter((page) => page.group === 'Projects');
setProjectDetails(allProjects);
}
useEffect(() => {
loadActivity().finally(() => {
pageProgressMessage.set('');
setIsLoading(false);
});
Promise.allSettled([loadActivity(), loadAllProjectDetails()]).finally(
() => {
pageProgressMessage.set('');
setIsLoading(false);
},
);
}, []);
const learningRoadmaps = activity?.learning.roadmaps || [];
@@ -106,6 +131,17 @@ export function ActivityPage() {
learningRoadmapsToShow.length !== 0 ||
learningBestPracticesToShow.length !== 0;
const enrichedProjects = activity?.projects.map((project) => {
const projectDetail = projectDetails.find(
(page) => page.id === project.projectId,
);
return {
...project,
title: projectDetail?.title || 'N/A',
};
});
return (
<>
<ActivityCounters
@@ -201,6 +237,19 @@ export function ActivityPage() {
)}
</div>
{enrichedProjects && enrichedProjects?.length > 0 && (
<div className="mx-0 px-0 py-5 pb-0 md:-mx-10 md:px-8 md:py-8 md:pb-0">
<h2 className="mb-3 text-xs uppercase text-gray-400">
Your Projects
</h2>
<div className="grid grid-cols-1 gap-1.5 sm:grid-cols-2">
{enrichedProjects.map((project) => (
<ProjectProgress key={project._id} projectStatus={project} />
))}
</div>
</div>
)}
{hasProgress && (
<ActivityStream activities={activity?.activities || []} />
)}

View File

@@ -56,9 +56,11 @@ export function ActivityStream(props: ActivityStreamProps) {
return (
<div className={cn('mx-0 px-0 py-5 md:-mx-10 md:px-8 md:py-8', className)}>
<h2 className="mb-3 text-xs uppercase text-gray-400">
Learning Activity
</h2>
{activities.length > 0 && (
<h2 className="mb-3 text-xs uppercase text-gray-400">
Learning Activity
</h2>
)}
{selectedActivity && (
<ActivityTopicsModal

View File

@@ -4,7 +4,7 @@ export function EmptyActivity() {
return (
<div className="rounded-md">
<div className="flex flex-col items-center p-7 text-center">
<RoadmapIcon className="mb-2 w-[60px] h-[60px] sm:h-[120px] sm:w-[120px] opacity-10" />
<RoadmapIcon className="mb-2 h-14 w-14 opacity-10" />
<h2 className="text-lg sm:text-xl font-bold">No Progress</h2>
<p className="my-1 sm:my-2 max-w-[400px] text-gray-500 text-sm sm:text-base">

View File

@@ -4,26 +4,11 @@ export function EmptyStream() {
return (
<div className="rounded-md">
<div className="flex flex-col items-center p-7 text-center">
<List className="mb-4 h-[60px] w-[60px] opacity-10 sm:h-[60px] sm:w-[60px]" />
<List className="mb-4 h-14 w-14 opacity-10" />
<h2 className="text-lg font-bold sm:text-xl">No Activities</h2>
<h2 className="text-lg font-bold sm:text-xl">No Activity</h2>
<p className="my-1 max-w-[400px] text-balance text-sm text-gray-500 sm:my-2 sm:text-base">
Activities will appear here as you start tracking your&nbsp;
<a href="/roadmaps" className="mt-4 text-blue-500 hover:underline">
Roadmaps
</a>
,&nbsp;
<a
href="/best-practices"
className="mt-4 text-blue-500 hover:underline"
>
Best Practices
</a>
&nbsp;or&nbsp;
<a href="/questions" className="mt-4 text-blue-500 hover:underline">
Questions
</a>
&nbsp;progress.
Activities will appear here as you start tracking your progress.
</p>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More