Learn NodeJS and JavaScript by coding 100+ programs, applications and utilities

Rajesh Pillai
Unlearning Labs
Published in
4 min readMay 5, 2020

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

  1. Coding a linked list
  2. Implement Stack
  3. Coding a circular and doubly linked list
  4. Implement Queue
  5. Implement Binary Tree
  6. Linear search
  7. Binary search
  8. Merge sort
  9. Shell sort
  10. Insertion sort
  11. Quick sort
  12. Graph
  13. HashTable
  14. BTree
  15. Tries

Design Patterns

  1. Creational Design Pattern
  2. Behaviorial Design Pattern
  3. Structural Design Pattern

Project and Product Development

  1. Code your own file copy utility
  2. Code your own file rename/mv utility
  3. Code head and tail command.
  4. Code touch command
  5. Code a bulk file renaming utility
  6. Code a utility to split and merge large files.
  7. Coding a disk space visualizer
  8. Code a curl like utility
  9. Building a custom logger
  10. Code your own string functions like substring, left, right, pad etc.
  11. Code a simple HTTP Server
  12. Code and HTTP client library like axios etc.
  13. Code a simple websocket server
  14. Code a real time chat application
  15. Coding a simple vi like editor
  16. Code a simple JSON server
  17. Code a simple file server
  18. Creating an online json based word processor
  19. Creating an online spreadsheet
  20. Code a utility to Send email from command line
  21. Converting numbers into english words.
  22. Code a simple URL router
  23. Code a URL shortner utility
  24. Code a command line html to pdf conversion utility
  25. Coding your own simple game engine
  26. Code a console based game.
  27. Code a pomodoro timer
  28. Coding a snake game
  29. Coding your own unit testing tool
  30. Coding a spelling learning application for kids
  31. Coding a minesweeper game
  32. Building a small mario like game
  33. Coding a multiplayer tic tac toe game
  34. Coding an extreme breakout game
  35. Coding a pong game
  36. Building a missile command game
  37. Coding a slideshow application
  38. Coding a calendar and an event scheduler
  39. Building a meeting booking app
  40. Coding a desktop application like vscode
  41. Webworkers, streaming
  42. Animator
  43. Coding an authentication and authorization system.
  44. Coding an online code editor like jsbin, codepen.
  45. Coding sticky notes application.
  46. Coding a blog engine
  47. Building a forum software
  48. Building a Quiz/Skills Analysis Engine
  49. Building news aggregator
  50. Coding a distributed cache
  51. Coding a family tree application
  52. Coding a collaborative wiki like application
  53. Coding an ecommerce application
  54. Coding a nosql editor
  55. Coding an ORM (Object Relational Mapper)
  56. Coding your own mini nosql server.
  57. Coding an image editor
  58. Coding a mini visual programming editor
  59. Coding your own ExpressJS like framework
  60. Code an agile task management app
  61. Coding a pinterest clone
  62. Building a skill sharing marketplace like fiverr
  63. Building a social network like facebook
  64. Building an accounting/invoicing system
  65. Building a job search portal and networking app like linkedin.
  66. Building an airbnb like website.
  67. Building a CRM
  68. Cloning reddit
  69. Build a whatsapp/telegram like messenger
  70. Building a content management system (CMS)
  71. Building Form management system
  72. Building a bug tracking system
  73. Building a Geo tracker app
  74. Coding a mind mapping tool
  75. Coding your own transpiler
  76. Coding your own interpreted language
  77. Building a Learning Management System like Udemy.
  78. Building a gmail clone
  79. Building a data visualization app
  80. Building a twitter clone
  81. Image Recognition Application
  82. Forms Generation App
  83. Email List Building App
  84. Build an app like MailChimp
  85. Learning Management System
  86. + 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

--

--

Rajesh Pillai
Unlearning Labs

Co-Founder, Software Engineer and CTO @Algorisys Technologies - Building Products and Upskilling upcoming generations