Well, it certainly takes a lot of hutzpah to make such sweeping declarations about software engineering based on three months of bootcamp training and a short period of job experience.

Let’s first get something out of the way. Coding is NOT the same thing as programming. Programming is problem-solving. When you solve a programming problem, you arrive at a solution. This solution is known as an algorithm.

Then you must express your solution, i.e., the algorithm, in the programming language of your choice. This is known as coding. Your choice of language may influence how you code your solution, but otherwise this is a fairly mechanical process.

People often mistake coding for programming. They think that if they learn a programming language (such as JavaScript, Python or Ruby), they’ve learned how to program. That’s nonsense, of course. Learning a programming language without understanding how to solve a programming problem is pretty much worthless. It’s like learning Mandarin and not knowing how to express your thoughts effectively or eloquently.

Make no mistake: problem-solving is difficult. Coding is relatively easy.


Programming is hard. It is an engineering discipline. Bootcamps cannot teach you this discipline in the short period of time they allot. They can teach you language syntax and how to solve simple programming problems, but that’s a far cry from what programming or software engineering is all about.

That so many companies are willing to hire bootcamp “graduates” shows that either they don’t really understand what software engineering entails, or they’re trying to hire cheap labour, even if the “software engineers” they hire aren’t really qualified to do a good job. Such companies profoundly cheapen the job title “software engineer.”


Your point about many applications sharing common functionality does contain a grain of truth. In practice, every software project from every company has unique requirements. While the overall nature of the application may be very familiar, it does need to be customized to those specific requirements. To that extent, application development could be partially automated.

The IT industry has not yet evolved far enough to support this kind of development automation, but the time will be coming relatively soon. Programmers are quickly becoming a commodity and research is progressing toward taking most of the grunt work out of programming. The very grunt work that you are asked to do now.

Eventually, only the best software engineers will remain to do the really difficult (and interesting) tasks that defy automation.


And there are a ton of unsolved programming problems. You’ll find them in Artificial Intelligence, robotics, Big Data, cloud computing, Internet of Things, modelling and simulation, games, mobile, Virtual Reality, and so on. Unfortunately, recent hires from bootcamps won’t be asked to work on these things. They’ll continue to work on the “boring” stuff.

230

230 claps
Richard Kenneth Eng

Written by

Mr. Smalltalk: https://medium.com/p/domo-arigato-mr-smalltalk-aa84e245beb9