How to get started in IT?

Lately, I’ve been seeing the question ‘how to get started in IT’ more and more often. I hear this question from my friends, their friends and I see it more and more often in various social networks. Seeing as more and more people are deciding to take an interest in this field as time goes by, I decided to try to give something of a hint in this regard as part of this podcast. However, I would like to warn you in advance that the answer to this question is not simple, as retraining is a process that consists of several steps and takes time. There is also no one foolproof way to transition to IT. I think anyone who has already walked this path can tell their own story. I decided to summarize all of my own thoughts on the subject in this article hoping that it will be useful to someone of you.

The IT industry employs a great many specialized engineers like programmers, administrators, DevOps engineers, database architects, testers and many others. However, there are also numerous non-technical employees like recruiters, managers, marketers, salespeople and so on. The latter group sometimes plays a very important role like explaining to a non-technical customer how a product works, or they find the right technical specialist to solve the customer’s problems. I dare say that without just these non-technical employees, contracting or consulting companies would not have such a big uptake these days. The two groups of specialists, the technical and the non-technical, complement each other perfectly and together push the process of creating extraordinary products. So before you start looking for a job in IT, ask yourself whether you really want to do technical work. After all, it is possible to do interesting tasks in IT, but only orient yourself in technologies, without a thorough knowledge of them. If you like to talk to new people every day and, as they say, “know people,” you might want to become a recruiter. If you enjoy going to meetings with clients, listening to their needs and relaying them to developers you may want to become a project manager. If you like to organize the work of others, are orderly and have an ear for people, you might want to become a Scrum Master who makes entire companies run more efficiently. Of course, each of these roles requires a different level of technical knowledge, however, just some orientation to the topic is enough here. So the first step on the way to finding a job in this industry is to ask yourself “do I really want to deal with technical issues” because this industry also needs people with other specialties. Only after thinking about the subject sincerely can you move on.

Suppose, however, after some thought, you decide to do technical work. You decide to go into programming, administration or some other engineering field. As you probably know, technologies are developing very fast, for this reason, during your work you will have to constantly further educate yourself and learn new things regardless of which path you choose. For this reason, too, you will have to catch up with your peers who are already working in the industry. It is possible, therefore, that the first months in your new job will be intense. Especially if you get a job in a startup, because there the pace of work is faster than in large companies. In large corporations, on the other hand, there is usually much less pressure, but the pace of personal development is also slower. I don’t have a clear answer here which option is better for a first job. Usually in a startup you can very quickly acquire skills that in a corporation you would take up to 2-3 times longer to learn for various reasons. And consequently, the potential earnings also grow much faster. However, you need to set yourself up for the fact that sometimes you will have to read or learn something when you return home. Personally, I recommend starting a career in a startup, but everyone has to make this decision for themselves.

Whether you’ll be working at a startup or a large multinational corporation, and no matter what growth path you choose, there’s a certain set of skills that every technical employee. Whether you will be involved in testing, game programming or anything else, you need to know a few basic tools.

The first tool is git. You probably know that applications or scripts are written in the form of properly prepared text files, which we call source code. But have you wondered how this code is developed? After all, several people in a team work on the same source codes. One adds some functionality, another corrects some bug, and a third tests some completely new optimization idea. After all, each of these people sometimes changes the same text files. So it would seem that after just two days each of them will have a differently working code and no one will have the result of all their work. Well, this very problem is solved by the git version control system. Git was created by Linux creator Linus Torvalds himself. Git is a tool that, among other things, just collects code changes made by many programmers and combines them into one. This allows code to be developed by people in any part of the world who have never even had to see each other in person. Today, Git is the basis for a great many even more modern technologies that are beyond the scope of this episode. And since it is the basis for other technologies, it is impossible to avoid it. For this, it’s worth starting to learn it even before you start looking for a job in IT.

