Tuesday, November 23, 2010

I see the beauty of programming

Many people have said that programming of people with a dream of changing the world, numerous young people to join one, dreams and reflections on the changing world. Microsoft Research Asia's eight programmers and interns collective created a beauty of this "programming", words and symbols and communicate with the Taoist common programming dreams, and it is dedicated to the 10th anniversary of Microsoft Research Asia. Next, let's listen to one of the interns, the author understands the beauty of programming. Author contact:Chen Northwestern Polytechnical University graduate I should be regarded as the earliest know you will write the programming beauty-Microsoft interview guide this book is one of a handful of people, then Zou Yan teacher is on the mountain of "finishing touches, but I'm still on course for graduate students in the school, the first time accepted Orthodox computer science education. When the teacher asked me to Zou do not participate in the preparation, as a self-appointed "literature" and not "computer expert", I readily agreed. My undergraduate reading is Aviation Academy, sophomore idle boredom with playing attitude began to truly learn programming, and then with enthusiasm and interest just jumped in. However, I was always adored pain, I was able to skillfully use asp.net, AJAX to a website quickly, but on some basic data structures, algorithms, stressing. Only a careful to read the data structure of the book or insurance research the night before the Exam Cram, overnight at sorting, tree, illustration and the like are often the focus of the examination. Although the final exam out good, but how much of their weight, most clearly. So actually I for many companies is biased towards the algorithm of the interview has always had a fear and a sense of mystery, and admire those who suffered ACM, ICPC trained students, especially those who can quickly analyze problems with complexity. But after all I am not a technical education, but only at school do some simple Web site projects, it makes me a long time have a misconception that engineering capabilities and algorithms to solve problems is irrelevant things to support lies some people can easily work out some algorithm problems but not c # to write a truly free software; the person like me can you write a "looks beautiful," CMS system, but with some of the textbooks of the algorithm when they don't know what to do. " And more terrible is that simple website do much, I began to think of doing projects do not need the so-called algorithms, algorithm good can only make people get higher course score or race Awards, and in the computer science this terribly practice areas, only good engineering capacity is the only way to truly realize a project. So for a long time, I cannot solve difficult algorithm questions get a good offer of people comparing the sneer, and on the company's recruitment criteria are confusing — obviously my practical experience and capabilities are more effective, what don't I rather them? I think your greatest happiness lies in the fact that subsequent experience that I will soon go out the misunderstandings. In the last semester of College, I was lucky to get an internship at Microsoft Research Asia (the interview got me together puzzles instead of algorithm questions), in practice, I didn't "real" with a software project, and through exchanges with other interns, "grew up" saw many reality of software development processes, these experiences give me many unprecedented experience. In the reality of software development you will find various forms of different needs, for example, in a certain number of posts to find the post up "water King", and before that I develop websites at best but several thousand records, so even if I simply repeat loops through all the records can achieve this functionality, but when you're faced with tens of thousands or even millions of levels of reality, the problem when the data from the most basic "realization" becomes "faster and more efficiently implement"! I am ashamed that I tend to use only the minimum of complexity implementation efficiency similar functionality, but more elegant in the face of how to more effectively implement it, I often feel short changed. These experiences so that I began to realize that I am exhibiting works practice is in fact a kind of "implementation" capability, and solve real-world practical issues will need is a realization of the "beautiful", because only the acceptable time or space constraints of realization is the real answer to the question cannot be resolved. But how do I find the so-called "beautiful realization", one algorithm ability here played a decisive role. Algorithm is essentially an abstraction of the practical problems, because reality is complex, we can make it abstract into the model. Find the right data structures represent issues model, and through analysis, finding the appropriate solution algorithm, this syntactic way of thinking will make developers more with less. The famous "software algorithms + data structures =" not quite untrue, I also learned from these experiences gradually understand Microsoft and other companies in the recruitment criteria does not actually wrong, because they need to find a truly through analysis to solve practical problems. If the engineering practice ability compared to a car wheels, that explains this car has the ability to move, and let the car can be fast and stable running, you need algorithm analysis capability this powerful engine-driven, these two capabilities are complementary. I feel lucky that I began to understand the truth, the participation in the preparation of the programming of the beauty of this book. The process of compiling the book is also my DIY solution one interesting topic inside, beautiful on one during my clever solution for the family, and, in the face of challenges or want to understand, through discussion with other editors, these experiences have made me constantly experience the beauty of the "solution" andThe beauty of the "problem". The beauty of the programming of many topic actually comes from the real project specific issues encountered, or practical issues of simplified or transformed to other interesting scene. But the central problem, through the abstraction and analysis using algorithm will be looking for solutions to solve problems. This kind of thinking is also our hope that through the book delivered to readers. I wish everyone could read in the "beautiful" is everywhere. Want to learn more about this book, start here: www.msra.cn/bop

No comments:

Post a Comment