十届MVP大牛教你如何成为技术牛人,不,软件工匠!

简介:

中生代技术走进冰鉴科技,10届微软MVP朱永光老师带来了一场《如何成为技术牛人软件工匠》的精彩分享 。


朱老师作为一个写了20年程序的前辈,为我们分享了如何成为一名软件工匠师。在我们技术人的心目中,朱老师就是我们的偶像。


如何让一个技术人永葆年轻,不至于因为技术的进步而落伍,朱老师给出了一个肯定的答案。


那就是:我们应该稳打稳打,以提高成就感为目标,而非为了单纯的工作而工作。


同时老朱老师给我们着重推荐了一本书: 《软件工艺师:专业、务实、自豪》。


以下是朱老师在沙龙中的精彩分享视频实录


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


软件工匠宣言(Manifesto for Software Craftsmanship)

作为有理想的软件工匠,我们一直在身体力行,提升专业软件开发的标准,并帮助他人学习此工艺。

通过这些工作,我们建立了如下价值观:


不仅要让软件工作,

更要精益求精


不仅要响应变化,

更要稳步增加价值


不仅要有个体与交付,

更要形成专业人员的社区


不仅要与客户合作,

更要建立卓有成效的伙伴关系


也就是说,左项固然重要,右项同样不可或缺。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

所谓精益求精,就是你写出来的代码,3个月后、乃至3年后,自己和其他人也看得懂,也敢碰。


就是说,无论应用程序有多旧,开发者都能轻易理解其原理;程序的副所用都在明确掌控之中;测试用例的覆盖度很高,测试代码也写得比较可靠,程序的设计清晰而简洁,业务逻辑也都很好地表述在代码之中。


代码必须可维护,其行为也必须可预知。开发者必须知道修改某部分代码所产生的后果,这样一来,他们就不用再担心会把什么地方改错了。


为了完善程序,开发者必须敢于修改代码。以测试驱动的方式来开发程序,令设计保持简洁,并把业务语言表述在代码之中,可以最好地保持代码的整洁与精良。


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

软件开发项目,大部分目的还是为了获取回报。


要持续提升软件的价值,就需要对软件不断进行优化,持续改善代码结构,令代码整洁、易于扩展、易于测试,并易于维护。


软件工匠应该保证:软件做得越久、做得越大,公司从中获得的收益就越多。在项目中添加新功能或修改现有功能的速度,应该和项目创设之初一样迅捷。


Bob大叔最先把这条纪律套用到软件开发上面,那就是:修改完代码时,应该把它整理得比修改前更干净。


要想编写能够持久运行的程序,必须首先关注软件质量。大型程序在开发出来几年之后,又重写一遍,这是相当不划算的。许多时候,决定重写程序的原因在于,继续维护下去的代价实在太高了。


反复做同一件事,却盼着能有不同的结果,这是精神错乱的表现。

——阿尔伯特·爱因斯坦

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

既然类似于手艺人,那么最主要的工作之一就是带徒弟。三人行必有我师,师徒关系不是固定的,是相互学习的过程。


相互学习是提升开发者水平的最佳方式。撰写博客文章、为开源项目做贡献、公开发布代码、参与本地社团、与其他开发者结对编程——这些都是促进软件行业发展的好办法。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

不管作为雇员还是乙方,和雇主客户的关系不应该是单纯的雇佣关系。专业的开发者不应该是那种每天只顾按时上班、埋头工作,并按指令办事的人。


会积极参与项目并帮助其成功,会对需求提出质疑、理解业务、提出改进方案,也会与客户或雇主更有效率地合作。


软件工匠需要也想要以成功的项目来提升自己的名望,希望因自己的成就而自豪。交付高质量的软件并令客户满意,这对软件工艺师的职业生涯来说尤为重要。


把代码写好是特别关键的技能,然而它只是项目得以成功的因素之一。此外,还要帮助客户改进流程,为他们提供多种可行的方案,帮助他们删减毫无必要的规定,理解他们的业务领域,考虑他们所提出的需求是否真能提升软件产品的价值,给他们提供准确的信息和知识,帮助他们规划各项任务,帮助他们设定各任务的优先级,并参与那些虽与编码无关,但却对项目很重要的事务。所谓“建立高效的伙伴关系”,意思就是要给客户提供全方位的增值服务。


有些开发者认为,凡是与代码无关的事就不用操心,这样的开发者不是真正的软件工匠。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

