一名开发者从做技工的父亲那里学到的5堂课

2023-10-27 15:59

本文主要是介绍一名开发者从做技工的父亲那里学到的5堂课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  英文原文:How lessons from a tradesman can help out a techie

  所谓“隔行如隔山”,其实不然,在工作和生活中,大部分的知识和技能都是相通的。学会举一反三,对于技能的提升有很大帮助。本文是一名软件开发者从做技工的父亲身上学到的一些经验,而这些经验使他最终成为了开发者中的佼佼者。

  以下为文章全文:

  我的父亲是一名工程师 —— 是机械工程师,不是软件工程师。在他成为机械工程师之前,他也做过技工和木工。他很聪明,同时在建筑和维修方面也很有天赋(只要不涉及到电气即可,不过那 就是另外一回事了)。他甚至在60岁时依然能做围墙、工棚和甲板之类的工作。当我和我的兄弟还小的时候,他就开始让我们接触一些他工作用的工具,因此,当 我们发现需要修复或制作一些东西时,我们有能力做好它。好吧,虽然他在我身上的教育几乎失败,但一路走来,我还是学到了很多重要的东西,而且,不管你信不 信,这些我学到的东西,在我成为一名优秀的开发者和企业家的路上,让我受益良多。

  下面就是我从他那里学到的知识。

  第一课:三思而后行

  砍柴是一个一次性的工作。只要树木被砍掉,它就不可能再保持原样。因此,很重要的一件事就是确保你每一次的删除操作是无误的。甚至即使你确定你 的做法是正确的,也请你无论如何再做一次评估。重新检查你的评估,确保它正确无误,这样你就可以避免犯一些本可以规避掉的错误,付出的代价也要小的多。

  开发产品也是同样的道理。如果事先不测量书架要占用的空间的大小,你怎能做出与之大小相适合的书架?如果事先不知道用户的需要,你又何必去开发 一个无用的产品?这个道理已经提过很多次了,我在这里略过。但有个不被经常提及的事情是你的产品是一组功能的集合体,就像书架是一堆货架的集合体一样。每 一个功能都应该被认真对待,细心评估,以确保它适用于受众人群。重要的是不仅仅在项目开始就收集反馈,在整个项目的开发阶段,我们都要重视反馈,而不是等 到结束了,才想起还有一些不错的创意没有实现。

  第二课:粉刷一座建造好的凉亭会很困难

  有一次,几个工人在家里修凉亭,他们在凉亭建好后才开始粉刷。爸爸看到后指出,如果这些工人能在这些木头放在地面上就开始粉刷的话,他们就能节 约1/10的时间,而且效果也会更好。粉刷之后只需做一些连接工作就可以很快的建造起这座凉亭。粉刷已经建造好的凉亭不仅又慢又不方便,而且还可能导致出 现一些不易刷到的地方,最糟糕的是,如果不幸的话,还会把这一切弄得一团糟。

  在产品的开发过程中,很容易忘记设计和UI,但这些很重要。以用户为中心的设计就是在设计页面时,以服务用户为第一要务,然后再开发相应的应用 来支持这一设计。而以软件开发为优先并把设计放到最后,你将做更多的工作,产品也会存在潜在的缺点。UX应该是一个持续不断的过程,不是某个可以随意丢弃 的东西。

  第三课:让你的项目和工作空间始终保持整洁

  在一个杂乱的环境中工作一定会让你的项目结果变得一团糟。如果碎木屑到处都是,你就不可能粉刷好;如果你的工具都满覆油污,你就不可能把拆散的 发动机零件再组装到一起;如果你用完工具后不搜集整理好,你可能永远都找不到你想要的螺丝刀。任何一个机修工都会告诉你工作在一个整洁的环境中有多么重 要。糟糕的不止是你将花更多的时间用于寻找放错位置的工具,还会导致更多的损失。

  每一个开发者的代码中都可能会有一些bug。很多开发者都知道“代码债务”这个名词,它实际上只是从开发者的角度来看待这一块工作混乱的区域。 如果你在源头埋下隐患,所造成的后果不仅仅是更难发现bug,而且在将来会更容易造成更多的混乱。最终你将不得不清理它们(特别是在你开始你自己的工作 前,你将不得不去清理其他人留下的这些bug!)。想必每一个开发者都知道修改别人代码时那种恐怖的感觉,并会意识到他们留下了一堆麻烦等着你去解决。现 在花一点时间去整理你的工作空间,将来你会节约更多的时间。

  第四课:始终使用正确的工具(而且在你的工具上别吝啬)

  搞砸工作的一个主要原因就是使用了不恰当的工具。这虽然显而易见,但很多人就是意识不到这一点。用错了工具后的下场通常是一个灾难。别心疼钱,工作一展开就应该找到合适的工具。

  工具选用不当虽然通常都是管理层犯下的错误,但我们开发者也要为此事负责。毫无疑问,一个用了6年的笔记本运行起来肯定会很慢。即便为一款文本 编辑器花了10美元,但却选用了最蹩脚的一款,也不会有助你的工作。节省的这几块钱不会帮你赢得客户的心。最糟的是,利用盗版软件帮你赚钱,这是完全错误 的做法。今天你可能觉得你节省了一些,但在以后的运营中一定会花掉你更多的钱。找出最适合你项目的开发工具,然后花一些钱(除非它是开源的!)。当项目开 始后,节约会特别具有挑战性。除非你需要,否则别乱花钱,但如果有些工具需要花钱才能使用,那就要选最好的。

  第五课:如果方法都不奏效,那么去找一个更大的锤子

  有时候你卡住了,这意味着你碰到了难题。有时候不管你多么用力,都无法将螺栓拧入螺孔中。有时候不管你多么用力敲打,钉子都不会被敲入。这时候你仅仅需要一把更大、更合适的锤子。

  作为BugHerd的创始人之一,我过去常碰到一些本该寻求帮助的情况。但我挣扎着,我通读手册,看视频录像并参阅博客文章。然后我清醒了,并 意识到无论我做什么,肯定有其他人在这方面做得比我好。目前,我们有2位精通JS的同事,他们做的工作,比我们任何时候做的都要好。有很多为远程团队协作 而准备的优秀的工具,因此,不要找借口说没有合适的同事和你一起工作。有时候,你仅仅需要接受现实,并找到相应的解决办法。

  作为一个活跃在专业开发设计社区里的创业者,我常感到像活在培养皿里。偶尔停下来,观察一些较为传统的行业,看看我们能从那些做出卓越贡献的前 辈那里学到什么,这也是一个不错的做法。无论我们认为我们有多聪明,也不论他们有哪方面的优点,我们总是能从这些前辈这里学到很多。

 

 

