"The development effort goes beyond just writing code," says Dan Frost from the 3EV site, who wrote an article detailing a few things that should be noticed in the development process. The original text is as follows:
Developers are the main force in creating the digital world, they should not just play the role of programming tools, but should have higher requirements for development work. So, what are the ways developers can improve their development capabilities? Now let me talk about my idea. My advice may not be comprehensive, but I hope I can bring you some help.
Do not just stare at the code
In today's society, everyone writes code. And many amateurs can also build websites, write their own applications, programming is no longer a strange thing.
With the popularity of the Internet, many people only need to learn to program through self-study, but developers, whether they are self-educated or college-educated, face some of the same problems. I have interviewed candidates with highly educated qualifications. Most of them have a degree in computer science, AI courses, and computer certificates of various colors. However, they still lack some important ideas.
Developers should not just focus on the code, but also pay attention to two aspects of the development work - horizontal and vertical surface, for example, developers should know how to collaborate with others in the team, it should be clear that the project development system level the design of.
I think people working with developers should also read this article. Because if you know more about development, you can put more demands on developers as you collaborate, such as getting them to summarize the issues under discussion, refining the core functions of the system, demonstrating the application's implementation with images and examples Function and so on.
2. Important reminder
I think I qualify for developers because I'm also a developer and I understand some of the developers' common problems despite being well-versed in the code and getting the job done on time. But they still have to pay attention to two aspects: more professional and more humane.
3. Network impact
You just have to search the development of professional website above technology can get many answers. Such as framework knowledge, browser, CSS and JS. The search engine will find out the framework you need, the platform, and the trends you should focus on.
These things are just our tools, they help us construct the project, but they are not the key to the success of the project. Even if a developer understands every detail in the system, masters all API functions and new CSS techniques, he may also develop a meaningless product.
Developers need to know how to use the tools, as well as viewers, that is, users, teams, and other developers. They need to understand how well their tools are adapted to the environment (in other words, the product's environment) and the usefulness of the tools.
One developer is described as "wide and deep," a developer who understands how teamwork works and at the same time masters the core technology of development. If they join the project, it will greatly enhance the project process, change the pace of the project, without them, non-technical staff will fall into some trivial details stagnant.
We need it
I am currently in the middle of a list of everything I need to set up my web site and manage the host as a basic guide for newcomers to learning technology. We continue to explore to modify the contents of the list, I hope this list can create a good start for new people.
The list we have given contains most of the knowledge needed for learning development. Among the classic tools used in the classic, there are some new tools.
In the development of practice, these tools to promote the progress of the project is very helpful, outstanding developers should accumulate more tools than the programming language, CMS, framework knowledge more abundant. Because you need scheduling, testing, CI, enhanced version control (teamwork, not just yourself), and you can not just understand a few guidelines, you also need to understand the core concepts of the project.
DevOps
These aids and tips apply to the DevOps paradigm (DevOps is a generic term for a set of processes, methods and systems that facilitate communication, collaboration and integration between development, technology operations, and quality assurance departments). All along, the DevOps model of "operation" and "development" of the showdown are equally divided. Mainly used to maintain the operation of things. And developed to develop new things (often things out of operation). This contradiction has led to disagreements between the two camps.
If the developer can not fully understand the product, he often does not develop the functionality of the product, the code written is not suitable for the product. Because they did not consider the use of the product environment, so their code ignored the deployment of products, but will focus on the improvement of function.
Note that these details can all result in terrible delays, and the form of remote server management exacerbates this delay.
If you want to be a good developer, you should learn more about all the tools used in the development process. Once developers have fully learned the use of these tools, there will be great progress.
Continued deployment and DevOps practices have become a standard, and developers or companies that have not studied these ideas are outdated. If you can not keep up the pace of development, others will one day overtake you.
There are many online introductions to the concept of "DevOps," unlike PHP, MySQL, or Rails. It is a series of ways to reduce the risk of software and engineering collaboration. The main focus of DevOps philosophy is scheduling, automating and keeping production lines up and running faster and better.
If you use this kind of development mode, you will find that no matter in other departments or other companies, developers have good teamwork. If they work with third parties through the API, they will look into the other issues that may arise. But if they work with server administrators, they only care about how they need to be configured and how their software is installed on the server, leaving legacy problems cumbersome.
Code debugging
Michael Greer, Onion's CTO, gave a good answer to a question about the skills that Web developers will have:
"Lazy": refuse to do the same thing twice - write a script or algorithm to achieve
"Cowardly": Regular testing, worry about overload and code effects
Recklessness: Try new things often
"Cowardice" is another way of noticing the details. You know, 99% of developer life consists of debugging and testing.
What developers need to know is that fixing an application requires not only being able to pick the wrong code, but it also requires excellent problem-solving skills. For example, to solve the problem that a user's invoice can not be downloaded, it does not take a day to develop a function to generate a PDF file, simply by setting the page to be printable. Sometimes a link solves a problem more than a week's programming, and a programmer who knows only to write code can hardly think of such a shortcut.
Although there are a variety of testing tools, but testing is still a wonderful blind spot for developers. Developers should learn to use unit testing, Selenium, load testing, and analysis tools like Xhprof. You should also learn to use performance testing tools such as NewRelic that can help you keep your application consuming as little memory as possible.
Tune-in is also a key link in development. So developers not only need to learn how to use mispricing tools, but also how to misdirect a question - I'm going to make a point about Michael Greer's list of misplaced supplements:
"Impatient": Ignore the insignificant issues, spend time on solving real problems
These are some basic principles, developers should learn to seize the main, ignoring the secondary. Real development experts can find out the problem without looking at the code. Unfortunately, many people tend to blindly evaluate dozens of hours or even days for a trivial question. To solve a problem, it is necessary to test it ten times in the same way.
User needs
As a developer, understand the real needs of others. You can enjoy coding to bring you own fun, but at the same time make it clear that all the code is useful.
Developers need to understand the business, operations and business processes, which will be helpful to the development work. Only understand these, developers can develop products that meet the user's requirements. Some developers can show unusual productivity not only because of their fast coding skills and vast knowledge of the stack, but also because they understand the real needs of their users.
Returning to my original point of view, the current development is becoming easier and easier for developers to become more competitive with the market. Want to be more outstanding, we must understand the business needs, develop customer satisfaction products. Therefore, developers should focus on the market.
Understand how data changes over time. From a developer's point of view, these data should change with current or upcoming technologies. In this way, when your client proposes a new idea, the actual needs of the user should be taken into account and budgets should be made well in advance. (Conversely, in the worst case, developers claim that their new technology can solve every problem.)
Developers need to grasp many aspects - for example, understand each area of the terminal database, if the data changes, the client will be displayed? There is no better way to solve the problem? DBAs tend to think that the external reflection of the database Very bad, but in fact they show to the outside world a very bad database. This world is full of chaos and incredible circumstances, database administrators must learn how to deal with.
8. Drawing and writing
Drawing is the most direct way to describe things. Developers must be able to present their ideas on whiteboards and paper.
Outstanding developers have to be able to express their intentions through drawing prototypes on paper. If developers just nod, talk about empty talk or just use editor presentations, it's hard to get the trust of others.
The best code starts with an instant drawing prototype, and multiple failures can make you successful faster.
9. Enjoy the fun
If you want to spend tens of hours to solve a problem, what would you treat?
Learn to enjoy this process - even if it's just a normal job. As a developer, the most failing attitude is the team's work with no interest. Unfortunately, this situation is very common, this happens often because developers did not regard themselves as a member of the team. (Dedicated programmers will make themselves "more fun at work," you can try too)
Web and application development still belong to the emerging field, the development of computer technology needs more senior developers. Developers can not be satisfied with the status quo, need to be as soon as possible into the ranks of senior development to enhance the efficiency of development work.
10. Maintain your spirit
This is my last important thing to say:
Maintain the spirit, to seek competition, no matter which team has become the most critical of that.
The most disagreeable and annoying developers in the team are often the ones who are most capable of developing, while others tend to be content with the status quo. If the lack of these high requirements in the team can easily lead to slow team, competitive decline. It is a good habit to improve your own requirements.
Developers can also gain more experience through projects other than work and learn to summarize the feedback and criticism gained in these projects. The more criticism you get now, the less criticism you have in the future. When one day you begin to think more holistically about the demands of others, you become a hot senior developer.
Original Address: 10 things web developers must know to become truly amazing