“Professional development refers to skills and knowledge attained for both personal development and career advancement. ” I'm fortunate in that my personal and career interests are well aligned. I must enjoy my work because I do a lot of the same activities with a majority of my free time (just ask my wife!).
Keeping up with an industry’s current technologies and trends is a daunting task. Karl Seguin’s post Part of your job should be to learn got me thinking about the things I do to stay on top of my interests. I never really thought about it much before, but as I started making a list I was surprised by how fast it grew. When it reached a critical mass that I thought it would be worth sharing.
I actually have two professions. I'm a Biomedical Engineer (formal training) and a Software Engineer (self proclaimed). I primarily do software design and development, but being in the medical device industry also requires that I keep abreast of regulatory happenings (the FDA in particular, HIPAA, etc.), quality system issues, and industry standards (e.g. HL7).
Keeping track of Healthcare IT trends is also a big task. With the new emphasis by the federal government on EMR adoption, even a small company like mine has started planning and investing in the future demand for medical device integration.
The other major topic of interest to me is software design and development methodologies. A lot of the good work in this area seems to come from people that are involved in building enterprise class systems. I've discussed the ALT.NET community (here) and still think they are worth following.
So here’s my list. I talk about them with respect to my interests (mostly software technologies), but I think they are generally applicable to any profession.
1. Skunk Works
Getting permission from your manager to investigate new technologies that could potentially be used by your company is win-win. In particular, if you can parlay your new-found skills into a product that makes money (for the company, of course), then it’s WIN-WIN.
In case you've never heard this phrase: Skunk works.
2. Personal Projects
I always seem to be working with a new software development tool or trying to learn a new programming language. Even if you don't become an expert at them, I think hands-on exposure to other technologies and techniques is invaluable. It gives you new perspectives on the things that you are an expert in.
Besides getting involved in an open source project, people have many interesting hobby projects. See Do you have a hobby development project? for some examples.
3. Reading Blogs
I currently follow about 40 feeds on a variety of topics. I try to remove 2-3 feeds and replace them with new ones at least once a month. Here is my Google Reader trend for the last 30 days:
You can see I'm pretty consistent. That’s 1605 posts in 30 days, or about 53 posts per day. To some, this may seem like a lot. To others, I'm a wimp. During the week, I usually read them over lunch or in the evening.
4. Google Alerts
Google Alerts is a good way to keep track of topics and companies of interest. You get e-mail updates with news and blog entries that match any search term. For general search terms, use ‘once a day’ and for companies use ‘as-it-happens’.
5. Social Networks
I joined Twitter over a month ago. The 30 or so people I follow seem to have the same interests as I do. What’s more important is that they point me to topics and reference sites that I would not have discovered otherwise. I've dropped a few people that were overly verbose or had mostly inane (like “I'm going to walk the dog now.”) tweets.
I'm also a member of LinkedIn. Besides connecting with people you know, there are numerous groups you can join and track topical discussions. Unfortunately, there are quite a few recruiters on LinkedIn which somewhat diminishes the experience for me.
I don't have a Facebook account because my kids told me you have to be under 30 to join. Is that true? :)
6. Books
I browse the computer section of the bookstore on a regular basis. I even buy a technical book every now and then.
Downloading free Kindle e-books is another good source (and free, of course) e.g. here are a couple though Karl’s post: Foundations of Programming. There’s a lot of on-line technical reading material around. Having a variety on the Kindle allows me to read them whenever the mood strikes me. One caution though: the Amazon conversion from PDF and HTML to e-book format is usually not very good. This is particularly true for images and code. But still, it’s free — you get what you pay for.
7. Magazines
There are numerous technical print publications around, but they are becoming rare because of the ease of on-line alternatives. I used to get Dr. Dobbs journal but they no longer publish a print version, but it is still available electronically.
I miss that great feeling of cracking open a fresh nerd magazine. I still remember the pre-Internet days when I had stacks of BYTE laying around the house.
8. Webinars
These tend to be company sponsored, but the content about a product or service that you may not know a lot about is a good way to learn a new subject. You just have to filter out the sales pitch. You typically get an e-mail invitation for these directly from a vendor.
9. Local User Groups
I've talked about this before (at the end of the post). In addition to software SIGs, look into other groups as well. For me, IEEE has a number of interesting lectures in the area.
Face to face networking with like professionals is very important for career development (”It’s not what you know — it’s who you know” may be a cliche, but it’s true.). Go and participate as much as possible.
If there’s not a user group in your area that covers your interests, then start your own! For example: Starting a User Group, Entry #1 (first entry of 4).
10. Conferences and Seminars
Press your employer for travel and expenses, and go when you can. This is another win-win for both of you. Like Webinars, vendor sponsored one day or half day seminars can be valuable. Also, as in #9, this is another opportunity to network.
Just getting out of the office every now and then is a good thing.
11. Podcasts
These may be good for some people, but I rarely listen to podcasts. My experience is that the signal to noise ratio is very low (well below 1). You have to listen to nonsense for long periods of time before you get anything worthwhile. But that’s just me. Maybe I don't listen to the right ones?
12. Discussion Sites
CodeProject and Stack Overflow are my favorites. Also, if you do a search at Google Groups, you can find people talking about every conceivable subject.
Asking good questions and providing your expertise for answers is a great way to show your professionalism.
13. Blogging
IMO your single most important professional skill is writing. Having a blog that you consistently update with material that interests you is a great way to improve your writing skills. It forces you to organize your thoughts and attempt to make them comprehensible (and interesting) to others.
14. Take a Class
If you have a University or College nearby, they probably have an Extension system that provides classes. Also, there are free on-line courses available, e.g.: Stanford, MIT, and U. of Wash.
——
CodeProject Note: This is not a technical article, but I decided to add the ‘CodeProject’ tag anyway. I thought the content might be of general interest to CPians even though there’s no code here.