I’ve been doing web development for more years than I would admit.
Good projects, terrible projects, amazing projects, some I still remember, some I completely forgot about, I did them all.
One in particular, a work I commissioned myself really, is the website I made in 2014 to make my skill set a bit more attractive and get a job abroad. What a pivotal moment in my life that was.
It took around 3 weeks to be completed, 2 days to do the bulk, the rest to refine it.
What I didn’t expect was this enormous amount of positive feedback I received, and still receive, for this work.
That’s how it was in april 2014: https://v1.albinotonnina.com
It must have been perhaps some novelty element in it (I like to call it a scrollytelly website), or the fact that I made it open source on GitHub from the beginning. It did get attention.
One or two months later I updated it with the news about my job search: https://v2.albinotonnina.com
Imagine my joy, landed in London, working for a prestigious tech company, everything was absolutely new and inspiring.
Time passed, the website did its part and that would have been it for me but people kept sending me these amazing messages!
I put together enough compliments to feed my ego for the decades to come but what made me really proud were those messages full of sentiment and soaked in inspired words, written by beginners, undergraduates, self taught folks who saw the website and had their passion for web development renewed and reinvigorated.
That is why my website is the most gratifying job I’ve ever made.
I decided not to let the website die and in 2017, with the benefit of a much improved skill set, I gave it a fresh coat of paint: https://v3.albinotonnina.com
And 3 years later, August 2020, days ago, another coat: https://www.albinotonnina.com, the current one
If you asked me in 2017: “Do you have much more to learn?” you would have heard a silly answer. I couldn’t even imagine.
In 2020 I’m wise enough to say that I will never end learning how to do this job.
Nonetheless I did put together this little list of lessons I learned during my career as a web developer, since I get asked that often.
- The best skill a developer can have is persistence. This job involves solving a gazillion little problems, all the time. Sometimes you solve a problem just to create more of them. Persistence.
- If you feel down and not good enough, remember that there are no heroes here, everyone is probably doing their part just as you do.
- You will be wrong about something so many times. It’s OK.
- People know that thing they know that you don’t know because they probably did that thing repeatedly. You will know a lot about that thing, as long as you really do that repeatedly.
- If it’s not coming out right, you could just start again. It’s amazing how much one can improve by starting to solve a problem from scratch once you know what you’re really dealing with. Sometimes you mess up and lose code and hours of work altogether. Consider the silver lining there. It really works for your personal improvement, it’s simple repetition.
- You cannot solve all the problems all together. Find your system, deal with the micro problems after you have dealt with the macro problems. It’s important to aim at organizing ourselves as much as possible to work in an orderly way.
- It’s never as hard as you think it is. Most of the time it’s just new jargon, it’s just a bit of darkness before the light. Persist.
- Don’t try to solve a problem at all costs. Sleep on it. Seriously, it works.
- Seniors are old juniors. The problems are the same, it’s the speed in solving them. A beginner dealing with a complex problem needs to read every sign on the sides of the road, an experienced developer did that trip a few times already. Simple muscle memory.
- Sometimes all you see in one day are error screens, error after error. Persistence.
- Don’t rush it. Review your work with a cold mind before you publish anything.
- Ask for early feedback, you reached a milestone in your current project? Show it and listen carefully at the feedback.
- When you get the feedback, accept and understand it. Feedbacks are precious material, it’s the lenses to look at your work that you cannot possess.
- Learn how to filter out info when you are briefed for a new piece of work. Unfiltered data is overwhelming for everyone. Don’t assume you’re getting briefed correctly, if you get lost most probably it’s not you. It’s bad info. Ask for clarification everytime you need it. It’s so worth it.
- Never criticize the code you’re about to work on unless you are very aware of the circumstances and the context that code has been written.
- I search on Google or Stack Overflow all the time. For 2 reasons: I don’t have a good memory and I want to check if someone came out with new and better solutions than the ones I already know.
- Eagerly learn your keyboard shortcuts. It also makes you look cooler. Really, it helps keep you focused while working.
- With time your project’s code should get simpler and simpler. If your code starts to look like the one you see in the movies, abort. And restart.
- Reached a little milestone? Accomplished a bit? You like what you see? Save it. SAVE IT. Save it and commit. I repeat, save it and commit.
- Commit all the time. Not sure I mentioned that already.
- The job of removing code while refactoring your work in progress should be one of the best moments of your working day.
- Get closer to the metal. Or at least tend to. The more you do, the more you understand the why of the surface layers. Go straight to mdn (for web), instead of stackoverflow. Dig deeper.
- Your first iteration is most probably poor. Add your tests now, then refactor your code.
- ’cause you do test your code, right? Test all the things. Want confidence in your code? Be good at writing your tests. There is no better other way.
- If your code stops working all of a sudden, nothing works, then it’s probably a very tiny change somewhere. Did you commit last time you liked it? Did you write your tests? Good, it’s now easy to see where that tiny little insidious bug is.
- Have a storyboard of some kind when you start something new. You won’t necessarily follow it but at least you won’t get lost easily. Very important when you work on multiple projects and need to switch context often.
- But try not to switch context often. If you have work coming from all sides make clear that you will be concentrating on one piece of work at a time.
- Working in parallel may be very unproductive. You wouldn’t feed your baby while trying tightrope walking.
- Never skip the documentation of a software. You’ll regret you didn’t check the docs first.
- If you solve a problem by mistake, counterintuitively it’s usually bad. You may have created more problems. Be sure about everything. Easy if you have written your tests!
- Don’t try to sneak in bad code in the projects you work on, it will always, always, come back to bite you in the behind.
Thank you for taking the time to read this. I’ll be seeing you in 3 years with a new version of this website :)