Keeping programming skills current

douglasb

Diamond Member
Apr 11, 2005
3,157
0
76
One of the issues we are seeing at my current employer (a .Net shop) is that some of the older employees have not stayed up to date with their programming skills. There is a lot of Visual Basic code written as though it was pre-.NET (so VB6- or VBA-style). Likewise, even though our current projects target .Net Framework 4.5, most of what is written doesn't take advantage of any of the newer framework features (LINQ, lambdas, etc.). We even have a senior developer who doesn't know a lick of HTML or Javascript (and our major projects are mostly web applications).

We are looking at ways to prevent this sort of thing from happening in the future. I have heard of various methods of accomplishing this. I know that some .Net shops require their employees to obtain Microsoft certifications and keep them up-to-date (not sure if I agree with this approach, but it's better than nothing). Others make extensive use of sites like Pluralsight, training videos, etc., while some places send their employees to developer conferences and user groups.

What are some of the ways that you would recommend keeping up to date, or what methods have your current and past employers used to keep their developers' skill relevant in today's market? I would love to hear what everyone has to say on this topic.
 

Tweak155

Lifer
Sep 23, 2003
11,449
264
126
Only way to ingrain the skill is to practice it. Getting a certificate only gets you a piece of paper, not a skill you retain and hone.

I don't know how I'd approach this, depends on your talent base. Maybe something like peer code review and simply reject old approaches. They'll learn over time if they're good programmers.

I wish I had this.
 

LevelSea

Senior member
Jan 29, 2013
942
53
91
voluntary early retirement with incentives and a cooperative education would probably be your best bet. :p
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
You can't make people learn new skills, that is something they do on their own. You can create a workplace that encourages learning and growing together as a group by trying out new technology, talking about it and getting some time to professional grow each year. But its something that you can invite people to do not something they will do.

You can only lead a horse to water. If it wont drink you have to put it down and get another. Harse reality.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I agree with BrightCandle. Those guys are probably in the job because of who they are, not the other way around. To test this, propose that they learn a new language on their own time and see what the reaction is.
 

Tweak155

Lifer
Sep 23, 2003
11,449
264
126
I agree with BrightCandle. Those guys are probably in the job because of who they are, not the other way around. To test this, propose that they learn a new language on their own time and see what the reaction is.

Pass unless you're going to pay me. A company should not be allowed to dictate what their employee does in their spare time.

However, I'd love to learn a new language if I had an awesome goal to use it for. So if you dangled a sweet project at me and said I could do it if I learned X, that would motivate me to do so.

Reminds me of this company I interviewed at a while back... they had this hardware that sent real-time data via satellite / cellular (depended where) that contained information on the vehicle it was in. How fast it was going, distance travelled, if the slammed the breaks, etc. They needed people to work on the software for the hardware.

I was ready to drop everything to learn it, but they passed on me because they misunderstood my resume and tried to blame me for making it confusing. I ended up taking the higher paying VBA job. Apparently they had no misunderstandings. Offered me 15mins after walking out of the interview.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
We use code katas to teach methodology and the features/shortcuts of the dev environment as well as new language features. Perhaps this could be of some use?
 

JManInPhoenix

Golden Member
Sep 25, 2013
1,500
1
81
Surprised to hear there are programmers employed with only VB6 skills. I got my AAS in computer programming in the late 90s and work briefly as a Visual Basic programmer until that company had a mass cut (about 1/3 of everyone was let go). After that, I went back into my old field and haven't looked back. I pretty much assumed VB6 was a dead skill set.

I have no interest in working as a programmer again but do enjoy mucking around with C on Linux in my spare time...
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
Surprised to hear there are programmers employed with only VB6 skills. I got my AAS in computer programming in the late 90s and work briefly as a Visual Basic programmer until that company had a mass cut (about 1/3 of everyone was let go). After that, I went back into my old field and haven't looked back. I pretty much assumed VB6 was a dead skill set.

I have no interest in working as a programmer again but do enjoy mucking around with C on Linux in my spare time...

Used once and valuable forever in some capacity. Everyone has an old system that needs work. I got a job updating old cobal stuff to work with a modern ERP solution about 8 years ago.
 

douglasb

Diamond Member
Apr 11, 2005
3,157
0
76
I agree with BrightCandle. Those guys are probably in the job because of who they are, not the other way around. To test this, propose that they learn a new language on their own time and see what the reaction is.

They generally aren't willing to learn a new language for the job, let alone in their spare time. Until I came on in 2011, this was a 100% VB shop. These particular employees STILL haven't learned C#, which is mind-boggling to me. Nor do they have any knowledge of Java, C++, or OOP in general.
 

clamum

Lifer
Feb 13, 2003
26,252
403
126
Peer code reviews and utilization of sites like Pluralsight (perhaps incentives to take lessions/training).

And for new projects, try to incorporate new technologies, even if it requires more time to implement up front. The idea would be that in the future, other projects would also take advantage of the new(er) technology and it won't require as much time to implement since the employee is already familiar with it.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Pass unless you're going to pay me. A company should not be allowed to dictate what their employee does in their spare time.

Who said anything about dictating what people do in their spare time? I said "suggest" learning a new language. It doesn't need to be a huge time commitment. The point is that some people are still into what they do, and always willing to learn new things, and some aren't.
 

douglasb

Diamond Member
Apr 11, 2005
3,157
0
76
Great suggestions so far. We are looking at some things like Pluralsight, developer conferences, etc.

As far as developer conferences go, are there any in particular that are highly recommended (especially with a focus on .Net)?
 

beginner99

Diamond Member
Jun 2, 2009
5,315
1,760
136
The issue is also time and stress. If your workload is too big, then you will not have time to learn and experiment hence you do it they way you have always done it and not use any new language features.
 

Tweak155

Lifer
Sep 23, 2003
11,449
264
126
Who said anything about dictating what people do in their spare time? I said "suggest" learning a new language. It doesn't need to be a huge time commitment. The point is that some people are still into what they do, and always willing to learn new things, and some aren't.

The source of the suggestion changes my opinion.

Really, it depends how you word it. I can't think of a single "suggestion" from my manager that doesn't come across as "we want you to do this".

It might be better just to ask "Do you like learning new programming languages?" etc.
 

Bulldog13

Golden Member
Jul 18, 2002
1,655
1
81
We use code katas to teach methodology and the features/shortcuts of the dev environment as well as new language features. Perhaps this could be of some use?

Can you please explain this more thoroughly and provide some examples. This idea intrigues me.
 

sourceninja

Diamond Member
Mar 8, 2005
8,805
65
91
Can you please explain this more thoroughly and provide some examples. This idea intrigues me.

Here's a pretty basic example. I've actually used this kata to get familiar with test driven design and using visual studio. http://craftsmanship.sv.cmu.edu/exercises/coin-change-kata

Basically it's a simple problem that we as a group work though. Usually one person "drives" and everyone else follows a long. As we are practicing/learning TDD we start by writing tests for the basic functionality, showing they fail, writing code to pass said tests. Then we move on to refactoring that code with better tests (say to produce the least amount of coins to meet the desired change instead of just change).

The problems are not hard, but rather a tool for presenting the concept everyone needs to learn/practice. We may work on the same kata for a month meeting once a week, each time starting from scratch (maybe in a case of teaching shortcuts and options in the IDE that make developing in this method easier for example). Each time we meet another person "presents" the kata and walks though it and explains it.

There are tons of katas out there to get started, the hard work is not looking at them as simple problems, but diving into the complexity of the problem and 'doing it right' so you grow as a developer.
 

mosco

Senior member
Sep 24, 2002
940
1
76
Sounds like you need better employees, ones that take software craftsmanship seriously.
 

Snapshot1

Member
Dec 26, 2011
42
0
0
Sounds like you need better employees, ones that take software craftsmanship seriously.

This. Particularly if your business have evolved to require different skills and techniques and the people concnered are not willing or able to learn them. On the other hand if their role has also evolved, or if there is still work that makes use of their skills, then maybe have them concentrate on what they do know.