Over the last year or so I have noticed a disturbing trend brought about by the idea of "brining programming to the masses". Last April, according to Microsoft, there was a "growing community of 18 million recreational and hobbyist developers." Even IBM was getting in to the mix, with a project called QEDwiki.
I am a professional developer and have been a developer for over 14 years. I have a B.S. degree in Computer Science, did an internship at Martin Marietta (now Lockheed Martin) while in school, and have programmed in a wide variety of languages. All of that aside, I'm not saying that the recreational and hobbyist developer is bad. There are a lot of innovative ideas and applications that come from this segment of the developer community and they should not be left out in the cold.
The problem is that the market has started focusing more attention to this segment of the community. Just look at Microsoft's Express Editions of Visual Studio and SQL Server. These are great tools for the hobbyist developer, but they have a negative impact as well.
As the developer tools market focuses more on the hobbyist developer, the industry has started to view developers as a mass market commodity. The fear is that professional developers will be out of a job, replaced by a "mass market developer".
A "mass market developer" is usually at the low end of the developer spectrum. They have no formal training and are what could generally be considered to be a "code monkey", but in the derogatory sense. These are the people who stitch together snippets of code found on the Internet and in books to make an application, without having an appreciation or understanding what the principles behind the code or the concept of coding are.
This fear can be alleviated by simply remembering the axiom "You get what you pay for." If a company wants to rely on a "mass market developer", the result is usually an application that is very unstable, overly complicated, and hard to maintain. The result is that professional developers will be required to "clean up the mess".
The trend that I have been seeing is the increasing number of discussion forum posts by individuals claiming to be developers (mostly professional developers) asking what I can only call "monkey questions". These are questions that are so basic that they really shouldn't even be asked. Questions that show a complete lack of understanding of programming concepts and the programming language as well as a sheer lack of initiative to learn.
If anyone watches any of the developer community forums, such as the developer forums on The Code Project, you should quickly see this trend for yourself. To take just a sampling of questions I have seen over the last day (some of these have been summarized/condensed):
In my web app I am using Windows authentication along with provider model to store the user details in aspnet_Membership table. So when I create a new User from 'ASP.NET Cofiguration' website, the password gets stored in "Hashed" format in aspnet_Membership table.
Can I decrypt this hased password? If yes can I you please let me know how it can be done?
how can i get the numbers of days of a month dynamically by giving the month number and the year(not required)
Is there an easy way to assign a name to an already existing DataSet?
How to declare an array in c#?
Then you also have the questions that are written in "SMS Speak", like this one:
need to know hw 2d dwt wrks for images hv a class in 1d form.
The best are those questions that ask for someone else to do the work or are blatant homework problems:
Please, everybody watching this thread, cause it's very urgent, and homework!!!!
Given the frequency these types of questions are occurring, it looks like the developer community is seeing a large increase in the number of sub-hobbyist developers (or "mass market developers").
As an industry, software development is relatively young and still largely undisciplined (when compared to the other technical industries like engineering). I think this trend of "monkey questions" clearly shows the results of a push towards creating "mass market developers" and the steady decline of both the educational (both academic and real-world) requirements and academic standards in the industry.
It's time that the industry starts taking steps towards self-correction. Employers need to demand higher quality from their development staff, and realize that there is a trade-off between time-to-market and quality of code. The development community needs to start demanding better academic standards for computer science (and related) degrees and demand a basic level of programming knowledge from their peers.
Think about this: Do you want a developer that doesn't understand how to declare an array writing the software that runs your car?