“What shall I build?” is a question commonly asked within the web development community, particularly among beginners or those just starting out on their journey.
Having an interesting project to focus on that is not too time-consuming and not too daunting can be an ideal way to sustain your motivation and to hone your skills.
Let’s get started with the project ideas.
Working with dates & times is a staple
There’s plenty of scope for complex interactions
With something like a calendar, there is plenty of room to add your own spin on to the final product. For instance, zooming out from the current day to reveal the current week, then jumping again to reveal the current month. Then having a nice swiping motion to display the next month, and so on. You could really let your imagination run wild with the user experience here.
There is plenty of inspiration out there. You could utilize a particular design that catches your eye and model your own calendar on that, or you could start from the ground-up and see what you can come up with using your imagination alone.
Building a simple ticking clock shouldn’t be too time-consuming, and along the way you’ll likely pick up some essential skills — especially if you’re not as familiar with this kind of task to begin with.
You’ll likely want to use the function `setInterval` to form the basis of your clock’s ticking motion, and working with timing functions such as this one is an important aspect to get to grips with.
There can be some complexity when dealing with timing functions such as this one (and it’s sister function – `setTimeout`) – you may wrestle with some of these intricacies during this task, and that’s a great way to learn!
Why not first build out a digital clock, and then an analogue one? The approaches required for each are quite different.
It’s a good opportunity to show off your design skills
A random word is selected and obscured from view, the player must select letters to see if they exist within this random word. If the letter exists in the word; the letter is revealed and the player moves a step closer to revealing the word and hence winning the game. If not, the player moves a step closer to losing the game.
This is a fun little project for beginners, and there are a few important reasons why I’d consider this challenge a worthwhile one to pursue:
Working with strings is a cornerstone of development
This is a good exercise to tackle because it introduces the developer to working with strings in a bit more depth. The foundation of the game itself is based on strings and searching for the existence of characters in strings.
The developer must manage the state of play
Alongside that, there is a requirement to count and measure what is going on within the game. So it becomes clear with each passing turn whether the game should end or whether it should continue, for example.
You’ll also need to accept and react to user input, and wrap all of this up in a nice, neat little package that is fun to use and looks pleasing to the player.
So there are a few things to juggle there, for beginners I’d definitely consider making a hangman game (or similar) a really interesting challenge and a great way to learn and pick up new skills.
If you’re wondering what a timeline actually is in this context, I’m referring to this kind of thing, from CodyHouse.
The developer must think about encapsulation and a clean entry point to using the feature
So it must be straightforward to invoke, configure and position the timeline element within the page. This forces the developer to consider this from the outset.
Last but not least, the Monty Hall problem.
For those not familiar with this problem, it’s a counter-intuitive probability puzzle. In essence, it works like this (quoted directly from the Monty Hall problem wiki):
Suppose you’re on a game show, and you’re given the choice of three doors: Behind one door is a car; behind the others, goats. You pick a door, say No. 1, and the host, who knows what’s behind the doors, opens another door, say No. 3, which has a goat. He then says to you, “Do you want to pick door No. 2?” Is it to your advantage to switch your choice?
I’d recommend building out the Monty Hall problem yourself purely to verify the (counter-intuitive) results for yourself!
If you’re unfamiliar with any of these features or exercises, or you’ve never thought of making your own version of each — I’m sure you’ll have a great time with them. Hopefully you’ll pick up some new skills along the way, too!