Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/blade-sensei/learning

Roadmap for software engineer, sandbox, algorithms training, it also contains my daily task dashboard
https://github.com/blade-sensei/learning

hacktoberfest javascript lessons roadmap sandbox software-engineering

Last synced: about 2 months ago
JSON representation

Roadmap for software engineer, sandbox, algorithms training, it also contains my daily task dashboard

Awesome Lists containing this project

README

        

# Software engineer roadmap

Skills for engineer

## Basics Fundamentals

### Algorithms

- [canvas for algo](https://www.hiredintech.com/classrooms/algorithm-design/lesson/78)

- [math algorithms](https://peteris.rocks/blog/algorithm-programming-tips-and-tricks/)
- [some interview algorithms](https://medium.com/@codingfreak/huge-collection-of-array-interview-questions-e87ac7c34e62)
- [algorith categories like brute, dynamic etc](https://itnext.io/algorithms-and-data-structures-in-javascript-a71548f902cb)
- Big-O perf
- [big-o with javascript](https://adrianmejia.com/most-popular-algorithms-time-complexity-every-programmer-should-know-free-online-tutorial-course/)
- Training algorithms
- https://leetcode.com/
- https://www.hackerrank.com/interview/interview-preparation-kit?h_l=domains&h_r=hrw&utm_source=hrwCandidateFeedback
- Interesting list for coding http://dhruvbird.com/61.html

- Tips interview: https://qr.ae/pN2HUa quora algorithms

### Reading code

- [read code](https://www.geeksforgeeks.org/problem-solving-arrays/)

### Maths for Computer science

### Data structures

- [x] arrays
- [how memory and array works](https://www.youtube.com/watch?v=pmN9ExDf3yQ)
- #### Common functions
- #### Common algorithms
[common interview questions](https://dev.to/javinpaul/50-data-structure-and-algorithms-problems-from-coding-interviews-4lh2)
[list of algorithms for array by categories](https://www.geeksforgeeks.org/array-data-structure/)
Intersection in array
- [x] linked list
- video https://www.youtube.com/watch?v=njTh_OwMljA)
- introductions https://www.tutorialspoint.com/data_structures_algorithms/linked_list_algorithms.htm

https://www.geeksforgeeks.org/data-structures/linked-list/
- lists dynamic time complexity https://medium.com/@sherryhsu/js-objects-and-arrays-which-one-is-faster-cfcdb1281704#:~:text=On%20the%20other%20hand%2C%20Insert,time%20complexity%20of%20Amortized%20Constant.
- https://medium.com/@satorusasozaki/amortized-time-in-the-time-complexity-of-an-algorithm-6dd9a5d38045
- [Difference array and linked list](https://www.studytonight.com/data-structures/linked-list-vs-array)
- [ ] stack, queue
- [ ] hash
- [ ] binary search
- [implementation with javascript](https://www.geeksforgeeks.org/binary-search-in-javascript/)
- [ ] Trees
- [implementation of tress and most common functions](https://adrianmejia.com/data-structures-for-beginners-trees-binary-search-tree-tutorial/)
- [depth-first search and breadth-first search with graph but i can be used with tress](https://adrianmejia.com/data-structures-for-beginners-graphs-time-complexity-tutorial/#Breadth-frirst-search-BFS-Graph-search)
- [binary tree 101](https://iq.opengenus.org/binary-search-tree/)
- [ ] Sorting
- [all algorithms of sorting](https://www.cs.cmu.edu/~adamchik/15-121/lectures/Sorting%20Algorithms/sorting.html)
- [ ] Graphs

### Key concepts

- [ ] KISS: https://thevaluable.dev/kiss-principle-explained/
- [ ] YAGNI
- [ ] SOLID
- [ ] DRY: https://thevaluable.dev/dry-principle-cost-benefit-example/

### Design Patterns

- [ ] gang of four - 4 principal dessign patterns [introduction](https://www.journaldev.com/31902/gangs-of-four-gof-design-patterns)

- [ ] strategy
- [good introduction to strategy](https://www.journaldev.com/31902/gangs-of-four-gof-design-patterns)
- [ ] singleton
- [great introduction - essentials](https://refactoring.guru/design-patterns/singleton)
- [why not to use see consequences](http://design-patterns.fr/singleton)
- [global used dependency danger point of view](http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/)
- [implementation javascript](https://linux.m2osw.com/singleton-javascript-es6)
- [singleton is used as global variable/instance what is the bad side ? ](https://softwareengineering.stackexchange.com/questions/148108/why-is-global-state-so-evil) check first and second answer
- [questions](https://stackoverflow.com/questions/2085953/unit-testing-with-singletons)
- [ ] builder
- [introduction](https://refactoring.guru/design-patterns/builder)
- [ ] adapter
- [introduction english](https://refactoring.guru/design-patterns/adapter)
- [two ways of implement (js)](https://medium.com/better-programming/design-patterns-adapter-efb73c5090e6)
- [ ] prototype
- [ ] decorator
- [ ] visitor
- [ ] abstract factory
- [guru introduction](https://refactoring.guru/design-patterns/factory-method)
- [french introduction](http://design-patterns.fr/fabrique)
- [ ] factory
- [french video real C# example](https://www.youtube.com/watch?v=s1lztsgZk4c)
- [ ] facade
- [ ] observer
- [guru introduction](https://refactoring.guru/design-patterns/observer)
- [ ]
- [ ] proxy
- [ ] delegate
- [ ] command
- [ ] state
- [guru introduction](https://refactoring.guru/design-patterns/state)
- [ ] memento
- [ ] iterator
- [ ] composite
- [ ] flyweight

### Testing

- [ ] types of test https://medium.com/swlh/levels-of-software-testing-b943ce41a2c7
- [ ] good practices https://dzone.com/articles/unit-testing-best-practices-how-to-get-the-most-ou
- [ ] practices
- [ ] Mock or real API calls: https://www.confluent.io/blog/choosing-between-mock-api-and-real-backend/
- [ ] About Stubs and Mocks for API testing: https://www.valentinog.com/blog/fake/

### Debug

- [ ] why to debug
- [ ] how to debug
- [ ] practice in langage/ide

### Computer world

- [ ] components
- [ ] Database
- [ ] API
- [ ] serveurs
- [ ] how component interacts
- [ ] memory ram
- [ ] stock/data
- [ ] threads
- [ ] serveurs
- [ ] browser
- [ ] bash

### Web World

- [ ] components https://medium.com/@wereheavyweight/how-were-using-component-based-design-5f9e3176bab
- [ ] how they interact
- [ ] difference internet and web

### Terminal commands

- [ ] linux install/unistall packages https://docs.cumulusnetworks.com/cumulus-linux-36/Installation-Management/Adding-and-Updating-Packages/
- [ ] how package manager works https://en.wikipedia.org/wiki/Package_manager
- [ ] file, copy, cat, remove, create https://documentation.its.umich.edu/node/295
- [ ] sot, grep, cat, awk, sed, sort
- [ ] basic scripts
- [ ] manager process
- [ ] ps, top, htop, isof
- [ ] change permissions and owner folders/files
- [ ] network
- [ ] ping, tcp dump https://www.howtogeek.com/108511/how-to-work-with-the-network-from-the-linux-terminal-11-commands-you-need-to-know/
- [ ] nmap
- [ ] traceroute

### Performance Big-O

- [ ] definitions
- https://www.bigocheatsheet.com/
- [ ] How to find
- [ ] [Time Complexity of arrays/list](https://medium.com/@ashfaqueahsan61/time-complexities-of-common-array-operations-in-javascript-c11a6a65a168)
- amortized time https://yourbasic.org/algorithms/amortized-time-complexity-analysis/

### Encoding

- [ ] basic http://kunststube.net/encoding/

### Links

[cs standford some posts](http://www-cs-students.stanford.edu/)

## System/Networking basics

- database architectures: https://dzone.com/articles/database-architectures-amp-use-cases-explained?edition=620294&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=Weekly%20Digest%202020-08-05
- [ ] OSI
- [ ] HTTP
- [ ] UDP
- [ ] SSL
- [ ] web server
- [ ] Ngnix
- [ ] Apache
- [ ] FTP
- [ ] TLS
- [ ] DNS
- [ ] NTP
- [ ] SDN

- [ ] database
- [ ] MySQL
- [ ] MariaDB
- [ ] PostGres
- [ ] Mongo

## Systems middle

- [ ] loadbalancer
- [ ] firewall
- [ ] reverse proxy
- [ ] security
- [ ] coching server
- [ ] forward proxy

## Frontend basics

### Knowlage
- [rendering in web](https://developers.google.com/web/updates/2019/02/rendering-on-the-web)

### HTML
- [ ] HTML structure
- [ ] Links, buttons
- [ ] forms
- [ ] evolutions
- [ ] good practices

### CSS
- [ ] definition
- [ ] https://dev.to/emmabostian/css-specificity-1kca
- [ ] [value unit](https://developer.mozilla.org/fr/docs/Web/CSS/Valeurs_et_unit%C3%A9s_CSS)
- [ ] override points
- [ ] model box https://www.w3schools.com/css/css_boxmodel.asp
- [ ] position
- [ ] display
- [ ] float https://developer.mozilla.org/fr/docs/Web/CSS/float
- [ ] see also clear it's useful https://developer.mozilla.org/fr/docs/Web/CSS/clear
- [ ] overflow
- [ ] index
- [ ] selector
- [ ] https://dev.to/emmabostian/css-specificity-1kca
- [ ] https://dev.to/ibrahima92/6-powerful-css-selectors-that-will-really-help-you-write-clean-css-4bab
- [ ] debug in browser
- [ ] others skills
- [ outline vs border: check html/border-outline page of this repo ](https://www.tutorialrepublic.com/css-tutorial/css-outline.php)
### JavaScript

- [ ] DOM
- [intruction and difference DOM - view ](https://bitsofco.de/what-exactly-is-the-dom/)
- [introductin see levels parts](https://www.geeksforgeeks.org/dom-document-object-model/)
- [more precisly introduction with w3 org](https://www.w3.org/TR/WD-DOM/introduction.html)
- [French description](https://fr.wikipedia.org/wiki/Document_Object_Model)
- [road map](https://learnvanillajs.com/roadmap/)
- project to train - snake game -datatable forms
- [ ] selectors
- [ ] Parents, children
- [ ] Nodes
- [ ] change dom
- [ ] events
- [ ] AJAX
- [ ] InnerHTML
- [ ] Difference Inner et TextContent
- [ ] Object vs New Object
- [ ] strict mode
- [ ] Tricky parts
- [ ] Concatenation
- [ ] Compair number string
- [ ] Triple equals
- [ ] Convert String to Number
- [ ] Floats
- [ ] Callbacks
- [ ] Binding function
- [intrd](https://www.smashingmagazine.com/2014/01/understanding-javascript-function-prototype-bind/)
- [ ] apply and call
- [ ] Invoked function
- [ ] ES6
- [ ] Shadow DOM
- [ ] This word
- [ ] hosting
- [ ] scope
- [ ] prototype
- [ ] class
- [ ] strict
- [ ] asyncronous
- [callbacks/promises](https://www.oreilly.com/library/view/you-dont-know/9781491905241/ch04.html)
- [event loop async](https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif)
- [setimeout 0](https://www.geekabyte.io/2014/01/javascript-effect-of-setting-settimeout.html)
- [schema tick](https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node-js-event-loop-and-its-metrics-c4907b19da4c) a tick is an iteration
- [nexttick vs settimeout, immediate](http://voidcanvas.com/setimmediate-vs-nexttick-vs-settimeout/)
- [process](http://voidcanvas.com/nodejs-event-loop/)
- [ ] Testing
- [test tools comparator](https://blog.logrocket.com/comparing-react-testing-libraries/)
- [ ]
- [ ] Debug in JS
- use some debug and for vs code ide use extension `chrome debug`
- [ ] use live server extension for vs code

#### Javascript projects ideas

- Card / Accordeon
- Pagination table
- Steper
- Tabs
- Loader before images
- Modals
- Sub/Override words when searching (dom search)

## Frontend middle

### JavaScript
- [ ] Learn a framework 'React'
- [about super, good blog](https://overreacted.io/fr/why-do-we-write-super-props/)
- [tools to debug](https://github.com/facebook/react/tree/master/packages/react-devtools)
- react hooks basics mistakes: https://medium.com/better-programming/3-mistakes-junior-developers-make-with-react-function-component-state-8a744ab99a0d
- hooks https://blog.logrocket.com/use-hooks-and-context-not-react-and-redux/
- useEffect https://medium.com/swlh/useeffect-4-tips-every-developer-should-know-54b188b14d9c
- tips
- Pouvez-vous la calculer en vous basant sur le reste de l’état ou les props de votre composant ? Si oui, ce n’est pas de l’état.
- [penser react](https://fr.reactjs.org/docs/thinking-in-react.html)
- passer etat: Il ne doit y avoir qu’une seule « source de vérité » pour toute donnée qui change dans une application React. En général, l’état est d’abord ajouté au composant qui en a besoin pour s’afficher. Ensuite, si d’autres composants en ont également besoin, vous pouvez faire remonter l’état dans l’ancêtre commun le plus proche. Au lieu d’essayer de synchroniser les états de différents composants, vous devriez vous baser sur des données qui se propagent du haut vers le bas.
- scale https://medium.com/javascript-in-plain-english/setting-up-a-large-scale-react-application-2d50bc8a5ddb
- [tutorial hooks](https://medium.com/@dtkatz/react-hooks-tutorial-learn-by-building-b90ec4db2b8e?source=email-4c2a6c84c32-1598835139283-digest.reader------0-59------------------d1402cac_e802_4274_ad47_c0798cc546ce-1-893a11ca_eb1a_42cf_959f_9fb041f25bf4----&sectionName=top)

- [structure:](https://www.google.com/url?q=https://medium.com/@robertsavian/my-awesome-react-redux-structure-6044e5007e22?source%3Demail-4c2a6c84c32-1596848470982-digest.reader------0-59------------------35d41802_f9b1_4629_a235_8bb6ccc6740e-1-c8174d72_7ceb_405a_9836_2c1e4c9c7b14----%26sectionName%3Dtop&source=gmail&ust=1597681728950000&usg=AFQjCNGkTiExte48xLLXp9jCakVjCmuzvA)

- React Libraries
- https://medium.com/swlh/usefetch-a-custom-react-hook-36d5f5819d8

- [React advance](https://www.google.com/url?q=https://medium.com/@dhanraj_acharya/concepts-to-become-an-advanced-react-developer-684d90c086c2?source%3Demail-4c2a6c84c32-1595898033932-digest.reader------0-59------------------7fd33b40_e88b_47be_b178_d8ebce2ff8e7-1-2db565a1_d200_4af5_ba8d_d5c1f1466138----%26sectionName%3Dtop&source=gmail&ust=1598178026959000&usg=AFQjCNHJGD1PeWHrFN9BHDI2mNRMRMjEGA)
- Fragments
- Hooks
- Context
- Composition
- Refs
- [Optimization](https://reactjs.org/docs/optimizing-performance.html)
- Flow

- [ ] Testing Unit/Integration/E2E
- [ ] Babel
- [ ] Assyncronous
- [ ] Closures
- [ ] Types
- [ ] TypeScript

### CSS

- [ ] Bootstrap
- [ ] Flexbox
- [ ] Bulma
- [ ] Pre processor

### Tools

- [ ] light house
- [ ] performance
- [ ] debug in browser

## Backend basics

- [ ] GO/Java/Python
- [ ] Testing
- [ ] https://dev.to/jackcaldwell/mocking-es6-class-methods-with-jest-bd7 Class mock
- [ ] Debug tools
- [ ] Deployment
- [ ] Packaging
- [ ] create API without frameworks

## Backend middle
- [ ] oauth
- [ ] basic authentication
- [ ] JWT
- [ ] openId
- [ ] SSO
- [ ] Take a framework
- [ ] Websockets
- [ ] Dependendy Injection
- [ ] https://www.youtube.com/watch?v=EPv9-cHEmQw
- [ ] https://www.freecodecamp.org/news/a-quick-intro-to-dependency-injection-what-it-is-and-when-to-use-it-7578c84fa88f/
- [ ] Database
- [ ] ORM

- [ ] security
- [ ] CORS
- [ ] XSS
- [ ] CSRF

- Nodejs
- [Libraries](https://blog.bitsrc.io/23-insanely-useful-nodejs-libraries-you-should-know-in-2020-5a9b570d5416?source=email-4c2a6c84c32-1597539738315-digest.reader------0-49------------------9a33ddc9_d9c6_4070_9219_066aad4f8af7-1-182c334e_d8b6_408b_89e9_be3e7777009a----)

## Backend advance

- [ ] Serverless
- [ ] Microservices
- [introduction](https://www.feval.ca/posts/microservices/)
- [ ] https://blog.dreamfactory.com/microservices-vs-web-services/
- [ ] GraphQL

## Backend advance

- [ ] Message broker
- [ ] Search engine
- [ ] APNs
- [ ] Location
- [ ] Payments
- [ ] Service workers

## Devops

- [ ] Docker
- [ ] Containize
- [ ] Docker composer
- [ ] Manage commands
- [ ] Runners
- [ ] Jenkins
- [ ] Circle CI
- [ ] Configuration
- [ ] Ansible
- [ ] Puppet
- [ ] Concepts
- [ ] Process Management

## Devops middle

- [ ] Cloud
- [ ] AWS
- [ ] Google Cloud
- [ ] Heroku
- [ ] Azure
- [ ] Digital Ocean
- [ ] Orchestration
- [ ] Kubernetes
- [ ] Docker Swarm
- [ ] Insfra provisioning
- [ ] Terraform
- [ ] Logs Splunk

## Tools basics

- [ ] git
- [ ] commits
- [ ] merges
- [ ] history
- useful link
- http://schacon.github.io/git/user-manual.html
- http://www-cs-students.stanford.edu/~blynn/gitmagic/ch08.html
- write message: https://dev.to/chrissiemhrk/git-commit-message-5e21
- [ ] VS code/IDE
- [ ] linters
- [ ] webpack
- [ ] loggers

## Tools middle

- [ ] git
- [ ] reset, rollback
- [ ] conflicts
- [ ] gitflow

- [ ] redux
- [ ] gulp

## programming

- [ ] fonctionnal
- [ ] declarative
- [ ] procedural
- [ ] oop
- [ ] patterns
- [ ] MVC

## practices

- [ ] Test-driven
- [ ] CI
- [ ] Behavior-driven

### Clean Code

- [ ] First introduction to clean code by Uncle Bob: https://www.youtube.com/watch?v=7EmboKQH8lM

## Network

- [skills](https://www.zippia.com/network-engineer-jobs/skills/)
- cryptography

## Technology

- [ ] Singlepage SPA
- [ ] PWA

## Design UX

- [ ] buttons https://www.24joursdeweb.fr/2019/et-tu-cliques-a-cote-du-bouton/

## DDD (Domain Driven Design)

### Links

- [Book](https://learning.oreilly.com/library/view/patterns-principles-and/9781118714706/)

## Clean Architecture

### Links

- [D'une architecture web MVC à une architecture Clean Hexagonale - Céline Gilet
](https://www.youtube.com/watch?v=e3K0_URBxRI&t=2363s)

- [Simple french intro](https://www.youtube.com/watch?v=2H1rdx3al_8&t=673s)

- [Uncle Bob clean architecture](https://www.youtube.com/watch?v=Nsjsiz2A9mg&t=2496s)

- https://leandeep.com/clean-architecture/

## TDD (Test Driven Design)

### Links

- [Interesting](https://www.youtube.com/watch?v=KyFVA4Spcgg&t=2559s)

- [Uncle bob about TDD](https://www.youtube.com/watch?v=58jGpV2Cg50)

## Programming Books

- Clean Architecture: A Craftsman's Guide to Software Structure and Design: A Craftsman's Guide to Software Structure and Design (Robert C.
- Growing Object-Oriented Software, Guided by Tests
- The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws
- Refactoring: Improving the Design of Existing Code
- Test Driven Development: By Example
- Design Patterns: Elements of Reusable Object-Oriented Software
- Implementing Domain-Driven Design
- Domain-Driven Design: Tackling Complexity in the Heart of Software

## Useful links

- html icons unicode/hex + examples : https://www.htmlsymbols.xyz/

- Accessibility web: https://webaim.org/intro/

- [What i learn from senior](https://medium.com/better-programming/things-i-learned-from-a-senior-software-engineer-3cf622f3d835?source=email-4c2a6c84c32-1599353808618-digest.reader------0-59------------------faa28c04_649e_443e_81ee_a0575e433256-1-99c2b642_771d_443e_89c8_7128f90d8c86----)
- Work routine: https://levelup.gitconnected.com/the-16-hour-developer-workout-6a9e10afa8c2
- [runtimes v8 vs chakra](https://developers.redhat.com/blog/2016/05/31/javascript-engine-performance-comparison-v8-charkra-chakra-core-2/)
- [why is nodejs single thread](https://stackoverflow.com/questions/17959663/why-is-node-js-single-threaded)