Another thing we need to take seriously is a task control system. Every IT company uses some kind of such solution. The work of virtually every technical employee in the industry follows the same pattern. The employee looks at the list of tasks he should complete this week, takes the task with the current highest priority and when he completes it writes a short comment after which he closes it. From the point of view of such an employee, it is actually logging into the appropriate page, moving the rectangle with the name of the task from the “to-do” column to the “in progress” column and then moving it to the column titled “done.” Seemingly a simple action and seems at first pointless. I assure you, however, that it is not pointless at all. Someone who has prepared these tasks for us and is sometimes in another country watches the progress of the team every day. One glance at the task board helps him a lot in further planning of the work. If we don’t update our task board then not only do we make the work of our superiors more difficult, but we also make it clear that we haven’t done anything. It’s better to take such boards seriously and get familiar with one such task tracking system even before starting work. It takes just half an hour to play with an application like Trello, for example, and you will already know how we will perform tasks in virtually any company. Seemingly simple, but sometimes it’s hard to get used to it. For this I encourage you to start now.

It must be admitted that working in IT attracts introverts. However, I must warn those who are already downright antisocial and want to avoid contact with people at all costs. Working in IT is quite often a team effort. It is very rare to be the only person responsible for an area. Usually you are part of a team that you have to work with. This does not mean that we will spend the entire 8 hours in a few people writing code. Rather, it is a matter of not being afraid to ask someone from the team for help or clarification of an issue when we are no longer able to solve a problem ourselves. There will also be times when you will be in several people trying to solve a problem. Generally speaking, you will have time to do your tasks on your own, but be prepared to work together as well, because all the strength in a team that plays to the same goal.

The last thing you should absolutely have is self-reliance. Without a doubt, in the first days and perhaps weeks of working in a new position, many things will seem unclear and incomprehensible. This is only natural. Even experienced programmers will ask questions of their younger colleagues who have been working longer on this particular project. However, everything has its limits and your questions should be preceded by an attempt to face the problem yourself. If you ask someone on the team why something has been programmed in a certain way, they will probably give you a comprehensive answer. However, if you ask how some publicly available library works, you can expect an assertive answer along the lines of “read the documentation” or “ask Uncle Google.” Remember that a great deal of knowledge is already on the Internet and a very large amount of free code is available with documentation. It is also worthwhile to ask right away in a new job where there is documentation for the product that the company is developing. Sometimes it will turn out that there is none, but that’s another problem. In any case, before you ask someone from the team about any thing, try to answer the question yourself through all the ways you know. Remember that your new work acquaintances and boss are also watching to see if you learn, and will expect your number of questions to drop to a minimum over time.

One last comment regarding skills. You have probably more than once encountered such an opinion that working in IT, especially as a programmer, requires knowledge of mathematics. In my opinion, this myth was born in the days when in high schools we wrote some simple programs to calculate the area of a triangle or there other geometric figure. In the real work of a programmer, completely different skills are required, such as modifying code to a more concise and readable form, or finding logical errors in code. Of course, there are some programmers who program mathematical models, but increasingly this role is being taken over by analysts or statisticians. Nowadays, I wouldn’t expect a programmer to be able to solve differential equations. These people deal with completely different problems than mathematics on a daily basis. Therefore, if you want to become a programmer, you’d better focus on algorithmics and not mathematics.

We have listed some general skills of IT workers. Now let’s focus on what to do once you’ve made your specialty choice. Sometimes the question I get asked by friends who want to retool is “what sources to learn from?”. They usually expect an answer like “read book x” or “enroll in course y.” However, I must disappoint those expecting such a simple answer in advance. On more than one occasion I have met candidates fresh from a weekend course, who unfortunately did not know the basics. I have also more than once encountered people after several years of study in computer science who are not familiar with the git system described above. On the other hand, I came across a few times young people still in high school age who were intimidating in certain areas with their knowledge. The key to gaining knowledge in a subject is not choosing the right source, but the humility to explore it. There will always be something new to learn, always some new technology to tame. Even experts quite often read up on the latest changes in technology, because it’s simply impossible to keep up with it otherwise. Consequently, instead of asking where to learn from, just learn the way that is most convenient for you. Whether it’s online courses, books, documentation or whatever. If you have any friends who have been involved in IT for a long time, you will probably hear something from them along the lines of “there’s no point in learning from books, because they get outdated quickly.” And while you should agree with such a sentence, you should keep one thing in mind. This sentence comes from the mouths of sometimes experienced specialists. They can learn a new technology in weeks and sometimes even days. In fact, they only need to read a couple of articles and, based on the similarity to something they have already dealt with, they can cope by reading the documentation as they go along. However, if you are a novice, it won’t make any difference to you if you read a two-year-old book. After all, the point is to start your first job and not to become a master of technology in a few days. So learn as you are comfortable and most importantly, be humble, don’t pretend to know everything. Especially when it comes to a recruitment interview.

