Experience sharing by Byte senior programmers - the road to learning back-end

Getting Started Backend

  1. 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.
  2. 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.

Guess you like

Origin blog.csdn.net/m0_63230155/article/details/132228350
Recommended