4 years ago (2017-03-09)  Geek Viewpoint Software development |   First to comment  21 
post score 0 times, average 0.0

Many "aspiring" or programmers who love to program may be eager for full-stack engineers.The full stack is a kind of geek spirit. It has a strong interest in every programming language and every development platform of the software and is willing to work hard. Full stack engineers should have extensive contact with all aspects of the software. With deep insights into the software, this broad and deep insight will allow us to develop applications more efficiently. People around us often describe the full stack as "I'm familiar with C/C++, java; swift, Ruby, and can develop IOS, Android, Windows applications, Web front-end back-end.Used these frameworks:..."

Software is not only so easy to develop

Full-stack periodic table from xebialabs

Yes, before I contacted ThoughtWorks, my definition of the full stack is like this, what languages ​​are "will", at least written, and development experience on each platform.Under this definition, I will be proud to say that I am a full stack engineer.Even haha, in addition to the above, I also developed software on the hardware platform (Arduino), I used PS for their own Android client interface design, icon, drumstick over the icon font.Yeah, I'm proud to think about it. I suddenly found that I would have something like that.(Of course, rationally speaking, actually knowing oneself well is "will be a little.") Stealing that I am a person who has more ideas about life. When I discovered that there are some things in my life that can be solved by software, I like to develop software to solve it. For example, I used to be inconvenient to see a university leave. , and then developed a leave application for students, counselors, and classroom teachers. This last worked as a big assignment for my Android development practice class. The teacher scored 100 points; because the school will often let students check in, I and several classmates use it. The WeChat public number first allowed students to check in on WeChat and get their geographical location; because of boredom on the train, I and a few of my classmates made a LAN on the train and then used our system to let passengers order meals on the train. Films, watching live broadcasts of trains along the way, arrival reminder applications...In this process, I got a lot of satisfaction and a sense of accomplishment. I also learned more software technologies and seemed to be getting closer to the "full stack."

The product not only has the idea to go dry, but is perseveringly polished, and it is accomplished by many roles in software development.

During the two months of the summer vacation in Tencent, the skills learned were in fact secondary; even the internship subverted the previous view of the BAT god.The quality of their code is indeed high, but it is not a worldly fireworks. They will also write Hard code, and they will also be Baidu and Google.What I saw more during the internship was that a good internet company is good at allowing good interaction between multiple characters. It has a system that is maturely developed for code development; unlike what we do at school, , one from the needs of products and testing, Bug work orders spread to the development of a complete and rigorous process. Many of the things I've done have actually not been put into use. They are merely self-entertaining. A software product is really used on a large scale and it requires a lot of manpower to do products and operations.Then, I love development, but I feel that products and operations are a hassle.

The longer you go into the pit, the more you see it, the more you don’t actually know that your field of vision is getting smaller

The school recruited and joined a company I like very much: ThoughtWorks (TW), TW is a company advocating sharing, she expects us to express our own ideas in the form of articles.During the weekend, the company arranged pre-employment training. One of the tasks was to allow us to write our learning process and share our experiences in the brief.At the same time, the company's training team (“Sivot Auditorium”) will also regularly count our articles. The statistical method is to make a crawler to crawl the article information on the short-cut book and then summarize and output the report. At the time, I was learning about Ruby web requests and seeing weekly statistical reports of articles, I started thinking of doing a Ruby crawler.After it was made, I output an article to the brief book. After seeing Li Peng's brother (hereinafter referred to as “the prime minister”) who was in charge of the TW training, he decided to let my code do the work of helping the students to count the articles, and then let me specialize. Set up a small team: Siwo University Lecture Project Team I originally wanted to set up this project team to help us count articles as just one of them. More importantly, I wanted to drive my own Ruby learning process through this project.The purpose of the prime minister is to learn the process of project development so that more people can participate and cooperate. To this day, a few months have passed. Although the reptiles group can regularly send a statistical report to the students attending the Siwo lecture, it is far from reaching the original intention.The individual's starting point, originally wanted to make the report more beautiful, the page to add some pictures, reports and other visual visual effects, join the article ranking to improve the activity of the students, through a simple algorithm to achieve good articles, excellent author's recommendation, Find out the most intimate buddy and more.From these initial intentions I wanted to reach, this project has apparently failed. The reason for the failure is also the lack of ability of the Prime Minister to develop the project development, exchange, and cooperation that we have cultivated through this project. In this project, as the project sponsor, I first sketched a blueprint for the project and built the framework of the project.A demand point that looks simple to oneself is also very simple to implement. However, it is very difficult to convey to project members and implement it. First, for the project sponsor, some requirements may be put forward based on some of their own experience. The point is that while these requirements are filtered through their own brains, they are achievable, but for other team members with no relevant experience, they think it may not be that simple.As a student of software engineering, the software world seems to have only one programmer role in our "infant" understanding. Of course, the word "only" is too paranoid, and I certainly know that product, test, and operation. , operation and maintenance and other roles, but students who have long been envious of small projects in the school, often neglect the importance of the product or even the test, the product, to mention the demand is us; test, we write the code of their own test, not important place Save it; operation and maintenance, just take a server.We focus most of our software development on development, and software development means that the implantation of this consciousness will lead to the development of the standard of thought, or to the development of all things.For example, as a project sponsor, I am responsible for what kind of functions the project will achieve, and with development thinking, it is to mention "work orders":

Implementing inserting and updating article information in the database (encapsulated into a method) for later call after the crawler crawls the article information

I even wrote that everyone uses the Sqlite3 database.This kind of work order development thinking is more important. As a project sponsor, as a product, and as a BA (business analysis), such a list is severely overstepped. Our responsibility should be as a role, what effect to achieve, and to do so. What is the value (As a role, I want to ..., so that ...), how to do it should be given to the development, rather than what technology should be planned.When the Prime Minister pointed out my mistakes, I still planned to develop the project with "development" thinking. I think I'm still in the pit. Perhaps, for a personal project, we may have a very clear intention to know what to do next, however, to do a larger project has always been completed by the team, as "the most complex logic entity in the world", the software is The harder it is for one person to complete. The "software engineer" I have seen on the "market" is, frankly speaking, often equated with "code farmers", or informally speaking, "software coders."Write code, code agriculture, from the "software engineering" discipline definition, can not be considered as a software engineer, let alone full stack software engineer.As a "software engineering" major student of the "Caoban origin", the definition of textbooks translated into popular points is like this: Using engineering methods to develop software. And I think that as a project, it should be how to plan for "construction", how to manage the team, and how to make the project more efficient and orderly. This is exactly the difference between software engineers and "write code."The full stack is not only limited to the development of full-stack technology, but includes full stacks of software engineering applications such as business analysis and project management.   Copyright Print Print copyright for your work 22104666


This article has been printed on copyright and is protected by copyright laws. It must not be reproduced without permission.If you need to reprint, please contact the author or visit the copyright to obtain the authorization. If you feel that this article is useful to you, you can click the "Sponsoring Author" below to call the author!

Reprinted Note Source: Baiyuan's Blog>>https://wangbaiyuan.cn/en/software-development-not-only-that-simple-2.html

Post comment


No Comment


Forget password?