Dear readers, MY name is Long Shu, a retired old code farmer, and I have 18 years of code age since my work. Today, I will share my opinions on the front end, back end and full stack. For those who are ready to learn programming or have just learned programming, let me give you a clear idea.
After reading this article, you will have a very comprehensive understanding of the front end, back end and whole stack!
A, the front-end
(1) What is the front end
To put it simply, front-end development is the development of content presentation and user interaction on the web. Content display refers to the pictures, text, video, numbers and other information you can see on the web page. The interaction with the user means that the user provides data input to the website by clicking buttons and inputting text on the page, and then the front end responds to the user’s input, such as the content on the CSDN page.For a more concrete example, if you like my post at the end of the post, the page responds by adding 1 to my likes in the background database. And display the number of likes after adding 1 to the video on the page.
(2) Common front-end technologies
The basic technologies used in front-end development are HTML, CSS and JavaScript, which are used to control the content, visual effects and user interaction of web pages, respectively.
HTML is not a programming language; it is a markup language for defining structured data. Actually corresponds to a page in your web browser to see an HTML file, the file is filled of HTML code, and is one of the duties of the browser to download from the website by you enter the url corresponding HTML code, and the code to render you the naked eye, the front one engineer’s work content is to write the HTML code, Or use techniques to dynamically generate HTML code for a page. For any web page, you can see the CORRESPONDING HTML code in the browser’s developer tools.
If you look closely at a piece of HTML code, you’ll see that it’s just a bunch of Angle bracket tags of various types nested together. Take my article a few days ago for example. In this article, the title of the article corresponds to a tag of title type in the code, the video of the article corresponds to a tag of video type, and my avatar and picture correspond to an image tag nested in the hyperlink tag. And the text in the article corresponds to yt-formatted string tags.
CSS code is used to specify the appearance and style of each HTML tag, such as color, font, width, position, center or scatter, display attributes, and so on. The CSS code is also read by the browser and rendered as you see it. Sometimes PM will want to adjust the size and color of a button on the page, and change the CSS code corresponding to the button to achieve this.
The real programming part of front-end development is JavaScript. How to interact with the user, how to interact with the back end, are realized through JavaScript code, just like HTML code and CSS code is executed by the browser, the JavaScript code inside the page is also handed over to the browser to execute. By the way, JavaScript and Java have nothing to do with each other, and their features are as far apart as India and Indonesia have nothing to do with each other.
No matter what language is used, the wheels are usually not built over and over again. Instead, the language’s existing library is called to implement common features and make the development process more efficient.
React is a popular library for front-end and Web development. React is not only used to implement interaction logic and event response with users, but in fact almost all HTML code on a page can be generated by React. This method of generating HTML code on the browser is called client-side Rendering, as opposed to server-side Rendering, which is the complete HTML Rendering that is generated by the front end of the site and then delivered to the browser.
By the way, the logic of the front-end server can be implemented in any programming language, such as Java, JavaScript, PHP, Python, or even Scheme, as long as the server behaves according to the PROTOCOL of HTTP. Client-side Rendering and Server-side Rendering have their own advantages and disadvantages, so front-end engineers need to select the most appropriate Rendering method according to the actual situation when developing web pages.
In addition to React, another popular JavaScript library is Vue, which is widely used in China. For example, Vue is used for THE HTML code of site B.
The above are some common technologies of front-end development, such as THE working principles of HTML browser and front-end server, which are usually taught in computer network courses in schools. CSS, JavaScript and React are mainly self-taught.
Second, the back end
1. What is the back end
With the front end out of the way, let’s move on to the back end. What is back-end development? A considerable part of the back-end development work is the development of data access services, so that the front-end can call the back-end services to add, delete, check, change the data, which is often heard by everyone CRUD, so as to realize the front-end response to the user’s request.
When you sign up for a large site, for example, the front end of the site calls its back end and writes your user information to the database. A back-end service is not limited to being called only by the front end, it can also be called by mobile apps, and it can be called by other back-end services. By analogy, the front end often needs to invoke a back-end service to complete the call to the user. Request response, back-end services often need to query the database to complete the response to the front-end request. As you can see from this analogy, both the front end and the back end have in common the ability to respond to requests from the front client by invoking a service that is further behind them.
Back-end engineers are responsible for a wide range of tasks, including designing AP, architecture diagram and database of back-end services, and writing codes to implement business logic of back-end services. At the same time, you also need to ensure that your back-end services are highly available, that is, they do not break down when there is a lot of traffic. In addition, the response time to customer requests is very short, or the throughput is high, and the number of requests can be processed per unit time is large. If you want to build a new back-end service from scratch, then the whole process needs to do a lot of system design, which is the backend engineer interview will be tested on the system design, do the system design is very inspect the accumulation of knowledge at ordinary times.
2. Back-end required skills and tools
(1) Back-end server
What technologies and tools do back-end engineers typically work with? The first is the back-end server, which, like the front-end server, can be implemented in almost any programming language, as long as it returns the correct data to the caller.
Major programming languages also have popular Web frameworks, ready-made wheels that help you quickly implement a back-end service on top of the framework. For example, Java-based Web frameworks include Spring Boot and Dropwizard, javascripts based Express, and Python based Flask. Each of these Web frameworks is used by big companies. Which framework will be selected by different companies? Partly it depends on which language the founding programmers prefer and which framework they use most.
There are also frameworks for back-end services that allow you to develop in multiple programming languages rather than being tied to a specific language, such as gRPC, a remote invocation framework that supports Java, C++, Python, GO, etc.
With so many languages and frameworks, ** if you want to work for a company doing back-end development, do you really need to be familiar with the languages and frameworks they use? ** Generally speaking, no. A lot of things you learn on the job, and the fact that you can pick up a new language in 2-3 weeks is the basic quality of a professional programmer.
(2) Database
In addition to developing and maintaining back-end servers, back-end engineers spend a lot of time on databases, whether it’s creating them for your back-end services, tuning their performance, or analyzing the data inside them.
The most commonly used databases are relational databases, such as MySQL and PostgreSQl, which are widely used in the industry. How to design a relational database? How do I access data using SQL Query, and how do I rely on index to speed up data queries? These topics are also covered in database courses at school.
However, there is less introduction in school database courses, but in recent years, more and more non-relational databases are used, which is often referred to as no-SQL database, such as MongoDB based on JSON document, such as LeveIDB based on LSM. These databases may be better suited to your business needs in certain situations than relational databases, so learn their principles and features on the job.
Databases are often the performance bottleneck, or slowest link, in back-end systems. When designing a system, engineers can use a variety of methods to improve back-end performance. For example, they can use MemCached to speed up data reads. For example, they can use Kafka to asynchronize data writes to improve back-end performance.
As for the server and database, I will update the article in a few days to introduce it in detail. Thank you for your attention.
Three, the whole stack
What is full stack? Full stack means full dry, which means that you can build and deploy a complete working Web APP, independently write front-end and back-end code, configure the server, and design the database. Basically, you can read the front-end and back-end skills and work content mentioned above.
However, the salary is higher than the front-end engineer or back-end engineer, although one person does the work of two people, but generally not two people’s money, of course, if the skill is good, one is worth several ordinary programmers.
Four, some suggestions
(1) Main front-end? Master backend? Or a full stack engineer?
I don’t think you need to jump to conclusions. You just have to go to work, learn on the job, and eventually you’ll find the right direction for yourself. Such as myself, I just came out from the start work when the main front development, doing doing behind encountered bottleneck, technology didn’t how to ascend, and pay back to seriously study the back-end, plus some opportunity, just do in the department after the departure of the shortage of people, let me go up, I didn’t go down on the top of the a result, although salary didn’t double, but also added a lot of, He has since become a full stack engineer.
(2) It is essential to brush the interview questions
Whether you are the front or back end of the interview, will involve the investigation of the algorithm, brush questions is essential, brush questions there are a lot of websites, such as Niuke, Force buckle, sai code and so on, are very good. (3) Which is easier, front end or back end?
From all my years as a programmer, I don’t think the front end or the back end is better or easier, the difference is the technology used and the aspects considered. The front end mainly considers the user experience, the back end mainly considers the underlying business logic, platform stability and performance, the most important is to see what part you want to do? Do you like to work on what the user can see, or do you think about what the user can’t see?
(4) Girls are more suitable for front-end?
I often hear some people say that “girls aesthetic good, more suitable for front-end” this kind of words, I am bored, this is related to gender aesthetic? When I was working on the front end, the company had a uniform interface specification, and everything was done by directly calling the existing Components in the library. The length of buttons, fonts and borders was not determined by me, but by the PM and UI designer. Your aesthetic was definitely not as professional as that of a designer.
I’m bored. Does this have anything to do with gender aesthetics? When I was working on the front end, the company had a uniform interface specification, and everything was done by directly calling the existing Components in the library. The length of buttons, fonts and borders was not determined by me, but by the PM and UI designer. Your aesthetic was definitely not as professional as that of a designer.
So it’s not that girls are better at the front end.