In our fast-paced ecosystem, we tend to spend our time trying out the latest inventions, then arguing about them on the internet.
I’m not saying we shouldn’t do that. But we should probably slow down a bit and take a look at the things that don’t change all that much. Not only will this improve the quality of our work and the value we deliver — it will actually help us learn these new tools faster.
This post is a mix of my experience and my wishes for the New Year. And I want to hear your suggestions in the comments just as much as I want to share my own.
Learn how to write readable code
Most of our work lies not in writing new code, but maintaining existing code. That means you end up reading code much more often then writing it, so you need to optimize your code for the next programmer, not for the interpreter.
I recommend reading these three amazing books — in this order, from shortest to longest:
- The Art of Readable Code by Dustin Boswell
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Code Complete: A Practical Handbook of Software Construction by Steve McConnell
- Henrique Alves has a list of things you should know before using React (actually any framework).
Learn functional programming
- Professor Frisby’s Mostly adequate guide to functional programming ebook and his free course.
Learn design basics
As front-end developers, we’re closer to users than anybody else on the team — maybe even closer than designers. And if designers have to verify every pixel you put on screen, you’re doing something wrong.
- Design for Hackers: a book and a free course by David Kadavy.
- Design for Non-Designers talk by Tracy Osborn.
- Design of Web Applications by Nathan Barry.
- On Web Typography by Jason Santa Maria.
- The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper.
- A few articles on animation in UI: How to Use Animation to Improve UX, Transitional Interfaces.
Learn how to work with humans
Some of us come to programming because we prefer to interact with computers more than with humans. Unfortunately, that’s not how it works.
We rarely work in isolation: we have to talk to other developers, designers, managers — and sometimes even users. That’s hard. But it’s important if you want to really understand what you’re doing and why, because that’s where the value in what we do lies.
Learn how to write for humans
A big portion of communication with our colleagues and other people are textual: task descriptions and comments, code comments, Git commits, chat messages, emails, tweets, blog posts, etc.
Imagine how much time people spend reading and understanding all that. If you can reduce this time by writing more clearly and concisely, the world will be a better place to work.
- On Writing Well: The Classic Guide to Writing Nonfiction by William Zinsser.
- The Elements of Style by William Strunk and E. B. White.
- Orwell’s rules on writing.
- In Russian: awesome Glavred course.
Learn the old computer science wisdom
This, however, means that it’s time to learn from all wisdom that non-front-end developers have built up over the decades. And this is where I want to hear your recommendations the most.
Here are a couple resources I personally would recommend on this:
- Learn To Think Like A Computer Scientist course at Coursera.
- The five programming books that meant most to me by DHH
Subscribe to my newsletter: https://tinyletter.com/sapegin
Thanks to Henrique Alves, Nicolás Bevacqua, Alexander Burtsev, Nataliya Karatkova, Oliver Turner, Juho Vepsäläinen and Anton Zhiyanov for feedback and suggestions. If you like photos in this post, download them from my Unsplash account. And follow me on Twitter if you like this article.