Learn NodeJS and JavaScript by coding 100+ programs, applications and utilities
Progressive learning by coding programs and examples in increasing order of complexity.
We will take a very methodical approach to build and understand every major step of the application.
This is part of Mastering front end engineering in 12-to-20 weeks program that we are working on.
The following are the applications, utilities, modules we will be building in this exercise (right now two year plan to get majority of the chunk depending on the availability of team members to work on it).
Note:
Publishing the agenda for reference. Work on this has started and hopefully starting next 2 weeks contents and tutorials will be published at https://teachyourselfcoding.com
Also please don’t get intimidated with the sheer number of projects ranging from simple command line apps to complete web applications as we will be almost reusing 50% of the application code.
The idea behind the below applications are that they almost cover all major aspects of web, software, app development that people around the world are building.
We just don’t want to code these solutions but rather put a thorough design thought so that we can reuse as much code as possible and learn design and architecture in the process.
I know this is a huge task but then I am planning this for long term vision for our people we hire as well as the general learners, freecodecampers or any one who want to be better than where they currently stand.
Data Structures and Algorithms
- Coding a linked list
- Implement Stack
- Coding a circular and doubly linked list
- Implement Queue
- Implement Binary Tree
- Linear search
- Binary search
- Merge sort
- Shell sort
- Insertion sort
- Quick sort
- Graph
- HashTable
- BTree
- Tries
Design Patterns
- Creational Design Pattern
- Behaviorial Design Pattern
- Structural Design Pattern
Project and Product Development
- Code your own file copy utility
- Code your own file rename/mv utility
- Code head and tail command.
- Code touch command
- Code a bulk file renaming utility
- Code a utility to split and merge large files.
- Coding a disk space visualizer
- Code a curl like utility
- Building a custom logger
- Code your own string functions like substring, left, right, pad etc.
- Code a simple HTTP Server
- Code and HTTP client library like axios etc.
- Code a simple websocket server
- Code a real time chat application
- Coding a simple vi like editor
- Code a simple JSON server
- Code a simple file server
- Creating an online json based word processor
- Creating an online spreadsheet
- Code a utility to Send email from command line
- Converting numbers into english words.
- Code a simple URL router
- Code a URL shortner utility
- Code a command line html to pdf conversion utility
- Coding your own simple game engine
- Code a console based game.
- Code a pomodoro timer
- Coding a snake game
- Coding your own unit testing tool
- Coding a spelling learning application for kids
- Coding a minesweeper game
- Building a small mario like game
- Coding a multiplayer tic tac toe game
- Coding an extreme breakout game
- Coding a pong game
- Building a missile command game
- Coding a slideshow application
- Coding a calendar and an event scheduler
- Building a meeting booking app
- Coding a desktop application like vscode
- Webworkers, streaming
- Animator
- Coding an authentication and authorization system.
- Coding an online code editor like jsbin, codepen.
- Coding sticky notes application.
- Coding a blog engine
- Building a forum software
- Building a Quiz/Skills Analysis Engine
- Building news aggregator
- Coding a distributed cache
- Coding a family tree application
- Coding a collaborative wiki like application
- Coding an ecommerce application
- Coding a nosql editor
- Coding an ORM (Object Relational Mapper)
- Coding your own mini nosql server.
- Coding an image editor
- Coding a mini visual programming editor
- Coding your own ExpressJS like framework
- Code an agile task management app
- Coding a pinterest clone
- Building a skill sharing marketplace like fiverr
- Building a social network like facebook
- Building an accounting/invoicing system
- Building a job search portal and networking app like linkedin.
- Building an airbnb like website.
- Building a CRM
- Cloning reddit
- Build a whatsapp/telegram like messenger
- Building a content management system (CMS)
- Building Form management system
- Building a bug tracking system
- Building a Geo tracker app
- Coding a mind mapping tool
- Coding your own transpiler
- Coding your own interpreted language
- Building a Learning Management System like Udemy.
- Building a gmail clone
- Building a data visualization app
- Building a twitter clone
- Image Recognition Application
- Forms Generation App
- Email List Building App
- Build an app like MailChimp
- Learning Management System
- + more coming
There will be some redundancy which will be filterred out later.
Ofcourse I will be teaming up with like minded people over the course of the preparation as this is not a one person task.
I will be rearranging the projects in order of complexity and cohesiveness shortly.
A dedicated website for this is underway. First beta content will be published around 3rd Week of May 2020 at https://teachyourselfcoding.com