Another question I have received several times already from those interested in retraining is “is it worth it to get certifications”. This is where my opinion is clear. I think that at the beginning career, it’s definitely worth it to get some kind of certificate even before you start your first job. However, there is a condition. The certificate you want to get must be internationally recognized and have some value. You won’t impress anyone with a certificate for attending a one-day Linux course. If you want to show that you actually already know something, search the web for the phrase “best Linux certifications” or “best certifications for a Java programmer” and so on. Look on English-language sites. Quite quickly you will form an opinion of what is currently considered valuable in your field of interest. You will probably more than once find a ranking of the top 10 certifications for a given specialty. Choose something from the top three and start preparing. Personally, I prefer certifications that were preceded by a “hands-on” type of exam, that is, when you are given a laptop, a problem to solve and have some limited time to solve it. However, certificates obtained after an exam with closed questions are also sometimes well received. It is also worth mentioning that exams are quite often paid for and the higher the level of the exam, the higher the price. However, I think that treating one such basic exam as an investment will be a good direction. After all, if an employer sees a resume with no industry experience, but an interesting certificate in the relevant section, he may consider that he is dealing with a person who has already made some effort and spent money to train himself in the field. That is, he must take it seriously. Certainly, the employer will not pass by such a resume indifferently.

There’s one more thing I always advise my friends who want to rebrand themselves, especially if their work will involve frequent exposure to code. So primarily programmers, but also other specialties can benefit from this advice. Remember when I mentioned the git version control system at the beginning of this episode? Prove that you know how to use it, and how to write readable code. Create your own code repository on GitHub and make it publicly available. As programmers, you can put some simple Uber clone in it. As DevOps engineers, you can put some code configuring infrastructure in the cloud. Show your ingenuity. Don’t assume that your code will be used by someone in production. Only create your own repository and show it off to your employer. Even if the employer doesn’t like your code, you can ask what’s wrong with it and he will probably give you advice on how to improve it. As a result, for the next recruitment meeting you will already have better code and, most importantly, knowledge gained for free from someone experienced. I encourage you to create your own repositories and share them with the world not only at the beginning of your career, but throughout. It’s a brilliant way to get advice from all sorts of people on the Internet.

We get to the point where you are invited to an interview. Frankly speaking, in this industry there is no fixed pattern of such meetings. Sometimes the interviews are one-step, sometimes and three-step. Sometimes we are asked to solve a problem by writing code, sometimes we are just asked how we would solve a problem, and so on. No matter what the course of such a recruitment interview might be, I have only one piece of advice. Honesty always pays off. When someone asks a question that you don’t know the answer to, be honest that you don’t know and briefly let them know what steps you would take to find out if such a problem really occurred in your job. A simple “I don’t know, but I would check the documentation or search on the Internet” is sometimes enough. At recruitment interviews, it is very rare to find such candidates who already have total knowledge in the topics that happen to be needed in a particular project. Sometimes people with years of experience don’t know the answers to basic questions, because, for example, of the 8 technologies used in the project, they have dealt with six. So if you don’t know something, honestly admit it. A technical person will immediately notice an attempt to come up with something on the fly.

I hope these few general tips will help you find your new place in this extremely dynamic world. As is always the case when looking for a job in a completely new industry, it initially takes some time to catch up with those who are already working. Everyone starts a little differently, some start sending out resumes earlier, others later. I can only assure you that if you take to heart the advice I mentioned above, your chances of finding your first job in a technical position will increase significantly. It may even embolden you to negotiate a slightly higher salary. So I wish you the best of luck in learning new things and finding your new dream job. I also wish you success in your new position, once it comes along. Maybe someday we can meet on some project and learn something from each other?