As a software developer, do you become a specialist or a generalist?

As a software developer, do you become a specialist or a generalist?

Does a programmer or software developer goes in depth on a subject or choose breadth, that is, does the programmer becomes a specialist or generalist?

Nowadays, in this fast moving world, current popular technologies quickly become obsolete. Some professionals prefer learning a single set of technology mostly at the start of their career so as not having to learn a lot later on (as most are put aside).

These technologies are so vast - with plenty of customers using their systems - that they rarely if ever change drastically. Some businesses still have paying customers using old systems they developed decades ago. These clients still heavily depend on these applications, therefore the companies cannot blindly remove them and go with the latest batch of new technologies. They will however get less qualified people to do the job, because new developers are formed with the most popular (at the time) and usually among the latest technologies such as JavaScript or Python instead of Visual Basic.

On the other side, old systems are often times too difficult to setup for simple applications or to test the market for ideas. Imagine having to set up an Oracle Database just to know if a customer is interested with the product and consulting services. Some customers might want a Management Information System (MIS) only to track their records. Other can desire an intermediary system to transform data from one system to another - from their logistic to accounting one for example.

That's the reason many companies offer solutions with the latest technologies that are easy to setup and build Minimum Viable Products (M.V.P) or software to transfer data from one system known as Enterprise Data Integration (EDI).

Becoming a generalist is more difficult than specialising because often times - the nature of the technologies is different - requiring a different approach for learning. For example, if a person follows certification in Salesforce, he or she becomes excellent in this type of technology, that is, CRM. SalesForce has a solid foundation, making it to develop once you understand the basics and structure. On the other side, if you learn only how to develop HTML pages in SalesForce but also have to learn Front End Development, you will have a tougher time to learn this series of technologies, particularly the SPA and build configurations with webpack or others as the contrasting nature of this type of technology.

Both approach has PROS and CONS as you rarely see Java Developers out of work even if Front End Web Development using tools such as ReactJS, VueJS and Angular are gradually taking over the market.

I recently saw a job add paying a Senior Drupal almost twice than a Senior Web Developer because of a lack of demand of Drupal developers. So if you have mastered PHP years ago and specialised in Drupal, you still have a market that pay more than others that have more supply. They can choose to pay less as they have a much bigger pool of developers to select.