Most software developers would agree, I think, that Jeff Atwood, one of the co-founders of the Stack Exchange network, is a pretty sharp guy. The popularity of his blog, Coding Horror, also attests to the fact that people value his opinions on programming. Recently, Atwood took a break from his new venture, Discourse, an open source forum platform, to participate in a Reddit AMA in which he shared some opinions and advice for developers.
The session generated a couple of hundred questions and a lot of what Atwood wrote about were things that he has discussed in more depth on his blog. Per usual, he provided some good food-for-thought for developers at all different stages in their careers. Here were a few good take-aways:
Learn by doing
In response to one question about the value of a computer science degree, Atwood wrote that he thinks learning-by-doing in a real world situation, like through a software apprenticeship, is a better alternative. “As for the education, it should include practical stuff like ‘build a real project using real source control’,” he wrote. That also applies to more seasoned programmers trying to decide what tools or technologies to learn for the future. “Build stuff. In the process of building something, if you need a new tool, learn it then,” he told one participant. “Don't do a lot of speculative learning because Y (probably) AGNI.”
Aim to be the dumbest person in the room
For new developers just out of school or just entering the job market, Atwood recommended finding a role working “with other people who are better than you.” In response to one newbie, he wrote “Get a job that challenges you with good people that are smarter than you. Endeavor to be the dumbest guy/gal in the room.”
Have a coding buddy
To AMA participant who asked how he keeps his code clean, Atwood mentioned his belief in having a coding buddy. As he explains further on his blog, he doesn’t mean a formal review process or pair programming; instead, he recommends taking some time to run your code by a peer in an informal way before committing. “Always have at least one other pair of eyes looking at it,” Atwood wrote on Reddit. “That's the only way. The buddy system!!”
For more good programming nuggets from Atwood, I recommend reading Atwood’s whole AMA session when you have a few minutes.