Highlights of modern software engineering series (7) Valuable lessons

Source: Internet
Author: User
From http://codecanvas3706.spaces.live.com/blog/cns! 5A77585898179960! 205. entry

[When a student is a student, it is best to make some mistakes, experience some failures, and do not experience some painful failures. Is it necessary to fail at work? ]

Personal failure comments

I remember that after reading the "Dream code", I felt a little pity for the chandler project and felt that the software was a little difficult to do. But today, I realized another kind of mentality from my failure. I don't know how much it took for chandler to spend three years and how hard it was for him to suffer when the project failed. What I can realize is that, after nearly two weeks, seven hours of energy is exhausted every day, there is a sense of suffocation. Software is hard to do. This is not a false one! Maybe programmers must grow up in such a sense of helplessness and frustration.

Early this morning. The definition of hook by MSDN, which was accidentally found, negates all of my thoughts on adjusting the volume of sub-programs. All the work must start from the beginning, but the time is not enough, you can only cut it down.

Originally, I wanted to hook up a specific request sent by a process to the system through an api, and then call my own logic code to control the playback of sound messages to adjust the volume of sub-programs. However, the hook definition is:

A hook is a point in the system message-handling mechanic where an application can install a subroutine to monitor the message traffic in the system and process certain types of messages before they reach the target window procedure.

Hook can only Hook messages sent by the system to the form, but cannot Hook messages sent by the process to the form. My young and fragile heart was deeply stabbed by him.

Now we can only summarize the lessons:

1. Basically, I have never used windows APIs and have no idea about them, which makes me spend a lot of time and energy on getting started with APIs. I think using a technology you are not familiar with for development may result in negative efficiency. In the future, we should have some knowledge about some basic mainstream technologies.

2. From today's situation, I am wrong at the beginning. I just take it for granted that hook can meet my needs without looking at his official definition carefully. If I can understand the official definition of hook earlier, so I don't need to spend a lot of useless energy on it. I think you must have a deep understanding of the key technologies you want to use, or at least understand what they do and what they cannot do! The official definition is clearly the most important reference!

3. No matter what you do, you can't make a mistake at the beginning. A directional mistake really takes the lives of people! Therefore, software development should not start in a rush. The shorter the time you spend in the analysis phase, the longer the development time, because most of the time is spent on useless work. I basically started without analysis.

4. It is easy for a person to make mistakes. In this period of time, I am basically alone, because our project is divided into several independent functional modules, and each person is responsible for a part. This allows me to have a one-sidedness understanding of my own things. Other people in the team did not help me, because we are basically new users in this field. Although web is the biggest tip of knowledge, it is difficult to obtain substantial things by blindly searching. I think at least one person in the development team of the project should be an expert in a certain direction, so as to help developers with guiding significance. Of course, we are still students and everyone is learning. This condition cannot be met.

I hope the cc team can do well. Come on !!!

--- Lin Jiang

6: 31 AM | Blog it

Someone on Windows Live

Comments (6)

Xin xinxin-Nov. 28,200 9-Delete

A good summary!
When I was looking for a job after graduation, I wrote my resume "proficient in Windows Programming", but I still don't know what MSDN is. You are much better than them.

Jian-Nov. 28,200 9

Jiang Ge, to be honest, I am ashamed to see this log for your 7-hour experience every day.
You are more persistent than me, and I gave up the work of detecting and plugging headphones in a week.
I felt like this was the last weekend... Very lost! But I want to move to another direction, start a new job, and work together!
Let's talk a little bit about my personal point of view: the division of labor in our group may lead everyone to fight independently. It is true that the direction and thinking are prone to errors and a dead end.
In this separate development, we do not feel that we are developing a software project, but more like everyone developing a small software, and finally working together, without mutual communication and promotion, some work implementation, progress, difficulty, and problems are prone to misjudgment ......

Team cc-Nov. 28,200 9

