The single best resource a software developer can use

The single best resource a software developer can use

And why you should be doing it

For those of you with a short attention span, the best resource for software developers is other software developers.

In the rest of this article, let us try to explain just how much can other developers help you on your journey.

Learn from others

This one is easiest to understand - have a mentor that will help you learn. It doesn't have to be official, and it doesn't have to be one person. There is a bunch of "self-thought" programmers that really just used a lot of materials online that other people made (makes you think twice about the "self" part). Get books, courses, or just read blogs, every little bit helps. Talk to senior developers, ask them questions, if they are passionate about their profession, they will likely spend some time explaining the subject. The need to learn from others and to be able to ask questions was so great, that it gave us Stack Overflow - a place where you can ask and learn about any part of software development. It is virtually impossible to find a developer that hasn't had someone "older" to teach them.

Learn with others

When I first heard about pair programming, my belief was that it's just two persons doing a job for one. But I've grown since and learned a lot. Just the other day, I was tackling a very complex problem and had a peer sit with me and discuss implementation with her. Especially as she was a person that will continue maintaining that bit of code when I transfer to a new project. We sat down and discussed how to write something, tested it on the spot, and discussed possible upgrades. For two hours we helped each other understand the codebase and data organization better. No further knowledge transfer was needed. Added bonus was learning how someone else approaches the same problem, and we discussed the pros and cons of both approaches. Is that piece of code now better than it would've been if I was implementing it alone? Yes. Did we both learn something in the process? Yes. Pair programming is not the only way to learn about something together. We have something we call "algo club" where we find interesting problems to solve (like problems from the advent of code, or leetcode, or whatever site you fancy). We decide on two problems each week and get together for one hour to discuss approaches and solutions. What is important is not to take it as a competition, but a chance to learn from each other.

Help others learn

Finally, you can not claim that you truly understand something if you can't explain it to someone who needs to learn it. Write a blog on a subject, make a video, organize a lecture about some programming principles in your company. Having to explain things to others will help you sit down and think about how to best explain them. It will help you to look at what you know and try to categorize and transfer it to others. Writing about something has always helped me remember it better and explaining things to others, especially if they are interested and have questions, often helps me think about subjects in a different way. You never know, maybe someone you are training today comes up with something new that you can learn a couple of years down the line.

Do you have any thoughts on the matter? Let me know in the comments.