How to systematically learn Web full-stack development? -

Source: Internet
Author: User
Tags ruby on rails
0. Reply content: Write a website if it's okay. You can run it first, and then the page cannot be too ugly, right? You have to learn the front-end, and the page logic is getting more and more complex. You have to get to the front-end framework, and there are more and more people using websites. You have to optimize the server performance and find that you are a dog, you have to go to the server framework ...... You have to understand the database when I/O becomes a problem ...... I think it is a scientific method in my opinion.
---------- I am a gorgeous split line --------------------------------------------
Next I want to talk about how I became a full (dou) stack (bi) engineer... orz... it's also the first time in my life to answer questions. I'm a little excited To Think About It. Orz...
First
Now I feel that all the contestants in the world are mixed with the full stack engineers. You know, there are also many engineers on the black stack. In my personal opinion, I have heard that there have been a series of topics, and there are specialized topics in the industry. The formation of each technology stack form must be required by the times, and everyone is trying to feel the pleasure brought by coding. Why should we be at a low level. If you can't help but get angry, please stop watching it again.
Getting started
My entry started from the web Front-end, and then I made some gwt-related projects, which gave me a general understanding of front-end development. Later, I went to a slightly larger factory to practice the web Front-end. At that time, I felt that every day 50% of the time was torn against the back-end interface, and it was so sad. Then I went to my classmate's company for an internship, so I found that all the contestants here were 10 contestants. I said I could not do anything but casually abused you on 10 streets every day, @ Zhu wenlei @ Liu chaofan @ DoG A @ Chao Liu @ Dont Panic so I don't know what I will do. At that time, I made some sort of lib, and then wrote the demo to run all the processes, So I encountered a lot of problems that I could hardly use at ordinary times. I also learned a lot about how to solve problems with my colleagues. So I think the most important thing to get started is to make too much effort and do nothing, so it will take a while .... the goal of getting started is to connect the frontend and backend and know how to process it.
Development
After joining linkedin in China, I have been working freely between the front-end and backend of the web, even having done a short job on Android. I have been doing some work related to automated testing in the last six months. Because it is fast iteration and agile development, many agile development things are learned and used between them. I have been exposed to some excellent front-end frameworks and tools. For example, Shixing's react and seemingly popular angular, niche coffeescript, a smaller ruby on rails, and gin with our intern merge-request, there are more niche calabash types... Many problems have been encountered here, and most of them are solved by gg. Thanks to @ cr, I can't find anyone who cares about it ), I remember that an angular bug was fixed just a few days ago. The feeling at this stage is to constantly try and reflect on why such a choice is good or why it is not good, and what improvements should be made during the next selection. Thank you for giving me a ride. I am a casual fan of digo, and I think my code is a slot of mengnan.
Reflection
The most important points for a full-stack engineer:
1. Be brave in tossing and tossing, try more technology, posture, and posture, and stick to death.
2. A powerful problem-solving (gg) capability. Most people step on the pitfalls. I feel like I can always find them.
3. Good at summing up and reflecting, used to accept face hitting and tearing.
The qualities that a good full-stack engineer should possess:
1. Quick project intervention and getting started.
2. Accurate Technology Selection capabilities.
3. Powerful problem division and solution capabilities.
4. Excellent code quality.
5. Good makeup awareness and team awareness.

I feel like I am away from my questions. The subject asks me how to learn and I don't know where to go. May the subject learn all the pictures he cut as soon as possible? I caught the cat T_T. Don't be superstitious about full stack!
Don't be superstitious about full stack!
Don't be superstitious about full stack!

What is a knowledge system diagram? Naive ~
In the age of knowledge explosion, what kind of knowledge system diagram are superstitious? Find abuse or how ??
The knowledge system diagram at the front end is enough for you to drink n pots ~

To put it bluntly, I personally support "business-driven ". So what should we do? (Take the current project as an example)

1. panoramic live broadcast platform construction

1.1 Requirement Analysis
What are the core requirements for a panoramic live broadcast platform?
-Panoramic live video players
-Stable Streaming Media Server
-Live Video Status Management Server
-Other related content (Business optimization or something ~)

1.2 knowledge reserves
1.2.1 live broadcasting involves three important links
-Stream pushing (such as using obs, ffmpeg, and other rtmp or hls streams)
-Forward (rtmp/rtsp/hls/other can be pushed for different cases)
-Play (the video here is certainly used. The platform can be divided into flash hls, rtmp, rtsp, and mobile hls)

1.2.2 to achieve the "Platform" level, of course, the requirement is that it can support n live broadcasts!
-Server selection. To cope with the so-called "high concurrency", you can discard server rendering and generate static pages and drop them to cloud storage.
-Cache problem: the previous step applies to the cloud storage page. Here, cdn is configured for caching, which basically solves the problem of viewing by multiple users.
-In addition, you can configure Server Load balancer (add n servers and use round training or other methods to access different persons in different regions)

