10 Projects to Get You to Your First Dev Job in 2020
But never fear! In this post, I’d like to offer you a little guidance by outlining ten skills that will help you land your first dev job in 2020. For each skill, I’ll suggest a hands-on side project idea to get you started and point you to appropriate resources in the SitePoint library for further reading.
Let’s dive in.
1. Get to Know Your Code Editor
As a coder, you’re going to be spending a lot of time in your editor of choice. That’s why you should make the effort to learn what it can do and how to configure it properly. The subject of which editor to use can quickly become controversial, but if you’re just starting out, I would encourage you to check out VS Code (or VSCodium if you care about privacy).
VS Code ships with a lot of cool features, such as Emmet abbreviations, intellisense, various keyboard shortcuts and Git integration. There are also hundreds (if not thousands) of extensions that you can install to customize your workflow.
By way of a reference, I would recommend Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers. This up-to-date guide covers all of the essential VS Code components, including the editing features of the workspace, advanced functionality such as code refactoring and key binding, and integration with Grunt, Gulp, npm, and other external tools. Chapter Two, which introduces you to the user interface, and Chapter Nine, on working with extensions, should be of particular interest.
2. Build a Contact Form
If you’re building a web application, it’s only a matter of time until you encounter HTML forms. They’re a big part of the web experience, and they can be complicated. For example, you need to make them accessible, and you need to make sure they render well on different browsers and smaller screens. It can also be a challenge to style them consistently without breaking their usability.
Forms are a critical part of a visitor’s journey on your site. Even if your visitor is sold on what you have to offer, a broken or even a badly laid out form could be enough for them to abandon ship. That means you lose the conversion.
Build and style a contact form. Concentrate on the alignment of the form fields, a prominent CTA, and make sure the form previews well across browsers and devices. Try to include various form controls, such as
<select> elements and check boxes, while keeping the layout simple and elegant.
Form Design Patterns offers ten recipes for different kinds of forms — registration forms, booking forms, login forms and more. Learn from the pros and find out how to make your forms both engaging and accessible to all. If you’re looking for a quick start with this project, I recommend reading the first part of the first chapter, which covers things such as labels, placeholders, styling and input types.
3. Become Acquainted with Client-side Validation
On the front end it’s used for a wide variety of tasks, such as making interactive elements for web pages (sliders, maps, charts, menus, chat widgets, etc.) and generally enhancing the user experience. One rather nice feature of the language is that it can manipulate the DOM, to offer users instant feedback on an action without needing to reload the page. This makes web pages feel snappier and more responsive.
In this project, you should take the contact form you built in step two and augment it with client-side validation.
Using the correct input types will get you a lot of the way there, but also try to add some custom validation. You should display error messages in an intuitive way and avoid using alert boxes. And if all that sounds a bit too easy, why not add a field which asks a question to ensure that the user isn’t a bot.
4. Make a Currency Converter Using the Fixer API
Make an app that allows users to convert one currency to another. Users should enter an amount, select the actual currency, select the desired currency and then the app should fetch the exchange rate from the Fixer API. The user interface should be updated dynamically without any kind of page refresh.
5. Design Your Own Portfolio Website
In your career as a web developer, you’ll likely find yourself working alongside a designer on the same project. And while design and development can be considered separate disciplines, having a firm grasp of the design process will ease that relationship and stand you in good stead with your colleagues.
Or perhaps you want to go it alone as a freelancer, taking projects from design to deployment. In this case, a generic-looking website won’t cut it. You’ll need to offer the client an eye-catching but also highly functional design that helps them achieve their business goals.
Design your own portfolio website — your place on the internet to present yourself and showcase your skills. Spend some time researching what makes a good portfolio design, then mock up a design of your own either with pencil and paper, or using a wireframing tool of your choice.
Design-wise, pay attention to the layout, the colors you’ll use, and the typography. Content-wise, consider which pages you’ll need (hint: you could include a contact form) and how to present both yourself and your work. There are lots of sites around the Internet that will give you tips on what to include.
Ok, I get it. Design is hard. But it doesn’t need to be …
The Principles of Beautiful Web Design is a fantastic book if you’re struggling with the design process. It will walk you through an example design, from concept to completion, teaching you a host of practical skills along the way.
Start in Chapter One by reading about what makes good design and take it from there. Personally, I read the book from cover to cover in a week, but you could also dip into the other chapters and learn about layout, color, texture, typography, and imagery at your leisure.
6. Code Your Own Portfolio Website
If you’re writing CSS in 2020, you should be aware of all of these modern techniques and when to use them — especially Flexbox and CSS Grid for creating layouts. You should also have a grasp of modern CSS tooling (such as Houdini), pre-processors and the abundance frameworks that we have at our disposal.
In the previous project, you designed your portfolio website. Now it’s time to get your hands dirty and code it. Use modern CSS to lay out the site and take time to research some of the more recently introduced measurement units, such as
vh. These will come in very handy if, for example, you want to include a fullscreen splash image.
Also, include the contact form that you created previously and use CSS to add a couple of minimal animations. For example, you could animate the Send button when the user hovers over or clicks it.
CSS Master, 2nd Edition shows you how to write better, more efficient CSS, and to take advantage of the plethora of the new cutting-edge CSS features available to the front-end developer. You’ll also learn to master tools that will improve your workflow.
Pay particular attention to Chapter Five that will help you create complex layouts using the recently introduced
7. Performance Matters! Audit Your Site With Lighthouse
Nowadays there’s little excuse for a sluggish website. People are impatient. No one wants to wait 15 seconds for your high-definition images to load. Your users just want to get straight to your content.
And even if things seem OK for you, don’t forget how the other half lives. Not everyone has a high-end MacBook pro with a 100Gbit Ethernet connection. Many of your visitors will browse your site on a smartphone, possibly on a flaky 3G network. It’s your job as the web developer to provide all of your visitors with the best possible experience their technology will allow.
Google Chrome ships with a fantastic tool called Lighthouse, which runs audits against a page for performance, accessibility, best practices and SEO. It will offer you a variety of tips on how to address any issues it finds.
You should run this tool against your newly created portfolio site and do your best to make sure that each category is in the green. Lighthouse will allow you to generate reports for both the mobile and desktop versions of your site. You should check both of these.
If you haven’t created a portfolio site, run it against a different site that you own.
The practical, short book Jump Start Web Performance provides advice, tips, and best practice for improving the performance and responsiveness of your site. These range from quick, five-minute configuration changes to major website overhauls. It goes into some detail on running audits with Lighthouse, as well as the Chrome DevTools in general. Later chapters of the book will be useful for addressing any problems that the audits highlight.
8. Get to Know Your Terminal
As web developers, the command line is becoming an ever more important part of our workflow. We use it to install packages from npm, to test API endpoints, to push commits to GitHub, and lots more besides. If you can demonstrate familiarity with the command line to a prospective employer, that will doubtless boost your chances.
Another advantage of being able to use the terminal is that it opens the door to scripting. This will allow you to automate various mundane tasks (such as file manipulation, or deploying a site), which, in the long run, could prove to be a real time-saver.
Install and familiarize yourself with the Bash shell. This will come as standard on macOS and a lot of Linux distros. On Windows, you’ll need to enable something called Windows subsystem for Linux, which you can read about here.
Commit to using Bash for a whole week and use it to perform any tasks you can. These could include navigating your file system, working with files, editing files, reading logs, launching services, or installing programs. You should also investigate aliases, which are shortcuts for commonly used commands.
Tip: if you already feel comfy with Bash, you might like to try out Zsh as an alternative. I go into that here.
If leaving the comfort of your GUI has you feeling out of sorts, have a look at the Bash Quick Start Guide. This book will give you a thorough introduction to Bash, familiarize you with its command structure and quickly get you up to speed with some essential commands.
For the brave of heart, later chapters of the book introduce you to shell scripting and demonstrate how even simple programming constructs in the shell can speed up and automate any kind of daily command-line work.
9. Put Your Projects Under Version Control
Now that we have some terminal knowledge under our belts, it’s time to look at Git — version control software used for tracking changes in source code during development. Thanks to its branching feature, Git makes it easy for multiple people to collaborate on a project. It also makes it a doddle for you to roll your code back to a previous state if you realize you’ve unwittingly introduced a bug.
Practically any position you apply for will expect you to know version control. Now’s a good time to acquire that knowledge.
Install Git on your machine and familiarize yourself with its basic commands. Put the currency converter app that you created in project four under version control, then create a GitHub account and upload it for the world to see (from the command line, of course).
For those that are unfamiliar with GitHub, it’s a web-based platform where developers can store their projects and interact with other like-minded developers. When you come to apply for jobs, it will be advantageous to have a GitHub account you can point potential employers towards.
Aimed at beginner-level developers with little or no Git experience, Jump Start Git will walk you through getting set up, as well as the basic commands and steps that comprise a successful Git workflow.
Be sure to check out Chapter Two, which covers remote repositories and how to push your code to GitHub.
10. Build Your First Node App
We’re going to take a slightly different tack with this one, as I’d like to point you towards my tutorial “Build a Simple Beginner App with Node, Bootstrap and MongoDB”.
Starting from the ground up, I demonstrate how to build a no-frills web app using Node.js, but instead of focusing on the end result, I focus on a range of things you’re likely to encounter when building a real-world app. These include routing, templating, dealing with forms, interacting with a database and even basic authentication.
For this project you should follow along with my tutorial, adapting the end result to suit your needs. You should also keep your code under version control and push it to your GitHub profile.
Not so much reading, as a resource: the SitePoint forums. This is a potentially tricky project to tackle, so if you get stuck, please feel free to drop by and ask for help.
So there you have it — ten skills that will help you land your first dev job in 2020. While not exhaustive, I hope this post goes some way to help you orient yourself in the ever-changing world of web development and gives you some idea of what to learn next.
And don’t forget, reading tutorials is great, but there’s no substitution for actually building stuff. Your next employer will be more impressed by an active GitHub account than a list of what you’ve read.