Over the last ten years, there has been a boom of boot camp programs and schools that guarantee to make you a competent developer in a matter of weeks or months. This is extremely hard because if you are not a genius, it will take a long time to even get a job in the field. Just passing a coding interview question is very difficult and should be clear to people trying to break into tech. It is impossible to become an engineer in a matter of months.
Software Engineer as Title
A while ago, I was watching American Ninja Warrior with my wife when a guy with the title “Tree Surgeon” was displayed on the TV. That caught my eye and I had to do some online search to see what it was about. To my surprise, they are also called “horticulturist maintenance engineers.” At this point, the term engineer has been misused everywhere because, to any career or profession, we have appended “Engineer” at the end. Nothing against those workers but “surgeon” should be left only to surgeons. There is nothing wrong with using horticulturists or even simple terms like a gardener. The crazy need to be an engineer is beyond my comprehension. I believe that the same is happening in tech.
In the Dictionary of Computer Science, Engineering, and Technology (2017), Software engineering is defined as a systematic approach to the analysis, design, assessment, implementation, test, maintenance, and reengineering of software; that is the application of engineering to software.
Thus, it would be impossible for a person to become an engineer without learning how to integrate and apply those phases in software development. Furthermore, it is ridiculous that by learning a front-end framework/library like React in a rush, a person has already the title of “engineer”. I have seen titles like React Engineer which to me is not correct because an engineer should be able to use React as a tool when needed and not apply React to all the problems. An engineer uses libraries and frameworks to speed up the process of software development. However, an engineer has the knowledge of creating a complex system from scratch if needed. Bootcamps are shortcuts to creating simple apps without building expertise in the web platform.
Titles in Tech are Extreme
During the creation of the (now-dead) WebPlatform, there was a video that shows experts in the field of web development with different titles including Web Technologist, Open Standard Manager, and more. In the same video, there was Tim Bernes-Lee, who had the title of Web Developer. He is the father of the Web and the real developer of the Web. However, the title for the video did not have “Creator and Mastermind of the Web”. My point is that we should be a little bit humble with a title that should match our experience.
The tech field is crazy with the title thing (I blame LinkedIn), I still remember how proud some people were by adding Ninja to their titles on LinkedIn and resumes like Front-end Ninja, JavaScript Dev Ninja, CSS Ninja, etc. At least today, not many people use it (Thanks goodness). The same problem that titles inflation we have with designers can be applied to developers. Product Designer, UX Designer, Web Designer, Information Architect, UX Researcher, Visual Designer, Interaction Designer, UI Designer, UX Strategist, UX Architect, and many more. Nobody wants to be just a web designer or a designer, the need for title inflation is here and it is difficult for newcomers because they don’t know what to be and where to begin.
In terms of a developer, a Programmer, a Software Developer, and a Software Engineer perform the same tasks which is writing software to solve business or user needs. Fancy titles are just confusing but one thing for sure is that it would be challenging to become a real engineer coming from a Bootcamp.
Programming is a Constant Struggle and Practice
Even basic programming skills are hard in a school setting. Doing programming professionally is even harder. It is like being a basketball player, you can play basketball at home or at a club as much as you want. But you cannot compare yourself with the pros because it is very difficult if not impossible to beat an NBA player or even share the same court with Lebron James. Calling yourself an engineer after a boot camp is just crazy, to say the least, because the lifelong journey that takes for a professional developer to learn the skills cannot be simulated by a person that learned to code in just a month or two.
Learning React does not make you an engineer, it is the first step in your journey to become a developer. There are people learning React to later learn JavaScript instead of the other way around. There is some struggle required to become a developer. If you had to deal with browser differences and fight with different versions of the same browser in the past, it will make you a better developer because you had faced a lot of problems and know deeply how a browser works.
Frameworks change over time. The only things that stay are the knowledge built during the years as a developer and the general concepts learned independently or at school like data structures and algorithms because they are not part of any of these boot camp programs. Software Engineers don’t only program, they have knowledge of operating systems, system analysis and design, computer architecture, programming languages, data communications, databases, and more. Just React to be hired is not enough for an engineer.
They Are Lying to You
The unfortunate truth is that you are not a software engineer if you are just learning how to create an app with React. There are more nuances that are carried by software engineers. Coding and coding well are just parts of them. You don’t need to go to college but a university could be a shorter path to becoming an engineer because of what you are exposed to during the 4 years of a bachelor’s program. Also, consider that what you “learn” on those programs for a lot of money (some including a percentage of your salary for a long time), can be learned independently online with Coursera, YouTube, Udemy, and some community colleges for cheaper prices and maybe higher qualities.
My advice is to avoid this shortcut path and ask a friend that knows how to code to be your mentor while you learn from the online resources that I mentioned previously. Furthermore, invest in creating applications from scratch without frameworks so you understand how things work that later on will help you understand why things are not working. Expending that much money on something that is unrealistic is not advisable.
Reference
Laplante, P. A. (2017). Dictionary of Computer Science, Engineering and Technology. United States: CRC Press.