• <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>

            Chip Studio

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            ...Removing All Doubt

            Fatherly Advice To New Programmers

            It looks like none of my children will become programmers. Instead of letting my fatherly advice to my new programmer son or daughter go to waste, I am going to inflict it on you. If you are newly embarking on the journey that is becoming a programmer, here is advice your father would tell you if he were a programmer. These are things I had to learn the hard way.

            Keep Learning: Read. Go to conferences. Subscribe to journals. Take classes. Whatever it takes for you to keep learning, make it a priority. Learn about every language you can find. Take time to learn about any new frameworks, algorithms, techniques, models, paradigms, you can. Each gives you one more tool in your tool chest. Each will help you more easily tackle your next programming problem. Find a mentor, someone much better than you, and learn all they can teach you. Never stop learning.

            Learn To Communicate: I often joke that the most important skill you can learn as a programmer is how to draw a rectangle on a white-board. Communication is critical to the job of a programmer. Communicating with customers, clients, users, co-workers, bosses, vice presidents, CEO's, board-members, VC capitalists, all will become important at some point in your career. Learn how to speak in public. Learn how to write in English. Learn to effectively communicate in person. Learn how to persuade without shouting, getting angry, or getting flustered. Learn how to speak without jargon. Help people understand what you are doing. Learn to break things into simple, understandable pieces. Learn to communicate by analogy and symbolism. Learn to communicate.

            Be Predictable: Learn how fast you can comfortably program. Wait to predict how long it will take you to complete a task until you understand it. Allow for the unexpected. Plan for vacations and time-off. Live with your predictions. I don't believe I know a problem well enough to predict how long it will take to complete until I can break that task down into sub-tasks that each take no longer than 3 days (often less than one day). Live by this rule, under-promise, over-deliver. It is better to deliver in 10 days what you promised in 15 than to deliver in 10 days what you promised in 5. People depend, schedule, and plan around your predictions. Make them the best you can and make sure you can comfortably do them or you will be asked to live up to your uncomfortable predictions. You will not be good at it at first; to compensate, verify your predictions with someone more experienced. Learn to get better. Be predictable; other depend on you.

            Own Up To Your Mistakes: You will make mistakes. How you handle your mistakes is how you will be judged. Learn how to say "I was wrong." If you underestimated how long it will take you to do something, tell people as soon as it is clear to you. If you broke the build, fix it. If you created a bug, fix it. Don't deny the mistake, don't make excuses for the mistake, don't figure out how to hide the mistake, don't blame others for the mistake, do something about it. Take ownership of your mistake or you will repeat it.

            Never Let Bad Code Off Your Desk: Your job as a programmer is to write code that works, never let code off your desk you are not sure meets that criteria. Not only does it reflect badly on you, it is much more expensive, and much harder, to find a problem once it leaves your desk than before. Learn to love unit tests. Learn to love code coverage. Learn to test your code better than people who are paid to test it. Be embarrassed about bugs that are found after you have checked-in. Be especially embarrassed when a customer finds the bug. Don't rely on others to find your bugs for you, find them and fix them yourself. Don't hope it will work. Test it. Don't assume it will work. Test it. Don't whatever. Just test it. If you haven't tested it, it doesn't work; of this you can be sure. But, even if you are diligent with testing, bugs will get by you. You will make mistakes but try your best not to.

            Programming is Fun But Shipping is Your Job: Programming is fun. It is the joy of discovery. It is the joy of creation. It is the joy of accomplishment. It is the joy of learning. It is fun to see your handiwork displaying on the screen. It is fun to have your co-workers marvel at your code. It is fun to have people use your work. It is fun have your product lauded in public, used by neighbors, and discussed in the press. Programming should be fun and if it isn't, figure out what is making it not fun and fix it. However, shipping isn't fun. I often have said that shipping a product feels good, like when someone stops hitting you. Your job is completing the product, fixing the bugs, and shipping. If bugs need fixing, fix them. If documentation needs writing, write it. If code needs testing, test it. All of this is part of shipping. You don't get paid to program, you get paid to ship. Be good at your job.

            Remember these simple statements,

            • Never stop learning.
            • Communication is critical.
            • Under promise, over deliver.
            • "I was wrong."
            • If it is not tested it doesn't work.
            • Programming isn't your job, shipping is.

            | Comments [32] | #Programming


            posted on 2008-02-08 00:00 MyChip 閱讀(103) 評(píng)論(0)  編輯 收藏 引用

            日日躁夜夜躁狠狠久久AV| 国产成人精品久久二区二区| 久久毛片免费看一区二区三区| 91精品国产91久久久久久蜜臀| 国产精品欧美亚洲韩国日本久久| 性做久久久久久免费观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 韩国三级大全久久网站| 婷婷久久精品国产| av无码久久久久久不卡网站| 精品无码久久久久久久动漫| 一本色道久久综合亚洲精品| 色综合合久久天天综合绕视看| 久久天天躁狠狠躁夜夜avapp| 久久精品国产精品青草| 国内精品久久久久影院薰衣草 | 久久久久亚洲av成人无码电影| 国产69精品久久久久观看软件| 中文精品久久久久国产网址| 亚洲欧美日韩久久精品第一区| 国产亚州精品女人久久久久久 | 久久精品国产一区二区三区日韩| 亚洲国产精品嫩草影院久久| 久久精品一区二区| 亚洲精品无码久久久久久| 深夜久久AAAAA级毛片免费看| 国产精品成人精品久久久| 久久99精品国产自在现线小黄鸭 | 精品久久久久一区二区三区| 无码人妻少妇久久中文字幕蜜桃| 要久久爱在线免费观看| 久久久久亚洲精品天堂久久久久久| 狠狠狠色丁香婷婷综合久久俺| 精品无码久久久久国产| 久久香蕉超碰97国产精品| 亚洲午夜久久久久妓女影院| 中文字幕久久精品无码| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲精品NV久久久久久久久久 | 精品熟女少妇av免费久久| 久久夜色精品国产噜噜亚洲AV|