转载于:https://www.cnblogs.com/hxwzwiy/archive/2012/03/31/2427047.html

这篇关于一名开发者从做技工的父亲那里学到的5堂课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/286744

相关文章

论坛开发者总结:再见2013,你好2014!

转自:http://www.cocoachina.com/gamedev/misc/2014/0102/7644.html 在跨年的时候,我和你一样听着电视里的各种欢呼声,看着时针分针不慌不忙地走向0点,有点兴奋有点怅然有点对过往的追忆也有对未来的期许,但在0点钟声敲响的时候,不管过往如何,都信心满满地对自己说了声--你好2014! 对于开发者来说,2013年移动游

如何利用数据仓库进行业务分析:一名大数据工程师的视角

在大数据时代,数据的有效利用对企业的成功至关重要。 本文将基于上面的流程图,详细介绍如何利用数据仓库进行业务分析,并提供实际的例子和代码演示,以帮助读者更好地理解和应用相关技术。 数据仓库的基本流程 上图展示了一个典型的数据仓库流程,包括以下几个主要环节: 业务系统数据接入:业务系统等数据源将数据导入数据仓库。数据仓库建设:规划、建设数据仓库,包括数据模型设计和数据集成。数据分析需求获

Vite和Vue3:Vite是一种新的开发服务器和构建工具,它利用了现代浏览器支持的原生ES模块导入,为开发者提供了极速的冷启动和即时热更新

