JavaRush /Java Blog /Random EN /Studying on JavaRush. First projects, what awaits you and...
dwajot
Level 41
Киев

Studying on JavaRush. First projects, what awaits you and what is best not to do. Part 1.

Published in the Random EN group
Good afternoon I have finally reached the time when I am ready to share my success story. I want to tell you a lot, so I’ll divide it into two parts – so to speak, “first projects and what’s best not to do” and actually “searching for a job and passing interviews.” I won’t tell you much about myself, I’ll just say that like almost everyone here, I graduated and worked in another specialty, but then decided to become a programmer :) Let’s talk about training right away. I started studying JavaRush at the beginning of 2016. I spent a long time choosing where to study programming and, of course, like all our people, I didn’t want to pay for training. I wanted to study Java, since my dream is to program on Android. The JavaRush course caught my eye several times during my search, but I discarded it because it was shareware. I started taking video lessons on YouTube. Then, nevertheless, some force forced me to try solving free problems on JavaRush, and I was so surprised that after completing 50 video lessons (I considered them quite normal) and writing code under the lecturer, I had great difficulty and not on the first try solved the initial problems of the course. I appreciated the quality of the course and what it would give me if I completed it completely, then I looked on the forum that from time to time there were good discounts on subscriptions and decided that I would take the full version. Yes, many students are angry and indignant about the course - problems are given based on material that has not yet been covered, the validator does not understand them, and there is a lot, a lot of stuff that can be read on the forum and in the comments. And guess what? I was like that too :) I still have a big task hanging at level 34 and I tried all the solutions, but the validator does not accept it. It’s good that the support gave me some black matter and I was able to complete the course. In general, as a graduate of the JavaRush course, I’ll tell you my subjective opinion about what I liked and didn’t like about the course (may the admins forgive me). I liked: the number of tasks, instant verification of tasks, remote learning, training is not tied to your work schedule, the structure of the course, the student forum, as well as the price. Did not like:During the course, you begin to adapt to the validator and then it’s difficult to wean yourself off of it, to think and find some other approaches (but still such an idea and it’s implemented quite well here), errors in some tasks, strong intricacy in some task conditions (it’s good that there is a forum for such cases), I also tried the new interface - I didn’t really like it, fortunately there is an opportunity to switch to the old one. To sum it up, I am happy with the course and what it has given me. I remember a year ago, how a friend tried to explain to me what boolean and void are, what methods are and how they return values. I remember how long I couldn’t understand why these values ​​need to be returned :) Now I often remember a scene from the movie The Matrix: Neo: Are you going to teach me how to dodge bullets? Morpheus: When the time comes, you won't need it anymore. And indeed, when the time came, he already had these skills a priori. At level 30 of the course, I wanted to get an internship offered by JavaRush. I looked at the test task and was a little horrified. I really hoped that my friend would help me make it, but a week before the deadline he said that here’s Google, enter all the technologies here and there will be a bunch of examples. I am very grateful to him that this happened, because then I first felt what it means to be a programmer. I completed the assignment in 4 full days and was incredibly glad that I got the internship. Internship. I didn’t complete the internship, because at the same time I started doing my first project and yet it turned out to be a priority and more interesting for me + I didn’t want to work in an enterprise. What can I say about the internship itself? It has its pros and cons, but overall it’s pretty good. If you plan to continue going into enterprise, then I think it’s worth taking. First project. As I mentioned above, around level 30 I got an internship and started doing my project. It was and is a telegram bot. I had the desire to create a bot even at 20-30 levels of the course, but I couldn’t find a suitable tutorial or instructions on how to start. And yet, by chance, I came across such an article and I immediately started trying. If anyone is interested, here is a link to the article - How to write a bot in telegram Java Frankly speaking, the author of this article later helped me a lot, which will be discussed below. The idea for the bot was this: as a programmer, I need to learn English. I knew the grammar relatively well, but I wanted to improve my vocabulary. I thought it would be nice to have a bot for learning words. I already wrote detailed information about the bot in an article earlier, so I won’t repeat it - here is the link Telegram bot Words I'll tell you what difficulties I had to face when creating it. Firstly, this is the first time working with the telegram api. Although many people say that this is one of the simplest and best documented api, it was very difficult for me as a beginner. I did everything by selection :) Sometimes I had to spend a full day to make some feature, for example, remove a button after it was pressed. In about half a month I managed to write the very first beta version, all the code of which was in one java class, and I wanted to try to upload it to the server. My project is not commercial, so I immediately discarded paid servers. I remembered the Heroku server, which by the way is used to host the site for the internship. I tried this server for two full days and was already in complete despair, since nothing worked at all - all the instructions that were related to sites, but I have a bot and there I need to act a little differently. As a result, I decided to write to the author of the article about the bot and ask what server he uses to host the bot. And then luck smiled at me - the author turned out to be a very cool programmer (I still keep in touch with him), and he offered me to host the bot on his Linux server (and if I know Linus, he will allocate me an account). The initial learning of Linux took one day and, of course, not without errors and difficulties, the bot began to spin on the server. Also, between all this, I completed the JavaRush course and was very pleased :) I chose MySql as the database for the bot, reviewed a lot of lessons on optimizing tables, choosing an engine, and everything else. I would give advice to everyone who will be doing their first project - try to immediately think through its entire structure and build at least a relatively expandable architecture. I rewrote mine probably 3 times because of such errors. Yes, it’s difficult, because very often you don’t know what you want to add next to your project, but you can still do it at a minimum level. Don't write all your code in one class!!! Try using MVC, remember OOP, etc. The funny thing is that I started using some basic OOP principles in the project when it was almost ready. Before this I hadn't even thought about them. Of course, the user generally doesn’t care what language the product is written in, what patterns and technologies are used, but when you open it after a couple of months and want to add something there, you will think a lot of good words about yourself :) Also, don’t forget do logging - this allows you to both track errors and see which functions users use most and what needs to be further developed. In a telegram, by the way, you can do this in a very cool way - send all the logs in real time to your private channel, so to speak, you can create some kind of big data :) To summarize about the first project, it took about 3 months to create it, now there more than 14 thousand registered users, many of whom have become regulars and study foreign words every day. Second project. My goal was to become an Android programmer, so when I was more or less finished with the bot, I decided to adapt it to the Android platform. I started training with the startandroid course, and my best friend android developer gave me a lot of cool tasks, checked them and said what needed to be redone and completed. Once I had acquired the basic skills, I started making my own application. As with the first project, there were many different difficulties, but if we take it as a whole, then a little less. In about a month and a half, the first beta version was ready (I had to rewrite the entire design of the application a couple of times, since I had no idea what it would look like). Then I registered as a developer in Google Play and uploaded it to the market. Lately I have been optimizing and synchronizing my two projects. For the general database I chose Firebase - very good documentation, a lot of lessons and for small projects the free version of 1GB of volume is more than enough. If we briefly talk about the greatest difficulties in the second project (I think some of these difficulties also arise for experienced developers), then this is the creation of multi-threading in Android, a lot of problems with screen sizes and extensions, to create the design I had to make friends with Photoshop, support for old versions Android, and also never use Recycler View if you have animation in your list :) After Yandex was blocked in Ukraine, and that’s where I get most of the translations and voice-overs of words, I had to add additional checks to the code and simply inform users to use vpn. Difficulties even arose when registering with Google Play - in order to become a developer you need to pay a one-time fee of $25 (unlike Apple Store). When I paid, there was a limit on my card and my payment got stuck. I had to talk to Google support and, in general, they sent me from one operator to another, until I realized that they were just politely sending me :) I had to delete everything and register again (I would have thought of that right away). A few more words about promoting your projects.With the bot, things were a little simpler - the idea of ​​bots itself is relatively new (I didn’t get into the mainstream, but it’s still okay). There is a directory of bots, VK, FB groups and other resources. Now my bot takes 5th place in the educational section and for me this is a very good result. To advance in the bot catalog, you need to be evaluated. I made a proposal for the user to vote, which occurs only once (I don’t like intrusiveness myself), when the user plays a certain number of games (as if he spends some time in the bot). With the Android app things are much worse. I will say one thing - without advertising, no one will notice your application in the market, even by keywords, since there are millions of them there. After I synchronized between projects, I advertised my application in the bot. After that, I got the first 14 downloads :) If anyone has read up to this point, here is a link to the application, if you are interested - the Words Android application . The link to the bot is in the article about it a little higher in the text. Thank you all for your attention. I’ll tell you about my interview experience, the questions they asked and the job search in general in the second part.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION