Why do people think a 12 week course will make a non-technical person ready for a junior developer role? Most developers I know have years of deep experience with computers before becoming professional programmers. (Things like fixing driver issues, installing linux, patching games etc). I have several friends who went to bootcamps had no deep technical interest beforehand. They just heard that computer programming w…
> Why do people think a 12 week course will make a non-technical person ready for a junior developer role? I'm not sure many people do think that. But it was an experiment. If you assume that the tooling around "programming" or "product building" or whatever you want to call it will eventually be good enough that you can slot a generic human into a well-defined role then these bootcamps might make sense. We may get t…
I've seen this sentiment being thrown around a lot lately. I don't think it will ever be the case. There will always need to be someone who can build the tools or the tools that build the tools or the tools that build the tools that build the tools.
Let's use your auto assembly line idea to illustrate this. A good portion of auto manufacturing these days is completely automated, the body is assembled by robots for instance. Well, a factory had to build those robots, right? That factory probably bought some robot control software from another company who specializes in that. The company that built the robot probably didn't manufacture all of the components for the robot. For instance, their welding robot may have a wire feed spool that was manufactured by a company that builds welders. However, the company that manufactured the spool probably didn't forge the metal themselves, they bought it from a forging company. That company in turn bought ore from a mining company. The mining company mined that ore using an automated tunnel boring machine. The automated tunnel boring machine was built by another company that manufactures automated mining machinery, and the trail starts anew.
Somewhere down the line in every industry is an engineer who designs and possibly even builds components that are necessary for that industry to operate.
Now, applied to software engineering:
Even if we did have software that could automatically build a web application tailored specifically and exactly to what any given company wanted down to website design and SEO, that software would have still need to have been built in the first place. If that software was built by another piece of software and so on up the line, at some point there is a person who built the progenitor. Regardless of who built the original, wouldn't these pieces of software still have bugs? What if these pieces of software involved more software that could fix their own bugs? Well , who fixes the bugs in the bug fixing software?
Beyond this, what if there is a new feature that needs to be built out? Will the software be able to build out that new feature and integrate it with the existing application? If so, how will it handle conflicts?
As it currently stands, it takes a team of multiple professionals to simply maintain any non-trivial codebase. I don't personally believe that it is possible to design an AI that is powerful enough to do this kind of work without this AI having human levels of intelligence and creativity. In order for this AI to be able to reach this kind of proficiency it would have to be self aware. And then we are forced to ask the question: is self aware AI still AI, or is it alive? We are not ready to answer these questions. Until we are, there will always be a need for flesh and bone engineers of all sorts.
That ended up way longer than I intended.