This article was adapted from: Lebyte
This article mainly explains: Java white how to learn programming
For more Java related knowledge, you can follow the public account “LeByte” to send: 999
1.1 Learning Path
With the development of social information, software development has been everywhere, whether it is mobile phone software, mobile phone games or Web applications, as long as you use electronic products will have the shadow of programming development. The profession is noted for its quickness of entry and high pay. More and more enterprises begin to set up their own software development teams and reserve their own software development resources. More and more people are paying attention or preparing to enter the industry. So as a newcomer to this field, both college graduates and on-the-job employees who want to change careers, they all face a lot of confusion. For example, software development, which is just a general term, can be divided into many directions by technology. What skills do you need to master in each direction? What do companies look for in developers? What should I pay attention to in the process of learning technology? These are real problems for newbies.
The learning of a programming language can be roughly divided into four stages: theoretical learning stage, advanced stage, practical stage and advanced stage. Next, let’s take the backend development language Java as an example to talk about the “novice” advanced learning process.
1.1.1 Theoretical learning stage
Basic theory is mainly manifested in three aspects: 1, the basic theoretical study: first is the foundation of Java syntax written judgment, circulation, function (conditions), object oriented theory (encapsulation, inheritance, polymorphism), API (collection, thread, IO) of learning, of course also includes the basic principle of reflection, etc. 2, the basic knowledge of Web related: Examples include HTTP protocol, BS architecture for Web applications, HTML and CSS technologies, and programming technologies such as servlets and JSP. 3. Database related knowledge points: Database is indispensable to Java application system components, persistence in the theoretical study stage, the need to learn the knowledge of the SQL syntax, and Java and JDBC database exchange foundation technology above these are the basis of future learning Java good framework tools, they may not appear in our code, but no solid foundation, It’s impossible to build tall buildings.
1.1.2 Advanced Stage
Once you’ve mastered the basics, you can move on to Java’s great tools, frameworks, and programming ideas.
1, excellent development tools: Java has very perfect development tools, Eclipse, MyEclipse, IDEA and so on, you can choose to master one or more of them according to the actual situation.
2. Common frameworks and architectures: Excellent tools are developed and encapsulated on the basis of basic technologies. Java provides a large number of frameworks and architectures, so choosing the right tool framework can improve development efficiency and application performance. The current popular technologies such as Maven, Mybatis, Spring, for SpringMvc, SpringBoot, SpringCloud, Kubernetes, GitLab, Docker, Redis, Fescar and so on.
1.1.3 Actual combat stage
At this point, the main technical aspects of Java are almost complete, and it’s time to do a tool framework integration. At this point, we need to practice what we’ve learned before with a complete, large-scale actual combat program. Of course, this does not mean that there is no need to practice in the previous learning process, at this time we are doing a comprehensive exercise, penetration.
1.1.4 Advanced Stage
With the development of various applications of big data, the value of big data has been fully brought into play. Big data has become an important means in all levels of enterprises and society. Data has become a new strategic commanding height of enterprises and a new focus of contention of various enterprises. Big data is based on Java technology. After mastering Java technology, it will be much easier to learn related technologies of big data.
Big data is an industry, and there are many tools to realize the same requirement. In a narrow sense, from the perspective of technology, various frameworks include Hadoop, Spark, Storm, Flink, etc. In terms of such technology ecosystem, there are also various middleware such as Flume, Kafka, SQOOP, etc. Most of these frameworks and tools are written in Java, but provide language apis such as Java, Scala, Python, and R for programming. So Java is just a tool for big data.
1.2. Beginners misunderstanding
1.2.1 Attic in the Sky Dream: Ignore the importance of the foundation
It is important to learn a solid foundation of Java development. Some people are eager to achieve success and start projects directly, while others don’t learn the basics and give up when they see the code as difficult. Learning Java is like building a house. You start without a solid foundation and it collapses. Some of computer professional students learning Java with fast food type, with the original computer programmers pay advantage into small businesses can look down on salary in other industries, but the foundation is weak, the poor foundation, unable to enter big core department, lead to three years or five years later still take salary for a year or two experienced programmers, in the way of programming drifting away, to leave something half-done.
1.2.2 On paper: Pay attention to theory and ignore practice
Learning Java language needs to understand first, start work after mastery of learning to apply, many people learn Java spend more than ten days or even dozens of days to read books, watching videos, even the development environment has not built, resulting in a large number of theory perfect, practice in a complete complete “mouth strong king”. Java language, or language programming in the final analysis, is a development technology, without the process of coding, there is no practice, just like paper talk, after a period of time remember only the concept, most of the content will be forgotten.
With the rapid development of computer and Internet, the debate about language on the Internet has been heated. The complicated media information also affects the young generation of program lovers, so that beginners who want to learn programming languages have no way to start.
So why is Java recommended for beginners? Because Java as a high-level object-oriented language, has a good object-oriented architecture and standard syntax, has a very outstanding performance in the development of the Internet, with high performance, good portability by the Internet companies love. In recent years, the recruitment of the backend of Zhihu and Ele. me has gradually shifted from Python to Java because of the huge advantages of Java in large-scale projects.
1.3. Learning Approaches
After we know what to learn, let’s talk about how to learn. There are plenty of developers on Tianya or Zhihu who would like to share the learning routes above with you, regardless of the programming language. But this is only route outline after all, details of flesh and blood of the fullness of specific learning. So when it comes to learning methods, there are no more than two choices: self-study or listening to others.
1.3.1 Self-study Self-study can be said to be the most positive and universal method, applicable to all technical knowledge. Of course, self-study here is not a closed door, starting from the “wheel” research, since there are so many learning materials on the Internet, so many big cow share, why don’t we use it!
“Flexibility” is the biggest advantage of self-study, just like “free travel”, completely rely on their own route, play time, it is not necessarily the best eyes of others, but must be the most suitable, the most close to their own. Flexible time and place for self-study, learning anytime and anywhere; You can reasonably allocate your learning energy according to your own level of mastery, and choose freely among similar technologies according to your own interests.
The benefits of self-study are numerous, but the reality is often “skinny”, “free travel” audience is generally “rich and leisure” senior travel enthusiasts. In the field of programming, self-study is actually more suitable for “big bull”, they have experience, have the accumulation of knowledge in the early stage, have a stable job income, have the demand. When faced with a new technology, they can complete autonomous learning and have a much higher chance of success. However, the disadvantages of self-study are obvious for beginners who are just starting or preparing to enter the industry.
ø “self-control” : In the process of self-study, students have to resist all kinds of temptations (games, meals, etc.) in the learning environment without being urged by others. Therefore, from ancient times to the present, very few people can learn by themselves.
ø “systematic” : Having an outline is not enough. Knowing that there are many different implementation solutions for each technology, how do you choose? If you choose it, how do you choose subsequent supporting technologies? Have you decided how to learn, to what degree, and what parts are important? Which ones are just theories? What if something goes wrong? These are all practical questions for self-learners.
There are two types of group learning: university learning and training learning, each with its own strengths.
1. University studies
This type of learning is a bit like a “package tour”, characterized by comprehensive learning, but it also has some inherent disadvantages. For example, university is a comprehensive learning place, even if it is computer major, it also needs to learn many other courses, which will distract a lot of study energy.
Even programming language learning courses, affected by the venue and class hours, are generally only a cursory glance, learning the most basic theory, without breadth, let alone depth. After a semester, you might end up remembering only the for loop. Finally, university is a place for academic research, and courses need to be closely followed by textbooks, which is bound to lag behind the market demand. Therefore, many students cannot adapt to the working environment of the company after graduation.
- Training to learn
Training and learning is more like the popular “customized tourism” in the market. It is not necessarily the best in the eyes of others, but it must be the most suitable and most close to the needs. ø First, for software development, there is a clear body of knowledge, front-end or back-end, Java or Python. Only fine points can achieve sophisticated, in order to follow the market demand. ø Secondly, for each technical direction, a complete and systematic technical learning path will be developed, from basic to advanced step by step. To ensure that the whole learning process less walk, even do not take detours. ø Finally, the training institution has a complete team structure. Not all great talents are suitable for guiding your entire learning process. The learning guidance of basic knowledge is impossible to be the same as that of big data, which requires a team to work together. There is no way for self-study or university to set up such a professional team.
Thank you for your recognition and support, xiaobian will continue to forward “LeByte” quality articles