With our fast-paced ecosystem we tend to spend our time trying the latest inventions and arguing about them on the internet. I’m not saying we shouldn’t do that, but probably we should slow down a bit and take a look at things that don’t change much: they could greatly improve quality and value of our work, and understanding of those new tools.
This post is a mix of my experience and my wishes for the New Year. I want to hear your suggestions as much as I want to share mine.
Learn how to write readable code
Most of our work isn’t in writing new code but modifying existing code. That means you read code much more often then write it, so you need to optimize you code for the next programmer, not for the interpreter.
I recommend reading these three amazing
- 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).
Pennisi —understand TC-39process for new ECMAScript features.
Learn functional programming
- Professor Frisby‘s Mostly adequate guide to functional programming ebook and his free course.
Learn design basics
As frontend developers we’re closer to users than anybody else in 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.
- Design for Non-Designers talk by Tracy Osborn.
- Design of Web Applications book by Nathan Barry.
- On Web Typography book 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
We rarely work in isolation: we have to talk to other developers, designers, managers and sometimes even users. That’s hard but it’s very important if you want to really understand what you’re doing and why, because that's where the value in what we do lies.
- Soft Skills: The software developer’s life manual by John Sonmez.
- The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin.
- Start with No: The Negotiating Tools that the Pros Don't Want You to Know by Jim Camp.
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-frontend developers built up over many decades. And here I want your recommendations the most.
- Learn To Think Like A Computer Scientist course at Coursera.
- The five programming books that meant most to me by David Heinemeier Hansson.
What would you recommend? What are you going to learn in 2017?