Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)左published in(发表于) 2013/11/12 11:55:23 A top Programmer’s 10 best practices
10 best experience of a top programmer-programmer, programming-IT information A top Programmer's 10 best practices
1, carefully select the first language
Different programming languages, but not so different from that. But people who use language differences will be big. Select a language you will choose a community.
– Sam Kaufman, Freelancer, iOS developer, 10x management
If you want to quickly build prototypes (especially for hope founder of iterative upgrades to the product), then use Ruby or Javascript
– Erin Parker,Spitfire Athlete founder and Chief developer
2, you're not Bob!
Great developers to construct and develop applications. Amazing developers to focus on business while doing such a thing. Business-side people don't know coding, but certainly can understand the motivation behind a particular feature.
What developers do what others say, not to try to understand why you want to do, resulting in both sides missed opportunities, such things are all too common.
– John Coggeshall, Freelancer, Web Developer, 10x Management,PHP core contributors
A good command of programming is a noble career goals. Once you complete this, don't forget to think about your own. Don't be a slave to any company or without wasting your time on something of value.
-Greg Sadetsky,Python and Javascript expert, 10x Managemen; collaborative office space Abri.co founder
To be complete, project communication in advance before beginning the technical work (even if it is not a prerequisite), because other people are changing to respond.
Application developer – Andrew Wilcox,web, Meteor's core contributors, 10x Management
3, maintaining an agile, continuous delivery
Release early, have been releasing, while rapping side releases.
– Max Nanis, freelance web developer, bio-informatics experts, 10x Management
Continuous testing. Good test packages such as insurance policies and combining of the Canary in the coal mine. It will help you to find errors earlier in the production cycle, and the earlier you find out the easier solution.
– Jeremy Green, freelance web developer specializing in Ruby on Rails,10x Management
Fail-fast. Coding (and life), I would like to know where I can't work as soon as possible, rather than a proliferation of let it ride let it spread. Open, fail fast, and repairing defects, continue.
– Stephanie Volftsun,Knotch co-founder and CTO
Writing automated tests for all code! Practice test-driven development as much as possible.
Zoran Kacic-Alesic,Industrial Light&Magic – head of research and development
4, maintaining control over the testing process
Many projects favored by many test cycles in that country. This will drag down the project, cause high level issues for your organization as a whole.
Programmers should focus on unit testing and a regression test their own code. They know code base better than anyone else, know they can affect which changes. Sometimes such changes as QA testing range is limited and scarce, which cause significant production problems.
–Sanjib Sahoo,tradeMONSTER CTO
If you want to try your case as soon as possible to develop defect-free code, forever never to write tests in the back. We are more aware of this. To check the test coverage to ensure that 100% no dead ends.
Seth Purcell,Signpost – Vice President of engineering
5, if you are self-employed, have to learn to say no, even in the face of money
On a reasonable assessment of the time and cost, and then double it. If everyone said "it should be very simple," then do
– Ryan Waggoner, freelancers, Web and mobile application developers, 10x Management
6, the honor belongs to the past-theory is one thing, but practice is more important
The best way to improve the quality of software development is to develop software. Many ambitious just engineers spent a lot of time to read about the new tools, open process, that sort of thing.
Is that what a lot of people spend their leisure time, but it was very easy to you has been delayed. Come on, through the law as far as possible to reinforce that part of the brain is responsible for developing software.
– Ruby on Rails expert and lecturer James Cropcho,General Assembly
Continue to explore. I've seen a lot of coders have several on hand for business projects. Doing business project forces you to explore every aspect of new technology and to learn how to create applications. You may need to do the nose of HTML/CSS, the back-end API integration, database optimization, mobile app, and set up your server.
– Andrew Waage,Retention Science CTO and co-founder
7, twinning accreditation is your secret weapon
Pair programming is necessary. Two programmers developed jointly with a module can review each other's code. Team code review meeting to once a week, every developer give feedback to someone else's code, explaining how best to improve your code. To develop a culture of collaboration, give developers at your own up!
–Sanjib Sahoo
8, like hiding a plague to avoid premature optimization
Only on the problems and solutions appear in front of you when refactoring-refactoring is a huge waste of time too soon. Do not put half a year later on the perfection of anything that might have been thrown away. Premature optimization is the root of all evil.
–Seth Purcell
Don't be premature optimization! I continue to see engineers in the user not to 1000 repeated concerns about the expansion of scale to 1 million users.
Mariya Yao,Xanadu – founder and Creative Director of Mobile, mobile developers and designers
9, write your code only once, others will read it millions of times
You write code the machine will resolve implemented, but others may need to read your code, understand it, play with it. You must understand that your code has a future audience. Code is a form of written communication.
-Tracy Chou,Pinterest software engineer
Sounds strange, but you will never have to for the sake of their own future. Ask yourself: If you have amnesia, and you can understand what you write code?
– Wai Ching Jessica Lam,Sugarbox co-founder and CTO
Read through your document. Design changes a lot, sometimes when updating comment may or may not follow up. Keep the document updates, future people (including yourself) will find it easier to understand. I don't know how many times I looked back to your code, always thought: "what am I doing? "As long as I wrote the comment, much less headache in the future.
– Kitt Vanderwater,Google software engineer
10, this is a noble profession. Place to better your skills.
Helping others is the deepest human needs. Find a way to work with you to improve human, you will be assured of success.
–Greg Sadetsky
一个顶级程序员的10条最佳经验 - 程序员,编程 - IT资讯一个顶级程序员的10条最佳经验
1、慎重选择第1门语言
编程语言各有不同,不过区别不大。但用语言的人区别就大了。选择了一门语言你就选择了一个群落。
–Sam Kaufman,自由职业者,iOS开发者,10x management
如果你想快速建立原型(尤其对于希望对产品进行迭代升级的创始人来说),那就用Ruby或者Javascript
–Erin Parker,Spitfire Athlete创始人兼首席开发者
2、你不是程序猿!
伟大的开发者能够建构并开发应用。惊艳的开发者能够在关注业务的同时做这件事。业务端的人大都不懂编码,但是肯定能够理解特定功能背后的动机。
别人说什么开发者就做什么,没有去理解为什么要这么做,导致双方均错失了机会,这样的事情太常见了。
–John Coggeshall,自由职业者,web开发者,10x Management,PHP核心贡献者
精通编程是一个崇高的职业目标。一旦实现了这个目标,别忘了考虑一下你自己。不要成为任何公司的奴隶或者在毫无价值的东西上浪费你的时间。
—Greg Sadetsky,Python及Javascript专家,10x Managemen;协同办公空间Abri.co创始人
要想按期完成,得在开始技术工作之前事先进行项目沟通(哪怕这并非先决条件),因为其他人的响应速度千变万化。
–Andrew Wilcox,web应用开发者,Meteor核心贡献者,10x Management
3、保持敏捷,不断交付
早发布,不断发布,边说唱边发布。
–Max Nanis,自由职业者,web开发者,生物信息学专家,10x Management
不断测试。好的测试包如保单和煤矿里的金丝雀之结合。它能帮助你在生产周期中更早地找出错误,而错误越早发现越容易解决。
–Jeremy Green,自由职业者,web开发者,专长Ruby on Rails,10x Management
快速失败。编码(及生活)时我希望尽早知道什么地方不能工作,而不是放任不管让它增殖扩散。全面放开,快速失败,修补缺陷,不断继续。
–Stephanie Volftsun,Knotch联合创始人兼CTO
为所有代码编写自动测试!尽可能践行测试驱动的开发。
–Zoran Kacic-Alesic,Industrial Light & Magic研发主管
4、保持对测试流程的控制
许多项目深受多测试周期之苦。这会拖累项目,导致组织整体出现高级别的问题。
程序员应该专注于对自己的代码进行单元测试及半回归测试。他们比其他任何人更了解代码库,也知道自己会影响到哪些变更。有时此类变更会由于QA测试范围有限而缺失,因此导致生产环节出现重大问题。
要想在力所能及的情况下尽快开发出无缺陷代码,永远永远也不要把写测试放到后面。我们更清楚这一点。要检查一下测试的覆盖率,确保100%无死角。
–Seth Purcell,Signpost工程副总裁
5、如果你是自由职业者,要学会说不,哪怕面对的是金钱
要对时间和成本有一个合理的评估,然后把它加倍。如果大家都说“这应该很简单,”那就做
–Ryan Waggoner,自由职业者,web及移动应用开发者,10x Management
6、荣誉属于过去—理论是一回事,但实践更重要
改进软件开发质量的最好方式就是去开发软件。许多雄心勃勃的刚入门的工程师花了很多的业务时间去读书,关于最新工具的、关于开放流程的,诸如此类的东西。
很多人都是这么消磨自己的闲暇时间的,但这样很容易就把你给耽搁了。别这样,通过尽可能用脑来强化大脑负责开发软件的那部分。
–James Cropcho,General Assembly的Ruby on Rails专家及讲师
不断探索。我见过的许多编码者手上都有几个在进行的业务项目。做业务项目迫使你要探索新技术然后学习创建应用的方方面面。你可能需要做前端的HTML/CSS,后端的API集成,数据库优化,做移动app,还得设置自己的服务器。
–Andrew Waage,Retention Science CTO及联合创始人
7、结对评审是你的秘密武器
结对编程非常必要。两个程序员联合开发同一个模块可以相互审查对方的代码。开发团队每周也要召开代码审查会议,让每一个开发者给其他人的代码提供反馈意见,解释如何更好地改进代码。这能够形成一种协作文化,把开发者的自负抛开!
8、像躲瘟疫一样避免过早优化
只有在问题和解决方案都出现在你面前时才进行重构—过早重构是时间上的巨大浪费。不要投入半年后可能被扔掉的任何东西的完善上。过早优化是罪恶之源。
不要过早优化!我不断看到工程师在用户还没有到1000的时候一再对扩充到100万的用户规模担心。
–Mariya Yao,Xanadu Mobile创始人兼创意总监,移动开发者及设计师
9、你的代码只写一次,可别人会读它千万遍
你写的代码机器会解析执行,可其他人却需要读你的代码,理解它,摆弄它。你必须明白,你的代码会有未来的观众。代码也是一种书写形式的沟通。
–Tracy Chou,Pinterest软件工程师
听起来很奇怪,但是你永远都得替自己的未来着想。问问自己:如果你有健忘症的话,你还能不能理解自己写过的代码?
–Wai Ching Jessica Lam,Sugarbox联合创始人兼CTO
通读你的文档。设计改动很多,有时候代码更新的时候注释不一定会跟进。保持文档的更新,未来的人(包括你自己)理解起来就更容易。我说不清有多少次我看回自己代码时总在想:“我到底在干什么?”只要我写出了好的注释,未来头疼就少很多。
–Kitt Vanderwater,Google软件工程师
10、这是一个崇高的职业。把你的技能用到好的地方。
帮助他人是深层次的人类需求。想办法用你的工作来改善人类,你就会有成功的把握。
赞