[转]20年工作经验的架构师写给程序员的一封信
这是很好的一些习惯与思想,所以我就转过来了。
《From an architect to a programmer 》
只有中文,读完后好多地方还是不明白,于是就搜索了下原文,觉得原作者的好多想法并没有被很好的翻译出来,于是自己尝试着重新翻译下,并附上英语原文。
My team and I received this in our inbox from our architect six months ago when we started a new project:
我和我的团队在六个月前收到了一封来自架构师的邮件,那时我们正着手开始一个新的项目:
I am very excited every time I start something new.
每次开始一件新的事情,我都无比激动。
Even after about 20 years of doing software, I feel those butterflies in my stomach when start on a new path.
尽管我已经从事软件行业20年,但是每当开始一项新的旅程,我都兴奋不已,并带着一些紧张不安。
This is our journey together.
这次是我们一起的旅行。
I strongly believe that we are charting a course which is fun, challenging and enriching.
我坚信我们正在规划的,是一个非常有趣,丰富,并且富有挑战性的旅程(项目)。
I want to make this memorable to you and want to create experience fulfilling to you all.
我想给你们的,是一次难忘的回忆,以及一些非常丰富且有价值的经验。
It is little idealistic but I want to make my business agenda, our technology strategy and your progress aligned to each other.
这也许是我的一厢情愿,但是我真心希望我的工作笔记,还有我们一起的技术总结,能帮助彼此共同进步。
That way, when you do something great, we all benefit.
那样的话,当你们做出一些不错的东西的时候,大家都可以获益其中。
I have deep respect for engineers and the code.
我一直对程序员以及他们的代码表示深深的敬意。
1. Code is the KING. Documentation is just close behind it. So, write code such that it IS the documentation and it works.
1.代码为王,文档只是紧随其后,所以我们写的代码要作为它自身文档的代码,保证它能运行。
2. TEST TEST TEST.
2.测试,测试,不断的测试。
3. Unit tests ARE CRITICAL.
3.单元测试非常关键。
Every bug found past unit tests have two fold cost beyond developer.
每一个在单元测试后发现的bug都将花费开发者两倍以上的精力。
Remember, I would prefer to pay you more salary than spend it on another QA organization and then fix bugs.
记住,我宁愿多支付薪水给你,也不想花钱去找其他的OA团队来修补这些bug。
But if you write buggy code, I will pay everyone and then you get smaller slice of the pie.
但是如果你的代码满是bug,那我将会把更多的钱付给其他人,然后你得到的,只能是一小部分。
4. Write efficient code for human reading and for CPU. It is never OK to write bad code.
4.写高效率的代码,让其他人更好的阅读,也让CPU更好的执行。永远不要满足于你那根本不算好的代码。
5. Read more than your job needs today. You dont progress only knowing what you need today but what you need tomorrow.
5.多读一些今天工作需要之外的东西,如果你只知道今天需要什么,而不知道明天需要什么,那么你自然不会进步。
6. Go home and once in a while cook food. YES, real food.
6.在家偶尔做做饭。是的,真正的做饭。
It will teach you the difference between following a recipe and creating a meal.
这样可以让你明白看菜谱和真正做饭的不同。
First is oriented towards knowing what you need to create the dish and second to create a meal with what you have......
菜谱只会告诉你做一盘菜需要什么,然后当你真正去做了,才知道自己到底有什么。
just a little difference.
这便是“看”与“做”的区别。
This was my biggest lesson as a startup company and it did not come easily.
这是创业公司给我的最大的教训,它来之不易。
7. Innovation and good ideas (technology or product) originate everywhere. Please share with us.
7.创新和一些好的观点(技术或产品)来源于生活的各个角落,记得和我们一起分享。
8. I know you hate business folks. I do see why.
我知道你们不喜欢业务人员。我也知道原因。
They sell what you cant produce;
他们卖那些你们无法开发的东西;
they promise when it cant be done;
他们承诺那些软件根本不能实现的东西;
they ask more when they don't pay.
在客户未付钱的时候他们会不停的对你们发出质问。
But business will not run without their ability to position the product.
但是如果没有他们对产品的定位,没有他们的业务能力,那么商业将无法运作。
That is a hard skill.
这是项难以掌握的本领。
But share your thoughts with me and I will act as a buffer. All disciplines are needed to make a good organization.
但是如果你肯把你的想法与我分享,那我将作为一个缓冲桥梁,可以更好的将大家组织起来。
9. Love your profession as an engineer. YOU CAN have engineering/developer role for lifetime AND MAKE A LOT OF MONEY AND HAVE RESPECT AND FUN.
要热爱你工程师的职业,你可以一生都扮演工程师或开发者的角色,你会赚很多的钱,赢得别人的尊重,最重要的,你会乐在其中。