English Original: arg! The 9 hardest things programmers has to do
Those non-programmers think that software development is very difficult, indeed, but this difficulty is not as the layman understands. In a recent discussion on Quora, the programmers shared the biggest difficulties they felt at work, presenting 9 of them here. As you can see, writing code is not the hardest thing to do, and if you're also working on software development, see what you think is hard.
1. Design the solution
Task Description: to give you a range of requirements, you are required to design and construct technical solutions. This includes design data structures, algorithms, logical encapsulation, and so on, as well as user security considerations.
Challenge: Make sure your design meets the needs of your customers and makes them sound. And, of course, within the scope of the project time allowed.
2. Write the test
Task Description: Write unit tests to ensure that each part of the code is functionally correct. Doing so will allow you to find bugs early, making it easier for you to follow the regression test. Some development methodologies even encourage developers to write test procedures before they can write programs.
Challenge: testing for each part is a tedious thing to do, and it feels like you're doing something extra.
3. Writing Documents
Task Description: Write a document that explains what your code means and explains how the app works. This includes separate documentation files and code comments, so that more people understand your code.
Challenge: It's a time-consuming job, and if no one reads them, it's a waste of the day. Programmers are more fond of writing programs than writing documents.
4. Implement features that you do not recognize
Task Description: Sometimes you will have to implement some features and features, they are not your intention, you think they should not appear in this project, but customers must insist on this.
Challenge: you need to put aside all your personal feelings and opinions and focus your time and energy on the functional needs of your customers.
5. Maintain code for others
Task Description: Sometimes you need to maintain and debug other programmers ' programs, or part of the code.
Challenge: You need to use every means to understand the intentions of the previous developer and how he designed the code. Especially when the code is poorly written and there are no comments or documents to help you, that's bad.
6. Dealing with others
Task Description: as a developer, you need to get the demand from the customer, submit a report to the manager, work with the testers, and discuss the project with other engineers.
Challenge: You need to explain technical things to pedestrians, and sometimes your work depends on the approval or assistance of others. There will also be times when you disagree with the QA staff or other engineers.
7. Estimated Project duration
Task Description: at the beginning of the project, you should estimate how long it will take to complete the project.
Challenge: in general, you want to estimate a project that you have not done before, and you can only allocate time for future problems based on vague requirements.
8. Explain my work
Task Description: explain to the surrounding non-programmer friends, family, and classmates what your job is doing and not doing.
Challenge: The people you love may not understand what you're doing, and you're constantly being asked about all the computer-related issues.
9. Naming in the program
Task Description: come up with some names and name the variables, processes, functions, classes, objects, databases, etc. in your program.
Challenge: Even small programs or applications need to name a lot of things, you have to come up with the right, concise, can express the correct meaning of some of the names.
Translation: http://www.php100.com/html/it/focus/2014/1126/7908.html
http://news.cnblogs.com/n/509533/
9 big problems that the programmer spits up (turn)