JavaRush /Java Blog /Random EN /How to start programming
Level 37

How to start programming

Published in the Random EN group


So, you feel that it’s time to change your field of activity and learn a new profession. Why not try programming? They pay well for this, it is promising and interesting. But the question immediately arises: what to do, where to go, how to start programming? How to start programming - 1As a person who has gone through this path from scratch, I can assure you that with the right approach to learning, patience and perseverance, you can soon become a programmer and find a well-paid job. In this article I want to share tips on how to start programming.

Setting a goal

To understand what to strive for and what level to achieve, answer a simple question - why do you need programming? If your goal is to become a professional and make a living programming, be prepared for serious and intensive training. At the same time, you must be willing to devote time every day to learning programming. If your goal is a hobby or expanding your horizons, you can choose a slower pace as you have free time and desire. But in any case, you shouldn’t stretch out your training “for years.” Firstly, knowledge disappears faster than it accumulates, and secondly, programming technologies are developing very quickly. While you're learning a development tool or framework, it may become outdated and unnecessary by the time you get hired. The best solution, in my opinion, is to sketch out a rough training plan. But first, decide on the technology stack.

Choosing a language

If you have a specific idea of ​​what you would like to do in programming, then this makes choosing a language much easier. Each language has its own specialization and focus. Specific information about this can be easily found on the Internet. If you don’t have such an idea, take a closer look at two aspects: the demand for technology in the market and the complexity of learning. Personally, at one time I settled on Java. The reason for this choice is simple: this language is very popular and in demand in the market. Moreover, it is easy to learn. Plus I wanted to be closer to web technologies. How to start programming - 2

Updated 11/29/2021

You can evaluate the popularity of Java and its leading position over a long period of time, for example, by looking at the programming language popularity index from TIOBE Software, which constantly monitors search queries on the topic of programming.

Writing a preparation plan

It is with a plan that I would advise starting the path of a programmer. Break your training into stages and allocate a specific amount of time to each stage. To better understand how to program, or more precisely, what essentially happens when the processor executes your first “Hello, Word!” you will need a general knowledge of computer architecture. If you have gaps in this area, it is advisable to eliminate them. So I recommend including PC architecture in your curriculum. Divide the study of your chosen language into stages as the complexity of the material increases. You can get an approximate idea of ​​the required knowledge by studying the interview questions or requirements for applicants for positions in IT companies. How to learn to program if you haven't done it before? The answer is simple: to learn a foreign language, you first learn simple words, then the rules that allow you to connect them, then you learn to understand and speak. To learn Java, try following the same algorithm.

How to learn Java?

First, study the syntax of the language: keywords, operators, rules for writing code. Gradually move on to studying more complex language structures - methods, constructors, classes, libraries and frameworks. To understand how to program correctly, include algorithms and data structures in your curriculum. This is very useful for shaping the mindset of a programmer. It is advisable to take this stage after studying the syntax of the language.

And yet, remember: your plan is not a static structure that should never be modified. If you notice an interesting and promising technology or development tool, feel free to include it in your plan!

How to learn to program in Java?

To start programming in Java , learn basic topics such as OOP, exceptions, multithreading, collections. All of this is included in Java SE, the standard set of developer tools, and should definitely be included in your training plan. After mastering Java SE, you can move on to Java EE, client-server programming technologies, databases, and web programming technologies. Here you will simply encounter a colossal amount of various frameworks and tools.

