The Web Development Skills Crisis
snydeq writes "Fatal Exception's 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? Choosing one tool to be your bread and butter from a field this broad is one thing, McAllister writes. Recruiting talent for a Web project when your technology requirements eliminate most of the applicants is another. The result is a crisis, McAllister concludes, one in which maintaining a marketable skill set gets more and more difficult as the so-called state of the art changes on an almost daily basis."
Everybody and their cousin seems to be calling themselves Web Developers...
There's no place like localhost
I think the emphasis needs to be less on specific and proprietary technologies and more on how a candidate thinks. While the task and platform/architecture at hand is important, picking someone because they know flash, and you're "doing" flash may be the wrong reasoning. Instead, focus on picking someone who has some proven background, strong in at least a couple of areas. Verify they really are strong, but then ask them questions that make them think. Give them problems to solve. Give them something unsolvable to solve. See how the react.
Getting a sense of how they maneuver in problem-solving situations is going to be a much better indicator of their eventual worth than some credential (certificate, etc.) in the chosen technology du jour. A good tech can always and easily adapt to new and different ways to do things.
Is the state of the art really changing that fast or is it all a problem of "buzzword turbulence", if you will?
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
Real programmers don't care what language they need to write applications in. They write them in C.
HTML PROGRAMMERS WANTED
Recently, I had the opportunity to get back into doing some internal web development after years of not doing much web work.
My issue is sorting out all the new technologies that have come out since then. I don't have time to learn them all before I pick one.
I think I'm going with Ruby on Rails, but I have no idea if this is the best choice. I hear good things. You go by word of mouth.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
Real engineers can work in any language. ... except Java.
StoneCypher is Full of BS
The real problem is that OS technology has remained relatively stagnant for the past ~25 years, not that web development is showing "too much" innovation.
Take a look at all the new websites that have become so popular. Sites such as MySpace, Facebook, Flickr, etc. (in many ways) combine traditional "applications" into one UI that is more fluid, integrated, and responsive to its users' needs than any traditional UI/OS.
Web development has been like this from the beginning. Or at least since 1996 when I started paying attention. There were hundreds of competing technologies, programming languages (both interpreted and compiled), APIs, IDEs, protocols, and plugin frameworks back then, and there are hundreds if not thousands now.
Of course no team can master, support, or manage more than a small fraction of those, so there is a continuous shakeout. Then the battlefield clears up some, until the next fad or wave comes along, with dozens of new startups in its wake.
how is this a new observation? The web has always been a mess. It's forever in some sort of alpha/experimental state with no real standard as to what technologies to use. There are security holes all the time that need to be fixed, bugs in browsers that make developers split their resources to handle multiple browsers.
And that's how we likes it. The web's craziness is also it's strength. It's really quite amazing what has been done on the web, considering that it works pretty much the same whether you are on a Windows, Mac, BeOS, Amiga, x86, PowerPC, ARM, or what have you. You can even fire up an old version of netscape and have lots of the web still work.
I don't think that less choice in technologies is a good thing for anyone, it won't reduce cost of development. It won't make it easier to learn how to program for the web. It won't increase the number of good web programmers. The more ways that we have to build web applications the better.
because you are a moron.
if someone was building a house, they would hire carpenters.
if someone was building a gigantic stadium, they would hire welders.
they wouldnt hire somebody 'who has experience with ryobi chop saws and drills' or 'must have 10 years experience with fiberglass hammers'. you would assume the person could figure out that a fiber glass hammer is not a big deal compared to a wooden hammer or a plastic hammer, and a ryobi chop saw works pretty much like every other damn chop saw.
then again, if you were in the building trades, you wouldnt call yourself an 'engineer' just because you can do amazing things with a crane or a nail gun.
As many libraries there are for the web, there are still ten times as many GUI toolkits for traditional GUI's. Oh, then operating systems, platforms, virtual machines, etc, etc. The whole blog is silly. As complicated as web programming has become, it's still many times simpler than trying to create a gui in almost any other language (without an IDE).
If an officer ever threatens to taze you, say you have a pacemaker.
Boo Whaa, I only know how to work on horse drawn wagons. How will I ever keep up with bicycles, automobiles, motorcycles, aeroplanes, jets, rockets, ram jets, scram jets, what every the next weeks propulsion choice is.
There is fragmentation because there is choice possible. There is fragmentation because people want to use this or that new thing. It is a lot better than stagnation. We are testing new ideas constantly. Good ideas get adopted by the originating community, and even by competing projects. Eventually you will be able to do the same things in most the environments.
MOD PARENT UP
5 4 3 2 1 POST!
My organization just started a unique online system, which was custom written by a vendor. The software is all PHP with a Linux/MySQL backend, and uses OSS software throughout. I took the reins to get the system up and running, but now, for the first time, we started looking for a dedicated web developer to publish works to this site, work on troubleshooting, and work with the vendor to design modifications to it. We went through over a dozen interviews over the past few weeks. It was bloody awful.
My (admittedly high) goals was a web developer that new PHP, could work with Linux (SSH), and had very basic client-side programming (C, Perl, whatever) to develop more tools for us down the road. Oh, and someone that could do some graphic art work would be a definite value-add.
Every single person that came in was an mainly ASP or ASP.NET programmer. Only two had Linux experience. Three or four had Photoshop experience. As a programmer myself, I ventured to the hopeful candidates on what languages they would like to learn next, or what skills they want to improve upon. Across the board, they were all happy staying with ASP, didn't want to learn PHP, and some inquired into when we would want to move from PHP to ASP. I had intentionally kept the field open to non-PHP people to try and find a true programmer that just didn't have those letters on their resume, but the majority were sticking themselves to a single language.
When all was said and done, we hired someone. He didn't know Linux, and didn't know PHP, but he was a definite "Active Learner". He was self-taught in nearly everything he knew, and was willing to learn any language we needed him to learn. He was one of the two candidates that had expressively mentioned that programming was just picking up a language and using it; all the rest were ASP specialists and thought that using another language wasn't worth their investment.
Funny... I was just about to submit this to the Firehose. (PR-Speak Warning; skip to this if need be.)
The above links are to Opera's web standards curriculum.
Not really sure this is relevant. Even though, what exactly is included within 'web development' is open to debate, when you're talking about the dizzying rate of change and new technologies I don't think you're referring XHTML/CSS and the basics of information architecture (whatever that is).
Sure there are advances and changes in those basic technologies but it's fairly slow due to reliance on browser support and standards organizations.
So you're equating A fiberglass hammer vs a wooden hammer with Ruby on Rails vs Django? Maybe if using the fiberglass hammer required that the user speak English while the wooden one required Spanish. A better analogy would be asking Kanye West to write you a hit rap song in Sanskrit. Not. Gonna. Happen.
I open up MS-Word. Type things in, move things around, paint borders, etc. etc.
then I...
File-->Save As...
web page
Ta Da! I'm a web designer
Web development is such a dead-end job. Most web sites are by kids, imbeciles and graphic designers who fancy themselves as coders. Trying to maintain or develop their code is soul-destroying.
The next time you try to use a small business web site to buy something, do yourself a favour and look at the page source.
If your details aren't being sent out over the intartubes unecrypted, and if you still want to make the "purchase" you might see a way to pay nothing, or bare minimum with a discount.
Scotland is a good place to start looking.
Stick Men
#1. If they're taking 6 months, you've got the wrong person. Anyone who is decently qualified would be able to pick up the new tool in less than a month.
#2. You'd have to be a damn good project manager to be able to spec out the requirements sufficiently that you could hire a contractor like that.
Which is why you want to hire people who can learn new approaches quickly. And the goods ones can. They know the technology, not the tool. So it becomes an issue of learning the idiosyncrasies of the tool as opposed to other tools that you have used.
The same thing has been happening in the general software development world for 20+ years. :-(
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
I've run into this very thing before in trying to decide what to study. There are so many different web languages, each of which come with their own toolsets and frameworks. How are we expected to keep up with it all? I don't want to commit to a language or technology that might easily be eclipsed within 2-3 years.
My biggest concern is the amount of time required just to keep up with the Jonses. How much time can I siphon away from paying work on php to learn about rails or django? What about the X number of new Ajax toolkits that have recently emerged, or some supposedly fantastic deployment set? I think of how fast javascript has accelerated since 2005 from digraceful reject to shining star, and it truly terrifies me how little I know of it. I'm used to mastering a language, understanding its uses and differences from others, then applying it towards the future. Do I have time to do that any more?
In the end, I came to the conclusion that I would just study Java and its ilk, because it seems to have made major inroads in enterprise applications and it's free-ish. That's good enough for me, and it bodes well for long term stability.
checking for libvirus... no
ERROR, libvirus.so not found, terminating
If you lower the hurdle that much then raise it suddenly, more than a few people are going to bash their faces in. The barrier to entry being so low is what causes the lack of good developers, people plateau too quickly, few excel.
Excuse me while I gather the virgin sacrifice and assemble the pentagram required to solve your problem
I can't agree more that the low bar for entry into the web development world allows for much fragmentation. There's a lot of crappy code out there by ppl who should not be coding. However a lot of more creative minds have been able to contribute in recent years, I think your ruby on rails type frameworks and whatnot have demonstrated that. I think we need to rally around more existing technology and rely less on trying to create the next new thing from scratch. And I think we're going that way.
Right now .NET, J2EE, LAMP seem to be the key 3 divisions in the field. Whats really pissing me off is I was recently interviewing, and I was getting people wanting 1 years experience in .NET 3.5 which has only be released for a few months, and I was getting all these interview questions about brand new stuff that no one has done. J2EE is basically Weblogic jobs. LAMP doesn't seem to have much steam in the Enterprise, but mostly for small companies or small applications. Also I've been getting all kinds of screenings from people who don't know what they are talking about. Nowadays the trend seems to be how fancy of an AJAX UI can you create, barring the obvious difficulties of cross platform development and support for older browsers. I can see whats going to happen: many projects are going to fail because AJAX applications are very difficult to develop for a huge audience and reliably and requires much more skill than just html.
This is partly a self-fulfilling problem. The developers and low-level management always have to keep their next job in mind, so they have an incentive to pad their resume with skills that their competition won't have. So they embrace new technology for the sake of embracing new technology, and that in turn brings in candidates who might not be very strong in the fundamentals but have/want these skills. Lather, rinse, repeat, and you have an explosion of "just because it's different" technology.
At the same time, there -is- legitimate change. It just takes longer and is only revolutionary in one aspect. With small/mid-scale J2EE, it was introduction of parameterized classes in Java 1.5, the introduction of Spring (dependency injection!), the widespread adoptation of maven for dependency management. A lot of us wouldn't have recognized our current environment three years ago, even though it's the same language and (mostly) the same libraries.
A good question is what's different in the two worlds. I think it's partly the environment, whether your user base is in the thousands or hundreds of thousands. The latter makes you a bit more conservative.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
those might be buzz words, but they are real things companies use. I know my company uses change management and project management tools but the major open source CMS web technologies would not fit nicely into those schemes. Because too many things change too quickly.
Who decides we use "all PHP" from this point forward? Who decides PHPnuke over PostNuke or even Media Wiki. Who decides to use PEAR this week or CakePHP next week. What happens when we want to try Ruby on Rails? More important how do we document where all these pieces come from for security patches and update them when they are replaced with new technologies or forked for license reasons? Or do we roll our own?
MOST companies have very small, overworked IT staff. They get maybe 2 days a month to try "play" stuff out on Saturday. When projects come down they need results "yesterday" because typically IT is the last group to know a project needs computing resources... when the project is already late! Most IT managers are so busy they could care less about web technologies beyond the entrenched business ones. When you start throwing out ideas of mashups with current intra- and inter- net sites and allowing mobile users to phone in for plant data from the airport their heads explode... who knows all that stuff or even where to start? How would you even write a job description?
This is why we're stuck with Microsoft's awful tools because they do a better job of marketing to the bosses WHY they might need a project and offer a "canned" solution you can put in a job description. How do we make regular PHBs aware of what can be done.. and be able to find employees to deliver?
full time.
in a flourishing field, the diversification and resulting specialization is inevitable. its not only healthy but also the natural process. happened in every field we invented as mankind.
the problem of finding the 'skillset' to match your needs is a result of vendors. they shove stuff to businesses, businesses get locked in to some new, unestablished, or old and rare, unpopular (on the web) stuff, and finding someone to fit exact set to match it and the web stuff becomes a horror.
and then there are hilarious people who are looking for absurd skillsets like 'expertise in php, ajax, javascript, server side java, html4, css, linux scripting and an understanding of web design'.
thats like looking for a 'gay catholic fetishist astronaut with an mechanical engineering license and fluent in english, german, arabic, icelandic and sanskrit'.
what i see is l.a.m.p. field is flourishing. it is going so well that despite hordes of developers almost constantly come into the scene, most of them (reliability is paramount) finds jobs. this kinda means that the demand is also following the supply i guess. some of the scripts on lamp platform has become their own expertise fields. an example is oscommerce programming (thats a most commonly used job ad). its not unnatural though. most of the i.t. and business software we use were written on C, yet, the programs ended up being expertise fields in themselves in the 90s and they still are.
Read radical news here
Since they only match acronyms and can't discriminate from a person capable of easily assimilating new technologies vs. someone can't can't and/or is very inexperienced.
More acronyms = more HR inefficiency.
-M
This has been a problem of mine as of recently as I have been looking for a web developer/design position. A lot of these so called "requirements" for jobs specifically state that a certain field is required in order to even begin to be considered as for the job.
Anyone worth their weight in gold should be able to pick up and learn a new language very quickly. It shouldn't matter what it is as long as the application has shown applications previously across several languages and willingness to adopt a new language if so needed. I try to explain that I am mostly self taught, and at college we were taught to learn the general concepts of programming THEN apply them to a language but quickly get swept under the rug because I don't already know their language.
While it's certainly not a bad thing to specialize in a language, it should not be a hindering point to learn something new. Now if I could only convince potential employers of that...
They don't. But just because somebody's getting paid to code web pages doesn't make them a professional web designer. There's a lot of one-trick-pony webmonkeys out there calling themselves "professional web designers," and it sounds as if whoever wrote TFA ran across most of them.
Good, inexpensive web hosting
unfortunately, it would seem that the 'smart computer geek' people cannot bear the thought of multi-linguistics, be it human or machine language, while jorje with a high school education from guadalajara has been able to learn a few words of english, become a foreman, and probably built the building you are sitting in. why? because he is smart and he picked up the important bits, and whoever is his boss is able to realize that and work around the language barrier.
as for kanye west... if christina aguilera, shakira, celene dione, and dozens of other singers can have hits in multiple languages,, then, yeah, he might be able to do it.
Yeah, he'd just rap on top of some guy reciting the RigVeda or something.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
I hate to sound like an old fart, but the trend seems to be throwing in more and more features to the point that the "nift" value exceeds the actual "content" being presented. In the end, the site becomes so painfully quixotic that no mere mortal could maintain it. Now when it breaks, you need a complete overhaul, and of course the "vision guy" in marketing wants everything including the kitchen sink installed on the site. For some odd reason, I wouldn't want to work for a jerk like that, and I'm not sure anyone else would either.
Of course the other aspect may be that there are a lot of prima donnas out there who believe their "talents" are being wasted on the boring/mundane, and will refuse to take a job that doesn't have a the springboard potential to stardom. Hence, you have a bunch of people out there who are calling themselves "web developers", but somehow always appear somewhat "under-employed".
There's also the "DIY" crowd that later goes on to discover they lack the technical know how to adequately keep up with their projects, only to be horribly abused by charlatans posing as web developers who toss in a bunch of glitter-gifs and JavaScript, then take off leaving the site owner with a the painfully quixotic nightmare mentioned above.
So where does one look to find a reputable freelance web developer anyway?
Blessed with all the brains that God gave a duck's ass, and twice the charisma.
I'm glad my company (Japanese) doesn't have this problem. My last job had about a week of actual training that wasn't very useful. My new company is sending me to external training ($$$) for about 30 days. Then I get about 12 weeks of company training in Japan. And then 5 weeks of on the job training, and back to Japan for another 4 weeks. Its about 6 months of me doing nothing productive, just training heavilly. The company is making a serious investment in me, and from what I have seen from it in the last month, I will hopefully be sticking with them for a long time.
Don't skimp on the training. Its exactly what makes your employees experts in their areas and want to stick around. We also have casual Friday every day, and that doesn't hurt either.
Even those who arrange and design shrubberies are under considerable economic stress at this period in history.
Always kinda blew my mind when people get anal about specific technologies.
Do I know JavaEE? PHP? Ajax?
Doesn't matter.
Why?
Because I know programming. WTF does that mean? It means that language/technology is irrelevant because it takes me a matter of days to pick up on new languages/technologies.
Anyone who touts a single language as some kind of achievement is fucking pathetic.
FLAME ON!
Suck it up.
This argument may be important in a theoretical sense, but not so much a practical one.
I suppose if I had tons of money and needed a state of the art app in record time, I would look for only experienced programmers. But in a competitive environment we need more efficient ways ramping up.
Once you've determined there is no one with your exact qualifications, just make sure you hire smart people who love to code, the experience will come.
In truth you might end up getting some better solutions as you won't have a herd of programmers who all believe the same "givens" about development.
Of course this requires full time employees and a patient approach, since hiring contract workers just means you are paying them to learn and then not reaping the benefits. Many companys don't understand that good code takes time.
As we used to say: "The code can be done well, the code can be done quickly, the code can be done cheaply. Pick any two!"
I hate to ruin the Dilbert mood, but really, a company that is worth working for is able to communicate with HR that there are things to be looking for other than the right number of experience with the correct acronym.
“Good” developers want to work with good managers and will dismiss any job offer that includes unreasonable skill sets. Likewise, a good manager knows how to override HR when a candidate can do the job even though they might not have the specified skill set.
A good professional programmer should be able pick up a new imperative language well enough to get started in a few days. It is almost certainly take longer to learn about the application area then it will take to learn a new programming language.
If Kanye West is a good profession song writer, he should be able to write a decent country music song in a few days, too.
Next you'll be saying they should have their own schools!
As I see it, the trouble with so-called web development begins with the fact that it encompasses so many diverse fields and ends with the fact that each field and its representation as web-based software is implemented using different standards and languages, each of which comes with its tools and its learning curve. Compare and contrast this with non-web programming endeavors, the vast majority of which rely largely on C and similar languages (C++, Objective-C, and languages with C-like syntax). It would be much less of a skill crisis if there were less tools and languages to learn.
McCain/Palin '08. Now THAT's hope and change!
I think that there are definitely too many tools.
Right now I'm working on making myself look more attractive to a potential employer who works with the LAMP stack. When I asked him what he was looking for, he mentioned Rails, Django, and CakePHP - 3 different frameworks, in 3 different languages. I'm talking to him in about a week, and I aim to have built at least something in all three by then - but I definitely won't be able to achieve specialization.
(Yoda Voice): "Once you start down the dark path, forever will it dominate your desssstiny."
The Ruby crowd is really vocal, but the opportunities aren't really out there for Ruby programmers at this point, and considering the current scaling problems with Rails...Well, I'm not sure they're going to be until they get them ironed out.
If you've got time to invest, Java is always a good skill to have...It's not new and sexy anymore, but it's everywhere. If you don't have the time, Php is at least popular, easy, and widely used.
If you're really into the idea of a deployment framework like Rails, you might want to check out Python and Django.
ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
A good dev can pickup (almost) any language and (good) tool and get the job done. I learned on Pascal with Turbo Pascal. Did C++ and college with Visual Studio and KDevelop. Played With Java with Eclipse. But I used to do PHP for the web with a text editor, now I am leaning towards Python. However, MS's .NET and Visual Studio is what I am paid to work with (full time). Get someone who can use any tool that is necessary and capable.
"Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
they are wanting EXPERTISE in all those fields. not understanding. its not a juniorship.
Read radical news here
This just in: people who can constantly master and excel at new technologies with minimal lead time, constantly changing specs, expectations, tools, and standards, and put them in front of end users in rapid, frequent development bursts are hard to come by.
Wow, who'dathunkit?
I think there's a trifecta of issues that plague the hiring of web developers:
(1) Rapid Technological Change means no OJT via college. Unless you're doing your web tech in Java, there's a decent chance you're not getting college grads trained in your language and tools. The good ones will have adaptable skills of course. You do know how to distinguish between the good just-graduated devs and the bad, right? No? Oh...
(2) Crowd of Pretenders lowers expectations of skill/quality, and salary. Shockingly, unqualified idiots are willing to work for less. Some places hear about these mythical highly skilled web devs willing to work full time (+?) for $32k a year, and generously offer $40k. They get no response, or they get morons. This reflects poorly back on web developers in general, especially those who are skilled programmers.
(3) An incredibly low barrier to entry for many models means talented people start their own companies. If I'm one of the most skilled, and can handle (or partner) to provide design, programming, and business aspects of a web page, there's a decent chance I can find a niche where I can make a run at a real business. Which is why there are a thousand Bantrs and Flickrs and Cheezbrgrs and Meebo Zeebo Zimbra Flumbrs all spun up. The expected value for a buyout by Google or being the next SmugMug is so high, even a small chance makes it worth it, especially if you can get enough funding to put food on the table.
And #3 has an inverse: the low barrier to entry also means that a lot of people get their godaddy hosting, start tossing together web pages with their pirated photoshop, and think they're ready to make 80k a year.
It's so horrifically bad, I've considered going into business as an interviewer. I've had remarkable success getting good devs on my team. I think a major problem with companies hiring web developers is: they don't know how. They don't know which skills out there are transitive to skills they need. They don't know which related skills (security, networking, system administration and integration, database architecture) might be critical for their project.
As a lot of cogent programmer/bloggers have pointed out, you can only really hire someone better than you are by luck. I keep coming across companies who could really, really use some programming/IT experience - in fact, it's so bad, they don't even know WHY they need it. Their knowledge isn't sufficient to even inform them to what good staff could do for them. You start a little project for them and ask, "Well, why not do this?" "Oh, you can do that?" "Sure, and we could also..." "Really? Can you...?"
Ultimately, you also get what you pay for. If people expect "good" web developers to work for way less than skilled programmers in other languages, they're nuts.
OTOH, I think the specialization argument is bunk. How many specialties are there in application programming? Everything from databases to development tools to reporting, 3d software, operating systems, embedded, RTOS, a/v en/decoding - we could go on all day. But web is fragmented? Heck, web isn't *that* fragmented. It's one of the things that makes development so fun, fast, and effective using it as a platform.
I've noticed several people post that HR asks for more years of experience than the technology has exisited. I've seen this happen with Java and .NET, and a liar ends of getting the job. I have been called by people more than 10 times asking for this, and they get mad when I've corrected them.
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."
It really shouldn't matter what toolset is specified, once the basic skills are acquired, migrating to an unfamiliar toolset should be trivial.
You'd think so. If only the people on the other end of the hiring spectrum understood this...
“But this candidate doesn't have at least five years experience in ATLAS... er... ASP NET AJAX and an MS in Computer Science! Every senior level manager knows that's different from regular AJAX! We can't afford all of the extra training! We need candidates with this exact skillset!”
When you have non-technical people posting poorly-interpreted requirements and screening resumes before the techinical people get a chance to look at them, you have this problem.
Have you driven a fnord... lately?
You must wait a little bit before using this resource; please try again later.
ruby on rails will limit your maneuvering space. stick with php.
Read radical news here
I think the colleges/university's are partially to blame as well. It seems that any of the kids I interview know how to use flash, photoshop, dreamweaver, etc, but the schools don't seem to be teaching them the creative process.
It's as if the schools teach them how to hammer nails into a board and then send them out into the world letting them think that they're carpenters.
It would be nice if the schools would force the students to learn nothing but design principles the first year and then start introducing them to the different tool sets. If you have a strong concept of the pre-planning/design phase, then your better suited to choose from the various tools for any particular project or problem.
I'm assuming that the schools need to have the latest and greatest flashy tools to try and wow the potential students. I don't know.
The real Sig captains the Northwestern. This one captains
I can only assume that a "career programmer" or and hr person started this thread as it feels grossly out of scope from reality.
Step 1 - The Posting, as a job poster, are you looking for script developers, or application developers. In general, scripts are loosely types, and applications - being compiled and required a high degree of stability - are strongly typed.
Once you realize this, you will also realize that script languages PHP and Ruby and JavaScript [ Python, Perl, etc ] fall under a very specific easy to find umbrella.
Conversly, C#, Java, ASP... are also very similar and _could_ be found under the same umbrella.
Find out what type of programming you ACTUALLY do. Procedural, Imperative, Event Drive, Prototype, OO.... FIND OUT.
Step 2 - The Interview (More important than step 1) - once you've found the candidate, get one of your true developers into the interview. Time and again a line has been drawn between a "career programmer" and a "developer" or "geek" and a geek should know another geek, because they will share information like mating rabbits, and your "career developers" will get lost in the discussion. It's very possible that while they are catching up, the geeks will have already devised an approach to the company's problem.
Geeks are curious, and smart, and take pride in their work. It's a matter of pride to know why, and if they don't, to find out, and to make it work even if the prescribed methods fail.
In their spare time, geeks are geeking, and becoming better, smarter, stronger, faster. "Career programmers" use their time searching for the next highest salary, shmoozing for a cushy course to attend, and perhaps drinking beer (killing brain cells)
"Career programmers" are only in it for the money. Intelligent or not, I've always found inferior results from someone who doesn't generally care about the problem / logic at hand.
Step 3 - Architecture. Now that you have the tool, apply it to the project. A persons' preference and specialization is still a factor, but the manager hedging that "We do Ruby" is not an excuse.
I would agree that you can't test every framework or library can be tested to fit, but I think you would agree that a framework with a strong, open, and well-documented API is better (aside from bugs). With a true geek, API is all he requires to start laying the foundation on your application, and it doesn't require months.
PS - yes, geeks need sites like this to aggregate their data at the pace they are able to acquire it, but simply posting and reading here is not a clear indicator.
If you want people to head for a field of study, pay more.
That is why all the kiddies today want to be trial lawyers.
Every single person that came in was an mainly ASP or ASP.NET programmer.
in colleges or courses, the 'corporate' types, the 'clerk' types generally go with asp because they think (and kinda rightly so, due to microsoft vendor lock ins) corporations will want asp. there is also the delusion that says 'asp is more professional and corporate'. these guys are of the clerk mindset. they are rarely inclined to venture to anything else, and conservative in that regard. and it generally happens as they think too - a medium business connects a box to the outside world for something, of course it generally happens to be IIS, and they naturally need an asp developer, they ask it, they get one, vendor and language lock goes on.
what you were looking for, php/mysql/linux is a brave new world. there are kinda no limits there. you cant keep a lamp guy in there if you are not paying them enough and keeping them happy. the only thing they need to do to make noticeable amounts of side cash is to post a few bids and ads online in the communities, and make a small reputation for their name. if they bend over it heavily, they can start their own gig even. so its rather rare to find such people for more conservative corporate positions.
Read radical news here
I think one of the harder fields to break into nowadays are "computing professionals". While there's some accreditation involved, there's not much to go on - unlike a doctor, dentist, lawyer. While those professions have specialties within and you can't dig yourself into a new one easily (e.g. IP lawyer to family law), you computer guys are screwed: there's not as much financial incentive to upgrade, a wave of employment/unemployment and no set skill set. There's too many languages to learn and for creative professionals too many software pacakges to learn. I'm a hobbiest computer user and programmer, but as I go through job descriptions recently (DBA, web developer, programmer etc) my jaw drops at the skill requirement vs compensation.
I don't know how you guys/gals do it (all the skills required) but I'm impressed. My hat off to all of you. Its too bad 1) People like me with some apprecaition for the skills needed can't get into HR to give some of you a break 2) employers don't split up jobs more easily.
It certainly is incentive to create your own web-language, stiick it on your resume and say your the only expert in the world. ;)
I'm not being a karma whore with this post either. I think I'm doing pretty well for my self anyways!
the thing youre missing is, you can teach yourself lamp in a few days and build powerful apps with it. but like many things in work, there are always more complex stuff that needs doing, and there are more intricate ways they need to be done. its basically like chess - you learn it fast and can do stuff, but takes time to master.
Read radical news here
I can see whats going to happen: many projects are going to fail because AJAX applications are very difficult to develop for a huge audience and reliably and requires much more skill than just html.
not only that, but ajax requires much more time due to cross browser compatibility. and even the issues visitors of your site may have due to different anti virus/security vendors due to ajax.
Read radical news here
So where does one look to find a reputable freelance web developer anyway?
its like how you find good plumbers or contractors in real life. word of mouth is the best option. then communities (online tech communities). then places like elance.
Read radical news here
But I just learned it:
http://www.coboloncogs.org/COGS.HTM
cakephp, ruby on rails etc - dont go for any frameworks. because eventually some of your employers will want so absurd stuff that youll have to end up going back to basics, to php itself. start nice with php, become an expert, and employ your own devised routines and code snippets (which you will accumulate eventually) to speed things up without needing to tie yourself to a 'framework'.
Read radical news here
Except that the first pass into HR doesn't even involve people any more. A ton of companies have put their hiring process at the mercy of automatic matching systems. Check this:
By leveraging SmartHire, organizations can deploy job or location-specific hiring templates across the enterprise, allowing rapid, flexible hiring from non-traditional locations while helping to reduce administrative costs and eliminate the need for customization. Additionally, with enhancements to the person model functionality customers may more effectively manage the non-traditional workforce, while an embedded online I-9 processing tool will help to ensure compliance and increase operational efficiency.
I dunno about you, but just the idea of going to work for a company that uses "person model functionality" to "ensure compliance and increase operational efficiency" in hiring sucks a little bit of my soul into my stomach and makes me throw up into my mouth.
How is a pension supposed to turn a bad web developer into a good one?
It won't. Nothing can turn a bad developer into a good one. Ignorant to knowledgeable, sure. Bad to good, never.
But that is not the point the parent post was making. The point is:
A pension is evidence that the company might give a damn about you wanting to work for them.
It about keeping the good ones.
Life's a tale told by an idiot, full of sound and fury, signifying nothing.
Reading this makes me realize that I'm not insane to believe that I'm one skill away from being a legendary web developer. I've got a senior level skill set fluent in front and back-end development and technologies. I'm self taught/learned on the job and can do the whole kit and caboodle except for Flash. I just haven't had the bloody time to sit down and learn it.
But I can definitely assert that there is a massive shortage of even remotely qualified php web developers in SoCal, even entry level.
For one, I'm hounded nonstop by recruiters, to the point I had to get a dedicated voicemail to handle their calls. It doesn't matter that I have a job, they try to buy me out, or beg me to find someone for them. It's not just one or two, I've had at least 50 calls or emails asking me to help them find someone if I wont humor the position myself. Pitiful begging, even.
For two, I myself have been desperately trying to find an entry/mid-level php developer with front-end skills for months now. My HR can't find anyone remotely competent, recruiters have done nothing for us, I've even tried all my social networks. Everyone with the skills has a job.
And don't get me wrong, I would prefer someone entry level, looking to get their feet wet, who can learn and be trained. I'm very clear that our only requirements are a good understanding of PHP5, XHTML, JS, CSS2. That things like MySQL, AJAX/JSON, RSS, Zend Framework, or even an understanding of OOP and MVC are pluses, but not requirements. These are very basic expectations for LAMP development. Still, no luck. We've had two people make it to interview. :\
I mean it's good for me, being an employees market. I've had salary offers for twice my current pay right now (I'm staying because it's a personal favor to the owner for a set amount of time). But it sure sucks in that I can't get any help around here.
All around there's a massive demand and not enough supply. I suspect a lot of it has to do that the college educated kids aren't learning PHP in schools, and the dropouts find that freelancing doesn't pay enough to support the cost of living anymore out here. There's just not enough influx of new PHP developers to support the existing industry. And the industry has been taken very seriously since PHP5 and is growing at a tremendous rate.
Hogwash! The problem with web development is knowing the limits and oddities of various sub-tools, such as DOM and specific browser vendors; or even the quirks of something specific like Rails. It's NOT about mastering some magic equation or closures. Those who learn and adjust to this changing swamp of sub-tools are the most successful.
The biggest problem is lack of consistent and usable web GUI engine standards. This is what the industry needs the most.
Table-ized A.I.
That's because all the smart, skilled programmers are out working on the platforms and languages themselves. (Proprietary, Open Source or Otherwise).
No, its citizen programmers that are for diner.
Table-ized A.I.
I am 43 years old. I have been programming for over 25 years but just can't keep up with the new "state of the art" programming techniques/APIs and frameworks that seem to come out every year. When I was young and hungry, I would spend my nights reading computer books and newslists. Now that I know I'm mortal, I just don't want to do this anymore. I spent 20 years learning C++, Java and .NET - but just don't want to relearn how to do my job over and over again.
Am I a dinosaur? - perhaps, but I'm also yet another experienced developer who is sick of the constant change and will be soon making the move into "management".
Perhaps, this is the reason why at 43, I'm considered an 'old dude' amoungst my peers!
To my shock, I got an angry call from their HR department, who were actually calling to chew me out for applying even though I was "unqualified" for not having the required 6 years of experience.
The weird thing is that you got a phone call from them. Why would they not just send you a generic rejection letter, but actually make the effort to pick up the phone and take the time to call you personally? Something seems fishy -- like it was posted to satisfy some requirement but could get them in trouble if someone actually found out that it was fake and that they had no intention of filling the position -- if it existed in the first place.
I can't believe that J2EE is still being used. I thought it just turned out to be huge overhead to use session and entity beans, and they don't integrate with anything but a thick J2EE stack. Have they integrated ejb's with web services yet? Can you easily bind ejb's to visual controls? Do ejb's scale? How much is overhead on the container stack vs. actual business logic? How much development do you have to do that is ejb related vs related to the actual business logic?
Once you've gotten past the whitespace thing in Python you'll slap your forehead and say why didn't I use this language before? I do my development in Django and I am far more productive in it than in other web development applications. If you need to work in Java there's Jython. If you need to work in .NET there's IronPython.
There are a lot of other cool Python web technologies out there as well:TurboGears, WSGI, Plone, Zope, Twisted.
What major company hired Guido van Rossum, BDFL? What major company rolled out GoogleAppEngine (based on Django)? Ruby's pretty hot right now but so is Python.
"You'll get nothing, and you'll like it!"
Set a bone = what you do after somebody breaks one. I'm apprehensive there as I've neither broken nor set one, but I understand it's pretty painful.
But I've changed a few diapers. Not much to be afraid of.
Designing buildings: Well, looking around, it seems very easy to design a bad one (that covers 99% of them);
And there aren't many good reasons to invade, so we can pretty much put that one aside...
you had me at #!
I have not encountered the situation where H1B people were treated like dirt, but I don't work for Microsoft. Some of my H1B co-workers have been some of the smartest people I've ever met, and our country is much better off overall when everyone else's best and brightest decide to live here instead of there.
By the way, the industrial output of the US is at an all-time high. As a percentage of world manufacturing output, we're the same as we've been since the 80's (in the low 20s). While I don't want to marginalize the very real pain that has been felt by the outsourcing movement, it has not resulted in the gutting of America's manufacturing base as some people imply.
In other words, you'd have to give me a metric to prove that someone has "sold us out".
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Yes, but there is no appreciation of someone who is capable of learning new skills, development environments, and methods.
Try explaining to a recruiter, that you have done J2EE for 3 years and before that some other technology, etc. and that you could pick up .NET and be useful in less than a month.
Or try explaining that your Certification and extensive experience in database A, make you qualified to move into a position working with database B.
They would laugh at you and the clients wouldn't even want to talk to you.
Just look at Dice.com. Find a position that says anything like "Looking for individuals who can rapidly acquire new skills and work in a variety of environments".
All they want are hired guns that do one thing and do that very very well.
The Generalist is in a strange position. Obsolete, yet needed more than ever with the rapidly changing development tools and methodologies.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Easy. A bad web developer is the talented one that gets what he needs and then ditches the company without notice. A good web developer is the talented one that sticks with the company, even through some difficult times. Now, with that out of the way, lets see if you can fit the rest of the pieces into the puzzle.
I call myself a web applications programmer, one that covers C, C++, C#, Java, J#, asp, php, JavaScript, VB, HTML, cfc, SQL, MySQL, and any possible configuration of Windows, Linux, Unix - am I forgetting any?
I'm so glad I know C and C++. 90% of non-web development jobs are open to you. But on the web if you choose the wrong language you're screwed.
"I see here Mr. Jones that you have 10 years of Perl experience, 7 of Python, and 5 of ASP. Unfortunately we are using Ruby on Rails...".
Don't blame me, I didn't vote for either of them!
Recruiting talent for a Web project when your technology requirements eliminate most of the applicants is another.
Part of your initial design is going to be the selection of a platform and tool set that is maintainable. Part of this means doing some up front market research to find out what sorts of resources there are to support your platform of choice. If you've picked something for which there are no developers available, your project is screwed.
I've been asked to come in on the ground floor of several projects before requirements had been gathered or customers consulted. The senior architect had already selected the system and tools we were going to use with no idea whether they were up to the task or whether anyone else on the team was familiar with them. Projects like that deserve to die.
Have gnu, will travel.
It about keeping the good ones.
That's nice, but it doesn't help alleviate a shortage. If there's a shortage, then your company giving better conditions just moves people around and means that the person will be missing somewhere else.
A shortage of web developers means that there are, say, 10000 jobs and 9000 developers who could fill them. How does someone sticking with a company through hard times fill in any of the unfilled 1000 positions?
Your ryobi chop saw vs another chop saw is a pure garbage statement that just shows you do not understand the problem. Yes any developer can learn a new language, I have worked in many different in my 30years of code writing BUT and this is the big BUT. You are NEVER productive in a large scale project until you have used language X in anger and have made mistakes. No company in todays world can aford to carry dead wood so first choice is a person that knows all the kinks and problems of the language and can program around them. Anybody can do a small website in any framework. Only a dev experienced in a given language can jump into a 500 object backend and be productive. Hope that helps you understand lol
A better analogy would be asking Kanye West to write you a hit rap song in Sanskrit. Not. Gonna. Happen.
Can you speak Sanskrit? Would you even be able to recognize when he's bullshitting you? If not, now you understand how unqualified people are put in charge of major projects.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
I wish I could find more people looking for those kind of requirements in my area. I can program beautifully in PHP, XHTML, CSS, and I know MySQL, RSS, and other various langauges(C, VB, LUA, Java). Once you know a programming language, learning the quirks of another language is fairly simple. If you make a mistake, pull out the manual or Google for the answer. I even work in Photoshop and Illustrator along side other graphic design applications. However, every job posting I look at requires some insane set of skills or so many years of experience well over that most have.
I believe in beautiful coding that is easy to manage. http://www.nonamestudios.com/ (Feel free to view the source.) - All the XHTML output by the PHP coding validates as 100% XHTML 1.0 Strict. The XHTML is properly tabbed for readability as is the PHP coding as well. The MySQL database was designed by myself from the ground up.(I actually took a course in database design and I learned tons. I love databases now, before I hated them.) I even purposely built in extra security with extra tables with appropriate user access controls to minimize the chance of compromise or the damage that could be done.
Number of job interviews I have been selected for? Zero. I see plenty of job postings around the country and not as much in my local area, but none of them seem to know what exactly they need.
The difference between say PHP and Javascript is smaller than the difference between English and Spanish. Most computer languages are similar enough you should be able to get up and running on any of them a short period of time if you are well experienced at one of them. That can't be said about English and Spanish.
Part of the problem is the invention or should I say interference of HR in even the smallest company.
HR are not experts in complex skills such as programming. They can't distinguish between the guy that is a one trick pony and the gal that can adapt with the times and be creative.
What HR is best at is writing job descriptions (lists of skills) and match them like a computer. And they are good at head counting. That should tell you something.
If you want to change this culture then remove HR from the hiring process for skilled labor and make the hiring manager responsible for it. May be train the hiring manager in some HR skills.
As a practical matter, don't look for jobs at Monster, because you get sifted through the meaningless HR skills sifter. Instead network your way to a new job.
Busy helping non technical users of OpenOffice.org - http://plan-b-for-openoffice.org/
Well, for starters, if they paid to retain the employee, they wouldn't have a position to fill, right? Second, when they do get that opening, they can't as easily convince another good programmer to come on board to fill that position.
That was the point of this thread. The perceived shortage isn't really an actual shortage. It's like a high school dropout complaining that there is a shortage of companies paying more than minimum wage. There is likely more than enough programmers with the required expertise. It's just a lot of them have probably moved on to working in areas that actually pay more reasonably. Good programmers are very versatile.
I see these comments blasting all bosses far too frequently. I have a job opening: pays in the range of 75k, comes with 6% pension that you don't have to match, full PPO, not HMO, flexible hours, training budget and training goals, i.e. you need to do training to get your full raise - which is 3.5% a year not including promotions, three weeks vacation, 9 public holidays, 5 sick days, one personal day. Job requirements are PHP and MySQL, I'd like PHP 5 but I'm willing to train anyone who can demonstrate 5 years of Web development in either PHP 4 or another FOSS environment. I refuse to give tests, and I don't require a degree. I've had the job open for a couple of months.
I don't personally value classroom training, but if that's your thing I'll pay for it. If not, I'll portion out 20% of your week to play with stuff until you understand it. Or I'll buy your books. I send staff to get certified, and occasionally they take their new skills and get a better job. That's cool with me.
I filled it at one point, with a guy who I really wasn't sure about but he showed me work and came with glowing references. Turns out he was IMing his mate who had actually done the work he was showing me and who actually knew PHP, I figured it out in about 4 days and he was gone by the end of the week. I still refuse to test at the interview.
So what's my problem? I need a developer, not a programmer. I need a problem-solver, not someone who follows orders. I need a creative thinker, not someone who grumbles about requirements.
All the resumes I get from online job searches are from Romania or Singapore. Any local talent I get has either a Microsoft background who plays with PHP at home but has the complete wrong mentality for open source development or wants to be VP of something and expects to walk in getting 120k.
I work with maybe a half-dozen contractors who are exactly the kind of people I want working for me, but they make what they perceive to be better money working short contracts with no benefits and no job security.
We're out there, there are good jobs, and in my experience very few people who have value get fired, that really only happens at the large consulting firms. I'm at a medium-sized company with 300 employees total, the Web team is about 8 people.
I have never once in my professional life met anyone who fired someone useful or valuable. If you're getting fired there's a reason. If you're at a company that isn't helping you grow, move on. If you're at a company with a boss that doesn't want you to learn more and stay abreast of technology, move on. But sitting here pissing on everyone because you haven't been coddled into a life of luxury merely demonstrates that you're probably not mature enough to hold a position of responsibility for too long, and therefore we won't put you into the higher-paying jobs and we won't spend 10 grand a year on your training if we think you're gonna jump ship in less than a year.
Good people are incredibly hard to come by, and when I see someone who is "good people" but doesn't have the skillset, I'll take that over the guy with the masters and the fancy job record.
Oh, and the job is real by the way, IPRO.org for applications :-)
-- Religion is not an exact science
I know this is going a little far afield, but I wanted to say that a large percentage of the anti-H1B movement is not based in an anti-immigrant or anti-globalization mindset. Many of us are most concerned about the creation of a second class of workers who lack the rights of freedom of economic movement and the rights of free association.
I believe that the U.S. would stronger if we offered unlimited green cards to every engineer who wanted to enter the country so long as those individuals are not tied, like some sort of indentured servant, to a particular company or job. Freedom makes our country stronger; servitude doesn't.
Waltz, nymph, for quick jigs vex Bud.
I agree with this sentiment, and I think that pre-9/11 it wasn't such a big issue... but now getting any kind of residency status is such a long process. Every one of my immigrant co-workers had a nightmare story with immigration - I think one only got everything resolved when the local congressperson attached his name to a bill (which is apparently a huge percentage of bill amendments).
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Good point, except that I already told the guy that I didn't have much experience with PHP. What I do have is several years experience and had done some very advanced things with with ASP, ColdFusion, Oracle, MSSQL, Javascript, xhtml, css, then all the stuff like AJAX (with prototype), lightbox, behavior, etc. I know my stuff and have had a very successful career thus far. He just didn't know what else to ask, that's all. He shouldn't have been interviewing me.
Have I ever done anything real with PHP? Nah. Could I do something substantial with the language? You bet. I know this stuff and how to learn what I don't know. I think that if you are working in such a technical field (like a programmer of some stripe) then your most important skill is the willingness and the ability to learn new things. Without that, you'll soon be unemployed, and rightfully so.
blah blah blah
Well, for starters, if they paid to retain the employee, they wouldn't have a position to fill, right?
But somebody else would have an open position.
It's just a lot of them have probably moved on to working in areas that actually pay more reasonably. Good programmers are very versatile.
Web development requires completely different skills from systems or application programming. Besides, there is a shortage of good programmers as well.
It does not matter if it doesn't alleviate a shortage in general, it alleviates it for you.
Life's a tale told by an idiot, full of sound and fury, signifying nothing.
There are a lot of anti-Ruby/Rails memes out there, but I rarely see any evidence to support them. One of the most curious claims is that Rails has scaling problems. The oft-cited example is Twitter, though their scaling problems have nothing to do with Rails. DHH (creator of Rails, so admittedly biased) has a pretty compelling response to this: http://www.loudthinking.com/arc/000479.html My sense is that the Ruby/agile community has made critical insights into the fundamentals of development, which allow them to be substantially more productive then their counterparts in e.g. Java. I actually work at a PHP/XSLT shop, and while I think we've built a really nice platform, I often feel that we make huge fundamental mis-assessments of the relative importance of things like ease-of-development vs. "performance". Whenever I read Ruby/Rails blogs or books, I just feel overcome with the sense that these guys "get it", and understand the the human cost of development is so much larger than the mechanical cost (servers, bandwidth, etc.) I agree there's no magic bullet, and there's no framework or language that can stop developers from implementing bad solutions. But I think the typical warnings against Ruby are badly misinformed.
MOD PARENT UP
Add to that that some companies are either too cheap to hire good admins to set up web environments properly so the developer has to also be a jack of all trades in that dept.
You can also add the fact that if a client has got some problems internally on their networks
you must be able to bypass this so as to make your app 'work' in their environment...or else you get the old...'well this doesn't work so it's not a good product'.
More like stop being a cheap ass and get web servers configured properly...
If i could just code, I guess i would be much more advanced in my field then I am....
but i would not be able to set up a full domain with webservers and cache servers running
in a multi os environment.
It's been my experience that any interviewer who resorts to trivia and silly "trick" questions is usually an idiot who doesn't know how to conduct an interview. Most of the time, this means that the job isn't worth having in the first place. The best jobs I've had were always working for sharp bosses who knew better than such Mickey Mouse nonsense. The worst jobs I've had were working under idiots who thought they were geniuses (inevitably the kind of people who conduct these sort of "gotcha" interviews). If a boss isn't smart enough to have established your basic credentials before he even gives you an interview, he's probably not going to be smart in anything else he does either.
SJW: Someone who has run out of real oppression, and has to fake it.
I realize this thread is over, but for anyone following up, now Starbucks is doing it. Go to this site. Noisy, annoying. http://www.starbuckscoffeeonthego.com/
Those psych interviews are so funny and yet annoying. I can't believe they help anything. All they do is weed out people who don't like being asked in 16 different ways if they take money from the register, drown puppies, and smoke crack.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.