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 that I will be divided into three parts, 1. It is the specific passage of my interview 2. 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 extracted its core idea to break up into two independent simple questions, there is a possibility of decomposition, please forgive me, actually interview a problem but complicated than it, and involve some higher mathematical transformation 1) Write a function calculation When the parameter is N (N large), the value is 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 suspicious viewers, he still smiled and said to me: "Good,
This program is indeed a big improvement in efficiency! "I am in my heart! But he will then say that this program still can't reach his request, I want to give better programs! Heaven! There is also an optimization! I really collapsed, I thought for a while, I will Ask him to give his program! Then he is very refreshing to give his program! 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 stunned, I didn't expect him to be this Meaning, don't you write this simple code, but why didn't I think it is in that? He said that there is no mistake, and the difference between the three procedures run is simply in the world when n is very large! When I just wanted to say something, he first opened: "Don't think that the CPU calculation speed will push all the questions to it, and the programmer should optimize the code and optimize the code. We can do it yourself. Never let the CPU do, because the CPU is serving the user, not for our programmer! "How brilliant language, I don't want to say anything! Then, the second question: 2), he asked me to use a skillful programming method to implement the function of two functions in a function n as: fn1 (n) = n / 2! N / 3! N / 4! N / 5! N / 6! FN2 (N) = N / 5! N / 6! N / 7! N / 8! N / 9! Now use a function FN (int n, int flag) Implementation, when the FLAG is 0, realize the FN1 function, if the FLAG is 1, the FN2 function is implemented! His requirements are still efficient, efficient, efficiency! To be honest, if I feel good, I should give a better algorithm, but I really didn't think about anything and thought, I was painted in the paper, such as 6! = 6 * 5! After the formula is straightforward, I said that he wants him to give his answer! The interviewer did not say anything, gave his ideas: Define a two-dimensional array FLOAT T [2] [5] 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 get the calculated value! Oh, the algorithm of typical space change time! These have spent a total of 50 minutes, and I still talk about him very casually, I have a problem with him, I have a problem with my life, and I have relaxed, because I know this interview results have only one. :failure. At 5:30, the interviewer asked me to wait for us, 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 was hurt by netizens, then how many people in our country learn computer? 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 to cultivate a lot of programmers in China? 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 DEBUG, but this is enough? These days I occasionally discovered a game I have written. It was when I first added www.vcroad.net as one member a year ago, I feel that I should take something out, then spend a week's time written. ! 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, all of you are welcome to reprint this article, you can not write who the author is, but please write www.vcroad.net original, thank you for your support) author: King Die Middleware CTO Yuan Honggang does not know how to do software has been done ten years, there is a successful joy, but there is a painful pain, but I can't say that I am a master, because I have compared with my true masters, and still The difference is too far. There is no shortcut in the world, but some basic principles can follow. 1. Sound foundation.