What a programmer wants to do

Source: Internet
Author: User

The most difficult task in software development is not code. Code writing is a kind of exercise, a kind of logical thinking exercise, which is much more attractive than other tasks that developers need to execute in their daily work. If you feel that you have just entered this industry and can only be an amateur programmer, you must overcome some obstacles to ensure that you can enter the professional field.

650) This. width = 650; "src =" http: // 183.61.143.148/group1/m00/02/5 F/tz2plfre3ysdqgsuaahmrpaztzi882.png "style =" border: 0px; "/>

1. Explain what has been done
Interpreting the software development process is a very broken thing. Those who do not write code may have some knowledge in this line, but as defined, they do not write code. In their eyes, we are a group of programmers waiting in the dark room to bow their backs and knock on the keyboard. Maybe your friends, family, and colleagues may even have the idea of coding "not a legitimate profession.
2. visualized solutions assume that given a simple set of requirements, which are hard to hear, is not weekly, You need to develop data repositories, code structures, algorithms, and communication protocols, as long as you can solve business problems, you must complete various technical content. Then, it should be explained in a way that is easy to understand, even for outsiders, and delivered to the customer within the specified period. Few developers can really do this well.
3. Estimated delivery time
This is a nightmare for every developer. Imagine a task that has never been used to it before, and suddenly you need to determine the time required to complete it, isn't it a bit cool? I may have written similar code, but it is not in the same system with the same problems and restrictions. Okay!
At this time, it really depends on experience. However, most programmers underestimate the time, probably because they only consider encoding and ignore others.
4. Learn from others' code
The solution is the same as that of Rome. Learning from other people's code may mean that it takes a lot of time to study thousands of lines of code to understand the entire idea. In addition, if the original developer did not leave any comments or documents at all-or even a half-baked semi-finished project-it would be even bigger.
5. Scope creep and what you think is amazing
Agile development can cause Scope creep, which is both frustrating and helpless-especially when you need to add stupid functions in a sudden whim. Your team knows what the results are, and you don't discuss the failure. But the customer actually knows better, so if the failure inevitably falls, it is your responsibility, because you don't trust the customer's vision.
6. Balance between optimization insufficiency and over-Optimization
Complex software never reaches the perfect realm. We cannot optimize without limit, which is why software projects are never released before the specified date.
On the other hand, many people will have the mentality of "Let's do it first-let's make improvements later. These codes can work well now, but they also understand that this will become tomorrow's troubles and failures. Of course, you won't fix and debug it again, and they will be left to the next poor developer.
7. Test code
You can either write a unit test on your own or group a group to test it through software, but don't think you can discover all the bugs ......
Complex software may contain thousands of lines of code. The system may have billions of possible interactions and paths, and it is impossible to test them all. Similarly, the interaction results of a software under different conditions and different systems are different. We cannot test all possible cases. It is tedious and difficult to compile a unit test. Ideally, the test should be written before the software development project starts-but if we write this first, how can we explain to the customer that four weeks have passed, why is there no process at all?
Unit tests do not highlight every bug. Although we all hope to have a dedicated team to write tests and actively discover problems, due to the constraints of actual conditions-cost control and time limit, this is a luxury for many projects, therefore, most developers need to write their own tests. While they always unconsciously avoid any inappropriate boundary during writing. Programmers solve problems in a logical way, but few users do this. Sometimes users will help us find problems that we cannot detect or think of at all.
8. write code documents
Writing documents is indeed time-consuming and laborious. Few developers are good at writing/reading documents.
9. Handle hardware problems
Every day, we need to deal with various technical problems, such as hard disk crashes, driver conflicts, and software faults. Although this is not the work of our software developers, if we do not solve this problem, we cannot continue to work.
However, many people may think that it should understand everything about computers. When they encounter problems, the first thing they want is to contact us to solve them. No matter what the problem is, they are truly speechless and collapsed.
Of course, these interruptions should not affect the delivery progress or increase costs, but is this possible?
10. Dealing with people
The above tasks can be summarized as "how to deal with people ". The strange thing is that non-professionals don't know how pilots should fly, nor do they go to an electrician to say that my house needs to be recabled, however, they like software development and provide various whimsical ideas.
I can't come up with any good solutions for this. So, alas, you guys, let's accept the fact that half of the people on earth have lower IQ than the average!

More and moreProgramming Language tutorial setAll in E liangshi Yiyou network.


What a programmer wants to do

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.