Yes, i will correlate this. At this point in time, i would like to continue this discussion after having had it last with Bilal Budhani. I am gonna explain a few things to everyone out there in what i believe the roles in each industries are and how they relate and should they differ.
I’ve been meeting some amazing people recently and discussing how they are solving problems in engineering. I believe in striving to solving complex problems with simple solutions. Most times, the solutions are mainly simple.
I hear people discussing that their company is hiring Ruby on Rails Developer/Angular JS Developer/Node.js Developer and so on. I don’t like that. I build software and that’s the main purpose. What TOOL i use to build it is a different problem altogether.
Anyhow, think of building a software in terms of building a car. Some people ask for Frontend Developers and some ask for Backend Developers. Think of backend developers as the guys who build the engine (and trust me there are a lot of parameters there) and think of frontend developers as the guys who build the look and feel of things i.e. building and fitting the steering wheel, the bonnet (hood in U.S, Canada..) etc.
In the manufacturing sector, you would obviously understand that there are people who expertise in each of these — just like that there are people in the software industry who would expertise in each of these. What most people miss out is that there are people in both the industries who want to and have been fortunate enough to work in both the segments. There are people in both industries i believe are the kinds who would know to build the Car as an entire unit.
The past decade of the web developer community which is also a software has seen the rise of SPA (Single Page Applications) which are used to build a software. So, in the rise and the era of SPA, there are frontend frameworks which you can think of like tools to get a job done efficiently. Tools like these in terms of software industry are AngularJS, BackboneJS, ReactJS, etc.
You need to understand that these are just tools. This applies to the backend as well. There are tools which will help people design Engines/Backend of the entire product with frameworks such as Ruby on Rails, Django, Node.js etc. These are just tools. The basic fundamental is You should know how to build a car in the first case. People have to stop concentrating too much on the tool.
There are guys dedicating a whole bunch of time in their life to build these amazing tools and i highly respect them. In the case when it comes to building the car or a software, you need the person who would easily and quickly learn to use the tool to build the car or a software. That’s whats important and that’s what matters.
Getting into the semantics of the above paragraph is that You need people who know to build the car. Period. If a person doesn’t think of the bigger picture and is afraid to use the latest tool which would help development then it’s a loss really.
As and when you learn the nuances of the entire process from A to Z, you will need to learn, understand each time that there are gonna be new tools and you will have to have the courage and the determination to pick it up, read and learn about it. Tools are important but don’t get obsessed about it. Different problems would need different tools, be open about it. This, i think would be beneficial in terms of Time, Speed, Energy you put into developing software or manufacturing cars. In both cases, it is important.
Learn to build the car and not just use the tool. Be a software developer and not just a Ruby on Rails Developer or NodeJS developer.