Neil McAllister raises questions regarding Web development skills in an era of constant innovation. Sure, low barriers to entry give underdog technologies ample opportunity to thrive without the backing of name-brand vendors. But doesn’t this fragmentation of the Web development market put undue pressure on developers to specialize? The result is a crisis, McAllister concludes, one in which maintaining a marketable skill set and hiring for a particular Web project gets more difficult as the state of the art changes on an almost daily basis.
You mean the fads change on a daily basis?
The standards have been around for over 10 years. Use them.
The author asks, “If you’re in charge of a Web-based software project, how do you go about recruiting development talent?”
That’s easy. You throw out any resumes that only show one or two languages (especially if they are languages like VB, C# or Java).
When I hire somebody, I look for engineers who have programmed in languages like Python, Perl, Lisp, or Ruby, or some obscure language, and ignore programmers who have only used mainstream, corporate languages like C# and Java.
Why? Because engineers who only know C# and/or Java tend to be career engineers who are in it for the money, whereas the others tend to be in the field due to their love of technology. Those are the people I want because they tend to be more knowledgeable, flexible, and creative.
He seems to be pointing to the end of the Wild West web developer. It’s neat that the web is a level field, individuals can enter and shake it up overnight, but for large companies with long-term budgets that’s a liability not a blessing. Companies like things to be around 5 years and to hire people with specific experience in XYZ that have stepped up the food chain in neat little rows. Web programming is all about breaking conventions and inventing new ones something “professional” organizations try to weed out. Not having conventions regular management can understand is holding back many projects from even starting. Even most IT managers are ill-equip to handle the fast paced changes that happen overnight in the web world.
Agreed – I’d add Haskell to the list of languages you mentioned too.
Edited 2008-07-11 08:57 UTC
It was late and I knew there was another language besides Lisp that I wanted to add, but for the life of me, at that brain-dead hour, I couldn’t think of it.
Definitely, Haskell is on my list of languages to look for in a resume.
But most companies go thru recruiters nowdays and all recruiters know is buzzwords. I think some of them do a word search on resumes and if you don’t get a certain number of hits, no interview. Sad.
When I look into learning a new language, I look at how it will work with what I already do. That’s what attracted me to Adobe’s Flex. I can put a pretty shiny interface on some php or perl I wrote 10 years ago and management eats it up.
My vote for favorite obscure languages: Expect (yes, I know it’s an extension of Tkl).
Answer…. hire people who are smart enough and motivated enough to learn the technologies needed when you start up, then hire on new people that are smart and motivated and give them time to learn the technologies, and continue on, pretty soon, if a new tech is worth its salt, the market will have people who are trained to use the technologies you are looking for since other companies also followed this strategy.
So, you are bothered by people working for money ? I know the kind. Tell me that you are hiring people by posting on USENET.
DG
I think that, except if you need to ride the edge (e.g. if you are a “Web 2.0” company), it’s best to be conservative and stay with what is proven to work well.
Hire programmers that master “stable languages” well, e.g. C/C++, Python, and Java. They can write higher level code and optimize it where necessary. They’re probably going to be more useful than “Rails programmers” or “Sharepoint programmers”.
Slowly, there are also winners emerging from previous “framework wars”. While they may not be as conservative as writing code in PHP, or coding up a full web app by hand, they do provide a lot more productivity and provide useful abstractions. For instance, frameworks like Django seem up to the task.
It’s great if a new framework shows you how to code a bookstore in a five minute screencast. But is it bug-free, does it perform well, is the API mostly frozen, will it be properly maintained in 5 years? Those are things that are going to count when you go are going further than a simple book store app.
Edited 2008-07-11 09:01 UTC
That isn’t the point I was trying to make.
My point is that I’m looking for programmers who understand programming, not just someone who understands C#; even if C# is the language we’re going to be using.
Edited 2008-07-11 16:13 UTC
One other comment…
While I agree with you that a Sharepoint programmer is probably worth a bag of cotton candy (maybe even a big bag), or a half-melted ice cream cone melting down a child’s hand (maybe even a double-scooper), if that’s all they know, I don’t agree that Ruby on Rails programmers fit in this group for a variety of reasons.
The main reason is this: Ruby on Rails developers know an important design pattern; MVC. Ruby on Rails is fairly slow, but it encourages some excellent programming practices, whereas web languages like Java and the .NET framework don’t. In fact, I think VisualStudio encourages some fairly poor development practices, to be honest.
.net is moving in the MVC direction. Linq is a huge step in that direction.
Edited 2008-07-11 21:52 UTC
That’s certainly useful, but it doesn’t guarantee that a developer can apply those principles beyond the specific framework they’re familiar with.
Or put another way, the important question (IMO) is: can a developer adhere to good practices even if he’s not working within a framework those which enforces those practices?
Personally, if I’m hesitant to work with anyone who is only capable of doing their job using a specific set of tools – proficiency is good, utter dependency is not.
Some technologies come and go, and others stay around for a long time. This is nothing new, and is not specific to the web environment.
I say don’t worry so much about specific languages, but focus more on learning ability, creativeness and adherence to consistency and principals. A good developer can pick up a new language or framework quickly enough.
The bigger question is, when is it appropriate to use new frameworks? Like others have mentioned, how can you be sure it will be supported in 5 years? Does it scale appropriately? What are the limitations? Is there a measurable difference in usability or development time between the “new” platform A when compared to tried and tested platform B?
I believe that’s why it is important to select open source frameworks. That way you can guarantee they will be around in 5 years, even if you are the only one using and maintaining them.
.net is going to be around for a very long time, as is java technology, and Adobe’s stuff probably will be.
Accountants (at least in the USA) have to take classes and recertify on a regular basis to keep the honor of saying they are a CPA.
I don’t think we’re ready to do the same thing on a formal basis in IT or CS but informally, I don’t know a single peer who doesn’t put SOME effort into study on their own time.
Sons of family should pay more attentions to your fathers and mothers. They are feeling lonely on their ages now. Some seniors are finding their new funny talking at a boomer match site named ***JSenior Match . co M*** . Let them post their profiles there and help them find a soul mate.
It takes a special kind of retard to come to a technology site, post spam, and expect any kind of response.
Congratulations for responding then .
Obviously, I meant “response” in the form of going to their site and clicking on some ads or signing up so they could actually get money.
I doubt being called retarded is an integral part of their business and marketing plan; but if it was, I’m happy to comply and I thank you for your congratulatory sentiments.