A programmer experience (reproduced)

xiaoxiao2021-03-06  81

As a large number of students, I have a lot of units, there is successful, but all failures are a success in a sense, especially I wrote below. When I wrote this article, I have signed a software company in Nanjing, but I remembered that this year, IT, IT, IT, Taiwan, IT, IT, IT, I really feel deeply, I really feel in some cases. This interview made me deeply experienced failure but also harvested a lot. I have to say it into three parts, 1. It is the specific passage of my interview 2. 3. I think about the interview 3. I should do it today.

Of course, these words are largely my personal opinions. It is impossible to get everyone an agreement, so if a friend feels with me in some views, please don't mind, don't attract me. Just say that I have not said, welcome to discuss these problems with me! My Email: wutao8@263.net 1. The interview has received an interview notice of Taiwan Rui Suzhou Company, inform me to interview the Suzhou Industrial Park on February 21st, after receiving the interview I will take some professional classes, especially C and data structures. Due to the university, I have been specializing in these aspects, coupled with the adopted advanced programmer, I have a lot of cooked algorithms. At the point of the chest, the feeling at the time was if I asked me that I should be no problem! On the 21st, I was arranged at 4:30 interview, and a technician gave me an interview. After asked some simple questions, he gave me a programming topic, the topic is like this: (Due to the specific interview It is more cumbersome, I extract its core ideas to break down ... (garbled) 1) Write a function calculation When the value of the parameter is N (N large), 1-2 3-4 5-6 7 .. .... n 哼, my heart is clear! I didn't expect it as simple, I am a little bit of a bit of a bit! So I quickly gave my solution: long fn (long n) {long temp = 0; INT I, FLAG = 1; if (n <= 0) {Printf ("Error: n must> 0); EXIT 1);} for (i = 1; i <= n; i ) {TEMP = Temp Flag * i; flag = (- 1) * flag;} return temp;} Get! When I use the look of looking When the interviewer, he said with me, and the execution result is definitely no problem! But when the N is very large, this program is very efficient, in the development of embedded systems, the operation efficiency of the program is important, Let the CPU have executed a direct order, he let me see what can be modified in this program, optimize the program! Listen to these words, my mood is a bit heavy, I didn't expect his request. Very strict, then I have made strict analysis of the procedure and give the improved plan! Long fn (long n) {long Temp = 0; int J = 1, i = 1, FLAG = 1; if (n < = 0) {Printf ("Error: N Must> 0); exit (1);} while (j <= n) {TEMP = TEMP I; I = -i; i> 0? I : I -; J ;} return temp;} Although I dare not guarantee that this algorithm is optimal, but compared to the last program, I will change all statements involved in multiplication to implement the addition instruction, which meets the requirements of the topic and operates I have shortened a lot of time! And the cost is just an integer variable! But my current confidence has been hit, I will believe the suspicion of the people, he still smiled and said to me: "Yes, this program is really effective in efficiency!" I have a dark joy! " But he will then say that this program still does not meet his requirements.

I want to give better programs! God! Also optimized! I really had a bit a bit a bit, I thought about it, I asked him to give his program! Then he gave his program very refreshing! Long fn (long n) {if (n <= 0) {Printf ("Error: n Must> 0); exit (1);} if (0 == n% 2) Return (N / 2) * (- 1); Else Return (N / 2) * (- 1) N;} Funny, I was stunned, I didn't expect him to mean, this simple code, I really don't write, but why didn't I go to it? Aspect! He said there is no mistake, when the N is very big, the difference between these three procedures running is simply a natural! When I just want to say something, he first opened: "Don't think that the CPU computing speed will push all the questions to it, and the programmer should optimize the code, we can do it, do not let the CPU do, because the CPU is serving the user, not for us Programmer service! "How brilliant language, I don't want to say anything again! Next is the second question: 2), he asks me to use a skillful programming method to implement two functions of the two functions in the same function N as: fn1 ( n) = N / 2! N / 3! N / 4! N / 5! N / 5! N / 6! N / 7! N / 8 ! n / 9! Now use a function fn (int N, int flag), when FLAG is 0, the FN1 function is implemented. If FLAG is 1, the FN2 function is implemented! His requirements are efficient, efficient, efficiency! That is really, if I feel good, I should give a better algorithm, but I really don't think about anything, I have painted some of the 6! = 6 * 5! After the formula, I said that he said to him to give him a answer! The interviewer did not say anything, gave his ideas: define a two-dimensional array FLOAT T [2] [5] to deposit [2!, 3! , 4!, 5!, 6!}, {5!, 6!, 7!, 8!, 9!] Then give a loop: for (i = 0; i <6; i ) {TEMP = TEMP N / T [flag];} Finally, I get the calculated value! Oh, the typical spatial algorithm! These total spent 50 minutes, I still talk about him with him, talk about some programming As well as the problem of life, I am very relaxing at that time, because I know that this interview result is only one: failure. 5: 30 interviewer wants me to wait for the notice, so I left their company.

This is the whole of the interview! 2. It is really failure by the interview. I remember the big rain in that day, the temperature is very low, I think, I have been walking from 5:30 to 7:30, the whole body is wet, and I am cold and hungry, but I am just walking, my mind is full Doubt, I also want the rain to wake yourself! Seeing some friends here may think that if you don't make yourself, I will definitely believe in you, because I have never doubted Chinese programmers, I think China has the best procedures in China. Member, I have never thought that I have a master, so I can't do it. I don't mean that the Chinese programmer is poor than Taiwan or other places, so I am from my angle, I want to talk about some feelings: Nice World has excellent programmers, China is no exception, but I doubt: What is the proportion of China and Taiwan or excellent programmers? Taiwan, I don't know, have a few of China's 100 programmers? I can't count, from the above performance is enough to explain everything! Is it 1? 5? 10? 50? I didn't dare to mess with this number, I'm afraid of netizens, then do you have more people to learn computers? Take our school, 4 classes of the computer 97, 5 classes, 98 classes, 10 classes, 17 classes in 2000, more people, what should I do? Our school's practice is to let the graduate students, and then? After a big settlement, a lot of money fell into the pocket of the school, but also said that the current student is low! It's really funny, I don't know what the school is doing for what is for domestic cultivation. Can students really learn computer knowledge? Ok, I dare, in our school to learn programming students and outstanding programmers (note that I refer to excellence, only a few bad programs is not possible) should be 100: 0.1 in this proportion Although our Chinese learning programming people are covered, think about how many individuals can truly contribute to the development of China's software industry, how many people can truly write outstanding programs! Since the study and programming, no matter whether it is self-study or the teacher's guidance, it has always solved the problem, and the program is coming, my doubts are: We have the truly emphasized the efficiency of the program, the quality of the program? We have a careful analysis of what we write, see if there is any way to improve, see if there is a simple way to achieve the same purpose? I asked, I found out that I have never optimized the procedure I wrote, up to Detailed test, then debug, but is this enough? These days I occasionally discovered a game I have written. It was when I www.vcroad.net as one of the people, I feel that I should take something out, then spend a week's time to write! The procedure is not complicated, but it has been used in a lot of data structures, and has used a wonderful algorithm, plus Windows interface and game playability. After writing a lot, I was really admired. Yourself! But now: No comment, a lot of ugly functions such as: void chushihua (), there is no necessary variable, you can use the simple statement to complete the work I use the gorgeous algorithm, a large number of global variables ....., If you say something that is not good,

More than 600 rows of procedures are a gap in addition to running! If I can hear some backspinses a year ago, I probably I can realize it, but since I heard since the original code, I heard the words of praise, no one filed me to improve the proceedings of procedures, this is What is the problem? Very worth thinking! There is also a doubt is: Is there really true? When I was in the school, I was assigned to a computer contest. I invited a teacher to go to the finals, mainly some algorithm topics, this teacher may be the only teacher in my university, from the program debugging to score, For each program, the time efficiency and space efficiency is taken carefully, then comprehensive score, forty people's rolls, and the teacher debugged from three o'clock in the evening, and after some written wonderful statements, I added annotation. I am so happy to have such a teacher and do an in-depth communication with him, but after the matter, I have a unpleasant thing, and I got the second student in the game to find me, saying that all the procedures were successfully debugged. He is full, and it should be first, I said he, finally tested his original procedure and the first original procedure comparison, good, both programs are running very well, then the classmate said: "My program is very simple, just the number of questions, but he wrote a lot, why gave him a lot of points." I was very angry, if not The teacher is responsible, then the first place and the second place really want to intermodize, please, the less the number of procedures, the higher the quality of the program, I remember that I talked to him this way, finally Convince him! Haha, but I can only talk about it, I don't know how many people have, saying that my head is a way, but I have never valued it! 3. I am going to do it! In fact, I thought so much, but I didn't want to say anything, because I guess the netizens of this article probably have a belly feeling, a belly complaint, borrow this article, not what I want to achieve. I don't have a worthy of my own one, but I really do something wrong in some respects, or deviate from the right direction, now it is when it is correct and reorganized, just as I said in front. After that, I believe that China has the best programmers in the world, I also believe that my level will not always maintain the status, I will clean up the truth now! Really, I wrote this manual online when I wrote here. I don't know what this is foreplay, but I think if I have been doing the basic principle below, I will definitely realize my Ideal - A excellent software designer! (Below these words is not my original, I am occasionally discovered online, I am really fortunate to see these, this article also ends with the following text I really hope you get inspired from this article, this article welcome all of you to reprint) author:! Honggang Yuan Kingdee middleware company cto unwittingly do software has been done for a decade, there is the joy of success, but also Failure pain, but never call yourself is a master, because it is too far from the real masters in my mind. There is no shortcut in the world, but some basic principles can follow. 1. Sound foundation. Data structure, discrete mathematics, compilation principle, these are the foundation of all computer science, if you don't master them, it is difficult to write high levels.

转载请注明原文地址:https://www.9cbs.com/read-73633.html

New Post(0)