This year, I chatted with some of the greatest minds in software engineering. It typically happens at conference speaker and sponsor dinners where none of the regular attendees are allowed. Some of the people you follow on Twitter, got to relax and share opinions and war stories (IE6 anyone?).
These casual talks, and my personal observations over the years, led me to believe there are certain that there certain secret traits of highly effective and successful programmers. Now, do you want to be kick-ass programmer, ship tons of great products people love, and don’t kill yourself in the process from various stresses? If not, then skip this article and try to figure out the stuff on your own.
1. Share Your Code Publicly as Much as Possible
By sharing your code publicly, you are more accountable in front of the entire planet (at least the part who’s on GitHub) which makes your ship better code.
2. Use Command-line When Possible
Typically, command-line interface provides you with more features than any GUI. More over, if your favorite app is not supported anymore, then you’ll need to learn a new tool while with CLIs, the changes are not that often. Added bonus: you can work on the servers. One more bonus: your junior colleagues will think you’re a true hacker.
3. Read Books
Most people don’t read that many books. Programmers are not exception. A book is a great hack and an ethical cheat because it’s a distilled form of knowledge. I like books over videos because I can speed-read them faster and I’m not distracted by YouTube cat videos which run along side the tech videos I’m watching, silly animated characters in some Udemy courses or the delivery (voice, video quality, etc.).
Books rock. I read or listen to at least 1 book per week.
4. Keep Journal
Keep journal where you can document your wins as well as lessons learned. Event better, keep a coding journal where you save what worked and what didn’t for you. Save money on a therapist. A journal is much cheaper and healthier.
5. Over Communicate
Emails suck. IM suck even more. Emoji help but not much. Over communicate to make your point crystal clear to a 5th grader. Assume another person is distracted, under stress, sleep deprived. Speak in simple language. Create bullet points and emphasis on important things with bold text and TL;DRs.
Freaking call people on the phone or walk up to their desks if you’re in the same office, instead of emailing when you know this issue might take more than 1, maximum 2 emails. (Sometimes it’s possible to rephrase your email so that will take just a single response from another person instead of 7 emails of back and forth… don’t treat your email like an IM but at the same time you must keep them SHORT.)
6. Always Have an Agenda for Meetings
People often ping me on LinkedIn or via email to have coffee or a call. Total strangers. I almost always ask what is the agenda which sets the expectations and some goals whether it’s me recruiting them for Capital One, helping with their IT careers or conceiving a project together.
7. Learn Touch Typing
This must be obvious. We are only spending what? Like 70–90% of our work (and off work) day typing? My jaw still drops every time I see IT/tech peeps who don’t touch type at least on QWERTY. If you want to get ahead of others, learn Colemak. That’s what I use.
8. Use Best Tools
You must use the best tools. Period. Things like editors, IDEs, libraries, equipment (computers), tables+chairs, WiFi, etc. An ergonomic everything or you won’t be able to focus and work productively for long hours.
9. Avoid Distractions
Stop chasing every new shiny tool as means to avoid doing work. It’s better to be using some crappy editor or a slow WiFi yet still ship tons of code vs. having the greatest set up and nothing delivered.
10. Know Shortcuts
Each second adds up to hours over some period. You will be less tired and can do more when you use shortcuts for the most used operations such as copy/paste, create new, find, etc.
11. Turn Off Notifications
Every context switch fatigues you more while at the same time decreasing the quality of our code. It’s impossible to solve some abstract complex problems with out intense focus.
Okay, it’s more than 10 but who cares. :) I just like how 10 looks in the title. So what is your good secret (or not so secret) habit? Post a comment below or just order that mechanical keyboard you wanted to have for some time.
One thought on “10 Habits of Highly Effective Programmers”