This article summarises part of a presentation I gave in 2017, to share ideas on learning, after twenty years as a professional software developer.
Like all knowledge workers, how effectively you can continue learning, and for how long, will influence your success as a coder. An important lesson for me, which I had to unlearn from formal education, lay in the value of learning from many sources. Not everyone has access to every learning venue, so the more available options, the better.
I already wrote about why you should read technical books and talk about technical books, and I will not write about classroom training courses. This article continues the list with venues for talking about programming.
Conference and meet-up presentations take more time than reading, but with more interaction. Sometimes you get even free drinks and snacks. However, those practicalities hide presentations’ real value.
Presentations introduce you to people you can talk to, and give you a conversation starter. Most importantly, you get to have these conversations with new people, with varied backgrounds and different perspectives. Presenters may even explicitly invite this discussion at the end of their talks. They want to talk to people about their work.
These learning opportunities emerge at the first event you attend, and then accumulate as you attend more events and meet the same attendees, presenters and organisers. Build a network, and learn from these people.
Ask Stack Overflow questions
Stack Overflow gamified learning for programmers and owes some of its success to its designed satisfying experience. While Stack Overflow has its flaws, it also has relatively transparent and learnable rules. Crucially, asking interesting questions tends to result in learning more than you expect, and Stack Overflow gives you rapid feedback on your questions’ quality.
If you can’t think of good questions to ask, read code and answer other people’s questions. You can also learn from discovering what makes a good answer, but on Stack Overflow, as in (professional) life, good questions earn more points.
Practise pair programming
While conferences and web sites give you breadth, nothing beats the depth you get from talking to the coders you work with. And while you might manage to discuss code at the coffee machine, nothing beats the intensity of pair programming. From that perspective, teams that don’t do pair programming seem weird because they so rarely talk about writing code or the code they write.
Pair programming does gives you a problem, though, because it gives you better code as well as a learning opportunity. It shouldn’t surprise you that doing ‘code review all the time’ improves the speed and quality of coding. This means that if you want to avoid it, for whatever reason, you will probably have to admit that you don’t do it because you don’t want to instead of blaming some negative outcome. Instead, you might try doing at least a little because it’s good for you.
Write better code
In the end, you won’t learn enough from reading books and talking to people. To return to the idea of learning from as many sources as possible, you also need to focus on your work’s actual output. You also need to write better code.