Here are more ways to build and supplement your programming knowledge.
stackoverflow.com is a free programming question and answer site. Search the existing database or ask and answer questions to build reputation points. Lots of talented developers commit their brainpower to making the stackoverflow community great, so it’s worth checking out.
Always have a personal project that you enjoy working on, and make sure to write code every day, even when your job doesn’t require it. If you don’t like programming enough to do it outside of work, you may want to reconsider if software development is right for you.
Open source projects
Contributing to open source projects helps you demonstrate your abilities to prospective employers because it makes your work easily accessible. It also shows that you’re self-motivated and committed to your own education. SourceForge.net is currently the largest open source development Web site, while CodePlex is hosted by Microsoft, and freshmeat.net indexes Unix and cross-platform software.
Read developer blogs to see what others in the industry are up to. NOOP.NL maintains a list of the top 200 blogs for developers. That should keep you busy for a while.
Developers on Twitter
What goes on in the minds of other programmers? What are their daily routines like, and what do they choose to share with the world? Much like the list of top blogs, NOOP.NL maintains a list of top developers to follow on Twitter.
Your own blog
Writing your own technical blog can make you a better developer and help you earn the respect of your peers. Why? Because making a good programming blog is hard. In order to write authoritatively on any subject, you should know that subject inside and out. Just coming up with blogging topics can be a challenge. If you’re having trouble, read the advice of other technical bloggers.
Tweet about programming
Rather than just read about other people’s lives, open a Twitter account and try to write something programming-related every day. It will force you to read the news and think about what’s interesting. If you don’t want to bore your followers, that is.
Programming contests help you hone your skills by pitting yourself against other developers. It’s fun to win, but just participating can help you gauge and improve your abilities. Check out Google Directory for all kinds of challenges. TopCoder is one place where the competitions are going on all the time.
User group meetings are a good place to go for networking. They can also be an opportunity to practice your public speaking skills. Teaching others is one of the most effective ways to learn.
Magazines and journals
Magazines like MSDN Magazine and Visual Studio Magazine release monthly issues available in “dead tree format” and online. You may be able to get subscriptions for free if you’re an industry professional.
Although this is a controversial topic, I do see at least some value in studying for and taking certification exams. Doing so helps you round out your knowledge, and if nothing else it gives structure to your learning and a goal to accomplish.
Whatever you do, don’t delude yourself into thinking that certifications are all you need. At best they are a supplement to the coding and reading you should already be doing.
Social news sites
“Social” news sites are news sites with a reader-participation element, such as voting on articles. Digg, Reddit, and Slashdot fall into this category. While some of the material appearing on these sites is legitimate tech news, there is often a lot of noise to filter through. It’s up to you whether it’s worth it.
And finally, the #1 most important resource for developers
When in doubt, Google. The search engine is such an essential tool that we often take it for granted. There’s even a site, “let me google that for you“, that pokes fun at those who refuse to perform their own searches. Don’t underestimate the value of good search skills. Nobody knows everything, but finding new information efficiently is fundamental to job performance. Take a look at Google’s search tips if you haven’t already.