I. Vite 的概述 Vite的定义和功能   Vite 是一个由 Vue.js 的作者开发的现代前端构建工具,目标是提供一种尽可能快的现代开发体验。"Vite" 在法语中意思是 "快",这也正是其设计的目标之一。   Vite 的功能主要包括:   开发服务器:使用原生的 ES modules 搭建了一个开发服务器,使得开发环境中依赖包的导入变得更加轻巧快速。 构建:Vite 利用 R

《父亲写的散文诗》--李键

《父亲写的散文诗》  (音乐链接) 一九八四年庄稼还没收割完 儿子躺在我怀里睡得那么甜 今晚的露天电影没时间去看 妻子提醒我修修缝纫机的踏板 明天我要去邻居家再借点钱 孩子哭了 一整天闹着要吃饼干 蓝色的涤卡上衣痛往心里钻 蹲在池塘边上狠狠给了自己两拳 这是我父亲日记里的文字 这是他的青春留下留来的散文诗 多年以后我看

Google play developer谷歌开发者注册和使用中的常见问题和解决方案

1.谷歌开发者注册时候所使用的网络问题 解决方案: 1.购买大厂的虚拟服务器,阿里云、亚马逊aws。 这里需要注意的点就是,找到稳定的上网环境,这点为后续的账号稳定有很好的帮助;建议使用日本、香港的相关节点。在这里我不推荐大家使用代理软件,因为代理软件使用的人多,多人共用一个出口,可能会对账号产生一些不好的影响 2.谷歌开发者注册所用手机号码验证问题 如果验证的时候提示号码存在问题,有2种

随着许多资深 Cobol 程序员退休,如何有效地培养新一代的 Cobol 开发者以维护和更新关键的遗留系统?

为了有效地培养新一代的 Cobol 开发者以维护和更新关键的遗留系统,可以采取以下几个步骤: 搭建培训计划:建立一个系统的培训计划,包括 Cobol 的基础知识、常用编程技巧和实践经验等内容。可以组织培训课程或者请专业机构提供培训服务。 寻求老一代的指导:与即将退休的资深 Cobol 程序员合作,建立知识转移计划。让他们分享他们的经验和知识,并帮助新一代开发者理解和熟悉遗留系统的架构和设计。

开发人员必须知道的一些开发者网站

1.CSDN CSDN是中国软件开发联盟(Chinese software develop net)的缩写,是中国最大的开发者技术社区。它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NET、Java、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,有很强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序员,

Go语言开发框架GoFly已集成数据可视化大屏开发功能,让开发者只专注业务开发,本文指导大家如何使用

前言 框架提供数据大屏开发基础,是考虑当前市场软件应用有一大部分是需要把业务数据做出大屏,很多政府项目对大屏需求特别高,还有生产企业项目也对大屏有需求,没有提供基础规范的后台框架,在开发大屏需要很多时间去基础搭建,如独立起一个项目,或者改造框架,因为框架都有默认layout框框,和登录权限等无法单独打开全屏。还有个特别麻烦的是,屏幕兼容性,因为大屏一般都是在很大显示屏上展示和平时开发电脑屏幕比不

31个Android 开发者工具

FlowUp 这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等等。FlowUp根据用户数量收费。 Stetho 由Facebook开发的一个强大的开源Android debug平台,Stetho让原生 Android app的debug跟使用Chrome的开发者工具debug web页面一样简单。它能让你轻松检查整个vie

分享开发者书写的好文章(持续更新中)

一、Java后台整合笔记 (1) JavaGuide https://github.com/Snailclimb/JavaGuide 链接: link. (2) CS-Notes https://github.com/CyC2018/CS-Notes 链接: link. (3) awesome-java https://github.com/Snailclimb/awesome-jav