Getting Started Backend
- There is no interface on the back end. After writing the code, I don’t know what it will be used for and who can use it.
Choose a familiar programming language, such as go or java, and write a website yourself, with article publishing and display functions. In this way, you can intuitively feel the role of the backend in the Internet world. Major youth training camp projects can play this role. - I know that the back-end program can add, delete, modify and check data. I want to learn the technology stack of a language in depth. Which one to choose?
Java, Golang, Python, C/C++, etc.- Server direction: Byte Golang; Meituan, Alibaba, JD.com and other Java; Baidu C++/PHP/Golang
- Big data direction: Java
- Middleware direction: Java/C++/Golang/Rust
Learn the back-end knowledge system
A lot, a lot indeed. Take your time and start with the big projects in the youth training camp : Golang and MySQL. Let’s start with these two items~
[Golang]: slice, map, goroutine, concurrency control (lock). In what scenarios are the above four items used and what is the underlying data structure.
[MySQL]: What is the data model of the index and what is the physical model actually stored on the hard disk.
You can slowly expand from Golang and MySQL to more knowledge areas. For example: high performance, high concurrency, distributed, etc. These directions are also covered in the back-end courses of the youth academy.
During the interview, it will be a great advantage if you can explain the data structure clearly. At work, we need to be familiar with a system. The core is to understand how data is stored and how it flows in the system.
theme | describe |
---|---|
Computer Basics | Data structures, algorithms, computer composition principles, computer networks, operating systems, compilation principles |
Linux | Basic Linux operations, Unix environment programming, network programming |
database | Basic theory ACID, MySQL, NoSQL |
Programming language | Java、Go、C/C++、Rust |
Design Patterns | 23 design patterns |
version control | Git |
tool | IDE、Vim、Emacs、SSH |
middleware | API gateway, Web/RPC framework, message queue, cache, scheduled scheduling, database middleware ORM, log system, medium configuration |
distributed | Consistency/CAP, transactions, idempotence, microservices, scalability |
High concurrency, high performance, high availability | C10k, process, thread, asynchronous, pooling, cache, CDN, cluster, load balancing, current limiting, disaster tolerance, multi-active |
search engine | Search engine principle, lucene, ES |
Virtualization | Docker、servicemesh |
Safety | Web security/CSRF/XSS/DDos, encryption algorithm, OAuth2.0/SSO |
Big Data | Statistics/Probability Theory, HDFS, HIVE, Spark, Flink |
algorithm | Discrete Mathematics, Linear Algebra, Machine Learning |
About career planning
Generally speaking, a good start: when you go to a big company, your first job direction is a direction that you like to pursue in a long-term and in-depth way.
If you can't get into a big company at the beginning, then you have to work in a small company and learn in depth the technologies you use in your work. The routine for in-depth learning is still the same. Find out what the implementation principles of the framework you use are and what the implementation principles of the database you use are. At the same time, remember to brush LeetCode. Then look for opportunities to enter large companies.