Saying "I am an IT specialist" is about the same as saying "I am a doctor, a teacher, or a driver": that is, it is just a way of defining the general direction of professional activity. The field of information technology is multifaceted, and it employs completely different specialists. At the same time, the idea of professions and possible career paths in this area is usually very narrow and surrounded by myths. We'll look into the myths, the facts, and the real career opportunities in this article.
Specializations in IT
Choosing a specialization in IT depends on what tasks are interesting to you. Certain qualities and knowledge valued in this field vary from task to task. Therefore, it is important to understand what tasks the company solves and what specialists are involved in solving them.
Let's bring out the specializations as we include them in the task - so we can understand what key figures are involved in IT companies and how they are related to each other. But first, we need to talk in detail, what are the levels of specialists, and so, the ranks of programmers:
- Junior is an entry-level position. But some juniors are confidently close to the middle. Juniors have a minimal set of knowledge that allows them to do uncomplicated tasks.
- Middle is a midlevel specialist who is well versed in his business
- Senior is a leading specialist, who is much more skillful, he knows more than the average specialists in the field in which he works. He is deep and confident in his tasks, can work within the project team, does not need strong control, he always has several solutions for one task.
Finally, tasks and the specializations:
Everything starts with setting the task and discussing the goals of the client. At this stage, the main role is played by the team of analysts. Their task is to understand, describe and agree with the customer the goal of the project, to go into detail, and ask the right questions so that the output will be a technical description that the rest of the team understands.
Analysts need to understand the client's business. Analysts are researchers and interpreters. They speak to the client in terms of business goals and objectives, and to the team in the language of requirements and technical specifications.
The next role is that of a technical architect. His tasks are:
- to underline the main parts of the system
- integration between them
- choose the tools for development
The Architect is the main consultant for the development team. Usually, these specialists have several years of experience as programmers on different platforms and programming languages. The architect often communicates with the client. After the architecture is created, he accompanies the development, reviews the code, checks for compliance with the basic principles of the architecture, helps find technical solutions for complex cases.
Once the requirements and architecture are understood, the process of developing the program code begins. The programmers write the code, using the selected technical tools. It must be said that in IT at the stage of selection there are team discussions, where everybody can share his proposal, show what technologies or tools would be suitable for the solution of a particular problem.
In the process of writing code, programmers find inconsistencies of requirements, unclear requirements and ask questions to analysts and architects, and almost the finished product is sent to testers. The developers continue to write code, fix the bugs found by the testers, and fine-tune the system.
The goal of the testing team is to determine the quality of the developed system. This specialization encompasses many areas.
Test designers create test scenarios and data variants, and testers use these scenarios to detect bugs or make sure everything works as required. Test scenarios are written in parallel with code development when the requirements are ready. They need to be ready by the time testing starts. Creating test data is a research job, and for complex technical systems, the amount of test data can run into thousands. Test designers must have a good understanding of the client's business and priorities, almost at the level of analysts.
The project manager is fully responsible for the outcome of the project and for keeping the customer happy. He gathers the team, interviews and hires people, organizes the work from the high-level project plan, works with risks, solves day-to-day problems, and delivers the finished system to the customer.
There are other directions of the career path. You can choose the expert path or move toward management. Up to a certain point, these two directions can be combined. For example, in the role of technical leader of a small development group. If you manage 2 or 4 programmers, you will still have time to write the code yourself. The tipping point comes when you start managing a group of 8-12 or more people or move to the role of project manager.
Moving between expertise and directions is possible. Some stand very close. For example, from a test designer to a novice analyst is one step. You need the same qualities - an analytical mindset, the ability to describe the behavior of the system, the willingness to share knowledge and advice.
All IT career options are achievable if you have some entry-level and a willingness to invest time and effort in your training.
Choice of specialization
This point is most relevant to developers because there are many technologies. Here we have a double-edged sword. By choosing the most popular technology you compete with more people. By choosing a less popular one, you reduce your chances of finding a job. You might try to look at the number of vacancies for juniors, for example on Jooble, and then compare it to the general numbers of opportunities.
We can distinguish such factors in the choice of technology.
Location of residence.
If you are tied to a certain city and don't want to move, find out:
- How many companies are using the technology in your city?
- How many companies provide internships and internal courses on this technology?
- What is the average level of earnings on this technology in your area?
- It is necessary to communicate with representatives of this direction, who have been working for quite a long time and are oriented in the industry.
If you are not tied to a place:
- In big cities there are always bigger salaries and a larger labor market, i.e. it will be easier to find a job.
- There may be an internship in some city with a company - a great opportunity.
- There are options for remote practice/work.
If you like doing specifically UI or working with databases, look for a job in that direction.
Build on your already developed strengths and skills.
This can be quite a good base for moving in a new direction. For example, if you loved administering Linux in school, why not become DevOps?
Ease of entry.
It takes much less time to understand technologies like HTML, CSS, WordPress than it does to learn Java or C# along with all the frameworks. However, the earnings ceiling won't be as high either, especially if you go to get your first freelance practice. But it can be a great entry point for further development.
Entry points for the first job
- Help from acquaintances, for example, to make a website furniture store for a friend.
- Freelancers you know can give you their simple project for little or no money but on the condition that they will point out your mistakes and give you feedback.
- Participate in any university programs that help you get a job. Talk to people in the department, see if they can give you some tips.
- Startups or just personal projects by people who are already working somewhere. No big budgets, but the requirements to the code and knowledge are minimal there, as long as it works.
- IT-companies courses, after which employment is possible.
- IT companies that recruit people for paid/unpaid internships.
- Entering a related specialty to gain experience. For example, going into manual QA to move into Automation.
The main rule for you is: better a bad job now than a good job never. Any development experience is much more valuable to the customer than your theoretical knowledge. Think of the experience as an "investment" in the future (in a salary, for example) and the more your "investment" is, the more "dividends" you will get in the future at a job with a better salary.