Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What projects can new programmers build to gain more confidence?
9 points by newsoul on March 1, 2023 | hide | past | favorite | 8 comments
We often hear that building small to moderate size projects make you more confident as a programmer than reading books or taking courses.

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?



I can talk about webdev part, dunno about other areas.

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!


CRUD todo that increases in complexity.

- 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.


Small/silly things I did early in my career that are milestones in retrospect:

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


Building projects is definitely an excellent way to boost your skills! I'm going to shamelessly plug our site, https://www.frontendmentor.io/.

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!


I would say start with stuff that runs on the command line and needs few or none external libraries.

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)


One possibility is implementing pull requests on open source projects.

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.


Here are some ideas:

- Command Line Music Player

- Homepage/Startup page similar to Homer.

- Discord Bot

- Mastodon client

- Simple Markdown editor


Greeeeeat




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: