Sen Wang: A program designer confession

Source: Internet
Author: User
Tags chop data structures execution reference xml parser visual studio linux
Program | Design not long ago, Mr. Cai published two "Procedures and incense Chicken Row", "again on the chicken row" article, was echoed by the great, it is said that even the author himself received the text of the forwarding. The content of this article is enough to show the innermost thoughts of the Taiwanese program designer. Therefore, this article to the Taiwanese programmers to do a discussion, to see as a programmer, what is the fault, which led to the people would rather sell chicken row than continue to write programs. 璩 Miss Mei Feng for herself to alarm the behavior of Taiwan Society wrote a true confession, we should also sincerely review ourselves.

This paper:
In Taiwan, most people have a perception that "hardware is better than making software", "to do sa/sd than coding status." Those who do the ID design of the company will be issued in the stock, always more than engaged in the software design of the company hair, the stock price is several times higher. The person who sa/sd, in the company status seems to be more than simply write program of person high. So my father once asked me: "is not the hardware of the people IQ is relatively high?", "is the analysis of the design of the people more position?"

In fact, I know a lot of people in the student period, some people because the program can not write other people, so the conversion runway specializing in hardware; some people feel that every day to face the oscilloscope and logic Analyzer to make them headache, engineering mathematics can not learn the others, so career change software. In fact, in the face of many of the trainees who came to receive the education training, I found someone who wrote the BIOS and driver for more than 10 years and was bored and had no future, so I wanted to look at the development of the application; some people just can't stand the need to change their customers ' needs every day, and there seem to be fewer iOS and driver. Price is high, so you want to learn how to write system software. Ask a friend of the advanced classes, some people find themselves will only Hu do SA/SD Bluff boss and customers, so hope to lay a good foundation, from the basic coding to start, and some people because of writing procedures for too long, think should go up to the SA/SD path, after all, the old program will not be written. In this world what kind of people have, absolutely cannot with small envy big. It's like politics, always cheating on us. Taiwan is divided into mainlanders and local people; The gang man told us that the police were gangsters with guns. In fact, everyone gets along and quench before they are split up, and even though there are police extortion and gambling at work, there are also policemen who punish us when we are fined, and the policemen who protect our putting.

Even so, as a programmer, still ask, why does it seem that the status of writing programs is relatively low? The author thinks, this is the entry threshold question. More people who do the same things will weaken the value of that skill. It is very much like the people who have tested the MCSE/MCSD, usually compared to the test of the Scjp/scjd to come to the lack of value, the former because there are too many people, and the latter test of less people, is just that. But it is not the representative of the MCSE, the quality of the test than the scjp of the people, also does not mean that the test of the SCJP, the strength is really relatively high segment. Believe that you must have met a person, his strength is not how kind, but the exam when he is the test of the higher than we, how our hearts is not satisfied, but most teachers are more like a high score of people. Therefore, the Mankengmangu people claiming to be able to write programs, the boss is not worried about finding people can do project, you ask for a high salary and price? It doesn't matter, find a school just graduated kid, write faster than you, write better than you, with the technology than you new, more important, the price is half as cheap as your old butt. So the programmer in the employer's heart of the increasingly low status, natural traces can follow.

"So why are the entry thresholds for writing programs lower?"

In the information workers around, the rate of non-class birth is very high (of course, not also sell chicken row high), the students are born, do not make the position in the boss's eyes, not as much as a halfway decent self-study. The learner will be ASP, JSP, PHP, C + +, c+, Java, Linux, Windows, Oracle ... And so on, skills master of everything. And the students we were born with, only discrete mathematics, data structure and algorithms, Visual basic do not use no other people cooked, the site is not the erection of the people cooked, not to mention the students who are born in the class, his basic knowledge is not good foundation is not solid (ask to see the students beside you), No wonder the most common is a lot of non-class "master" despise the students, think they have no three lanes used, even a Windows operation is worse than them, and even some also boast that: "I have never used the writing program data structure and algorithm, read what?". Long-term, students are also starting to question their own learning, and even consider career change, of course, there are highbrow, narcissistic people. In short, no way to be favored by the boss, the salary is always so small, want to sell chicken row of the idea began to sprout.

The reason for this situation, I personally think there are two main reasons, one is the flow of technology, the second is the demand for Taiwan's software market. Why is the flow of technology can produce a large number of halfway decent students? This is thanks to a large number of Taiwanese authors, who have written a large number of introductory books, drastically reducing the threshold for entry into the programming world. Even in your eyes, traditional Chinese is a lot of bad books, and very. But the bad books in the eyes of the people often are the introductory books that have been reprinted many times, and what some people think is rubbish is often the best stepping stone for another group of people to enter the information industry. Do not believe you go to the bookstore to see, is "24-hour learning C + +", "Happy to learn Java" book more, or "easy to loose differential equation", "21 days to learn", "electronics do not ask" book more? The gap between the two is n:0. is the differential equation sequence and the ++,java more difficult to learn? I have learned two, at least I can swear that, as a person with basic learning ability, the difficulty is the same, the time and effort required to study is the same. Then look at our open discussion area (BBS or forum), we can see a lot of software technology discussion area, but do not see the hardware technical discussion area (oh, please do not tell the author that each day to ask which host board is better, which burner is more stable, or the CPU pulse higher speed faster the better, Or x86 's Out-of-order Executon is the "fault execution" of this kind of Shanghua discussion area and I said the hardware technical discussion area is the same Oh!) Books and discussion areas to promote the flow of knowledge, resulting in a large number of software professionals, not to mention, learning to design software as long as a PC can write good software, and learning hardware design, the need for equipment is sky-high.


More importantly, the people who learn software, give full play to the spirit of Confucian sharing, as long as it is not on the BBS posing as a little sister to cheat Big Brother's sympathy to help you write program assignments, as long as not very poor disorderly ask a pass, usually at least there will be enthusiastic people willing to leave a URL, so that we can find reference documents, more enthusiastic , such as the Taho in the Java version of the BBS station of the Hsinchu Teachers ' College, also use many vivid metaphors to let beginners realize the true meaning of technology. In this knowledge of the full circulation of the environment, of course, produced a lot of information practitioners, each to buy a PC, the demand for various software above is endless, every day there are people of all walks of life need a variety of software, so the programmer needs a certain amount of demand. No wonder someone said: "People who write programs are starving, but they don't make a fortune." "

Then comes the question of Taiwan's software market demand. In general, we divide the software into systems software (System Software) and application software (application Software). Compiler, group translator, debugger, operating system, driver, all belong to the system software part.





Taiwan has little need to write drivers, in addition to hardware vendors, IC design house.
A few years ago when Linux was fired hot, there are also many experts involved in operating systems, compilers, and simplifying the study of standard function libraries. And most of the software needed in Taiwan belongs to applications, a large proportion of which are related to databases (in fact, not just Taiwan, Other places are roughly the same. So Vb,delphi and PowerBuilder such Ides, because they are easy to get started, can quickly develop database applications, a lot of related books, there will be more people. So it fits in with what we said earlier: "The more people there are, the less value they have."

But don't forget, the system software is partial to the application software, for example development software uses JBUILDR and visual Studio, cartography uses AutoCAD, a set of IC design use Xilinx or altera; do ooa/ood rational Rose and Togetherj, the author used to call these software "software Software" (Meta Software).


In the eyes of the general programmer, such software is "taken for granted" to be developed by foreign countries.
Such software has a very high entry threshold, so the interest rate is high for foreign software companies, so the company's program designers are worth a lot. You know, as previously reported in the media, only rational rose (of course, it's not possible to buy rose only) is the company that allows Microsoft to buy software. If you do IC design without your software can not do things, as a program designer, you will feel that your value and status than do IC designs people low? If your software is heavily reliant on hardware like SoftICE or Driverworks, do you think the hardware is more powerful than you are?


The problem is that people who know how to design this kind of software are probably the real differences. And it requires expertise across the field. If many OpenSource project (for example: Kdeveloper) is in progress, few people know how to design an IDE. Since the people who make this kind of software are very few in the country, are they worth a high price?




