At Haulmont, we often talk to newbies who don’t know where to start in IT. We gathered useful resources and rankings, and also asked the leaders of our program for hiring aspiring developers how to research the market, choose a programming language, and what not to forget at the interview.
- Choose a niche and then choose a programming language
Development has many directions. Some want to go into Front-End, some want to go into Game Dev, Enterprise, Mobile or Back-End and so on. How to choose the best one and where to start?
Of course, it’s better what you like. But there are more specific indicators you can lean on. See if there are many positions open in your chosen niche, what the entry threshold is, and what the prospects are for growth. Research job rankings and salary levels. For example, here is a detailed study from hh.ru with a breakdown by region and job format (office/remote).
You will notice: a good salary depends not only on developer experience and niche, but also on the programming language. For example, according to a study of GitHub – the largest web service for hosting (that is, storing) IT projects – the top ten popular languages is JavaScript, followed by Python, Java, Typescript, C# and so on.
Github.com programming language ranking
The above GitHub ranking is just one of the studies. To figure out which programming language to study, look at the rankings by area. Then you’ll see: mobile development is dominated by Swift, Back-End by Java, Front-End by JavaScript. Choose a language within your area of expertise. The more popular the language, the more open positions for it and the higher the competition.
You can go not the mass way, and niche – that is, learn a narrower language, such as Kotlin, Go, Rust, Ruby. By the way, the positions with the knowledge of these languages can be paid better.
- Choose an internship/employment program
If there are many IT-companies in your city (this is especially important for Moscow, St. Petersburg and some cities with a population of millions), look for their areas of expertise and learn a programming language from scratch. Some employers, in the conditions of high competition, are ready to invest in the development of their employees, and it can be a great opportunity for you.
Such programs can be short (from a couple of months to six months) and long (from six months or more). The difference between the two is not just time.
Long-term internships are usually designed for entry-level professionals. Most likely, your training will not be paid and will take a long time, but you will have a mentor, an opportunity to learn the programming language and to see the work of IT-company from within.
At short internships, young developers often learn specific technologies – Spring, BigData, UJS, React – and how to work on projects. But everything depends on the specialization of the company and the chosen course. A knowledge of the basic programming language comes in handy.
If you want to learn and get a salary and professional experience at the same time, choose the training and employment programs. At Haulmont, we have a program called Bench. Since we don’t train developers from scratch, we wait for specialists with good knowledge of Java core and offer jobs and salary right away. Young colleagues get familiar with our technology and functionality of the real client solutions, the common standard of code design, our Jmix platform, technologies and frameworks we use in the company. Other companies have their own terms and offers – don’t be afraid to ask.
- Resources for studying and self-education
First, let’s talk about students. The fact is that you have an extensive list of free and really useful licenses and software from leading manufacturers of software and technologies. For example, JetBrains, the authors of the worldwide popular IntelliJ IDEA development environment and Kotlin language, provide students (and teachers too!) with free educational licenses. This package includes access to nearly 20 of the company’s products and development environments, including IntelliJ IDEA itself.
Sooner or later you will have to learn about version control systems and repositories: you can’t do without them in development. So it’s a good idea to check out Git and GitHub right away.
Git is the most popular version control system. It allows you to save code in checkpoints (so that you can roll back to a state where everything worked in case of an error), and track changes to files and edit them with other developers. The version control system also comes in handy if you’re working on team projects.
GitHub – a web-service, a kind of social network for developers, where you can put your code and ask questions, communicate with the community in the Open source projects. In addition, the service provides students and their teachers a package with free access to GitHub Pro, cloud services, development environments and domains.
To use the licenses, you need to confirm your student status – you can easily find the necessary instructions on the service pages.
There is a rich list of products and educational programs from Microsoft. However, some services are available with a university license. If you are unsure, ask if your university is enrolled in this program.
But what if you are no longer a student? Here we can’t help but talk about courses and online schools – there are now many for all budgets, and they are easy to find on the first search engine query. From non-obvious solutions, we advise to pay attention to the training from the authors of programming language that you want to master, or from the leaders of the IT market. For example, there are courses from the already mentioned JetBrains. The program has modules for absolute beginners. There are also resources to prepare for certification from Oracle, one of the developers of Java. They will be useful for more experienced professionals. And don’t forget Git and Github – even without the student package, knowledge of this version control system and web repository is essential.
Of course, development is about constant self-learning. So books, YouTube videos, and topical resources should be a regular routine. Read technical content on Habr and Tproger. On these platforms, developers share their knowledge and experience, companies (and your future employers) blog about their technology and new releases. This will allow you to stay up-to-date on IT news, popular technologies and trends.
- Don’t be afraid of the test assignment and the interview
Yes, to get into internships and job programs, you have to take a test assignment and interview. For many people, this comes as a surprise and stress. But thanks to the test, you’ll know for sure if you have enough knowledge and if you’ll be interested in learning. It usually takes a couple of weeks to complete, but you can always negotiate a time frame that is convenient for you.
Test passed successfully? Let’s go to the interview. Again, note that in each company they are different. Although one thing is certain: do not be afraid that you will be tested. When we interview junior developers, we do not expect deep knowledge in the development of enterprise applications. Focus on object-oriented programming in general and Java Core (or the language you learned). Talk about the features of the language, its syntax, and basic classes.
Often novice developers talk about their education and work experience (if any), but forget to talk about the technologies they are familiar with. If you know the basic frameworks: Spring, Hibernate and know how to work with tools like Git and BugTracker – be sure to tell about them. This will be your advantage in the eyes of the employer.
Be honest and don’t overestimate your knowledge – it will be readily apparent during the meeting. In addition to theoretical questions at the interview, you will be given practical examples to see how you understand the code. Here you can show your real knowledge in practice.
- How to stand out among other beginners.
If you already know the basics of the language, think about your own project. Take a subject area that interests you, invent the task, decompose and automate it. Yes, there will be a lot of complexities, bugs, and unknown words. But in the end, you can get experience with which to move forward.
Then post the project on GitHub – it’s a good thing you’re already familiar with it – and attach the link to your resume. The employer will be pleasantly surprised by your familiarity with the popular web service and general involvement in Open source.
One more thing: most of the documentation for the programming language, frameworks and technologies, as well as books and articles about current technologies, are written in English. So if your level is still “London is the capital of Great Britain,” there’s a good reason to improve the situation.
We hope these tips will help you get started. And what advice would you give to beginner developers? Share your experiences.