Programmers can write the best code is no code!

[REVIEW] ~ recently by foreign programmers on Hacker News article attracted heated debate - "You're not writing code to solve the problem."

The writer is Raul, let's take a look at how he is to present its views.


We are a programmer, so our job is to write code, is not that right?

As the title suggests, we work all day on the front of the screen than keyboarding bit more complex. If you go beyond programming languages, frameworks and processes, beyond the test suite, Sprint and Jira work orders and so on, you will always find problems to solve.

As programmers, we are to solve the problem of people, to get other people's problems encountered, using all the tools available to find a solution.

 

Software is not an end

The software itself is not the purpose of our work. The software must be written / demand issues connected with the real world, or even write the code more beautiful, that it is a purpose of the program lacks an embroidered pillow.

More importantly, you can write software should assess whether it can be treated very well solve the problem / needs. Software is a tool used to address specific needs. The best software you can think of an example: it's clean, easy to read, and design patterns are also used right. But if it can not complete the things you need it to do, then it is useless.

 

Understand the problems / needs

The first step should be to understand the software development problems / needs. Spend more time to do it too much. This applies to small tasks and the entire project. I think it even more suitable for the entire project.

Did not properly understand the needs, problems caused, no matter how hard, very difficult to solve. Most of the time, they involve a lot of remodeling and a lot of work. You have to explain why customers throughout the procedure is wrong, you face the embarrassment, never mind.

 

Perfection is your enemy

As already explained should focus on solving problems / needs, instead of writing code, I would also like to mention the "Pareto rule." As a programmer, we are sometimes troubled by the problem being addressed, that they forget to ask yourself, "my problem-solving direction yet?"  

We want to take a break from time to time, to see why they want to do. Problems encountered trouble, perhaps these questions can help you:

● solve this problem have much value?

● There are other faster way to do this?

● Are there easier to implement compromise?

These issues are not always that you can solve by yourself (unless you are doing personal projects). And stakeholders chat and see what they really care about. If you can, collect user feedback.

In general, rapid A / B testing for you what to do next great help. And multi-test iterations! You do not need a perfect project to succeed.

Best of code you write, that is simply no code / no code

Not every problem requires a technical solution. You do not need an application to handle all the other things. Everything comes at a price. You write code, you will consume time and resources. Also, the more code you have, the more code to maintain, the greater the possibility of error.

I'm sure you've noticed now, add code is risky. Error sooner or later. The number of lines of code you have a nonlinear relationship between maintenance work it involves. In other words: more code means more problems.

Try your code becomes the needs of others. I found that, in general, take the time to be able to find ready-made solutions. In software development, we have reached such a stage: a lot of things have a ready-made library or API. To common problems / needs, I recommend the use of ready-made solutions : such as authentication, payment.

In addition, for the entire project to find ready-made solution is worth it. To WordPress, for example, my blog is based on WordPress running, I did not write a line of code.

 

Reviews

Raul article in HN triggered a heated debate, we turn off a few:

Programmers muglug:

Raul article throws a straw man argument - almost all programmers in solving certain types of problems.

The big question is: Who are you to solve the problem.

When I was a freelancer of individual combat (as he assumed that article), I'm always for our customers and their customers to solve the problem.

When I work with other programmers, I am also interested in solving their problems. Sometimes in the form of large-scale reconstruction to improve the code, but it can also develop some tools to improve the code base on a large scale.

Ozzie_osman:

I like this article, but it misses the point that it should adopt a (more conducive to future problem-solving) solution, a lot of people make mistakes weigh in on this point.

For example, well-written, maintainable code is very important. Because if you do not, the problem to be solved may change in the future. These changes may reduce your ability to solve more problems. The code itself can be difficult to understand, and modify the reasoning, it is difficult to make changes. Time spent on maintenance and more time you progress ahead of the corresponding less.

liquidify:

I think it depends on the language. I found that using C ++, I spent a lot of time to study the language, but with Python, I spent more time to solve practical problems.

carlsborg:

Excellent software is composed of a series of good ideas. In-depth understanding of computer science, tools and frameworks as well as problem areas (including market mechanisms), you can potentially extend the idea.

For those who love programming, if you want to be a good programmer, then! I recommend a zero-based introductory programming learning exchanges Club ( group ), a group of learning together answered with a small partner is very important, as well as learning video files, you are welcome beginners and advanced in little friends!

Published 520 original articles · won praise 132 · views 80000 +

Guess you like

Origin blog.csdn.net/HUYA69/article/details/105342914