I am sorry, Taiwan does not have a company developed enough to compete with foreign manufacturers of development tools. Take the IDE as an example, early in the country a company developed a set of products called Dbtools, which can barely count as such products,
The flag has also published an introductory manual for it, but the people who use the software seem to be ... Not seen (if the product has a good share, please forgive me is a frog in the well, no market, the company can not make money, even if you are a few can do a certain type of products, the company finally closed down, you can only be regarded as "a few can let the company lose money of the program designer" Bale. So I'm bold to assume that Games Golsing or Anders Hejlsberg if learn Li Ao's like 50 years do not leave this small island, probably starved to death.

The above discussion, the real excellent master looked after, may produce sometimes not I give, have to across Atlantic the idea of a foreign land. The value of the programmer is like the value of the book, the domestic and foreign have different views. Domestic textbooks are relatively inexpensive, the application of the book is more expensive. Foreign textbooks are more expensive, the application of the book is relatively cheap. Foreign heavy content, a thin one how Debuger work can sell 44.99 dollars. And the domestic, is to look at the number of pages to price (Hou Junjie's book has tried to break the number of pages of the myth, but also to do a pretty successful). There are many reasons for the difference between the two cultures, but The market factor is certainly one of the important.

Well, the reason the programmer's low value has been discussed, if you agree with the author's argument, then can not help but doubt that we have no reservations to let the knowledge flow, technology spread, the original intention is good, the result to the cause of their own and other people's low value, so we are not to share our experience with others? After reading the top half of this article, Mr. Taho published the following:
--------------------------------------------------------
Sender: TAHO.bbs@bbs.nhctc.edu.tw (Nerd)

> Hargong Taho on the Java weekly ...
> usually at least there will be enthusiasts willing to leave a URL, so that we can find reference documents, more enthusiastic, such as the Hsinchu Teachers College BBS Station Java version of Mr. Taho, but also use a lot of vivid metaphor to let beginners understand the true meaning of technology.

@@".....
Just look at this paragraph as if it's a compliment.
But read the whole article ...
To discover suddenly that ...
It turns out I was one of the worthless killers of the program designer ....
What a deserve to die.
--------------------------------------------------------

But Mr. Mue's next statement, however, hit the real core values of this article:

--------------------------------------------------------
Sender: mue.bbs@bbs.im.tku.edu.tw (idler)

: @@".....
: Just look at this paragraph as if it's a compliment.
: But read the whole article ...
: Suddenly found ...
: It turns out I was one of the worthless killers of the program designer ....
: Really deserve to die ah ....
No, it's not. If every programmer were to cling to what they were doing. Let the so-called professional threshold higher words. It's hard to make progress. is to make the original difficult to become simple. Naturally there will be more difficult and deeper things to appear. So the society only progress quickly ya.
--------------------------------------------------------

Does the person who does the application software really have no value? Some friends who make a lot of money by using software start to laugh.
Software must be coupled with expertise to be able to play its value. In other words, if you really only "write a program",
That, without the expertise of various fields, the skill of "writing a program" is of no value at all. It's just like your computer installed a browser, but there is no online network, without the network itself, the browser is not a bit of value, Don't need a company big expense Zhou Zhangdi uses the platform advantage to go down another company. We can liken the programmer to a full information-related book on the shelves, and gu your boss is the reader who came to buy the book.


You can't deny that such a pile of books, there are good books, there are bad books, you can not deny that your heart is a bad book is a book, but you can not deny that the book teaches you how to write the contents of the Java program is wrong.
However, the readers of the book simply feel that some books are of little value. We can only say that too many programmers who only "write the program" have broken the market, like a cart of rotten books, you can't say that bad books are worthless, but the bad book will give you a discount on the value of other books on the shelf. Unless, You saw someone else's mouth before. This book is a good book.


People may not believe that "only write programs" of the program designers exist in the world, so the author to give a
A simple example illustrates: a long time ago, the BBS was published post, the content of the big is that a company in
When sorting through the old program code, I found a Chiven, Chiven content as follows:
-----------------------------------------------
At the bottom is a judgment on an integer is not odd program code
public static Bolean isodd (int n)
{
while (true)
{
if (n==1) return true;
else if (n==0) return false;

N=n-2;
}
}
------------------------------------------------
You said the person who wrote the code didn't write the program, and he seemed to write, you said he could write a program, you're not angry, you think this guy is fooling around. After reading this Chiven anecdote, the next time you hear a company complaining about the bugs that their programmers are making, the speed is surprisingly slow and the product will never sell. , the company can not run fast, so they think that the program designer is not worth anything, just a pile of toil of the chop, you will not be more suspicious, is a bunch of inexplicable program designers, your market to get rotten?

So starting today, if you have a passion for programming, so we work together, to be a real programmer, and not to be a piece of junk and destroy others of the program designer. Be an engineer who really writes out useful software, don't be a programmer who writes only programs. Of course, like "The Accidental computer Kingdom/ The Book of the Union Press "says, much of the technology is used for places that have not been anticipated. Many scientific research can not have immediate contribution, but far-reaching impact, we also hope to engage in basic research graduate students, serious research, do not always study some other people have studied the study, Do not always hope that the funds of the research institutions such as the National Science and Finance Branch will be rushed to hand over another plan to cheat more money, or to get the research on the surface, when the final plan is closed.

Finally, do we reflect on whether we are also a program designer who will only "write programs"? Please test the following questions, these questions can not have an objective answer, so each question is attached to the author's subjective answer, as the author's own introspection.

Q1: Do you respect technical expertise? In other words, do you think that the surgery industry is specialized?
When you take an outside education training course, you always adore teachers who seem to know everything. In other words, do you think that the lecturer who tells you that he doesn't understand is a bad teacher?

-You always think that the real master should be proficient in the technology of various factions, if you will be XML, he will not, you think you are worse than him. You think he has too few skills on his resume, so you think you're better than him?

Some people always think they can use MFC to develop software, so the intuition that those who only like, or will only use VB should not be high. The problem is, someone will use VB, when he felt that the component is not good, so he wrote the program to deal with HTTP, because he understands how the HTTP protocol works. The browser attached to the tool is too bad, It is not a very top-notch basic to write parser. On the contrary, some people claim to use MFC, but in addition to help find the category named Cxxxxx to use, and then make up the part of the event processing, other things can not be done.

Some people think that writing Java programs should use tools, UltraEdit is simply to reinvent the wheel, so the first to learn the use of JBuilder, in fact, he used JBuilder wrote a length of GUI program, which day to call him back with a text editor to write a simple frame + Button He couldn't write it because he never understood the Java event-handling model. He would just keep on: Select the component-> put in the container-> adjust position and size-> Adjust Properties-> Press two-> to fill out the event processing function, become a veritable "program female worker".

Some people think he is proficient in the database of various vendors, so he can not look at those who will only be under the SQL instructions or can only write store procedure, because he is proficient in ODBC, JDBC, ADO, ADO. NET various program's writing. The problem is, a proficient SQL expert and only write SQL instructions, in the database table interactive reference, when the volume is very large, to remove the data we need, the instructions in the efficiency of a few seconds and a few hours of difference. SQL is also a specialized knowledge, to be able to manipulate it skillfully, there must be a lot of effort to do research, and a study could be more than 10 years. If your company's projects are plagued by poor database access, guess that the boss will pay for a rare expert who has the ability to radically improve the effectiveness of all SQL commands, Or do you find a "database worker" who is known to be a man who will not be useful in the end? We often see someone listing his resume as if it were a lot of it. But when we're completely into a technology (oh, I mean you're really doing it), it's usually more and more that we feel small.

Mr. Cai is an example of a great respect for professional skills.
We saw what he wrote on http://www.csdn.net/expert/cxy/, and he said he was only proficient in lots of Java APIs. I Haling three times, once, I heard him say: "I do Linux, I do not know linux!" If you were to hear this, would you really think that he would play Linux more favourably than you? The author suddenly remembered that the statue of God in The lone man, the old age will only take the branches and others, but you take the sword is not able to beat him. So, please respect the professional skills, do not think they do not say he will, You're better than him. Really powerful people are not on the table, but hiding in the back secretly laugh at us! And we never know we were secretly teased by others. Chinese culture thousands of years are disparage each other history, enough, everybody respects the profession!

Q2: Do you think algorithms and data structures are not used in three paths because you have never used them?

-We acknowledge that "no strokes, no strokes" is the highest level of internal strength, but at the moment, the latter represents a thorough understanding of the martial arts. Since Taiwan has almost only the development needs of application software, there is no need for system software, so most of the programmers are standing in the "program women" perspective of the world, As long as there are components, there is no uncertainty. But today if you want to design an XML parser, do not understand the data structure and algorithms can it? All right! You say that we should not reinvent the wheel, we should stand on the shoulders of giants to see the world, if all of their own hard work, the world will regress. So, when you're using the collection framework provided by Java, do you know the difference between ArrayList, LinkedList, TreeSet, and HashSet? Do you know their pros and cons? Do you know his features? Don't know ArrayList and Inkedlist.
The difference, with which to write program execution results are the same, but the efficiency is much worse. Most people don't even know the characteristics, let alone a lot of people want to develop their own language, their own compilers, their own operating system, no knowledge of basic knowledge, how to design a collection framework or STL? You say data structures and algorithms are useless, You do it. What is the common Code insight function in the IDE? to Borland C + + Builder, to search all the header files in a short time and find out the prototype of a function, if there is no sufficient understanding of the data structure and algorithm, the same do out, It's just that the product won't sell. I often give a scalability example to the students in class: I want to write a 1+2+3 ... + 100 program, most people are writing

int sum = 0;
for (int i = 1; i < i++)
sum = sum + i;

And those who are truly influenced by the concept of mathematics will write

int sum = 100 (100+1)/2

The former is O (n), the latter is O (1), when a lot of items, the calculation time is not much worse? These are
The problems that our education has created (and of course the author is one of the victims), but from today onwards, I
We can think carefully about each line of procedure.

Think about the development of MP3 algorithm and write Winamp people, which is more powerful? You will say all very good, but no former there is no the latter, the former can also sit on the right to pay money, the latter can only be bitter haha to earn some money or other people to buy. We stay in the stage of worshipping application techniques, and the ones that really deserve to be worshipped are the rare ideas.

The author met a friend, asked him to write a fee-type sequence of the small program, than to ask him to write a database table can browse the contents of the program is difficult. (please do not discuss with me that there is no practical value of the small program of the fee series, this is not the point of this discussion) the former need to move a little bit of the brain, the latter as long as the drag and drop components, set the property to fix. Rad itself is not sin, but did not learn nine Yang Martial magic on the delusion of a few hours to practice the great change. Finally, it will only go mad and die, and become a "program female worker" completely.


Q3: Do you often take the form of a prep or a non-regular?

-You're a student, and you despise non-students? Because you're orthodox? You are not a student, look down on the students? Because you think there will be more things than students. Bad schools will show good students, good schools will also have rotten pupils. Because there are as many proportions, we cannot generalize.

If you have a few years of formal education, I have never thoroughly studied, as a Orthodox, comparative academic theory that this is called "Yang culture." Some innovative ideas are very difficult for students to think of, because experts are well-trained dogs. If you are a friend of telecommunications, You find that the switch is a funeral boss because the business was stolen and invented by others, then you will not be angry? If you learn to have a successful program designers by themselves will have more things, you say you are proficient in Java technology, but did not think of the development of Java games Dr. Golsing is an orthodox born student, knowing this, will it make you more respectful of the profession?

Q4: You are studying computer science, but the logical ability is not better, still often cheated?

Q4-1: Will you be inspired by the tide? Are you often led by other people's thoughts? Others preach Linux
How much better, your head has not even turned the assiduous hard to test Linux certification?

-Other people put the company's server into Linux, the client is also changed to Linux, the company is still functioning normally, the result you learn Linux, see the TV on the BSA and the Ministry of Law ads scare you straight to stay. Afraid to stay in the suite tomorrow.

Q4-2:sun to tell you that Java cross-platform, you have not tried to tell others the advantages of cross-platform?

-borland has been able to do a CD-ROM with Solaris, Linux, Windows, MacOS x JBuilder, but you can't deploy to a different company's application server as a headless fly for EJBS.

Q4-3: Before a litter of people preach XML, the result of your blind pursuit of popular, do something more tag than data?

-The people who use it completely changed the flow of data exchange in the company, and you only sax all day, Dom goes to write XML database (database with XML to store data)

Q4-4: Microsoft's ads tell you that XP and IE will not support Java, you have not tried to yell at others that Java is dead?

-A quote from Mr. Moga on BBS: "Then the Java program I'm running on Windows 2000 is
A miracle? " Now a ticket to promote the benefits of Web service every day, you do not even think about the urgent need to change the company's old system into a Web service to do, the result of a waste of money, bad speed so that you are the customer curse every day?

Q4-5:web service is certainly a beautiful prospect, but it is not suitable for every corner, there is no perfect solution in the world at present. People say can not write a program for a lifetime, write the program of the life cycle is very short, you also follow others start to sa/sd forward?

-If every engineer in the world can be a good sa/sd through experience, then theoretically we should have some kind of software product. Some people have been writing for decades, or a good programmer, and you ask him if he doesn't have a bad boss, bad treatment or bad system, would he be willing to write a lifetime program?

I do.

Q4-6: The consultant tells you to use Rad more than to reinvent the wheel, so you try to ask how without asking why?

-All that really makes money is the software companies like Jreport do software components. Microsoft said that blueprint's pet Store, using. NET technology is much faster than using Java, and then you believe, recently, IBM and Oracle are strengthening the Java version of the pet Store to make it more than. NET version of the Fast 8%~22%, you again said that Java is better.

Q4-7: A system has many considerations in its design, some people take the enlargement as the main, some take the security as the main, some people take the efficiency as the main factor. If there is no design concept, everyone's function in the program all changed to inline, the tube he compiled out of the execution file is how big. The system only considers efficiency, What else do we need to design for?

-The eight-egg data is exactly the same as the poll we had at the polls ... A person with a clear head has no reference value at all. Of course, an emotional factor is the exception to the opinion polls. If you do not blindly follow the trend without your own judgment, then the next time you see someone lining up to buy rice wine, buy an egg pagoda, and snap up toilet paper, please don't cast a strange look at the people lining up.

Q5: Do you respect the old-timers?

We all believe that the only thing in the world to be able to get without effort is to be old. So you've eaten more salt than you've ever eaten, there is nothing to be respected. We believe that the information industry is always a young man, and the heroic teenager also long in the heart to think: "Li du psalm million oral, so far has not felt fresh, jiangshan generation has talent out, Hundreds of years in the lead. "

But let's think about it, from the time of Apple 2 to the moment when any CPU is 1 GHz, what has changed in the nature of calculators? It's not just a machine that keeps processing and I/O to memory. You laugh at the old timers who only use FORTRAN or COBOL, so what do you learn about Java or C # that is smarter than these older languages? Writing a program is just a declaration, a loop, and a function. Time is long, and a bunch of old words are created, With some new development ideas but essentially unchanged. If you are pushing the waves before the wave, when you see Mr. Levy's writing "[Long] my memories and interesting stories" or Houtie teacher in the last two period in run! PC written by the "Houtie point of view" These old-timers wrote the article, you are sure to write more than they are more sophisticated, more depth of things?

The most important question,

Q6: Have you ever cheated on your boss?

-You write on the resume of skills everything proficient, the result is The (note: Although the metaphor skill is many, but not single-minded), after the admission of anything can not be done, I have heard at least 20 boss told me about this thing.

Q6-1: Do you think you are worth more because you are engaged in "software development"?
-however, in real life, "profit" is the key to truly determining success or failure. Unless your things help the boss make money. If not, why do you ask for more than 50 pieces of stock worth tens of millions of yuan? If you write something of poor quality, a lot of bugs, customers complain constantly, the boss doesn't make much money, you're always outside scolding the boss for not respecting the technicians. If you change the industry into a sex industry, then the boss will be dry cleaning. So what do the programmers and Jianghuihua (Huang 3P heroine) do differently? If there are more people who really want to sell chicken steak, it is not the people who write the program, but the boss who employs the chop Suey.


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.