How to become a full-stack engineer?

I study computer science, just in college, do not know what is the full-stack, anyway, what to learn. My university course on programming have learned c, assembler, linux, JavaSE, embedded etc;

I have always been longing for c ++, c ++ think learning all the great God, in the junior year, to be one of three: c ++, c # ,, Java. But when I reported class speed not, did not report on c ++, reported on the java. Then c ++ very sought-after, but it was some time after school to regret it, turn Java or C #. I was also simple to understand Java entry, after work, or find it secure in the learning Java. It was in 2012!

University life is always flies very fulfilling. In addition to programming course to learn, I still see some of the training courses. For starters, I was beginning to see some basic video: such as html, css3, js, jquery, Java, JavaWeb, mysql, tomcat. The teacher also makes us
free to find a few students to form a group, I usually group leaders, copy all the basic development tasks, now think of it, was really difficult, though it was a bug for me now may not be What counted, every minute to get, but at the time you may want to get two days.

The first small project: Potted mall, on a web page, lacks logic, adding such features shopping cart are not, and no payment and so on up.

The second small items: chat rooms, this be good, and there are service side, there is the client, with the swing assembly to write desktop applications, then upload the code to Baidu document, a few years after graduation, there are people to find me, question chat room code. socket server using the link, a server can link multiple clients, can achieve more than the same chat, as a group, as work is very simple.

Third small project: upload and download, I was uploading and downloading goal is to make a jar package, calling for other projects, it is to do it is very simple, what design patterns, interfaces, programming ideas, both clouds. Can only be successfully uploaded to the server, download the file to a local.

The fourth small items: phone contacts, mobile app end, you can fill in the phone number, birth date or something, at current levels of programming code that I, I would not write, I was under the online video teaching program, line by line, knock yourself from.

Other items universities, may not remember, the deepest impression on these. Hands-on, good exercise my programming skills. Here I would like to say a word in school classmates: code really is knock out!

Graduated from college, the whole stack of the word seems to just pop since then, I feel good, at least higher than my classmates their programming ability, anyway, I think so. But in the end my classmates they have got a job, I have not (good on her face).

My former two companies are small companies. The first was in Shanghai to do a few projects on assignment to Huangshan. The most famous Huangshan has a tree: Welcome Song, I went to see it twice to climb.

In Huangshan, made a few projects, project time frame used: Struts, Spring, Hibernate; use mysql database, struts1 and video teaching struts2 have seen that he take over the framework, are very basic level, configurations are online Find. Later replacement to newer Java frameworks: Spring, SpringMVC, Hibernate; the front is also used easyUI, bootstrap, layui. And I watched the video less and sass. (As if there is still stylus, technology is really endless, life-long learning ah.) I have also read about nodejs simple tutorial document, you can engage in a simple service request or something.

Those items for me now, can only say that the consolidation of the knowledge learned from watching the video. Lacks technical content, the foundation actually played very firmly, but the underlying source code, design patterns, programming ideas, also are clouds.

And later resigned to Shanghai, then in 17 years, the company is entrepreneurial companies. Nodejs with back-end development, back-end management platform IOS, Android front-end, Spring, SpringMVC, Mybatis framework. I am responsible for the back-end management platform.

Entrepreneurial companies need is the all-rounder, will not be immediately learned. Here I the following technology has been a good upgrade:

linux basic commands and a variety of software installation (rookie-level): and many rookie, I began to get the server system when all tomcat windows server with a cloud Ali buy server (think about now is really dish). Later get linux system, first using a variety of connected tools (currently I use winSCP + Putty), learn a variety of basic commands, look for a variety of logs to troubleshoot all kinds of mistakes. Is the most difficult to install, because the version error probability problems caused by too much.

nginx (domain configuration): tomcat previously used direct-configured domain name, then know that this school can also use nginx, skills constantly updated iteration. the nginx conf configuration basically copy to various parameters are basically default. https certificate in addition to buying, you can also use Let's Encrypt free application (installed Let's Encrypt allows you to encounter a variety of pit: python version, nginx ssl connection, file permissions, etc.)

