• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            永遠(yuǎn)也不完美的程序

            不斷學(xué)習(xí),不斷實(shí)踐,不斷的重構(gòu)……

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            好友鏈接

            最新評(píng)論

            Top ten things ten years of professional software development has taught me

            http://www.taylor.se/blog/2007/03/22/top-ten-things-ten-years-of-professional-software-development-has-taught-me/

            I was reading this top ten list yesterday, and I thought I can problably come up with my own list of things no-one told me before I started developing software for money. This is my list.

            1. Object orientation is much harder than you think
              Maybe it's just me, but coming from Computer Science class I thought that OO was easy. I mean, how hard can it be to create classes that mimic the real world? It turns out that it's pretty hard. Ten years later, I'm still learning how to model properly. I wish I spent more time reading up on OO and design patterns. Good modeling skills are worth a lot to every development team.
            2. The difficult part of software development is communication
              And that's communication with persons, not socket programming. Now and then you do run into a tricky technical problem, but it's not at all that common. Much more common is misunderstandings between you and the project manager, between you and the customer and finally between you and the other developers. Work on your soft skills.
            3. Learn to say no
              When I started working, I was very eager to please. This meant that I had a hard time saying no to things people asked of me. I worked a lot of overtime, and still didn't finish everything that was asked of me. The result was disappointment from their side, and almost burning out on my part. If you never say no, your yes is worth very little. Commit to what you can handle, and if people keep asking you for more, make it very explicit that this would mean not doing something else. What I did was to have a list of stuff that I needed to do on a piece of paper with me. When someone asked for something, I showed them the list and asked what I should bump to have time to help them. This allowed me to say no in a nice way.
            4. If everything is equally important, then nothing is important
              The business likes to say that all the features are as crucial. They are not. Push back and make them commit. It's easier if you don't force them to pick what to do and what not to do. Instead, let them choose what you should do this week. This will let you produce the stuff that brings value first. If all else goes haywire, at least you've done that.
            5. Don’t over-think a problem
              I can spend whole days designing things in front of the white board. That doesn't mean it will be any better, it just means it will be more complicated. I don't mean to say you shouldn't design at all, just that the implementation will quickly show me stuff I didn't think of anyway, so why try to make it perfect? Like Dave Farell says: “The devil is in the details, but exorcism is in implementation, not theory.”
            6. Dive really deep into something, but don't get hung up
              Chris and I spent a lot of time getting into the real deep parts of SQL Server. It was great fun and I learned a lot from it, but after some time I realized that knowing that much didn't really help me solve the business' problems. An example: I know that at the table level, SQL Server will not take an IU lock – it will only take a IX lock. This is a performance tweak, since most of the time, the IU lock will have to be escalated into a IX lock anyway. To find this, I spent countless days experimenting, I read loads of material and talked to Microsoft people at conferences. Have I ever had any use of this knowledge. Nope.
            7. Learn about the other parts of the software development machine
              It's really important to be a great developer. But to be a great part of the system that produces software, you need to understand what the rest of the system does. How do the QA people work? What does the project manager do? What drives the business analyst? This knowledge will help you connect with the rest of the people, and will grease interactions with them. Ask the people around you for help in learning more. What books are good? Most people will be flattered that you care, and willingly help you out. A little time on this goes a really long way.
            8. Your colleagues are your best teachers
              A year after I started on my first job, we merged with another company. Suddenly I had a lot of much more talented and experienced people around me. I remember distinctly how this made me feel inferior and stupid. I studied hard, reading book after book but I still didn't catch up. They had too much of an advantage on me, I figured.
              Nowadays, working with great people doesn't make me feel bad at all. I just feel I have the chance of a lifetime to learn. I ask questions and I try really hard to understand how my colleagues come to the conclusions they do. This is why I joined ThoughtWorks. See your peers as an asset, not competition.
            9. It all comes down to working software
              No matter how cool your algorithms are, no matter how brilliant your database schema is, no matter how fabulous your whatever is, if it doesn't scratch the clients' itch, it's not worth anything. Focus on delivering working software, and at the same time prepare to continue delivering software using that code base and you're on the right path.
            10. Some people are assholes
              Most of the time, most of the people around you are great. You learn from them, and they learn from you. Accomplishing something together is a good feeling. Unfortunately, you will probably run into the exceptions. People that because of something or other are plain old mean. Demeaning bosses. Lying colleagues. Stupid, ignorant customers. Don't take this too hard. Try to work around them and do what you can to minimize the pain and effort they cause, but don't blame yourself. As long as you stay honest and do your best, you've done your part.

            posted on 2011-05-11 10:04 狂爛球 閱讀(393) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 談天說(shuō)地

            亚洲国产天堂久久综合网站 | 久久久久久A亚洲欧洲AV冫| 国产精品一区二区久久不卡| 国产精品美女久久久m| 亚洲国产精品人久久| 亚洲人成无码久久电影网站| 亚洲av伊人久久综合密臀性色| 97久久超碰国产精品2021| 久久国产成人午夜AV影院| 亚洲国产美女精品久久久久∴| 久久福利青草精品资源站免费| 久久精品国产精品亚洲艾草网美妙| 久久久久国产一区二区| 乱亲女H秽乱长久久久| 国产精品美女久久久久AV福利| 亚洲国产一成人久久精品| 国内精品久久久久久中文字幕| 亚洲人成网亚洲欧洲无码久久| 久久国产成人精品国产成人亚洲| 久久精品国产清高在天天线| 四虎影视久久久免费观看| 女人香蕉久久**毛片精品| 亚洲精品乱码久久久久久蜜桃不卡| 国产精品热久久毛片| 国产精品福利一区二区久久| 亚洲AV日韩AV永久无码久久| 久久人人爽人人爽人人片AV不| 久久亚洲高清综合| 久久精品三级视频| 99久久国产综合精品五月天喷水| 精品久久久久久国产| 69久久精品无码一区二区| 无码精品久久久天天影视| 精品国产乱码久久久久软件| 国产精品久久久久a影院| 色婷婷久久久SWAG精品| 人妻无码久久精品| 久久亚洲国产最新网站| 欧美亚洲国产精品久久高清| 国产免费久久精品99re丫y| 久久久精品人妻一区二区三区蜜桃|