I want to share with you useful links, hints and tips that will help you when completing the test task for an internship in a real CodeGym project. Of course, you can just mindlessly accumulate the solution of a test task from the Internet, since there are enough examples, but we want to figure out what we are doing :) This post is for those who did not find familiar words among the stack of technologies required by the task and want to fix it) A couple of weeks ago I got to level 30 and finally got access to the internship test. At first, I was in a stupor and simply did not know where to start and what all these springs and hibernates were doing. Just starting to dig, I ran into a problem: a lot of resources and articles imply that you already have an understanding of the subject area. Simply put, they are too abstruse for beginners and instead of understanding they cause a reaction “this is too difficult!”. Therefore, below I will try, based on my albeit small experience, to share successful links that helped me get a basic idea of ​​\u200b\u200bthe necessary technologies. Those who whined while learning on CodeGym that you need to study a lot yourself - get ready, here you will find a real hell))

So how do you get started on the task?

1. Understand why all these technologies are needed (I would start learning in the following order):

1.1. Maven

Its role in the project is to create the directory structure of your web project (it's standardized) from a special template called "archetype" + pulling libraries into your project (adding dependency to pom.xml). Who passed the bonus task about parsing based on jsoup - there we manually downloaded the library from the Internet and hooked it into the idea. Maven, on the other hand, allows you not to download anything, but simply write in pom.xml which library you want to pull up and use in the project. A quick explanation of what Maven does in pictures -> here .

1.2. MySQL

This is your database management system (DBMS). You won’t need any deep knowledge in SQL and DBMS, here I can advise you to install the dbForge program to make life easier, which will help you a lot when creating a database and working with it.

1.3. Spring

This framework will be the core of your web application. It is huge and its architecture consists of many modules. The good news is that to get the job done, you only need to understand a few things about Spring: what is Inversion of Control (IoC) and understand how Spring MVC works (what should be the directory structure of your web project, what is a DispatcherServlet, how it interacts with a controller , view and model, etc.). There was especially a lack of materials for beginners, where it would be explained on the fingers. But, thank God, such materials were found: Very simply about IoC, code connectivity, DI (the material is presented in a somewhat frivolous manner, but everything is clear) –> right here (scroll to the next articles below on the page ) . Next, look for what @Autowiredan annotation is. Spring MVC -a cycle of video lessons (the first 11 lessons, each on average 7-10 minutes). Here you will find a cycle of video tutorials, in general I HIGHLY recommend watching this guy's lessons! Despite the funny Hindu English, he explains everything in great detail and clearly, with illustrative examples. He also has lessons on other frameworks. Workflow applications on Spring MVC in pictures - see here .

1.4. Hibernate

It is a framework for working with databases. Roughly speaking, it allows you to pull information from the database and immediately embed it in a class object, and vice versa. You can start learning from here (before the first code examples).

1.5. HTML & CSS

To display your data on a web page, you will need to create this page using HTML and CSS within your jsp files. There are many good resources to get into this topic. Personally, I learned XHTML and CSS in this series of video tutorials (I liked that the guy explains with humor, but at the same time very consistently and logically) The links above give an initial idea, in the process of familiarizing you will surely have new questions. Here it is important to stop in time and:

2. Start doing the task

2.1. Look at the examples of the task, there are plenty of them on the Internet, and I believe you can easily find them. You have already learned the basic concepts - is there anything not clear in how to do the task? If yes, then look for answers to specific questions. 2.2. Download a free trial of Intellij Idea Ultimate (for 30 days)! At first, I puzzled for a long time about how to do the task, I accidentally stumbled on the forum that you need to download the Ultimate Edition - without this it will be hard for you (community edition does not support JavaEE) 2.3. Create a project template from a Maven archetype (for example, maven-archetype-webapp) or from a Spring MVC template in the Ultimate idea (if needed, you can add support for the desired framework later: Add Framework Support in the idea). 2.4. Try to make a simple HelloWorld message output to your browser (pass this message from the controller to the jsp page). 2.5. When you succeed, increase the functionality of your application based on examples on the Internet: create a database, a model, service classes, set up a controller... And everything will definitely work out!) I hope this article will be useful to someone and save time on learning the material. If you want to share your useful links, I will be glad to see them in the comments!