Preface
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? As 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.Updated 11/29/2021
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.
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
- JSP/JSTL
- "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
GO TO FULL VERSION