JavaRush /Java Blog /Random EN /Difficulties in learning Java
Level 27

Difficulties in learning Java

Published in the Random EN group
Today I received a question from one of the newcomers to “I’m new to javarush and am interested in the opinion of old-timers. Is it worth buying a paid course and is it worth it?
Difficulties in learning Java - 1
While I was writing the answer, I realized that I was getting a whole article :-) I wrote it in one breath, probably because I didn’t so much want to answer a person, but rather I was looking for understanding for myself in the correctness of my path .

So my answer is article

Good afternoon They did the right thing in what they wrote. I'll express my opinion. Javarash is an alternative to internships/training in IT companies. If you have a low chance of getting into one of these programs given your current situation (age, level of knowledge, previous experience, etc.), then Javarash will be a good help, and maybe even your only chance to get into the industry. The main advantage of Javarash is the large number of practical tasks. You get good at them. It is also very useful to discuss problems and help others find solutions - this is one of the main skills of a programmer - to be able to read other people's code. But I can’t say that after you pay for a subscription, the level of your knowledge will immediately and steadily rise. The lecture material is specially presented in such a form that you have to look for a considerable part of the information yourself - this way you develop another necessary skill - to go online on any issue. Those. if something is not clear, you will have to slog through it, and this can take a lot of time - a day, two, three, a week - and, accordingly, reaching the upper levels of the course will be delayed. I will describe my case. Now I'm 41 years old. I started learning Java in February 2014. Joined Javarash in October. Until that moment, I managed to read Schildt, OOAP and Design Patterns from the HeadFirst series, solve simple problems on, listen to various video tutorials - i.e. I have already made a lot of progress in learning Core Java. I started solving problems in November and completed 24 levels by the beginning of January. But I felt that I was flying too quickly, and several not entirely understood (misunderstood) topics had accumulated. In addition, in January, for a change, I switched to learning HTML/CSS/Javascript, went through intensive interviews in February, tried a little QA - in general, took a break from studying Java directly. And now he's back again. But now my goal is not to go through the levels as quickly as possible, but to systematize what I’ve already galloped through before. So that the knowledge settles down and clarity appears :-) While I’m not reading new lectures, I’m studying some topics, solving bonus problems left for later. So, the most difficult thing when learning Java , as for me, is to find the right books/tutorials/video lessons that will reveal and convey a complex topic so that there are no ambiguities left. At some point while studying, you are sure to come across some question that in the book you are reading is described in such a way that you cannot understand it in any way, something in it remains unclear, and the author does not write about it . Then you take another book, look for a video lesson, a video lecture, an article, a discussion on a forum - and you can go through this for a long time until you find what you need, which will really show you the question from the other side and there will be no dark places left. For me, for example, one of these difficult topics is the topic of threads. I read about it in many places, but I still couldn’t fully understand it until I decided to read itofficial Oracle tutorials - honestly, this was a real revelation for me. Nowhere has it been written about them so simply, so clearly and immediately to the point. Every word is filled with meaning and is not written in vain - you just read and simply understand, from simple to complex. You absorb, so to speak, pure knowledge :-) Here I’ll add a little that the Oracle tutorials were not just written differently, they had one phrase that neither Schildt nor Horstmann had, and which literally became for me the key to understanding flows (streams). This phrase is “The Java platform stores character values ​​using Unicode conventions.” I won’t go into details here, maybe I’ll write another article about this later, but here about something else. The fact that often when learning Java there is a lack of the right hint - they say, look here and may the Force be with you. In my opinion, this is such an important issue for accelerating the learning process that it would be worthwhile for Javarash to work it out more thoroughly than it has at the moment. You can monitor which topics are most often a “stumbling block” for students. For each such topic, you can offer the most complete list of sources and arrange a vote with a discussion of which source best helps in understanding the topic. This is my wish for the administration of :-) Moreover, I have not yet taken part in the survey on the topic “How to improve” - I will give a link to this opus of mine. In general, let me summarize. In life, no matter what business I was involved in, I always relied on knowledge of the basics, the basics. In Java, the base is Core Java. You can't use technology without knowing the basics. After all, in fact, what are, for example, the same servlets - these are just java classes placed in a certain folder, in the folder that the web server provides. And what the servlet does is call a method of another java class placed in another folder, which the web server also provides. The whole servlet technology, to put it simply, boils down to correctly placing classes in folders, and the rest is Core Java. Therefore, if you have a clear goal to learn Java, don’t hesitate, pay for the course and go for it. The one who walks will master the road. Solve problems, understand complex topics, communicate in discussions. I hope the article will not be perceived as custom advertising. I stated everything from the heart, as it is :-) And I’ll also give my advice regarding the first book on Java - in my opinion, it should be the book by Horstmann and Cornell “Java. Professional's library". Schildt's book “Java. Complete Guide." I’m writing about this because I myself started learning Java from Schildt, and I believe that if someone had told me then, I would have progressed in learning at least two or three months faster. So to speak, I am restoring historical justice :-) The fact is that Shildt “goes over the top” without explaining many points that are not obvious in themselves. Horstmann and Schildt are essentially two textbooks of the same type, but Horstmann, with the same volume, presents the material much more deeply and “to the point.” Shildt simply "drives the volume" just to write something, as long as it looks like Java. Let me give you a small example. Schildt doesn't say that "/" with integers is integer division. Instead, he gives an example of the use of basic division operators, which is not only stupid in its essence and takes up an entire page, but also does not make it easy for a beginner to understand - it does not immediately become clear what the author wanted to say. Horstmann's goal is to convey maximum information with the most verified text. You can simply compare pages 98-99 of Schildt 8th edition (These are 3 subsections "Basic Arithmetic Operators", "Modulo Division Operator" and "Compound Arithmetic Operators with Assignment") and page 69 of Horstman 9th Edition (subsection "Operations" ). The indicated subsections in the two textbooks are about the same thing, only for Schildt it is 2 and a quarter pages, and for Horstmann it is 1/3 of a page. At the same time, Horstman’s is clearer and without unnecessary water. And so everywhere, there are a lot of moments, believe me, that are not revealed by Shildt. It’s like if we draw an analogy with bicycles, then Shildt is a Chinese Auchan bike, and Horstmann is a high-quality branded mountain bike on the level of Scott or Cadale. One of the main pieces of advice for beginning cyclists is not to buy Chinese junk, otherwise you will discourage yourself from riding bicycles in the first place. Shildt, as I understand it, initially made a name for himself with books on C, C++ and C#, and Java, on the wave of popularity, had already decided to simply “swipe it without looking.” Children don't go to Africa. Don't start learning Java from Schildt... Something like this :-)