by Indrek Lasn

Here’s yet another list of exciting projects to build

“smiling man showing sticky note with code illustration” by Hitesh Choudhary on Unsplash

Coding is a skill which is acquired through hard work and passion. To become good at something, one must put in the effort. Don’t be that person who quits when things get hard. There’s light at the end of the tunnel and it’s well worth it!

It is important to build things if you want to become great at coding.

Note: This article was originally published at strilliant.com — please give some love to the original too! ❤

Here's yet another list of exciting projects to build
Coding is a skill which is acquired through hard work and passion. To become good at something, one must put in the…www.strilliant.com

Nothing good comes easy. If it’s hard, it’s worth doing. Most of us are excited to code, but lack the ideas. Summer is over and it’s time to start coding again. Allow me to present some challenging, yet fun ideas to build.

1 — Customizable rich text editor

A rich text editor’s aim is to reduce the effort for users trying to express their formatting as valid HTML markup. A rich text editor enables the users the option to format their text in different ways.

Everyone has used a rich text editor at some point. So why not build one yourself?

2 — Reddit clone

Reddit

Reddit (/ˈrɛdɪt/, stylized in its logo as reddit) is a social news aggregation, web content rating, and discussion website.

Reddit is my biggest time sink, yet I keep doing it. Building a Reddit clone is a productive way to learn coding (while still browsing Reddit).

Reddit provides with you a very rich API. Don’t skip any features and don’t half-ass it. In a real world scenario with paying clients and customers, you can’t half-ass or you will be out of job real quick.

Smart clients immediately know if poor work is being done and will find someone else.

Reddit API

3 — Publish an open source NPM package

NPM — the package manager for Javascript

If you code in Javascript, chances are you use a package manager. A package manager allows you to re-use existing code other people wrote and published.

Understanding the full cycle of a package is very eye-opening experience. There are many things you need to know when publishing code. You need to think about security, semantic versioning, scalability, naming conventions, and maintenance.

The package can be anything. If you lack ideas, build your own Lodash and publish the package.

Lodash: https://lodash.com

Having something you made on the internet puts you at the 10% already. Here are some handy resources about open source and packages.

4 — The freeCodeCamp curriculum

FCC curriculum

freeCodecamp has put together a very comprehensive coding curriculum.

freeCodeCamp is a non-profit organization. They consist of an interactive learning web platform, an online community forum, chat rooms, a Medium publication and local organizations that intend to make learning web development accessible to anyone.

You’re more than qualified for your first job if you manage to finish the entire curriculum.

5 — Create a HTTP server from scratch

HTTP is one of the main protocols how content is being served on the internet. HTTP servers are used to serve static content like HTML, CSS and JS.

Being able to implement the HTTP protocol from scratch broadens your “big-picture” knowledge on how everything fits together.

For example, if you come from a Node background, the Express framework provides a HTTP server.

For a challenge, see if you can:

  • Set up a server without using any libraries
  • The server has to serve HTML, CSS and JS content.
  • Implement a router from scratch
  • Watch for changes and refresh the server

If you’re looking for direction, use Go lang and try to build the Caddy HTTP server from scratch.

6 — Note taking desktop application

We all take notes, right?

Let’s build a note taking desktop application. The notetaker needs to save the notes and sync them with a database. Create a native app with Electron, Swift, or whatever you like, as long it lives in your filesystem.

Feel free to combine this with the first challenge (rich text editor).

As a bonus, try and sync the desktop version with a web version.

7 — Podcasts on the web (Overcast clone)

Who doesn’t listen to podcasts?

Build a web application with the following functionality:

  • Create an account
  • Search for podcasts
  • Like and subscribe to podcasts
  • Stop and play, change the speed, forward and backward 30 seconds.

As a starting point, try the iTunes API. If you know any other resources, please post in the comments!

https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/

8 — Screen capture

Hey! I’m capturing my screen right now! ❤

Build a desktop or web application that let’s you capture your screen and save the clip as a .gif

Here’s some guidance how to achieve this.

Thanks for reading, I hope you found some inspiration. Feel free to tweet or comment the results straight to my mailbox!

Found this useful? You might enjoy some of my other articles:

Strilliant
Without further ado, here are some everyday "tricks" to make your Javascript code much more readable. Take this…www.strilliant.comHere’s what you need to know as a new developer
If you’ve started to learn programming and have decided to get serious — or you’re fresh out of school with no job…medium.freecodecamp.orgFrom Zero to Hero with Vue - But first, why Vue?
Vue has taken the Javascript world by storm - and for a good reason. Vue is a great tool to work with. I had the…medium.freecodecamp.orgSupercharge your debugging experience for Node.js
You see this, what do you do?codeburst.io✨ Immensely upgrade your development environment with these Visual Studio Code extensions
Let’s talk about Code — Visual Studio Code.medium.freecodecamp.orgHow to set-up a powerful API with Nodejs, GraphQL, MongoDB, Hapi, and Swagger
Separating your frontend and backend has many advantages:medium.freecodecamp.org