Choosing a programming language that will fit your career aspirations
© Shutterstock / Grumble
What should a person who chooses their specialty pay attention to? The market demand, the prospects for development and the entry threshold, of course. Things are a bit more nuanced than that — this article is meant to help you choose a programming language that will fit your career aspirations.
As you already know, there is no longer a profession as a “programmer”. There is a whole bundle of professions, and representatives of one will hardly consider representatives of another profession as their colleagues.
At the moment I can distinguish the following specialties:
- Embedded development;
- Web development;
- Mobile development;
It is possible to allocate some more conditionally programming specialties like automation QA, DevOps, administration, etc. but I will not dwell on them in more detail, although all these specialties are interesting and allow you to earn good money.
What should a person who chooses their specialty pay attention to? The market demand (the number of vacancies and wages), the prospects for development (whether it will not be necessary to retrain soon, since the specialty will not be relevant) and the threshold of entry (how much will it take to study and how easy it is for a newcomer to get the first job).
Nowadays, in any device that surrounds us, the amount of chips is larger than in many computers. Televisions, refrigerators, cars, telephones, machine tools, industrial equipment. Anything, including even an electronic cigarette. All the devices work with the use of electronics, which someone has to program. And someone should write this program. That’s exactly what embedded developers are doing.
The main language used by them is C ++, but also an assembler, and even higher-level languages like Java are used. Naturally, this is not exactly the Java that is in Enterprise. All these languages for this specialty are related precisely to the scope of application-specific iron, very specific tasks and proximity to the lowest level: wires, electricity, radio waves.
C ++ and assembler languages are not the easiest. The fact that apart from them you need to know specific hardware does not make the task easier. On the other hand, the work is interesting and with a lot of challenges. If you like programming the Arduino, doing your Quadrocopter robots, programming alarms and writing your own firmware on Android, you’ll like it.
A separate bonus is how the workplace of the embedded developer looks. If the other programmers have a regular computer and one or two monitors, then the embedded developer is a real cyberpunk. So if you like hardware, C ++ and wires, then this profession is for you.
Right now, even the smallest company should have its own website. The American market, for example, is full of offers for every taste and purse. For a long time, everything was completely occupied by PHP in this market, except for specific sites.
From the developer’s point of view, everything is very simple in this area: the entrance threshold is very low, the market is fairly wide, which makes it easy to start. Although, for the sake of justice, I must say that due to the ease of entering the market, salaries in this sector have remained the lowest in the industry. Many people from the sphere of the web development want to either change the industry or the language (no more PHP). Speaking of, there is an attempt to replace PHP with Ruby, Python or something even more exotic.
Mobile (Android & iOS) development
There’s a relatively low entry threshold as a small application for Android / iOS can be created by an ordinary student at home. There is nothing difficult and it is quite possible to get good experience. The reasons to choose this sphere are:
- Lack of specialists with 15-20 years of experience in this field (for obvious reasons)
- A huge market request (not to have a mobile application is simply embarrassing to almost any company)
- A shortage of qualified personnel, and —consequently— steadily growing salaries.
However, there is one nuance: the need for design and quality imposition has not disappeared. Moreover, it must be performed by a front-end specialist. Therefore, you have to be prepared for the fact that you will use Photoshop as frequently as your favorite IDE. Well, it’s simple: someone must do it.
First, let’s talk about what it is. It is about the development of programs (or rather, integrated enterprise management systems) for large companies. All these programs have the following features in common:
- The monstrous complexity of the subject area. Suffice it to say that even theoretically one person cannot understand how everything works even in one enterprise.
- Huge amounts of data. Terabyte databases, gigabyte files of transmitted data are all about Enterprise. It is now considered that there is no separate direction for Big Data. All these approaches are applicable to most enterprise developments.
- A large number of legacy (i.e. obsolete, but still in use) systems.
- A huge number of external integration with other systems. On average, each enterprise project is integrated with at least 3-5 other systems.
- High requirements for fault tolerance and preservation of transactions. What is not surprising is that such a transaction may well carry data on a multi-million dollar deal.
- The high cost of making any changes, since each change can not only affect the system itself (that is, it should be fully tested), but also all adjacent systems (that is, they also must be tested).
- Extremely conservative attitude to the systems and frameworks used.
Of course, the choice is yours. Good luck!