Top Ten Habits of Successful Programmers
来源:互联网 发布:凤姐绿卡怎么拿的 知乎 编辑:程序博客网 时间:2024/05/16 07:58
来源:http://codepad.classhelper.org/top-ten-habits-of-successful-programmers/223/
Around the globe, millions of people are either working as softwaredevelopers, or aspire to get paid for development work some day. Thesefolks go by many names: software engineer, coder, and developer. At theend of the day, they’re all still programmers, people whounderstand how to translate what a computer needs to do into the codethat gets the job done. To succeed at programming over the long term, afew simple rules need to be followed.
1. Never stop learning. Even if you’ve got thirtyyears of programming experience (I’ve only got a paltry fifteen),there’s always more to learn. New programming languages emergeperiodically, existing languages evolve, and new frameworks come alongto meet new needs. Spend some time each week reading industry journals,and keep tabs on popular online communities that focus on emergingtrends in software development.
2. Know multiple languages, and know them well. Ifall you’ve got is a hammer, every problem looks like a nail. Somelanguages are better suited to certain tasks than others. While I’msure someone out there is busy writing a first person shooter inJavascript, the end result will probably be less than awe-inspiring(aside from the fact that it’s written in Javascript, of course). Takesome time to explore languages you’re less than familiar with; you’llbe equipping yourself to work on a more diverse range of projects. Thistranslates to being more highly valued in the marketplace.
3. Get comfortable with different operating systems.We all have our favorite OS; mine happens to be Ubuntu Linux on thedesktop, with Debian Linux on the server. That said, I try to keep upto date on Windows Server, FreeBSD, MacOSX, and Solaris. Part of beinga good programmer is understanding the intimacies of the system you’reworking on. This can make identifying bugs a heck of a lot easier, asthe same program can (usually does) perform differently on variousplatforms. This is true for languages like Perl and Java, which areintended to allow easi(er) cross-platform development.
4. Don’t limit yourself to a single development environment.Again, everyone has their favorite tools. I’m pretty old-fashioned, asI prefer to do write mode of my code in gedit, with a simple terminalwindow for testing. Some folks prefer integrated developmentenvironments that allow them to more rapidly examine the relationshipsand dependencies between various parts of an application project. Nomatter what tools you’re using, try something different from time totime. You never know what might appeal to you, or help you work smarter.
5. Experiment with different source control systems.Plain vanilla CVS works for many teams, Subversion works for others,and Git meets the needs of a different group. Depending on the size ofyour team and their geographic dispersion, you may or may not be usingthe most efficient tool for the job. I prefer to use open sourcesolutions, but some commercial packages may make more sense for youteam.
6. Be a good team member. Unless you’re flyingsolo, cranking out apps into the wee hours of the morning, being a goodteam member is a huge part of your job. You might just be the mostknowledgeable person in your group, but that doesn’t mean you shouldadopt the dreaded “prima donna” attitude. Good manners and frequentcommunications go a long way toward maintaining a pleasant workenvironment.
7. Document your work. This starts with the obviousmantra of “comment you code,” but it goes further than that.Well-commented code is the foundation of documentation, allowing you(and other team members) to understand what the heck you were doing incode you haven’t touched in six months. Overall project documentationshould, at minimum, chart development milestones, provide easy accessto requirements documents, contain logs of testing sessions, and have asection dedicated to security concerns. Not only will this save yourcompany a lot of grief if you get hit by a bus crossing the street tothe office, but it will help you stand out as an honest, professionaldeveloper.
8. Make backups. Lot of them. Almost everyone Iknow in the industry has been through at least one “oh, crap” eventrelated to data loss. Stuff fails, it’s just a fact of life. Laptopsget dropped, hard drives burn out, some enterprising new worm invadesyour enterprise, and entire buildings burn to the ground. Make sureyou’ve got multiple copies of critical data stores, and make sureyou’re doing daily (hourly, in some cases) incremental backups of yourwork. A set of backups should be kept at a separate geographic locationfor safety’s sake.
9. Keep your designs flexible. This applies to corecoding practices (using standardized libraries, not reinventing thewheel, etc) and target deployment environments as well. You might bedesigning an application that your boss swears will only ever be usedon a single browser, at a certain screen resolution, by a specificgroup of highly trained people. He doesn’t know it, but he’s probablytelling you a fib. Applications have a habit of growing tentacles intovarious environments, and feature creep is always a concern. You don’twant to be caught off guard if your boss decides six months from nowthat your “best app in years” needs to run on portable devices that mayor may not even have a persistent network connection.
10. Don’t burn yourself out. I have a really badhabit of telling myself that I can finish an application if only I stayup for a few more hours. This isn’t good for your body, your mentalstate, or the project itself. No amount of caffeine can replace a fewhours of quality sleep, although you should feel free to experimentwith different schedules. When projects permit, my most efficient mostof operation is four hours of programming, followed by an hour-longnap, then four more hours of coding. Make sure your work environmentisn’t full of constant interruptions, either… it can be reallydifficult to work with people whisphering in your ear every thirtyminutes.
I hope this information is helpful to those who code for a living,and look forward to hearing your responses. Happy programming!
- Top Ten Habits of Successful Programmers
- Fifty Habits of Highly Successful People
- Top Ten Errors Java Programmers Make
- Top Ten Errors Java Programmers Make
- Top Ten Errors Java Programmers Make
- Top Ten Errors Java Programmers Make
- Top Ten Errors Java Programmers Make
- Top Ten Errors Java Programmers Make
- My top ten list for a successful test automation strategy
- Top Ten Traps in C# for C++ Programmers中文版(上篇)
- Top Ten Traps in C# for C++ Programmers中文版(下篇)
- Top Ten Web Hacking Techniques of 2009!
- Top Ten Web Protection Techniques of 2011
- Top Ten Web Hacking Techniques of 2011
- Top Ten Web Hacking Techniques of 2011
- Top 10 Programmers of All Time
- OpenGL教程 "Top Ten"
- OWSAP Top Ten
- Struts ActionForm中自定义转换器Converter(简单易懂)
- 敏捷编码
- Hudson – 搜索条
- 球迷的心声
- 快速排序 优化 (QuickSort)Java数据结构与算法
- Top Ten Habits of Successful Programmers
- 真正的程序员,请你站出来
- IT人士必去的10个网站
- 优秀程序员的十个习惯
- 程序员需要具备的基本技能
- 分析器错误信息: 未能加载类型
- 揭秘全球最大网站Facebook背后的那些软件
- substr()函数的使用
- LED数码管