As one of the members of the group, I admire Jiang Ge and take the most difficult part over seven hours a day. This is what I cannot imagine. Secondly, to tell the truth, I also felt the difficulties brought about by the lack of planning. Some time ago, I asked you various technical questions in the group almost every day, I think there are a lot of jobs that will be much more efficient if they are planned well before the code is designed. Maybe this semester's massive homework left everyone with no intention of designing, just thinking about getting started quickly. Then, at least five hours a day on the softwares, but the progress is relatively slow. The design does not meet the expectations of everyone.
The alpha version will be released in another week. We must strive to do well. Little iDLE may not necessarily be a great software, but it will remember the growth of every member in our CC team. Jiangge !!!
---- HP

Team cc-Nov. 28,200 9

My reply is in the next log @@
In short, I'm sorry, and I am very touched. <____ <
-- Cheng

Ultra week-Nov. 29,200 9

Read it!

Someone on Windows Live-Nov. 29,200 9

Sorry for the hook direction suggestion. I believe that Jiang GE will become an expert in this direction after completion!

 

 

Some things that PM has to say

I was deeply touched by the log of Lin Jiang, and I was very embarrassed. From the official start of TeamWork to the present two weeks, I have never been ignorant of any direction, and I have come here step by step with a lot of feelings that I have not had time to say. This log is my personal summary.

I. Apologize

This is the description of PM in mountain migration.

Program Manager(Program Manager) does everything except development and testing. Some students asked, "I don't need to test programs, so what else can I do besides development and testing ?" Developing commercial software in the company is not that easy. For example, if we want to develop the next version of MSN Messenger together with 10 Dev and 5 tests, how long will it take for us to complete? What is done first and what is done later? When the project was halfway through, the leader said that we were renamed Live Messenger. What does this change mean? How to adjust the progress? In the last two months, it seems that we cannot complete all the tasks. What should we do? You are not the boss of Dev and Test. Why do they listen to you? This is also the pain point of PM. PM seems to be able to take full control of a product, gain a broad understanding of an industry, deal with users, attend various meetings on behalf of the team, and gain high exposure within the company.

The teacher told me in class that the work of PM should be global. Obviously, my personal abilities are far from meeting the PM requirements. First of all, I have no way to provide technical guidance, especially in terms of WindowsAPI and thread, and I know little about it. Even when assigning tasks, I was not familiar with the difficulty of "headset plugging induction" and "program-based volume adjustment. Chen Jian and Lin Jiang are both responsible for the difficulties they encounter. I can see the hard work of the two of them, but I personally cannot understand the feeling of being difficult to find and frustrated from the beginning. At the same time, both wuzhe and zhanggong overcome so many difficulties with their perseverance and completed two very difficult functions.

Therefore, I would like to express my deep apologies and respect to all the members of the CC group.

After these things, I also learned a lot. First, I should not rashly set some functions without understanding the difficulty, which led to the unnecessary effort of the group members. 2. Assignment of jobs should not be assigned if you are not familiar with the difficulty. Third, it is also the most fundamental. The lack of knowledge is the cause of the above two problems.

Ii. Thanks

Thanks to all CC team members! Although it is quite old-fashioned, I still want to talk about it.

In order to complete this TeamWork, everyone in the group has spent a lot of time and energy. Personally, I have gained a lot of happiness from group development. It is not a perfunctory lie, but a true sense that a group of people will share a questionnaire, write a blog space together, discuss and help each other in the group, and go to the canteen for dinner together, even shout together when you are tired ...... These are much happier than developing a software.

It seems that the job has not been closed, so stop it first.

In short, I am very touched by the ability to gain everyone's trust and become PM. I learned a lot from this experience. I also hope that in the future, I will not repeat the same mistakes and become a truly trustworthy Program Manager.

4: 24 PM | Blog it

Someone on Windows Live

Comments (2)

Xin xinxin-Nov. 29,200 9-Delete

> In "The path to mountain migration", this is the description of PM...
I remember these descriptions are in the beauty of programming.

Team cc-Nov. 29,200 9

To be honest: You have done quite well! I think the atmosphere in our group is really good, especially since I didn't make any progress in my group from the very beginning, while other team members were very fast. I am sorry to join the group discussion, I was touched by the understanding of PM and the team members and actively joined the discussion in our group...
This time, I usually spend a lot of time searching materials. Although there was no final result, I had a better understanding of a software or function implementation ......
Team cc!

Related Article

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.