4. Roadmap #
Created Friday 25 December 2020
Arnav's Course
Full stack Front End - embrace it, good eye for Design Back End - Dev Ops
1st Pass #
Front End #
-
runs inside a browser(HTML, CSS, JS - only these but very important)(MDN web docs), w3schools(used for basics),
-
(2 weeks) CSS - Box model, [tranforms, transitions, animations], layout[flexbox, grid, @media],
-
JS - (2 weeks) data types, equality, DOM ops, events, timeout, submit, split splice join, event loop(Philip Roberts, Carbon Five)
-
Learn Fundas of both Front and back, then do the intermediate things in both, then do advanced in Both, Then libraries
-
Front end and backend cannot be done in isloation
Back End #
-
documentation is nodejs is nodejs.org
-
(1 week) nodejs - runtime for javascript based on V8, without the browser. This is faster than Python, around 10x
-
It was so fast that it became fit for desktop apps, even embedded apps
-
Maybe comparable to Java. Once a lang is fast, it is also used for making servers
-
Nodejs vs JS --> window, document is not available. process and global is available on desktop.
-
npm - very easy and useful tool
-
modules
-
how require works
-
Native API: fs, events, os, http (End of one week)
-
freeCodeCamp is a good resource
-
OSI model
-
HTTP methods
-
Fundamental of server-client - theoretical
Servers with Node JS(3 weeks) #
- How are REST APIs made - using Express.js, used to make servers
- Routes
- Middlewares
- templates - Hbs(handle bars), Ejs, SSR(Server Side Rendering)
- DB _ SQL vs NoSQL, which to use and when to use it. _ CAP Theorem, PACELC theorem _ MySQL or Postgres - SQL _ NoSQL - MongoDB, CassandraDB _ SQL commands - trickery _ query, $sort in mongoDB Ready to make CRUD websites
2nd Pass #
Front End(2 weeks) #
- CSS libaries - Bootstrap, Materialize - professional sites
- jQuery - Very good tool, not used to create big tools
- axios - js library, https requests asynchronously
Back End #
(Start of 2 weeks)
- static or public HTML
- HBS+data -> SSR
- form submissions
- POST request body -> URL encoded, JSON (End of two weeks) (Start of 2 weeks)
- Sessions - log in state, need to understand how these works
- Cookies
- Tokens
- localStorage
- session storage used on front end
- Authentication vs Authorization
- OAuth2.0 - helps and used at FaceBook, Twitter and Google (End of two weeks)
Make project(any one - 1 week) #
Blogging site - comments
Social media
(1 week) Realtime apps - WebSocket(change without req-res) - learn - from socket.io. #
- (1 week) make Collab IDE, Shared Whiteboard
Good to know - browser API #
- Canvas -> 2D games
- Browser APIs - GPS, A/V
3rd pass #
Testing #
FE #
- Jasmine, JEST, Karma(automated test)
- UI TEst - phantomJS(screenshot tests), puppeteer(headless testing), protractor
- FE - Frameworks - React, Vue, Ember, Angular - Components, Routing, State Management(Just these three)
BE - testing #
- Mocha + Chai
- NYC - code coverage(runs tests when code is updated), testing is very, very important.
Deployment and DevOps #
- handle, nginx configs
- handle, Apache configs
- Well versed with Linux - like firewalls, not basic stupid stuff
- Setup database - Mongo, MySQL, postgres
Containerization #
- Docker - Modularization of OS and dependencies, programmatically managing resources(software)
- Kubernetes(K8S) - Orchestrization framework
- Chef, ansible
DevOps Services - Free/Paid #
- Serverless - AWS lambda
- IaaS - Machine is given(configure yourself) - Google Compute Engine, AWS EC2, DigitalOcean
- PaaS - Worry only about the code - Heroku, Google App Engine, AWL LightSail
- BaaS - (backend existing, push notifications) Firebase
- Static Web Hosting - GitHuib pages, Netlify, versel(now.sh)
- Automation - Travis CI/ Github actions
Deployment to DevOps is a part of SRE(Site Reliability Engineer) - bare minimum #
MAD as a web developer without Android, Flutter
- Web App wrappers(PWA)
- Ionic --> Hybrid Apps
- React Native
Desktop Apps
- Electron.js - Spotify, Slack, VSCode
IoT and Electronics
- johhnyify, p0
His story Learn from hackathons Maybe not in a fundamental way, but it is important https://online.codingblocks.com/courses/web-development-online-course
Arnav suggests looking at free content first. MDN, CSSTricks, there should be returns SRE/FullStack are highest paid - Flock, RazorPay, Zeta, UrbanClap, Zomato, Swiggy, Flipkart, HotStar, DoubtNut FAANG have stock(which is great)
Additional langs
- TS
- SASS or LESS
- YDKJS
- cb.lk/yt/jsadv ot/jsbasics
CodeWithHarry
- Learn 80% HTML, 60% CSS and 50% JS(avoid promises, callbacks)
- Learn PHP to get concepts, then use JS/Ruby/Python3
- Don’t use frameworks, website builders(like WiX), 3rd part libraries
- Design and Web Dev are independent. Take inspiration from websites
- HTMLCheatSheet.com
- CodePen.io - learn things
Resources #
- UX wing(https://uxwing.com/) for Icons
- PixaBay(https://pixabay.com/) for free Images
- FreeHTML5(https://freehtml5.co/) for free templates
- UnSplash(https://unsplash.com/) for Image API
- Json Placeholder(https://jsonplaceholder.typicode.com/) for fake Online REST API
- More resources are available on this GitHub Repository(https://github.com/bradtraversy/design-resources-for-developers)
This is great #
- Python vs Node is not important