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!

 

原创粉丝点击