Skip to main content

Command Palette

Search for a command to run...

3 Non-obvious Skills for Programmers

Updated
4 min read
3 Non-obvious Skills for Programmers

In this video I'm sharing 3 skills that I believe are not appreciated enough among programmers and which can help a lot in becoming a better developer

  • good memory
  • attention to details
  • thinking a few steps ahead

Contact:
✉️ email - gregory@notonlycode.org
🐦 Twitter - @GregoryWitek

📚 Resources

Notes

Intro

  • good memory, attention to details, long-term vision
  • 3 things that helped me become a much better programmer
  • also curiosity, and writing, and... ok, let's stop at 3 today
  • now they also help me to become better manager

Good memory

  • I was told memory is not necessary anymore
  • memory has a rather bad reputation
  • it is related to memorizing, which we all had to do at school and what most of us hated
  • as a kid I was told that computers will let us find anything, so good memory is overrated
  • Google does not replace memory
  • you don't need to memorize all the standard library functions in PHP, remembering the ones you use regularly is enough
  • finding something online takes time
  • it's not a lot of time
  • but repeated many times might be a lot of time
  • sometimes there's no time to search
  • during meetings or other conversations
  • good memory helps besides coding
  • remembering names of people in your company (and how to pronounce them correctly)
  • it helps building relations
  • remembering past decisions and reasons behind them
  • you don't need to remember everything
  • remembering algorithms is absolutely useless except for interviewing at companies which rely on remembering algorithms
  • you can write stuff down (I take a lot of notes and try to go back to them in the future)
  • use git commit messages and documentation to write down notes about the code

Practice

  • practicing recall technique
  • make notes, review the notes, recall the notes
  • learning things that will be used
  • e.g. learn and practice a new spoken language
  • it's like a muscle, the more you practice, the easier it gets to remember new things

Attention to details

  • I think this is one of the things that separate average developers from good developers
  • good developers immediately notice things that others miss
  • the reason is that in programming even one character, one typo can break everything
  • of course there are tests etc, but attention to detail goes way beyond that
  • thinking of edge cases is attention to detail
  • good developers ask questions like "and what happens when ... ?"
  • paying attention to user experience before implementation helps in reducing the time to getting feature done

Thinking ahead

  • maybe the most important on the list
  • especially important for lead devs and up, but helpful on every level
  • often when I see some code that does not look good, I want to change it
  • but then I don't have time to do that at once
  • so what I do is imagine how this code would look like if I had more time
  • then I imagine how to get these
  • and then I implement first step and over time I get to the state that I'm happy with
  • this helps also with planning projects
  • also with strategy for future development
  • the questions to ask are
  • where do we want to be
  • how do we get there one step at a time
  • example: I want to move our front-end from Angular to React
  • we might use micro front-ends approach
  • we might rewrite it all at once
  • we might run both apps together and add a layer of communication between them
  • each of these will take weeks if not months
  • so we need to know what is our goal and define steps to get there
  • the same might apply on a lower level
  • I have 10 classes that look almost the same
  • today I'll extract common part and I'll move 2 out of 10 classes to use the common class
  • later I'll be moving remaining classes whenever I have a chance
D

Nice article. Thanks to remind that Google is not an alternative of human memory.

By the way, there is a typo in the section - i.e. bet should be but

Google does not replace memory you don't need to memorize all the standard library functions in PHP, remembering the ones you use regularly is enough finding something online takes time it's not a lot of time bet repeated many times might be a lot of time

Again, thanks for writting this article. :)

1
G

Thank you, you're right, it's a typo, I'm going to fix it

1
S

Congrats, Gregory Witek. Your article is getting traction on Hashnode. I hope it's converting into video views as well. :)

You can also tag your article with General Programming, it has many active followers on Hashnode.

1
G

Thank you, I've added the tag! By the way, is there some way to see common tags? Whenever I add them I start typing something and check autocomplete results, but it would be good to see what tags are used for different kinds of topics

1
S

We don't have it right now. We are working on a tags gallery and it should be live in a day or two. Gregory Witek

S

Gregory Witek do you plan on moving notonlycode.org to Hashnode? 😀

You get a hassle-free blogging experience + the community. You won't have to republish on Hashnode every time.

Let me know.

G

Syed Fazle Rahman I'm considering it, because Ghost that I'm currently using has some limitations IO'm not happy about. It's not something I'll do this year with a number of other things that I have planned, but certainly something I'm considering to do in a few minths. I'll let you kno!

More from this blog

N

Not Only Code

31 posts

Not Only Code is a combination of articles and videos that aim to help you become a better software developer

3 Non-obvious Skills for Programmers