html / javascript / css, these are what the front-end needs to learn, plus a lot of front-end frameworks Angular, React, Vue, you have to learn the same.
Only after learning the framework can you do projects and find a job, and then you can start the glorious journey of adding, deleting, and checking.
But this is not enough. The knowledge mentioned above can only be regarded as an introduction.
Data structures and algorithms must be learned, otherwise the code you write will never be as good as that written by Big Fatty Zhang next door. For the same needs, other people's code is pleasing to the eye, but your messy one will be criticized completely by the leader.
So "Algorithms", "Dahua Data Structures", "Graphic Data Structures", "Introduction to Algorithms"... come all, arrays, stacks, queues, binary trees, graphs, sorting, The search is guaranteed not to overwhelm you.
When I usually chat with everyone, I must be able to name several common design patterns, especially several ways of writing singleton patterns. Otherwise, I will be embarrassed to say hello to others when I go out.
It is definitely not possible to be a junior coder who is assigned tasks, so object-oriented analysis and design must be learned. Otherwise, in the future, the leader will entrust you with important tasks and ask you to do analysis and design. How will you do it? To divide modules and services, how to design interfaces? Based on what principles and guidelines?
The software development process and best practices are quickly becoming a necessity for coders. Agile development, DevOps, unit testing, continuous inheritance, TDD, pair programming..., you must keep up. trip.
As a programmer’s self-cultivation, basic knowledge of computers is also a must.
You must understand the principles of computer composition and the von Neumann structure. Otherwise, you will write programs all day long without knowing how the computer works, and you will be laughed at. If you want to go deeper, you can also learn about digital circuits and assembly. You need to know a little bit, because there is always a compilation waiting for you in some dark corner.
You need to learn databases, basic SQL, and table design. Paradigms, locks, and isolation levels are daunting.
It also involves tuning in depth. At the architectural level, you also need to understand sub-databases, sub-tables, backups, and read-write separation.
Relational databases alone are not enough. NoSQL is very popular in the Internet era, and it is very likely to be used in work. It will not work. The cache cannot be escaped. Memcached and redis are already necessary for work.
Nowadays, programs that are not connected to the Internet are almost extinct, so you have to learn computer networking, at least understand how http, https, socket, tcp work, and you also need to know the RSA, Hash, and certificates derived from https. what's going on.
Security is actually a big topic. Things like XSS, CSRF, SQL injection...should become something that must be considered in Web programming.
The operating system must also be learned, so that we can understand processes/threads, as well as the communication and synchronization between them, as well as synchronous/asynchronous, blocking/non-blocking, select/epoll and other fashionable-sounding words. Virtual memory and file systems must be understood roughly. In addition, you must be able to type out some basic Linux commands. It would be better if you can use vi.
In-depth understanding of the Java virtual machine. I don’t understand how the virtual machine works. There are some problems in the system that you really can’t figure out.
There are also Tomcat, Ngnix... It is not possible to study them thoroughly in a short while.
You may also hear people say: Discrete mathematics is very important and is the foundation of computer science! Then go and take a look. In addition to Boolean operations, other equivalence relations, partial orders, propositional calculus, predicate calculus, groups, lattices...it will completely confuse people.
Before you have mastered these basic knowledge, cloud computing, big data, microservices, and containers have started to make noise again. Don’t you want to know more about it? Aren’t you afraid of falling behind?
Coders are so "cool" and are constantly driven forward by various new technologies. But on the other hand, if you are interested in software programming, it is simply so happy. New toys are constantly appearing, and you can play with them. Can't even play it. Therefore, if you want to remain competitive in this challenging industry, you must continue to learn.