How To Get Better at Building (and Finishing) Programming Projects


For the past few weeks, I’ve been making it a subconscious goal to try to build something every day. Or if not everyday, then at least every other day. Basically, I just want to make sure that I write some kind of code. Whether it’s a big contribution or a small component.

These past few days I’ve been working on my personal website written in Astro. Before that, I was making small components and trying out some CSS tricks in CodePen. Alongside that, I’ve been contributing to the Open Props docsite by implementing a new feature with the help of its creator Adam Argyle.

screenshot of the Open Props website

Open Props is an awesome set of pre-defined CSS variables for all sorts of styling purposes from colors to animations and typography configurations!

Btw, you can check out my work so far by following this GitHub issue! Link to GitHub issue on argyleink/open-props.

I was inspired to do this after watching a video by BigBox SWE on Youtube titled “How To Finish Programming Projects.” In this video, he talks aboout having a well-defined scope for your projects. Having a well-defined scope helps you know when you’re done and gives you a visible target that you can reach for.

If you’re not sure what you want to work on, then try to do something simple. Like, stupidly simple. Even if it’s an extremely small scope for doing something as simple as making a chessboard with HTML and CSS. Or making text on a page move up and down. By purposefully setting small scopes, you make it easier to chalk up those projects as successfully completed!

Intentionally small scopes lead to small wins with big impacts!

Every time you build something, you are either learning something new or getting better at doing what you know how to do. Instead of memorizing all the functions available in JavaScript or all of the properties in CSS, you are naturally learning them by using them.

Coding is a lot like learning a spoken/ written language (which I also happen to be practicing). The best way to learn the language is to engage in conversation using it.

So if you want to get better at building software, just build something!