The Art Of Programming
From Coding Horror, on the subject of “how to prepare for a career in software development”:
Fortunately, this is a battle you can fight on multiple fronts:
- If you’re a student, seek out internships like your life depends on it. Some of the best programmers I’ve ever met have been college interns. Intern somewhere that you can absorb and learn as much as possible. You won’t make much money, but the experience will be priceless.
- Participate in local user groups. User groups are an unbeatable resource for people just starting out in their careers; they’re an excellent source of advice and mentorship.
- Contribute to an open-source project. There are thousands, so pick whatever strikes your fancy. But pick one and really dig in, become an active contributor. Absolutely nothing is more practical than working collaboratively with software developers all over the globe, from all walks of life.
- Publish articles. The cleverest code in the world won’t help you if you can’t clearly communicate how that code works, or what it’s for. Try your hand at writing. CodeProject is an excellent sandbox to practice in. Publish an article and the large, active CodeProject community will let you know how you’re doing with ratings and comments.
- Start a blog. Pick a writing schedule and stick with it; I recommend once a week at minimum. Select a general theme for your blog and write on topics related (at least tangentially) to that theme. And don’t be an echo chamber.
You don’t have to do all these things, but if you’re serious about your career, pick at least two and follow through. For more detailed advice, I highly recommend Rob’s advice on how to become a programmer.
These are all good tips. Off the top of my head, the best tip I’ve got is to treat everything you learn as something you’ll need to teach someone else. Knowing that you may be called upon to teach something is a powerful motivator for getting your mind to think critically. This leads to a second point: if you want to get started learning about something, volunteer to present a talk on it (at work, at the user group etc). This tends to have the same effect of really forcing you to understand the topic.
Comments(1)
Very good suggestions and I have to put emphasis on “seek out internships like your life depends on it”. I had the opportunity to be in a uni program where I would study a semester and do a work term for the next, then study and do a work term again. It changed me as a student. I used to be quite unfocused and I would go to class because I _had to_. After the work terms, my vision changed completely. I had a chance to apply the things I learned in a real world environment so that motivated me to learn more. I also had the chance to compare myself to proficient people in the field and that made me realize how little I knew and how much more I had to learn. Finally, the work terms made me realize that what I was learning was useful and applicable so I was going to class focused.