It is not necessary to learn everything at once, but it is advisable to master the main ones by the time you get hired. I would classify the following as the main ones: Git, Maven, Spring, ORM (Hibernate, JPA), REST, SQL, JUnit, Tomcat, JavaScript, JSP/JSTL, HTML/CSS, XML, knowledge of some database (MySql, PostgreSql) . My plan looked something like this: January
  • Complete the first 10 levels of JavaRush
  • Development tools IDE, Eclipse, NetBeans
  • JRE, JDK, JVM, compilation, program execution
  • Java syntax
  • " The Philosophy of Java ", Bruce Eckel, chapters 1-5
  • Yakov Fain “Introduction to Java programming” lesson 1
  • Complete levels 11-13 of JavaRush
  • OOP
  • "The Philosophy of Java", Bruce Eckel, chapters 6-10
  • Yakov Fain “Introduction to Java programming” lessons 2, 4
  • Complete levels 14-17 of JavaRush
  • Multithreading Basics
  • Algorithms in Java, Robert Sedgwick, Kevin Wayne, chapters 1-3
  • "The Philosophy of Java", Bruce Eckel, Chapter 21
  • Yakov Fain “Introduction to Java programming” lesson 11
  • Complete levels 18-20 of JavaRush
  • XML Basics
  • Input/Output
  • "The Philosophy of Java", Bruce Eckel, Chapter 18
  • Yakov Fain “Introduction to Java programming” lesson 9
  • Complete levels 21-23 of JavaRush
  • Strings
  • Regular Expressions
  • HTML Basics
  • "The Philosophy of Java", Bruce Eckel, chapters 13-16
  • Yakov Fain “Introduction to Java programming” lesson 3
  • Complete levels 24-26 of JavaRush
  • Multithreading
  • Exceptions
  • Inner classes
  • "The Philosophy of Java", Bruce Eckel, chapters 10, 12
  • Yakov Fain “Introduction to Java programming” lesson 6-7
  • Complete levels 27-28 of JavaRush
  • java.util.concurrent
  • SQL and Database Basics
  • JDBC
  • Annotations
  • Reflection
  • "The Philosophy of Java", Bruce Eckel, Chapter 20
  • Yakov Fain “Introduction to Java programming” lessons 12,13
  • Complete levels 28-30 of JavaRush
  • Swing
  • Serialization
  • XML Parsing
  • Servlets
  • "The Philosophy of Java", Bruce Eckel, Chapter 22
  • Yakov Fain “Introduction to Java programming” lessons 14-15
  • Complete levels 31-33 of JavaRush
  • JSON
  • URL. Networking
  • CSS Basics
  • Yakov Fain “Introduction to Java programming” lesson 10
  • Complete levels 34-36 of JavaRush
  • Logging
  • JUnit
  • Git
  • Maven
  • List
  • Queue
  • Working with Collections
  • Complete levels 37-38 of JavaRush
  • Map
  • Design Patterns
  • "The Philosophy of Java", Bruce Eckel, Chapter 11
  • Yakov Fain “Introduction to Java programming” lesson 8
  • Complete levels 39-40 of JavaRush
  • Rest
  • Tomcat
  • Building and Deploying Applications
  • Yakov Fain “Introduction to Java programming” lesson 16-18


First you need to install the required tools to write a program. If you want to understand how to learn to program in Java, I would advise you to understand concepts such as JRE, JDK, JVM. What is an IDE, how a program works, what is compilation, how does a program execute. To understand how to program in Java, it is imperative to understand the basic principles of OOP . Programming is a set of practical language skills that you develop as you learn. The more you practice, the faster you will master the language. Therefore, in addition to studying theory, devote time to practice every day. The bigger, the better. If you still don’t have enough practical skills, disassemble someone else’s code, repeat examples from books and articles on the Internet. A good way to understand how to learn programming is to use a debugger to analyze other people's code. If you didn’t manage to master the material right away, don’t stop, take another topic or repeat the one you’ve covered. You can return to a difficult topic later: looking at it from a different angle or from a different source of information sometimes helps in mastering new material.
Material that is difficult to understand can be outlined, or better yet, analyzed with examples. At the same time, I recommend using comments in the code to mark key points. A good programming style, examples of correct code, and answers on how to program in Java can be found in The Java Tutorials section on the Oracle website. If you still don’t understand how to program, you can turn to experienced colleagues or people who have already walked this path. To do this, it’s a good idea to find a suitable community for communication. There they will always be able to give you an answer on how to learn to program from scratch.

Selecting sources of information

To understand how to learn to program from scratch, use everything you can get your hands on - articles on the Internet, training videos, books, forums, official documentation.

We use online courses

If you can’t take time away from work, online courses are one of the best learning options. This is not a magic pill, but they greatly help you get into the groove of learning, especially if you start learning from the beginning. Personally, as you can see from my plan, I started with JavaRush . I liked the training format, so I completed the entire course, including the internship.

We are doing practice

Real practice and internship are an integral part of learning in any process, and even more so in programming. This is the beginning of your journey and it will be a big plus for you to start. Take every opportunity to get closer to real work. Try writing your own applications, study examples of ready-made applications on the Internet. If possible, take part in free training internships from IT companies. Don't miss any opportunity to participate in a real project.


Learning to program is not an easy process. Therefore, you need not to be scattered, but to set a goal, keep yourself in good shape all the time, not to lose heart and... be patient. Take the time to outline the main directions and draw up a plan. Please note: you will have to code every day and deal with complex and unusual information. Sometimes you can boldly switch to another topic, and sometimes you can patiently wait for insight... And your goal will be achieved.