Suppose a newly minted programmer who has taken an introductory course on Programming and/or Computer Science somewhere and knows the basic constructs of a programming language.
What projects can such a person build? Is there a list that is suitable for a beginner like that?
When I started, I built simple utilities with just HTML/CSS & JavaScript. When I had a solid understanding of these three, then I dove into frameworks and complex stuff.
Here are some ideas
- Calculator, could be command-line or in a website
- To-do app
- A pomodoro timer
- static webpage (with just HTML/CSS), then learn about accessibility, responsive design, design system.
- REST API with node (e.g. Express js)
- Consume public APIs in JS frontend (or you can use React too)
- Building a full stack app with your CRUD API, can also add auth, image CDN etc
Basically, gradually raising the complexity with every project or within it by adding a new feature
I recently wrote about building projects as beginner (even more ideas here) : https://mnsh.me/blog/beginner-ideas
Good luck!
- Jquery TODO List to learn about the DOM, basic logic and CSS and HTML structure.
- JS Todo list with data saved in browser storage
- PHP todo list with data saved in a file or database - PHP todo list serving JSON that talks to a front-end client.
IF you can make this you will be great.
Do not listen to anyone telling you PHP is this PHP is that.
It's built for the web. It has the most mature tooling for web development.
1. Compiling my Linux kernel - still relevant 25 years later
2. A multi-threaded socket server
3. Implementing each of the OO design patterns
Other things on-the-job that developers do early in their careers that teach a lot but foist technical debt on to others:
1. Automating any thing that you are asked to do manually (be careful human factors-wise)
2. Picking an overwrought solution to a problem (e.g. template metaprogramming or some darling language)
3. Unit tests for your code in whatever framework that suits. Even just a single test for sanity check purposes
Things that I wish some new hires would do:
1. RTFM (particularly, know their way around API documentation: usage, return codes, errors, exceptions)
2. When advised to RTFM actually do it
We handle the project ideas and designs, so you can focus on the coding. We try to make it as close to a real-world development workflow as possible. We've got five different difficulty levels and as you get to the Intermediate, Advanced, and Guru levels, there a many full-stack options, if that's something that interests you.
Hope you find something you like and best of luck!
A command line game would be fun! Tictactoe, wordle, text adventure game (you move N E S W from room to room, to solve a puzzle plus some other actions)
They would then gain skills such as
- Reading other peoples code
- The actual process of git cloning and branching
- Code review
- And the joy of building something other people will use.
- Command Line Music Player
- Homepage/Startup page similar to Homer.
- Discord Bot
- Mastodon client
- Simple Markdown editor