views:

300

answers:

7

Being a relatively new developer I was curious how professionals update their skills or just learn new things with technologies they already know.

I personally so far have found that I can only learn something either from work, personal projects, or searching online something that randomly pops into my head. I've tried books, but it didn't work for me so well. And for those video tutorials some of them are good.

Any way to do something for learning sake and not pass out from boredom? Thanks...

+1  A: 

If you are curious you can just browse repositories of public projects (i.e. sourceforge) until you come across something you like. When you do, download it and work through it. If you find that you really like it, contact the developers and become part of the team.

ezpz
+1  A: 

Ultimately you learn by doing but I find that this site is a great place for inspiration. Several questions and discussions here have led me to some interesting discoveries. I'd advise you browse some of the hot questions for some ideas. There's some pretty cool stuff in there.

Spencer Ruport
+5  A: 

Get addicted to Stack Overflow - Answer questions, get some rep (or laughed at & criticized - it still helps), discover new and existing technologies with funny names and what they are being used for. Mainly, get an insight into what technologies are being used, who is using them and the types of problems they run into, and walls they are hitting, in trying to get things done.

karim79
...and go to StackOverflow Dev Days! :)
Scott Whitlock
...and for the love of god, don't go near the 'hyphenated site'.
karim79
+1  A: 

Most of the new things I have learned have come through looking at other people's code, usually when modifying existing systems. You see some new way of doing something, evaluate it and add it to your arsenal! At the same time I've also learned a lot about what I don't like, and what to avoid.

Looking at other people's code stimulates learning because it encourages you to read up on the things that you find, and to experiment with them.

Lately I've also been listening to Herding Code, which has introduced me to a lot of new products and technologies and encouraged me to do more research.

And of course, Stack Overflow is a great place to hang out!

Billious
+1  A: 

Don't also forget to read tech-related news sites and blogs. (And for that matter, include the blogs of the platforms or tools you use, too.) You will at least have a grasp of the latest developments in the world of software development. Example: new releases of Visual Studio, the latest JavaOne conferenece, release schedules for the Linux kernel and the various *BSDs, inforamtion on the latest security fixes for Wordpress.

Just to give you a hint: some of the sites on my reading list are osnews.com, DDJ (Dr. Dobbs' Journal), Lambda the Ultimate blog, and both the Drupal and Wordpress blogs. These are just a sampling of what's on my newsreader (I user Google Reader, btw).

Paolo B.
+1  A: 

A few things I find that have helped me over the years.

1) Every 6 months or so, try and learn a new language or, if you're fluent in a language try and learn the roots of the language (C begot C++ with Smalltalk assistance begot Java begot ...). If there's a trend in language preference (ruby appears to be the language du jour), read everything you can online about it.

2) When you decide you want to learn something, find people that are respected in the language/field and read their blogs, follow their links and their references and start piecing the pieces together.

3) Find what you want to learn on StackOverflow or similar sites, look at the questions, and do the research for the answers. It will open up other avenues and help you find nuances of the language/technology you might now of known about and likely won't be covered in any books.

4) If you're REALLY brave, pick a topic/area of what you're trying to learn and schedule a presentation with you as the presenter about the particular technology. The deadline will force you to be diligent in your pursuit.

Hope this helps.

andymeadows
+2  A: 

1) Take a course. From a one day seminar to a targeted 5 day class to credited 3 month course at a local college. Just make sure it's something that's away from the office and distractions. Your company might (should) have a policy to pay for these.

2) Attend a conference. Take the time to attend a formal conference in your field. Make a point of going to the "birds of a feather" sessions and take the opportunity to socialize. Strike up a conversation with the guys at your breakfast table, compare notes on things you're working on, get a bunch of people together for a meal, some drinks and lots of conversation. Where else are you going to get that kind of concentration of geeks in one place?

3) Attend a local user group. Depending on where you are, you might have a couple of different choices. Unlike the other two options, this probably won't cost you anything other than your time.

All of these serve to get you away from the office and expose you to new ideas and people. I often run in to solutions for problems that I had never thought of and almost always learn things that I didn't know that I didn't know.

Bruce McGee