Fog Creek Software
Discussion Board

Skill Development

Having just read Joel's recent piece on the Win32 API, .NET, and Longhorn, I wanted post regarding skill development.

I have long had a difficult time 'keeping up' with the technology.  By the time I got the Turbo C 'hooks' into MSDOS figured out, and could get the PC to jump through high-performance communication hoops, along came Windows 95.

With Win95, and Office97, a whole new world of using VB5 and then VB6 for application automation opened up, as well as a whole new paradigm of User Interface development.  It took years for the publishers to come out with Appleman's Win32API for VB, which finally made VB powerful enough to jump through hoops.

Then the customer wanted web-sites built under Cold Fusion.  Learned that.  Then the customer wanted server side ASP pages.  Learned that.

Then the customer wanted C++ based functionality.  Learned that -- but of course, merely knowing C++ was not sufficient.  To apply it you needed the Win32 API 'hooks' in C, in C++, the MFC classes, the Standard Template Library.

Then Java came along.  Learned that.  And of course, merely knowing Java was not enough.  You needed JSP, JavaBeans, JDBC.

I only see the pace of this change increasing.  Out of necessity, I place a stick in the sand, and learn a certain level of useful expertise with a certain set of tools.  Of late, that includes Visual Studio 6, and Java, and Perl 5.6.

Yet I see the tool-sets proliferating.  I did not go with .NET because their VB looked a lot like Java to me, and I thought Java was a 'good-enough' language.  I saw little benefit to pursuing Microsoft's variant to Java.

I see this as a challenge to Software Engineering in the short term.  What is the problem we are trying to solve?  And how does continually 'growing' our tools help us solve it?

Wednesday, June 16, 2004

We aren't trying to solve any particular problem.
Thus the degrees of freedom.

son of parnas
Wednesday, June 16, 2004

>> >> What is the problem we are trying to solve? 
>> We aren't trying to solve any particular problem.

That's why programmers are regarded as replaceable commodities with very short shelf lives. Unless you work at Microsoft or another major vendor, you're pretty much at the ass end of the learning curve all the time.

Just as AllanL5 said, as soon as most developers become proficient with one type of tool, the technology advances to render that skill basically worthless.

>> And how does continually 'growing' our tools help us solve it?

It doesn't. The noobs who aren't burnt out on platform changes for the sake of change get off on the changes and jump up and down like immature little kids chanting "gee, that's great, more fun learning great new stuff"! 

The rest of us who are trying to run businesses or manage our careers for the long run view many platform changes as counterproductive wastes of time.

Bored Bystander
Wednesday, June 16, 2004

>That's why programmers are regarded as replaceable >commodities with very short shelf lives.

I am comming to the conlcusion we are replaceable
commodities because we don't have the same licensing
structures as lawyers, doctors, accountants, etc.
We are replaceable because we can be replaced
and very few not in the biz will know the difference.

son of parnas
Wednesday, June 16, 2004

Skill is only about as valuable as it is difficult to acquire, which is to say: valuable, but not tremendously so.  Likewise for Talent, but since Talent is impossible to *acquire*, it can be quite valuable.  Talent would be even *more* valuable if more of the people deciding its value suffered less from the delusion that it's substitutable.

Wednesday, June 16, 2004

Value, to me, is based on what you can create, and the value it has to the beholder/customer.

Thus a skill has more than an intrinsic value.  Its 'extrinsic' valuation is based on what you can create with that skill, and how much demand there is for what you create.  And as you point out, how many other people there are with that skill that are producing the same things.

Talent makes it easier to learn some skills, makes it even POSSIBLE to learn some skills, and affects the quality of the final output, and the time it takes to produce it.  (The assumption being a talented person, with the skill, will produce faster and with higher quality than someone who does not have the talent, but has developed the skill with hard work and practice)

Wednesday, June 16, 2004

> same licensing structures

Even the simplest licensing requirements, like for hairdressers or truck drivers, helps keep wages up.

Likewise certificates, until they get so common that they are worthless.

Thursday, June 17, 2004

*  Recent Topics

*  Fog Creek Home