
This question, perhaps, worries many people, especially university graduates. In this article I will describe how and in what ways you can get your first programmer offer. I was looking for a java-developer position, but I don’t think that the algorithm for finding a job will be very different depending on the programming language you choose.
First of all, to think about your future programmer, you should at least a few months before the start of the search itself. The algorithm is simple:
')
- Selection of programming language
- Enhanced reading of documentation with the subsequent solution of problems, analysis of examples and reading suitable articles.
- When at least some base is already there, you should invent yourself some simple project in which you will use all that you have learned.
- We invent a project more difficult, in parallel, do not forget that it is necessary to study the related technologies.
- It is advisable to put all this on git so that in the future the employer could see that the learning process was going on with you. I will tell you about the benefits of the gita below.
- Get yourself a programmer’s friend who from time to time could give you advice or mentor you (this is, of course, as lucky as anyone). In general, it is better not to rely on someone's help, but to do and develop yourself.
Now each item is more detailed.
Selection of programming language
If you are a student in a technical field, it is assumed that you are familiar with at least 3-4 programming languages and have a rough idea of what you want to do. Then you have to choose between what you like and what will bring profit and great prospects. For example, if you like Pascal, then most likely the job of a Pascal programmer will be quite hard for you to find, except at school, as a programming teacher. Accordingly, you will have a small salary and the growth prospects are rather vague (correct me if this is not the case, I studied Pascal only at school and he never met me again and I did not hear that any large-scale projects were done on it. This is all just an example). If you are not satisfied with this option, then go to the site -
TIOBE Index for July 2017 and see which is the most popular and profitable programming language and choose from them. If what you like coincides with what is popular and profitable - enjoy life and learn the language.
If you have been doing all your life, for example, marketing, and suddenly decided to switch to programming, then you can safely choose from that list of languages and begin to study it. In this case, of course, you will have to spend much more time studying the language and related technologies because it is assumed that you have at least some kind of university base.
Enhanced reading of documentation with the subsequent solution of problems, analysis of examples and reading suitable articles
When you have chosen a programming language, you can go to this item. I repeat, since I chose Java, using the example of this language, I will describe all the methods.
I bought a book to learn Java, the author of
Shildt simultaneously began to open
javaDoc and read it (Java documentation, and indeed almost every programming language, if it is not 1C, usually in English. Therefore, it is desirable that at least some kind of base). At the same time I solved
problems , watched tutorials on
youtube (there are plenty of them! A lot of material on each topic!) And made mini-projects. I switched from the PHP programming language, I worked with it for about a year and a half, so I could at least be able to program accordingly and for this reason, familiarization with Java went pretty quickly.
At the expense of materials on Java, I bring the most sensible, in my opinion tutorials, books and courses.
Online courses:
- JavaRush is pretty good for the start.
- Coursera - you can find many courses and not only in Java.
- Codecademy - for the very beginning will go.
Books:
Video tutorials:
In English:
We create simple projects
At this point, I think everything is clear. If you have problems with imagination, here are some ideas for the implementation of simple projects.
- transposition, multiplication, addition and other operations with matrices - Quite useful for the notion of arrays and cycles.
- Any tasks for recursion, factorials - play with the work of functions.
- Creating a notebook - practice working with reading and writing to a file.
- Creating a photo gallery - working with photos.
- A little more complicated - make a chat, at least single-threaded - try sockets and input and output systems.
- Make a dynamic website on Spring using the database. - try CRUD operations.
At the same time pass the tests. Here are a few sites on which a lot of different tests.
All anything, but knowledge of only one programming language will not do. If you are drawn to web programming, study web technologies in parallel, there are many of them. Here are some of the most necessary, in my opinion. To describe what and why I will not, you should be familiar with these words.
If you like to create desktop applications - this is the appropriate technology. In Java, for example - JavaFX, swing. To this, knowledge of both relational and non-relational databases is added.
Most popular databases.Creating "combat" projects
So, you already have a good base and you can go to this point. Here, I think, everything is also clear. The only recommendation is to be active and ask questions in various forums. Here is a list of the most popular:
Now I will describe a small life hacking how to get free training and a little work experience. These are various internships, there are many of them and they are useful. Internships, as a rule, are carried out by large companies, on internships you are trained, you do a project, you are mentor and at the output you gain knowledge + experience + experience in a team + project. Internships are usually free, but you are already paid for free work experience and a good project. If everything is good for you, then the companies under which you had an internship can offer you a job, but you should not rely on them, this is a lottery, it all depends on which hr-manager you get to, what technology, what mood. There are thousands of reasons to take you or not, and sometimes they are very absurd. Almost any student or graduate can get an internship, the duration of the internship is about 3 to 6 months. This path is the easiest and, in my opinion, the most correct. If you did not succeed and after the internship you did not make an offer - do not be discouraged. Make further projects and lay them out on git. Go to the next internship, if you are not a student of 3-4 courses and especially not in a hurry to get a job, it makes no sense. Go get a job now, and do not waste time on another internship, which you can get lucky and maybe not.
Internship List:
There is also an option for courses from the same companies, but courses are not paid and there are no guarantees of employment after their passage either, although they give a little more knowledge there than on internships. Just in case, here is a list of courses:
Summary writing
It is considered good form to write a resume in English. English is important and necessary and, in the IT sphere, sooner or later you will come across it in full. It is important for the employer that you describe such items as thoroughly as possible in your resume: where did you study, what did you learn, what did you do, what average score (for some companies this is also important), what technologies do you know, what projects did you do, how did you learn, knowledge of foreign languages, your goals, LINKS to projects (this increases the value of your resume at times), if you have publications, then you can also link to them. Version control systems are used almost everywhere, it is for this reason that you should also learn how to use them earlier. This will also increase the value of you as a specialist and make your resume a little more valuable. Do not be afraid to describe in detail in your resume the projects in which you participated and the technologies you used - it helps recruiters to understand that you have no problems in presenting your thoughts (this is also very important) and you can express yourself so that others understand you , and the engineer who will interview you will understand that you are guided in what you used when creating this or that project.
Further steps
When you have a little experience, knowledge base, several working projects and a well-written resume, feel free to start sending it wherever you can. Do not expect calls from recruiters to sprinkle on you the next day and do not be discouraged if they are few. After all, you are not an Oracle Oracle developer with 10 years of experience. Go to ALL interviews and decide ALL to TZ, even if you know that you will not go to this company. This is an experience for you and it is quite valuable. Interviews are usually asked standard things that you can learn here ->
Questions for Java junior developer Questions are the most trivial, for 2-3 weeks, sitting with a computer, you can easily prepare.
I received my first offer after 3 weeks of searching for work and after 8 interviews. After each interview, I resolved all the tasks on which I fell asleep and dealt with questions that were incomprehensible to me. This is very useful, since the questions are usually approximately similar and each time it will be easier for you and you will feel more confident. I also filled git with projects, which also affected calls and offers, but I wrote about this above. I purposefully went to a large foreign company, because for me personally, the fact that a company is large and foreign is a big plus. Do not settle for the first offer, only if it is not the company you dreamed of getting into. If you have a first offer, the second and subsequent offers are much easier and you can ask yourself for conditions much better. Needless to say, my friend programmer, after the third offer, raised his salary in himself twice.
In total, the job search took me about a month, but I found exactly what I was looking for. By the time of the agreement, I already had 4 offers in stock and I could easily choose between them. I, on how much it was in detail, described all the way from the beginning of learning a programming language to getting an offer. If you have questions, ask. Do not be afraid to be active, the initiative is welcome, few people are interested in working with vegetables ...
PS: I plan to write a series of articles on Spring and its application, including Spring Security, Spring Boot, Hibernate, and working with various data formats. Who cares, write in the comments.