What Lumifer said. All these internet schools are great for people who have the ability to program, so now they all have an opportunity too. But there is a limited number of people with that ability. We will have more programmers, but probably still not enough.
Also, it seems to me that the programming jobs are getting more and more complex. Fifteen years ago, I could make decent money by coding desktop applications in Visual Basic. These days I am using Java + JSF + PrimeFaces + EJB + JavaScript + JQuery + SQL + XML + HTML + CSS + Maven to make an application that in some sense is actually more simple, but it has a web interface, which is required a lot these days. Compare how much time would it take to learn one technology vs. almost a dozen of technologies. (But if I tried to get a similar job in the next company, they would probably complain that I don’t have experience with Spring or Struts or Hibernate or Selenium or whatever else. Unless my knowledge is perfectly tailored to needs of one specific company, I have to learn more technologies than I will actually use.) What are all these technologies used for? Essentially, you read a value from database, display in on web page, let the user edit it, and store it again in database; or display the data in a table, and allow user to sort or filter the table by individual columns. Somehow this requires dozen programmers and five years of work.
The internet courses also have a huge rate of dropping out.
What Lumifer said. All these internet schools are great for people who have the ability to program, so now they all have an opportunity too. But there is a limited number of people with that ability. We will have more programmers, but probably still not enough.
Also, it seems to me that the programming jobs are getting more and more complex. Fifteen years ago, I could make decent money by coding desktop applications in Visual Basic. These days I am using Java + JSF + PrimeFaces + EJB + JavaScript + JQuery + SQL + XML + HTML + CSS + Maven to make an application that in some sense is actually more simple, but it has a web interface, which is required a lot these days. Compare how much time would it take to learn one technology vs. almost a dozen of technologies. (But if I tried to get a similar job in the next company, they would probably complain that I don’t have experience with Spring or Struts or Hibernate or Selenium or whatever else. Unless my knowledge is perfectly tailored to needs of one specific company, I have to learn more technologies than I will actually use.) What are all these technologies used for? Essentially, you read a value from database, display in on web page, let the user edit it, and store it again in database; or display the data in a table, and allow user to sort or filter the table by individual columns. Somehow this requires dozen programmers and five years of work.
The internet courses also have a huge rate of dropping out.