My concept changes in software engineering
I have learned that the software engineering courses taught by Yan Xin are both senior or graduate students, and I have complained.
I was a juniorCodeThe amount of learning software engineering is not good enough, and with my understanding, this course will be a certain numberProgramPersonnel are well integrated into the learning of the same project, similar to "interface construction ". And now the internal method of the connection class (Personal pairProgramming LanguageAre not clear, our database and other professional courses are still learning, to be good in engineering cooperation will inevitably hinder a lot.
I have been thinking this idea for a while.
In fact, since I learned C from the first day, I have been hearing people sayLearn by doingIn this case, it is impossible for me to learn programming like I do in mathematics and physics.Increase in numerous bugsThis is my true feeling of programming.
The software engineering course should be objectively speaking a professional course that has been consolidated, improved, and inspired during a long process of programming learning. We can't just limit ourselves to one problem.AlgorithmThe implementation and the use of the most efficient data structure can truly enable the integration of this piece of code into the entire project, in order to truly play its role. Therefore, individual cultivation naturally requires persistence and learning to cooperate with others in Engineering, it is even more essential. (I once heard of a good Microsoft employee on @ my Weibo.David CutlerMr often writes big projects efficiently by himself, indicating that I am not "Operating System God ").
The path to mountains
In this blog, I will not talk about some 1234 pieces of technical information, so I will only write some things like sentiment. "The path to mountains" is a book written by Yan Xin on vsts development. It is not a harsh tool book, just like a collection of blogs. After reading this article, I felt like an example of programming and development by my students in the third year of my undergraduate course. There is a certain degree of programming foundation, but it is only a little bit of knowledge about how to do the project, as we wrote in the book, our first team project is "the first child, take care of books", various careful, we want to completely eliminate warning and try to achieve the fastest speed under the correct conditions.
However, this is very difficult to implement. First, our own understanding and mastery of programming is still limited. Furthermore, as long as the project is a little bigger, it is very difficult to have everything to do.The Code complexity is definitely not linearly increased!This is expected to be supported by the masses. Once thousands of lines of programs are available, especially when many methods are used for the first time in the book, debugging is like 2012. However, I used to stare at the screen to find a bug by myself. Maybe one day and one night later, I was woken up by a casual word from someone who accidentally passed by. It was like a spring breeze ~ Now Pair programming can solve this problem well, at least not to wait for a day or night so long.
At the end of "the path to mountains", I made a summary like a Chao, jelly, and others who participated in the stone project. In fact, you don't have to regret it before. If you succeed, it's wonderful. Even if the result is bad, it's also called experience. Jelly says "publishing is the final truth". In fact, it doesn't just mean to come up with a completed work, but to release the RTM software (actually it has been since alpha) it is like the painstaking work of art that we have devoted ourselves to. We have basically achieved the expected functions. We want to achieve the ultimate in this field. Just as wenwu No. 1, wuwu No. 2, it is also a winner. Industry giants are well known. Who are the second best? It may have fallen on the way forward. When talking about the relationship between the functions of software implementation and user requirements, I would like to refer to the one mentioned in the microblog of @ programmer Xin:
Most practical requirements> User Requirements> requirements expressed by users> requirements understood by the software team> understanding by specific developers> Implementation under various constraints>.
Conclusion
Above This feedback is repeated several times to make the software really stand the test. I think I should also ask myself to compile programs like this. Programming is more than simply implementing a mathematical problem with code. There are countless obstacles for real software to solve practical problems. The user does not think about how to make the software user experience friendly and easy to operate like a program developer. This is not just a technical problem, but a comprehensive array of factors. After all, software is a tool, and we don't want to hammer our scissors or get them. For thousands of years, we have been constantly improving tools to make our lives better. Software implements the functions of tools and changes people's lives. We won't be doing very well with wood iron, but we can create a new world from countless "0" and "1. (文via all crazy male)