A few years ago, when I was looking for ways from 1C programmers to Java developers, I wandered about in the dark, trying to find a door I was not sure of. I tried to find success stories, but in addition to a couple of comments I didnât google anything. The Java world looked huge and the number of frameworks was endless. It was completely incomprehensible: what to teach, what not to learn, what is needed in work, and what nobody uses. If you want to go to Java, get lost in the endless names of technologies and frameworks and want to find out which ones need to be studied and which ones to ignore - this article is for you!

Some initial assumptions
- in this article we will not discuss the question âwhy?â, we will only - âhow?â. If you came here, you yourself know why.
- I never received any education related to IT, so my recommendations are recommendations from a person and to a person who, at the time of the start of learning Java, never wrote on anything other than 1Ca. If you have a diploma in software development, some of the recommendations may be superfluous.
- I will try to draw a picture that reflects some kind of average vacancy. Naturally, if you want in some narrow, specific direction like big data or vice versa embedded - you better learn more about this direction.
The bad news
Firstly, if you decide
to betray 1C to switch to Java development - do not expect the path to be easy and fast. Most likely, with due diligence, you will spend no less than half a year on preparation, plus no less than a year, to get out of the June.
Secondly, get ready that if you are now the top 1Snik - your income is likely to recover when you become a confident middle. As a rule, this is not less than 2-3 years of practice, but ultimately it all depends on you.
Thirdly, do not expect that your 1Set experience is interesting to someone here. You can have 100,500 successful projects and the entire wall in 1Snal certificates - this will not interest anyone. You will be a June, they will talk to you like a June and you will have tasks like a June. But here there is a spoon of honey: even if you are not a top 1Snik, in SQL issues, most likely, you are reaching for Senior Java developers.
A couple of very hackneyed tips that you have already heard three dozen times, but believe me, they work 100%:
- Spending 1 hour every day is much better than spending 7 hours once a week. If you decide to go, go. No excuses. Everyday. All right, you can rest on Sunday.
- If English from notes val - improve it! This is a skill that will come in handy: not only will almost everything you can read be in English, but you will also need to write code on it! Most likely, the first thing you need is the ability to read and understand what you read. With listening and speaking you can wait a bit.
Training. Language Basics
You should choose a language. On the Internet, a bunch of articles with comparative characteristics. Also, you can drive the names of the language into the search for hh - see how much you like what you see there. Pay attention not only to the frantic salaries and beer on Fridays, but also to the number of vacancies, and most importantly the number of vacancies for which you are ready to take the June.
I chose Java. All further recommendations will be given in this context if you choose a different language - a significant part of what is written here may lose its meaning, but you can draw general ideas. You should probably look in the direction of PHP, because Bitrix and the transition to it may turn out to be easier in terms of the administrative barrier (is 1C there, is 1C, what's the difference? ..) and in terms of the absence of any streams and method references in the language (although they wildly high).
If you choose java too - donât bother with Java EE, you only need Java SE. What is Java ME and Java FX is generally better not to know)
So where do you start? I do not advise you to rush to buy the two-volume Horstmann and thousand page Spring 5 for professionals and try to learn all this. Even if you tell all this by heart, knowledge not supported by practice will disappear very quickly. Start with online training sites for programmers. I solved JavaRush. Probably reached level 15. It took about 1-2 months (I can lie with the numbers, it was a long time ago)
Then get down to HackerRank. Do not be alarmed by its name - there you can choose the level of difficulty and on the simplest you will be offered level tasks to invert the string. Make sure that the tasks of the middle level (medium, points by 30) are solved without problems. Although the grading system sometimes fails and there are such problems by 30 points, itâs easier to solve any hard task by 60 points, but basically you have to cope. It will take you another 1-2 months.
Now it's time to read Horstmann. Keep in mind that this is a good book, but it covers Java in its entirety (only the language, not the frameworks) and even those parts of it that are almost never used. My recommendation: in the first volume, forget about the sections related to the UI and the entire second volume. And yet, if it is tight, skip multithreading and the second half of generics in the first volume - even the middle ones may not know this, itâs not scary for the June. Itâs also important not to fall into the version trap: a book called Java 2 is antiquity. You need version 1.8 or 9. Or focus on the date of publication: 2015 and later will do.
I hope you donât give up HackerRank while reading Horstmann, maybe youâll even solve a couple of 80-100 points. In general, more than 60 points need not be raised, because there begins not so much applied programming as "art for art's sake." But if you feel the strength in yourself - sometimes take hard, it will not be superfluous. And also, keep in mind that most of the complex tasks are classical algorithmic tasks that you can google: the point of hackerran exercises is not to come up with an algorithm from scratch that has been invented for a long time, but to learn about the existence of the algorithm and implement it his.
Continued preparation. Frameworks, tools and practices.
After all this, you are almost ready to go for an interview. Left just a little bit:
- once again pay attention to the collections and the complexity of the search in them. Everyone is lousing this topic. Donât try to find out everything: itâs better to know the basic collections (ArrayList, LinkedList, HashSet, HashMap, maybe TreeMap) than to know three dozen, but âat the topâ. Those. you must understand how the collection works inside. There is a good channel on YouTube, everything is chewed there for the June. Just the way you need it. You drive into the search âlesson on java collectionsâ - the first link to it. There is also a video called âwhat you need to know before an interview.â You do not have to know directly everything that is listed there, you are still a june, in my opinion, if you master 2/3 of that - it will be ok.
- what is spring (you need Spring Core and Spring Boot) - a lot has been done there, but 95% of the practice of using it is no more complicated than halovorld. You should understand basic concepts, such as what IOC is and why it is generally and confident to own 1-2 ways to declare and inject beans (not xml). Perhaps you should also try to make several REST services on the Spring Web: there is nothing complicated, but there will be a definite plus.
- how to write tests (look at JUnit and Mockito) - in 1, in principle, there is no such practice as writing tests. In Java, code without tests is not code, because code is considered inoperative unless there is evidence to the contrary.
When I say âlook at [frameworkName]â, I mean: do at least a few home projects using the appropriate tool. Most likely, itâs worth starting with trying each framework separately at the hello world level, then trying to collect them in one project that carries at least some âusefulnessâ. It seems like a good idea (although I never did) - so that the projects are somehow tied to work. Maybe itâs just to completely rewrite the task that you saw on 1 to Java, maybe some kind of assistant for yourself to do 1Snaya activity. For example, if you are sawing a REST exchange with a supplier on 1 - implement the supplier side in Java to test 1So functionality: just accept requests and put them somewhere.
All of your home projects must be compiled by Maven and versioned by Git. These are just tools, itâs worth stuffing your hand - and already stop noticing them. As a development environment, I advise you to take Idea, according to my observations, almost everyone is using it now. The free version should be enough for you.
If you are not limited in means - you can attend some courses on Java development. I believe that the basic course is not worth taking, because everything that will be explained there is not worth it to spend time and money on this. Take a course on Spring Core or JUnit: on the one hand, you will gain knowledge, talk with future colleagues, on the other, you will not be chewed for 3 days about what a cycle is.
Somewhere in between, you need to read programming theory. You will definitely be asked about SOLID and patterns. Patterns (they are also design patterns) are very intuitive things, although Wikipedia describes it so that the devil breaks his leg; itâs better to read
not so abstruse articles . In my opinion, such a set is enough: Interface, Builder, Prototype, Singleton, Decorator, Proxies.
Let's go to the social security agency!
EmployersThere are several basic types of employers that you should be aware of.
The first is body shoppers. They are outstaffers. The most famous representatives: Luxoft and EPAM. They hire people, and then resell them to all kinds of Sberbanks. Body shoppers put their employees right in the customerâs office and they can hardly be distinguished from the customerâs employees. Often, the level of requirements there is lower, and the salary is higher. But you will not work in any circumstances: these are not the most attractive projects for which the end customer could not get developers from the market, they will know about the labor code very remotely, and you yourself will not be a full-time employee where you will be work (all sorts of goodies and corporate parties will pass by you). But you do not need this?
Outsourcers are offices that are hired by the end customers, but the subject of sale there is not people, like body shoppers, but the implementation of tasks. Such, as a rule, try to keep developers away from the customer and are engaged in new projects. This is a very worthy place of work, but going there with such experience as yours will not be easy, but not impossible.
Food companies are offices like Yandex and, forgive me, Kaspersky, which sell their code as a final product, as a box. There is an opinion that it is best to work here: salaries are large, there are a lot of goodies, interesting tasks, professional teams. When you hear about free English and beer on Fridays - most likely it's about them.
Next come the banks and insurance. Everything can be very different here: as a rule, banks have a huge scary legacy that no one wants to go to and new-fashionable-stylish-youth projects, on which vacancies are still closing somehow. You understand, to you in the first group. Although, sometimes their self-conceit can go over the top, such as "mission-critical system - not a place for the Jones." Do not pay attention to them, such is far from all.
Naturally, this list does not fully describe the entire labor market, there are all kinds of startups, retail, and many, many others.
Firstly, do not lie about experience. Believe me, even if you are "accidentally" mistaken for a middle on a tech interview - in work you will still be a June. Therefore, in the resume, you should not invent that you have already worked as a Java developer for 15 years, taking advantage of the fact that the title of your previous post did not mention 1C. But some steps can be taken to overcome the HR barrier. Do not stick out your 1Snoe past. On a couple of recent jobs, you can simply write âProgrammerâ or âDeveloper,â and dig the letters â1Câ somewhere in the description. You wonât spend the lead, but HR can buy it.
Secondly, it would be a mistake to keep your future employer in the dark about how you practiced self-training. Write half a year of training as a separate place of work (it should be at the very top), with the intersection in terms of time with the last place of work. Call it "Java developer", the place of work is "self-study" or "home projects" and listed the technologies that you tried. Give a link to the profile on the hacker.
Third, come up with a compelling reason why you want to go to Java. I donât advise saying âI'm tired of nursing accountantsâ or âI donât want my salary to collapse along with the ruble exchange rateâ and even more so âI want to get out of this gr ...â. The topic with development is best suited: they say that I've already seen everything there - we need to move on.
Fourth: you are a June and people like you, every year from institutes they release much more than there are vacancies of June. At the same time, those from the institutes are without family and children and are ready to live at work and live at work and they do not need to pay a mortgage. Ok, experience is on your side, but it is not a relevant experience and it will not be considered as of great value. It follows from this that you cannot bully the expected sn. If you canât live on Juneâs salary, earning 1Snick for a quarter of the bet is a good option for the first year.
Walk through the dogs, remember the questions, find answers to them, then go again through the dogs. In my opinion, 1-2 technical interviews per week is an acceptable level, in order to manage to digest the experience gained and not to delay the search too much.
June job
The most important thing here is Tim Lead. You should have met him at tech.sobes and âhe should have chosen you and you should have chosen himâ (c). It is very important to feel this chemistry. This is a person whose every word in the next few years, you must listen, remember and fulfill. This person will drag you to the heights of Java development and initiate you into the deepest nuances of this magic. And from him, maybe even more than from you, it depends how cool you will become and how soon.
So, my young 1C-nickname, if you used to know âwhy?â, Now you still know âhow?â. A journey of a thousand miles begins with one step. Go ahead!