20年工作经验的架构师写给程序员的一封信

Making Software - What Really Works, and Why We Believe It Making Software - What Really Works, and Why We Believe It. Does the MMR vaccine cause autism? Does watching violence on TV make children more violent? Are some programming languages better than others? People argue about these questions every day. Every serious attempt to answer the first two questions relies on the scientific method: careful collection of evidence, and impartial evaluation of its implications. Until recently, though, only a few people have tried to apply these techniques to the third. When it comes to computing, it often seems that a couple glasses of beer and an anecdote about a startup in Warsaw are all the “evidence” most programmers expect. That is changing, thanks in part to the work of the contributors to this book. Drawing on fields as diverse as data mining, cognitive psychology, and sociology, they and their colleagues are creating an evidence-based approach to software engineering. By gathering evidence drawn from a myriad of primary sources and analyzing the results, they are shedding new light onto some vexing questions of software development. What do most programmers get wrong in their first job? Does test-driven development lead to better code? What about pair programming, or code reviews? Is it possible to predict the likely number of bugs in a piece of code before it’s released? If so, how? 立即下载

《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.

要热爱你工程师的职业,你可以一生都扮演工程师或开发者的角色,你会赚很多的钱,赢得别人的尊重,最重要的,你会乐在其中。


原文链接:http://blog.youkuaiyun.com/keymo_/article/details/7407476

Cadence Virtuoso Layout 版图绘制 画好原理图,打好pin脚(pin最好以全大写的形式书写,以防后续操作中可能出现Bug) 查看所使用工艺库的design rule文件,确定栅格单位设置大小 在准备绘制的原理图界面启动layout XL/GXL 在layout界面按e,设置网格大小与design rule匹配 直接根据原理图生成版图 根据原理图连接关系显示版图中未连接的飞线 查看和更改原理图与版图中器件对应的链接关系 shift + f:显示器件版图细节 版图的构成:元器件(工艺厂商提供)、器件连接、阱连接、IO和PAD模拟电路 阅读详情

相关推荐

Twin Builder CFD 示例:构建、验证和评估静态 ROM

通过我们构建、验证和评估静态 ROM 的综合指南,释放 Twin Builder CFD 的潜力。

jkh920184196的博客 1102

二十年工龄架构师的肺腑之言,看完我陷入了沉思(万字总结)

注定“不平凡”的2020 2020年注定是不平凡的一年,今年有太多的变化,很多人之前的计划都被打断了,在经历了疫情摧残后的祖国,经济发展是有被停滞甚至推后的,现国内疫情已控制住了,那么对于复工复产要逐步的把经济拉回来,而在如今信息时代,互联网更是首当其中拉动经济发展。 那么作为互联网行业中的一员,当看到这样的消息时还是很激动的,说明这也是一个机会,就看大家能不能抓住。在互联网行业中软件开发所...

QAQFyl的博客 329

RPG MV游戏数据修改指南:从JSON解析到脚本进阶

游戏数据修改是游戏开发与逆向工程中的常见实践,其核心原理在于解析和操作游戏资源文件。许多现代游戏引擎采用结构化数据格式(如JSON)存储游戏配置,这为外部修改提供了可能。通过理解文件结构、数据格式与游戏逻辑的关联,开发者或爱好者可以调整游戏平衡、修复问题或实现个性化定制,这不仅能深化对游戏设计机制的理解,也具备实际的技术学习价值。本文以基于Web技术栈的RPG Maker MV(RPG MV)引擎为例,其游戏数据多以明文JSON存储,结构清晰。文章将具体阐述如何安全地修改角色属性、物品效果、敌人数据及技能公

weixin_29001419的博客 405

20年架构师写给程序员的一封信

早上看到了一篇文章,翻译的是一名架构师写给程序员的一封信 《From an architect to a programmer 》 只有中文,读完后好多地方还是不明白,于是就搜索了下原文,觉得原作者的好多想法并没有被很好的翻译出来,于是自己尝试着重新翻译下,并附上英语原文。 My team and I received this in our inbox from our archite...

www.v5qq.com的技术博客 257

《双剑合璧:双 IMU 驱动的高精度 AHRS 实战宝典(基于 ROS2)》

本文系统阐述了基于双IMU的高精度姿态与航向参考系统(AHRS)设计与实现方法。文章首先分析了传统单IMU系统的局限性,提出通过双IMU冗余配置实现性能互补的方案。从硬件设计要点(包括IMU选型策略、电路降噪方法、PCB布局规范),到算法实现方案(互补滤波、卡尔曼滤波等融合算法),再到ROS2软件架构与调优策略,全方位展示了双IMU系统的技术实现路径。特别强调快速性与高精度平衡的方法,包括动态参数调整、双IMU权重优化等核心技巧。最后总结了硬件降噪、算法调优等实用心法。

bother3000的博客 2024

CAN开发笔记(TI开发者推荐笔记)

查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。 由下图所示是CAN模块初始化流程图 首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。 1.开始初始化 首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过...

weixin_44316996的博客 3562

写给即将入行的程序员的一封信

  首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。   “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” –WhyTheLuckyStiff   对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员。我喜欢把事情做到最好,而不是对原来的东西修修补补。   仅仅是因为爱好,开...

justJavaC的专栏 446

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

架构师给程序员的一封信

<br />by 陈皓<br />下面的邮件是某Architect发给他的Engineering团队的(来源),我觉得挺不错的,翻译过来,我相信我们所有的程序员都能从中学到很多东西。下面是这封邮件——<br />每次当我开始做新的东西是我就会很兴奋。就算在软件圈里做了20年以后,每当开始新的旅程里,我都觉得我心中有一些东西不吐不快。这是我们大家一起的旅程。我强烈地相信我们详细规划的过程是很有乐趣的,富有挑战的和丰富多彩的。我想让这个旅程让你们难忘,并且能增添你们所有人的阅历。<br />这看起来有些唯心主义

notlcry的专栏 522

西工大noj100题python2024第三季21-30

【代码】西工大noj100题python2024第三季21-30。

weixin_70523540的博客 1578

Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)

Flink运维监控在实时计算场景中至关重要,因为Flink作业需要7×24小时稳定运行,对性能、资源、故障感知和状态变化的实时监控是保障系统稳定的关键。Flink自带的Metrics系统提供了基本的监控能力,但为了更全面的监控,Prometheus+Grafana成为最主流的解决方案。通过配置PrometheusReporter和Grafana仪表盘,可以实现对Flink作业的全面监控,包括CPU、内存、吞吐量、Checkpoint状态、KafkaSink性能等关键指标。此外,自定义指标采集和报警机制的配置

晴天彩虹雨的博客 1368

[转]20年工作经验的架构师写给程序员的一封信

这是很好的一些习惯与思想,所以我就转过来了。 《From an architect to a programmer 》 只有中文,读完后好多地方还是不明白,于是就搜索了下原文,觉得原作者的好多想法并没有被很好的翻译出来,于是自己尝试着重新翻译下,并附上英语原文。 My team and I received this in our inbox from our a...

weixin_30483495的博客 77

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位

目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2810
上一篇: Struts2+Spring3+Hibernate3配置全过程
下一篇: 追女孩子非常火的一片文章
疯疯爱吃辣
博客等级 码龄15年 25粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值