Home > Article > Web Front-end > How to teach yourself the full stack of web
How to self-study the full stack of web: First, we must understand the three-layer architecture of the web development process, namely the presentation layer, business logic layer, and database layer; then we must also master service management, cloud host platform, and web server , database, log system and other knowledge.
#The Internet industry has always been hot now, and I believe it will remain hot in the future. Therefore, many friends have started plans to learn from the Internet. Some choose training, and some choose self-study. But many friends may feel confused when it comes to learning Internet technology. A few days ago, a friend asked me how to learn the full stack of web by myself. Next, I will talk to you about how to teach yourself the full stack of web.
(Recommended tutorial: html tutorial)
First of all, you need to understand what the web full stack is and what knowledge you need to learn to know the web full stack.
Secondly, you must know that self-learning the full stack of web is not a simple matter. It requires you to have enough perseverance to persist, and it also requires you to have the ability to learn efficiently in order to learn it well in the shortest possible time. .
A Web development process has a three-tier architecture:
Presentation layer: The presentation layer is also called the front-end part of the website. It handles the user interface related issues of the website.
Business logic layer: The business logic layer is also called the back-end layer of the website and is responsible for data verification and dynamic processing.
Database layer: Finally, there is the data access layer, which uses API to provide data for the website.
The above three layers are collectively called full-stack web development.
As a full-stack web engineer, you need to know the following knowledge:
1. Service management/operation and maintenance
A developer must understand basic server management knowledge. Including but not limited to the following knowledge:
Remotely connect to the server through a terminal or other environment without a user interface
Be able to write basic shell scripts
Users and groups on the server Group management
Manage server programs like Apache and Nginx to provide applications
Firewall management and permission management
Installing and updating software
In addition to these basics Skills, developers must know how to create a good, healthy, separated development environment in Docker or a virtual machine environment like Vagrant. If you are not familiar with all the above techniques, then I must recommend an awesome book to you, click here to buy it.
Developers must be very proficient in version control systems in order to develop reliable production backups and shareable and collaborative code libraries that can track code changes over time. Nowadays, no developer's workflow is completely independent of version control. We have a great video tutorial on version control, buy it here.
2. Cloud
Different from actual management or virtual servers, a developer may need to know about cloud hosting platforms, such as Heroku, Google Cloud, Azure, AWS, etc.
One thing that must be said is that platforms and tools are more about hype than their practicality. While there are many platforms and tools that don't work as well as advertised, understanding the services everyone is talking about will be useful in the long run - customers may ask to switch providers at any time. Luckily, we have these definitive guides to cloud hosting deployment.
3. Backend
In the backend, in addition to knowing which language to choose, such as PHP and numerous frameworks and CMSes, a full-stack developer must be familiar with:
Web servers, such as Nginx and Apache, are closely related to operation and maintenance
Unfortunately, NodeJS can already compile JS, CSS and other resource files into static files that can be easily cached. Fortunately, there are ways to avoid learning NodeJS and use PHP.
PHP (http://www.ujiuye.com/zt/php/) package management tools like Composer can be used in a modern development environment Searches such as ElasticSearch (introduction here) are inseparable from
good API design. Since most new web pages are based on API and only serve the front-end (described in detail below)
The engine is very important for improving the performance of the website.
Cronjobs and back-end work, use libraries like Gearman or Crunz
To understand caching, Varnish, Redis and other awesome tools can shard Store data so that a project can be deployed on multiple hosts
4. Database
The database is a separate part, because apart from a good grasp we will basically not have structural changes In addition to the data schema of a relational database (MySQL or PostgreSQL), a full-stack engineer should have some knowledge of non-relational databases such as MongoDB, Redis, or Cassandra, not to mention graph databases like Neo4j.
Unfortunately, these are all things on the server, all under the control of the full stack engineer. There are also several remote solutions similar to Mong, such as RestDB or Google-owned Firebase.
5. Front-end
If you want to know what a normal front-end knowledge graph looks like, you can read this excellent article in the JavaScript section. But as a full stack engineer, you need to understand
NodeJS and NPM
Yarn
Preprocessors and compilers (such as Babel), used to compile Typescript, ES6, LESS, SCSS, SaSS
Build tools, such as Grunt and Gulp
Frameworks, such as VueJS, React, Angular
Module packaging tools, such as Webpack, Browserify, Rollup
6, Design
In terms of design, full-stack developers need to understand how to transform a product into Before the actual usable HTML and CSS code, draw a prototype diagram. Then you can use JS to write interactions, and the backend can also use fake data to simulate the production environment. Only when this critical prototype drawing is completed and the user experience design and interface design are ready can the real development begin. This in itself is a difficult task and requires a special set of tools:
Photoshop and Illustrator or some open source tools like Gimp/Inkscape. Visit the Design channel to learn more about such tools.
A cool, fast editor, such as Atom or Sublime Text (here are ten useful sublime plug-ins)
The background selector and color selector of Subtlepatterns can be matched with some Color
CSS grid system
All the knowledge required for the front-end mentioned above and JS data simulation
Publish the prototype diagram online for everyone to browse and give For feedback, Ngrok is very easy to use
7. Log system
In order to effectively monitor the health of the application, full-stack developers must be able to track errors, find error logs and extract useful information from them. information. Full-stack developers also need to predict some trends from logs, such as increases in CPU or I/O usage, in case the application hangs without knowing when. This part also has something to do with operation and maintenance, but it requires some special skills:
Recommend an excellent ELK stack article, which will help you understand the knowledge required to build a logging system. It includes ElasticSearch for finding logs, Logstash for collecting logs, Kibana for displaying logs with great charts, and even Logz.io for providing solutions.
8. Mobile terminal
Finally, it’s time for us to talk about the mobile terminal. As webviews on iOS and Android become more efficient, and with the advent of PWAs (Progressive Web Apps), native apps are becoming obsolete because they are simply too complex to develop. Therefore, a full-stack engineer must understand PWA or React Native, or like NativeScript, Tabris, Cordova, Phonegap or other webviews to allow client applications to call APIs and run.
The above is the detailed content of How to teach yourself the full stack of web. For more information, please follow other related articles on the PHP Chinese website!