反例:

Ex1:程序员小张遇到了一个开发问题,很着急,想到了有几个群,于是到群里发了他的问题,坐等回答,发现没有人回答,就直接对话群主的QQ,群主也不回答,于是小张就搜索,突然搜到博客园有个帖子讲解了相关话题,他看完就给博主留言,我的邮箱是:XXXXX@qq.com,麻烦博主把源码发给我一下,谢谢。


Ex2:程序员小张学.NET已经工作3年了,工资还是10000,和公司提涨工资也没答应,想跳槽又犹豫,这时某个前辈对他说,你去看书吧,多看一些书,例如 《Visual C# 从入门到精通》,《CLR via C#》《Javascript权威指南》等等,于是小张买回来了, 随手翻了翻发现有些东西是他已经会的,有些看不懂的好像又用不到,而且书这么厚,要不要浪费时间去看呢?小张就这样反复纠结了半年,依然每天上班工作,下班LOL,偶尔还抱怨一下工资低。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

小编建议

多写作练习,多给中生代投稿

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

(全文完)


来源:中生代技术

原文链接

相关文章
|
2月前
|
算法 开发者
代码与禅意:技术实践中的悟道之旅
【2月更文挑战第23天】在技术的海洋中,我们如同行者探索未知的领域。本文透过个人的技术实践经历,探讨了编程不仅仅是一门科学或艺术,更是一种哲学和内省的过程。我们将深入分析如何通过代码实现自我超越,以及在这个过程中对技术、生活和存在的深刻理解。
|
4月前
|
算法 搜索推荐 Java
太实用了!阿里内部强推的超全Java算法学习指南,已被彻底征服
算法和数据结构一直以来都是程序员的基本内功。 数据结构可以看作是算法实现的容器,通过一系列特殊结构的数据集合,能够将算法更为高效而可靠地执行起来。
|
测试技术 开发者 微服务
畅聊工匠精神
相信大家都听过这个词,工匠精神,它体现劳动者敬业精神,在某些方面追求极致的一种精神,其中也涵盖了创新。 今天我们来聊聊我所认为的工匠精神,以及它中现代所起的作用,还有为啥我要给你们推荐它~
133 0
畅聊工匠精神
你不必懂 但我们一直在 —— 技术人致敬
你不必懂,但我们一直在。1024 技术人节日快乐!
1545 0
你不必懂 但我们一直在 —— 技术人致敬
|
边缘计算 运维 安全
不会三种编程语言的不算程序员 走近阿里云 MVP烁淼吐槽大佬
为将阿里云 MVP打造成为技术顶尖人群的社群,建立成员之间连接,促进相互交流和业务影响,迸发各行各业技术人的无限价值。2020年2月初,运营团队与阿里云MVP们共同推出“走近阿里云MVP”新栏目,从技术人性格、开发经验、行业知识积累等方面进行深入分享和交流,了解彼此,产生化学反应,发现不同连接相同!
1579 0
不会三种编程语言的不算程序员 走近阿里云 MVP烁淼吐槽大佬
|
开发者 容器 Kubernetes
亲历者明日独家讲述K8s界“赤壁之战” | 开发者必读(022期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
1342 0
|
物联网 大数据 开发者
专访阿里云MVP王俊杰:开发者的超能力是用技术让世界更美好
在事业刚刚起步的时候,王俊杰毅然决定支教半年。支教归来后,他先后参加了扶贫智能平台、污水处理智能系统等等项目,并利用业余时间完成了未来幼儿园的公益项目。在他的身上,正是验证着那句话:用技术让世界更美好,这就是开发者拥有的超能力。
3585 0
阿里云MVP戚俊的玄奘之旅:道路在脚下,修行在心中
从戈壁回来后1个礼拜,我时常在想,当年玄奘法师的成就究竟是得自佛国经文,还是源自西行之旅的一路修行。所以,也就有了这篇名为《玄奘之旅——道路在脚下,修行在心中》的游记,至终将西行的你。
2975 0
|
测试技术 程序员 信息无障碍
【晒出你的第83行代码】十年全栈编程,视障工程师@蔡勇斌带我们走进他的代码视听世界
作为一个拥有10年PC开发经验的盲人程序员,他不仅参与了钉钉无障碍版本的测试,还编写过很多帮助盲人使用电脑之类的软件。他带我们走进了属于他的代码视听世界,让更多盲人看见。
4412 0

热门文章

最新文章