views:

146

answers:

6

I've noticed that as I progress in my career I my day to day activities require less and less actual hands on development.

However, I feel that I need to stay current, both for my own personal desire as well as being able to guide a team to best practices etc.

I'm finding it very hard to stay on top of the game because there are so many new frameworks, technologies and patterns coming out.

Do I concentrate on a particular aspect or framework? Do I become a generalist or a specialist?

What are others doing to maintain a certain level of proficiency and currentness (sic)?

+9  A: 

Read Stackoverflow. Seriously.

I think a great way to reinforce what you know is to try to explain it to others, so typing out an answer to someone else challenges me to think about why something works/doesn't work, rather than simply what works. I find that when I come across a question I can't answer, it helps me to think about it and read other people's answers.

Another benefit is if you see a lot of people asking about specific frameworks/language features, you might want to look into it. I got very familiar with jQuery and LINQ simply because so many Javascript and C# questions are answered with them. It's a perfect place to learn by example.

As for generalize vs specialize, this thread has some good input.

wsanville
+1 Actually that's pretty good. I sometimes skimmed over questions that were answered but I think now I might get into them and check out other answers. Thanks
griegs
+1  A: 

Depending on the size of your company, it may be an idea to hold quartely meatings with people in similar positions whereby you can share new findings and provide recommendations on new technologies. It is a good idea to network and ask questions, as you have. Join discussion groups, and subscribe to relevant web sites.

As a web developer, I look at new releases from Adobe and 3rd party companies that provide things for Adobe, wc3 (like html5) and anything I can learn from other developers. I also ask questions and subscribe to websites like phpclasses.

I hope this helps somewhat. I believe being a generalist or a specialist depends on your personality type and concentration levels.

Angus
+1 This is a small company so there are no peers. I have external peers obviously and we do talk but I think they feel themselves in the same sort of position. But yeah subscribing is great but then you also need time to read large emails. :)
griegs
+2  A: 

There is nothing new under the sun, despite everything being new. As you start going to more meetings and less debug sessions, you will naturally become less conversant with specific technologies but hopefully, your years in the trenches will have left you with the ability to adjudicate between different approaches.

It is essential that you have senior engineers who are capable of keeping up with the details of the relevant technologies and be able to articulate their relative merits. Better still to have two such seniors who don't agree with each other on anything. Couple that with everyone's understanding that there may not be a technical superiority of approach A over B but that either A or B is preferable to some hybrid bastardization and A or B may have their pet proposal pushed aside.

Take - for example - the anti-relational nature of current NoSQL data stores. When I say there is nothing new under the sun, a datastore is still a datastore. However, you shouldn't try to cast it into third-normal form. Can you, should you, become an expert at NoSQL? Perhaps you actually can not, but you can certainly become conversant to the relevant aspects of the technology such that you can make informed decisions about its application and be right.

msw
+1 but as a techie i love technology and it pains me to think that i might lose my skills. though like you say you aquire different skills and use your current skills in a different way.
griegs
+1  A: 

Here are the usual suspects:

  • Professional conferences in your field
  • Periodicals or journals such as ACM Queue or Linux Journal
  • User groups

In addition, you must schedule time to keep your skills up and practice new things. I'd suggest roughly 45 minutes per day devoted to a project that will stretch you and extend your skills. Stephen Covey (Seven Habits of Highly Effective People) calls this habit "Sharpen the Saw." With luck your management will be supportive.

Norman Ramsey
+1  A: 
  1. Watch stackoverflow and other media for what's being mentioned alot
  2. Preliminary Wikipedia for TL;DR to filter out noise
  3. If it interests you, go grab a paper or book on it
Longpoke
+2  A: 

I have a similar situation of moving away from hands on coding

Mine is a two-point formula - Every day...

  • Write code. (Either for work or hobby project)
  • Read an article or write something (I have my own blog.)
RN
+1, I think this is also the approach I'm going to take. Print something off of a night and read it on the train in the morning. Thanks
griegs