5 things to learn early in your developer career

Milan
Le Wagon
Published in
6 min readMay 9, 2020

This article is mostly addressed to web developers and aspiring ones, more specifically to full-stack and front-end devs.

If you are on your first job or if you just finished school (or some other form of training such as a bootcamp) and you’re looking for one, those are in my opinion the topics you should dedicate your learning time on. I tried to gather all the things that will both help you to be good at what you’re doing, but also what recruiters and teams are often looking for in developers today.

Photo by Lee Campbell from Pexels

git

git loves Murphy’s law: “Anything that can go wrong will go wrong”. Learning git early on will save you many moments of despair. You need to go past the very basic commands such as pull, push, commit and checkout. Learn how to write a proper commit, how to edit it, how to add a description when needed, how to rewrite your history, how to properly use the stash and most importantly, how to undo changes. The git documentation isn’t always easy to understand as a beginner; this GitHub blog post offers a great summary of how to undo things.

If you have been doing so, avoid using GitHub Desktop or such apps to write your commits. Unless you want to use it to have a nice display of all your diffs, it gives an impression that you’re uncomfortable with the terminal.

It is quite common to have git questions in job interviews. When you’re interviewing with the CTO or with senior developers of a team, being able to show that you’re comfortable with git is greatly appreciated. It proves that you will be less inclined to open pull requests with a terrible commits history. And most importantly, that they won’t have to help you undo the mess on your machine when you made unwanted changes, or worst, when you lost some desired code.

How to write tests

Some programmers like to go as far as saying that whatever piece of code is not tested doesn’t work. At least, try to learn how to write unit tests. But if you have more time, you can start to play around with integration tests and end-to-end tests.

Again, this is not only useful to improve the quality of your code, it’s also a key point teams are looking for when hiring a new dev. On one side it shows that you will make sure your code is reliable, and on another, companies sometimes look for people who will help them increase their code coverage.

It’s even nicer if you learn TDD (Test Driven Development) and form the habit of using it. Making this practice part of your workflow is much easier if you do so early on. And this too will make you a better developer.

To keep things simple, I would recommend using Jest, you can find plenty of tutorials online, and even the documentation might be enough.

A code coverage of 20%. Photo by Zichuan Han from Pexels

Solidify your knowledge of the web’s holy trinity

You will read this time and time again, so it might get boring. But I’d be lying if I told you that a shallow understanding of HTML, CSS and JS is fine to begin with. Here I give you what I believe you need to know for each one of them:

HTML5

It’s pretty straightforward and won’t take you too long for this one: learn the semantics and the basics of accessibility. Essentially, when to use an element or another, and what attribute(s) you need to put on each one.

CSS

The most important thing to learn here (in my opinion) is positioning. It takes time to get comfortable with it. You may have your preferred way of doing things (flexbox for example) but it’s good to know about the other techniques. Find out about the way it used to be done before we had Bootstrap, flexbox, CSS grid and all the cool stuff that make it easier. It’s always good to know where the current technologies come from and it will give you the ability to understand and maintain legacy code.

JavaScript

Learn both ES6 and ES5. Plenty of code is still written in ES5, you need to be able to read it. And again, it’s useful to know what was there before all the nice things ES6 brought.

As for any other programming language, you need to build strong mental models. The earlier you start to form them, the better. I share a couple of great resources for this purpose in the “Learn JavaScript” section of this article.

Learn the basics of DOM manipulation. Anything you’re used to do with jQuery, you can do with simple vanilla JS. The JavaScript 30 course by Wes Bos is great to practice that (among other things it teaches you).

Bonus: learn functional programming. For this one, there is no rush, but it will make your code easier to understand and therefore to debug. This paradigm has gained a lot of popularity in recent years, and for good reasons in my opinion. Not only are experienced JS developers increasingly favoring it over Object Oriented programming (⚠️ this isn’t the case for all languages), but so do frameworks. React just to name one, has taken a more functional direction in its last major updates by offering the possibility to do without classes entirely.

How the internet works

If you are self taught or only went through some short training like a bootcamp, your knowledge of how the internet works is often a little superficial. This is normal, there are many things to learn and you can’t dig deep on every subject.

What I mean here is not studying about the internet’s infrastructure and everything hardware related, but to have a clear idea of how things work from a web developer’s perspective. We’re talking about the way requests work, their different methods, the various HTTP codes, CORS, etc. This video by LearnCode.academy gives you a great overview of what you need to know in a minimal time. You may notice that some parts of the second video (server side) are a little obsolete, but the explanations are great overall. Please leave a comment if you know good resources on this matter.

Photo by Josh Sorenson from Pexels

Debugging techniques

You will be able to debug things faster and faster as you gain experience, but taking a shortcut is always nice. Learning a few debugging techniques for each one of the technologies you’re using is no waste of time.

The number one universal thing to learn is to read error messages. It seems quite tedious at first, but over time, you will know where to glance at to get the info you need. And when you don’t, well, just read all of it. You have to get into the habits of reading those, that’s all . There isn’t so much to actually “learn” here. It still happens to all developers to skip reading the error, having an intuition of what the problem is, and then spend way too long trying to fix it unsuccessfully, until you actually read the thing and figure you were on the wrong path.

For JavaScript, use console.log and eventually other methods of the console object such as table, warn and error to get clear logs if you have severals or long ones. Name your console.log calls whenever you have more than one.

How a console.table is displayed in the Chrome console

When you need to log many variables in one block of code, use the debugger keyword.

Learn to properly inspect HTML and CSS; forcing state on an HTML element or using the Computed tab of the CSS box in your inspector for example.

You should be familiar with most of the tabs of the browser’s inspector: Elements, Console, Sources, Network and Application. Once you are, you will have pretty much all the tools you need to track down and fix a bug in your web app.

Conclusion

This list is not exhaustive, but from my experience, focusing on these topics early on will make your path through web development much smoother. The idea is to start by acquiring the tools that will make you employable and efficient early on, and those that will make other things easier to learn afterwards. Good luck!

--

--