1.2.3 status management and update Logic
-Since the page is already static, the best way to do this is to manage the page in ajax mode. You can set a certain period of polling.
-The central server must be stateful. You can decide how to manage it.

1.3 Other content
...

To implement these functions independently as needed, you will naturally learn what you want to learn.

Are you finished? NO!


The full stack I understand is not a technology you have used or a problem you have solved,
Instead, how do you solve the problem, how do you respond to the demand, and change the demand.

Note that some knowledge points are more professional than those who use document query. However, if you do more similar things, you will find that these pitfalls are completed, if you can remember some important points at the same time, it is often useful to do things in the future ~ If you have been invited twice, just answer it.

To tell the truth, the figure (there are many similar online) is very good. In fact, the basic skills are good, and you will know that those are just three lives.

Want to learn front-end, from the http://www.w3school.com.cn Start from the html, css. javascript chapters (only look at these three, excluding html, xhtml, css3, and other derivative sections on the website ). If java is used, write a servlet, get, post, and various methods and return an html string. Then use the template engine to reuse html. Then try ajax to avoid refreshing the page. After the code is too large, the layers are divided into mvc. After the Code has a large scale, it is deployed to various web servers and the ga script is mounted. Use linux and ant for automatic deployment. Then play with memcache and various analysis tools. In simple terms, the full web stack is to develop your own website. If you do not need to complete it, you can build it from the beginning to ensure that you can perform online O & M on your own.

In detail (I am currently working in the company)
Domain name purchase => host Purchase => domain name configuration => server operating system installation => server software running environment configuration (including user permission firewall) => web Data Structure Design (ERTU, database Table) => web page design => web graphic Writing Page => back-end programming (Basic mvc mvvm database CRUD data cache middleware) => code compression obfuscation Automated launch => reverse proxy configuration (nginx) => code monitoring and optimization

After the data volume concurrency comes up
Database/table sharding => docker-Based Server => automated deployment and O & M testing => Message Queue introduction...

I can do a lot of things, just do it at 1.1...

Above
In February 17, 2016, we first learned about databases and simple data structures, which are useful at both the front-end and backend. After learning these two concepts, you will basically learn other concepts about the business. That is, everything is learned, everything is done, and private work is done. It may take about 10 years to be smart and 20 years to be stupid. Thank you.
Full-stack engineers have high requirements on all aspects of their capabilities and it is a great goal to become a full-stack engineer. However, apart from knowing that full-stack engineers are well-paid, first, you must first understand why full-stack engineers have such a high level of treatment and position.

Full-stack engineers do not have to master the full-stack Technology of products in a certain field, it is better to simply have the ability to independently implement a product (with this ability and whether you need to do so is two things, we need to have such capabilities first ).

Therefore, to become a full-stack engineer, the fastest and most effective way is to be the person in charge of multiple product projects, and to participate in and lead the completion of the entire project. The subject must understand that, in the field of computer technology, even well-known full-stack engineers in the industry cannot fully understand all fields, water pinggao engineers have a deep understanding of their business, products, and technical systems. Such a person must be able to grasp the new technology and style quickly (you must know, in formal projects, architects must consider the risks when designing the architecture. The reliability and learning cost of the technologies used are one of the most important risks, if the time is not too short, it will take a short time for you to master it quickly ).

However, you may ask, what should I do if I have just graduated or cannot lead a formal project before graduation? According to my personal experience, most programmers are reliable and honest people. When you do your job well, you may ask your predecessors or technical leaders to read the architecture documents, or you may need someone to help you explain the architecture and technology selection. I think if others are free, they will generally be happy (programmers force genes to always be in turmoil ). When you get the design of these architectures, you should carefully repeat and repeat the scenarios of the designers during the design and the reasons for making these technical decisions (both of which are actually a combination of a series of decisions ), it will take a long time.

Before graduation, I want to become a real full-stack engineer. I advise you not to take the steps too large, if I receive a resume from a freshman who claims to be a full-stack engineer, I think 99% is a joke, and 1% is a coincidence.

Study your own technologies, do a good job, experience more practical projects, think more and explore more to keep up, Every programmer can become a full stack engineer. Node. js is a shortcut to the full web stack, or should it be a whole stack as soon as it comes up, so scary ~
My understanding of the full stack is that when Daniel reaches a certain level in a certain technical field, the full stack can be said only when the thought + technology gradually spreads to a global and integrated level! It will be used to understand the concept of two dimensions, namely, the latter + time.
I think the full stack should be either frontend or backend, because you must have a technology pool that you are good at or dominant. From the perspective of development, you need to constantly improve and break through a certain technology in your mind!
I personally suggest 3/7 principles, 70% focus on the areas I am good at, and 30% focus on other areas.
If you are engaged in development, do not shake a bottle that is less than half a bottle. If something goes wrong, you can find bugs in the world ..

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.