nodejs (js back-end services): npm install is the most difficult command, various versions of the problem, the module error (java maven's very good, automatically download the module, customized versions, such as springboot related jar can control the default correlation jar version).

mysql (backup, master-slave configuration): I used to think to write sql, access to the database, CRUD, all is well. But to really consider their own high-availability projects, high concurrency, high performance, distributed, when load balancing, CRUD seem worth mentioning. mysql storage file, InnoDB index, B + Tree algorithm execution plan optimization. Hey, too complicated.

redis (data cache): redis simple to install, but after running, but not configured, will encounter a variety of pit. The simplest one: Do not serialized. We have a 20G application servers because the serialization problems, leading to full disk, the program of the GG. Clusters also a challenge.

jetty (java deployment, and tomcat similar): four words: simple and practical.

svn (version control, and git, etc.): svn installation, distribution accounts, these fairly simple, git is self-taught, how to apply for registration are also in accordance to the blog tutorial

vue (front-end framework): Speaking of vue, I'm the first to know that angularJS, then still called angular. Now there react, real tripod ah. But the other two I did not learn. Vue school buddy or a UI enlightenment. The man is engaged in UI PS, designer. He said that would like to turn the front end, have been studying this stuff. Companies just need to do a single-page application, he would get one, send me, I can help deploy, what iteration, looked inside two days to learn the syntax, and really than js, jquery to write more comfortable, page render easier. Later get elementUI, iview, feeling super easy!

By this time, that is, 18 years in October. I believe we have the technology system understand. Again a few days in 2020, and this time I learned what technology to improve the capacity of what, please continue to read!

Let's talk about the full stack:

Full stack of English words is called: Full Stack Developer.

When I said I would front-end framework vue, will be the front elementUI, will be the back-end java framework, will deploy the back-end linux, everyone says you are "full-stack" it! (I thought to myself, if I had the whole stack, I gnaw wages being low!)

For more than a year to realize that my ability to bring the programming, I prefer this sentence: full-stack not to say that their ability to pile up, but you want to own something strong to energize it out, let others It has the ability to full stack.

A government program: the national all provinces, municipalities and counties are used, there are some special institutions. Many such projects nationwide, such as the tax system, the country's personnel system. Think of all the big head, each of the local National Police officers to visit every day to check how many times? How to ensure that the system does not jump? If the project to pay you to do, you answer it?

Why should I cite this example, that is to say, their ability can be served up to what role we want to do projects inside.

For example, I will frame this front-end back-end, the line can also be deployed. But if the boss to the project, I could refuse, because I have not learned the team management (although now working in). If your program needs time to change 10 times 8 times, not only to develop programming headaches, the project manager will be more headaches. Who would not want their own projects more stable, secure and reliable delivery of products. Team management accounted for a large share of project development.

So at this point the stack can play what role? That is, before and after the end of the business needs to communicate 0 cost. Not only is writing code, solve the bug too. Sometimes out of a bug, it could push the front end to the back end access 500, the rear end of said front-end mass participation problems, and finally spent a lot of time to resolve.

Then someone might say, before and after the full stack will end, but he did fine I studied, I did not specializes in the deep. I think it will be wide, deep and true will not so much. Here is a simple example: the high school division liberal arts science, do not learn science with liberal arts, science Pa partial subjects who will not? State high school education is now slowly implementing liberal arts science merge it!

So, the whole stack just more than the average front-end or back-end some skills only, nothing more. (Testers may feel uncomfortable, and did not say why the test? I understand, what not to bug test!)

Even so, I still advocate we all carry out his whole stack. Full stack of benefits:

Looked more like big brother: know more, to solve the problem quickly, we can engage in a variety of technical, independent write a variety of applications, a variety of new churches.
Learn things fast: Strong ability to understand the variety of programming languages are similar, by analogy. You can quickly learn a variety of plug-ins, very small obstacles.
Global Project: understanding the business stronger, faster realization of business code, technical know borders, deeper involved in the project, technical Standardization.
bug resolved quickly: bug can quickly find the cause, determine bug categories (back-office services, front-end, servers, etc.), and the bug appears low probability.

For this reason, I am more than a year at a value of depth technical skills:

java: a collection of source code, multi-threaded, JVM virtual machine
spring: Look realization of the principle of inversion of control, AOP; proxy to achieve, effect, etc.
springboot: annotation-driven, component built-in configuration
springCloud: not just broad framework, the principle of operation, service the concept must learn
docker: mirror, K8s
micro-service registration: Zookeeper
SQL Performance tuning: execution plan,
algorithms: sorting, searching, various trees and so on it, reversing a lot to learn!

Now is the technology will be more whole stack, so the future direction of development: senior technical manager, project manager needs; (and so managers can do, we have a technology that cow!) In two directions based
this no obstacles ( keyboard suddenly jumped out: buried love, are not doomed girlfriend)?

Entrepreneurship is preferred: learning ability. Technology development easier. You can pick your own private live, do their own part-time business projects.

Finally, attach the opening of The Analects:
    Confucius said: "

   When learning of science and, not a pleasure?
   Have friends come from afar?
  Is it not resentful, not have a gentleman? "

(I believe we are not a lot of people do not know "indignant" What is the: yun4 resentment)

 

 

Disclaimer: This article has `` `... tuck point Tansu published in the blog Park

Reprinted statement: freely reproduced, quoted, but need to belong to authors and indicate the source of the article.

Link stations:  https://www.bloghome.com.cn/user/yysblog

 

Guess you like

Origin www.cnblogs.com/yysbolg/p/12111610.html