程序猿最艰巨的任务跟编写代碼没得几个关系。编码是逻辑构思的一种实践,这跟程序猿日常工作中的其他任务比起来相对简单。如果你觉得自身還是1个技术水平普通的程序猿,在你真正的能进入到顶尖高手行列前,请保证你已经战胜了下述晋升的阻碍。

1. 解释你在干什么

解释软件开发过程是1个很艰难的事情。那些非程序猿岗位的人或许了解许多有关编程的事情,但很显然,他们不会编程。对于他们而言,我们的生活只是在一间漆黑的房间内趴到键盘前消耗着咖啡。

你会在你的朋友、亲人和同事中遇上这样的人,他会觉得编码并不是1个合理的岗位。

2. 形象的说出软件解决方案

依据某些简短的要求——一般是一知半解的,你需要设计出数据结构,软件架构,代碼算法,通信协议,以及别的任何针对商业问題的解决方法各种构成。并且你必须用某种外行人听的懂的用语将它们表达出来,并需要在要求的時间里提交给客户。

非常少有程序猿能做到这些。

3. 评估工期

这是程序猿痛苦的本源。在开发任务没有完成以前,你是絕對没有可能确定完成这个任务需要的時间。或许程序跟之前写的很类似,但环境变了,问題变了,限定条件变了。

工作经验会提供一定的辨别力,但多数的程序猿都习惯于低估问題難度。这其中的缘故是他们只考虑到编码这方面的要素,而忽视了这个任务清单上的其余事务。

应对1个问題可能会有一万种解决方法,一万种写法。接手其他人写的代碼,代表你要花很多的時间在无数的代碼行里探寻,了解当时原作者的基本思路。并且,要是是1个不相信注释和文档的程序猿留下来的半个工程项目,麻烦事就更大了。

5. 软件边界的模糊蔓延和让人吐血的奇怪功能需求

尽管敏捷开发方法给软件范围的膨胀提供了一定的预备空间,但这并没有带来任何的功效——特别是在是当你碰到某些由一时兴起的怪念头形成的功能需求。你知道这样做一定会失败。你的团队判断这样做一定会失败。但客户认为不错,而当失败不可避免的出現时,全是你的错,因为是你没有了解他们的真正意图。

6. 在缺少优化和过度优化之间找到平衡点

复杂的软件永遠不会作到极致;总会有一些更好的实施方案。你完全可以不停的优化下去,这就是说为啥软件项目从来都没有提早完工的。

而另一面,“这样就行——我之后会优化它的”这类心态也是普遍的。代碼今日好使,但你知道明日可能会出現麻烦或不能用。当然了,你是不需要去修改它的,它将会交给下一个倒霉鬼程序猿。

7. 测试你的代码

单元测试你也写了,软件也提交了测试组,但Bug仍旧存有……

软件是复杂的,将会含有成百上千行代碼。系统中或者存有千万的各类交互和逻辑路径;你不可能彻底测试它们。

相似的,软件会在不一样的条件下跟不一样的平台上的不一样的软件交互。你不可能所有的都测到。

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

写出好的单元测试是一种乏味且艰辛的工作。理想状况下,测试应当在着手开发设计前就早已写好——但你如何向客户解釋为何4个礼拜结束了依然没有能用的软件?

单元测试并不能覆盖每个问题点。在理想的世界里,应该有一个独立的团队来写测试并积极的去发现问题。不幸的是,对大多数项目来说,这样成本太高,时间不够,于是用开发团队来写测试程序。而开发团队潜意识的会避免很多极端的边界情况。

程序员喜欢用符合逻辑的方式处理所有问题。但用户很少是这样的。他们会发现你永远意想不到的问题。

8. 写软件文档

给代码写文档是一项费力耗时的工作。很少有程序员擅长这个、喜欢这个的,并且很少有程序员会花时间去读它们。

9. 处理IT问题

你每天都在研究技术。你也许是一个HTML或PHP程序员,但你很可能会遇到一些例如硬盘损坏、驱动冲突或软件崩溃的问题。解决这些事情不是你的主要责任,但是,除非你解决了这些问题,否者你将无法继续你的开发工作。

不幸的是,对于IT圈外的人来说,程序员应该是软硬件都精通的人。当他们遇到了问题,他们自己不花时间就解决,直接会找你。不论是遇到什么问题:你是用计算机的,你一定知道如何将预算表导入Sage,如何配置Oracle,或为何在他们的黑莓手机上发不出邮件。

当然了,这些打搅绝对不能成为你完不成工作的理由,也没有报酬,不是吗?

10. 处理人的问题

上面的这些难题都可以总结为“人的问题”。很少有外行人会去建议1个飞行员如何开飞机或建议一个电器工程师如何布线。但很多人却会兴致勃勃的勇敢的建议如何开发软件。

我相信对于这些人没有什么好办法。你需要接受这样的事实:这世界上有一半的智商是低于平均水平的!


.
.
.

如有侵权,请联系删除

程序员真香定律:我永不加班!困扰了程序员20年的10大难题相关推荐

  1. 趣谈程序员真香定律:源码即设计

    来源 | 码砖杂役 责编 | Carol 封图 | CSDN 付费下载自视觉中国 我们经常谈论架构,讨论设计,却甚少关注实现和代码本身,架构和设计固然重要,但要说代码本身不重要,我不同意,Robert ...

  2. 【华为云技术分享】程序员真香定律:源码即设计

    我们经常谈论架构,讨论设计,却甚少关注实现和代码本身,架构和设计固然重要,但要说代码本身不重要,我不同意,Robert C.Martin大叔也不同意,Martin认为"源码即设计" ...

  3. 程序员真香!IT 业 2020 年平均工资最高

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月19日,国家统计局发布2020年平均工资数据,随后,相关话题便冲上微博热搜. 程序员真香! 据国家统计局发布的数据显示,20 ...

  4. 真的,没人能逃开“真香定律”

    基本上,没什么人能逃开拼多多的"真香"定律. 自2019年的"6.18"拼多多推出"百亿补贴"后,"真香"两个字已经跟& ...

  5. linux查看cpu核心电压,来感受Linux命令行的“真香定律”

    Shell看起来只是一个黑黑的命令框,刚开始接触会觉得很丑,毕竟与Win/Mac的华丽界面比起来,命令行终端直接可以丑拒了.但是,实际上它的功能要强大得多,毕竟Linux一开始就是广泛应用于服务器,通 ...

  6. 为什么短视频难逃【单列沉浸式】的真香定律?

    谁能统一短视频领域? 抖音?快手?还是视频号? 目前来看,这个答案是[单列沉浸式]. 准确来说,单列沉浸式不是一款产品,而是一种产品形态. 过去这一两年,抖快两极越发明显,格局变化不剧烈的短视频领域发 ...

  7. Robust.ai 获得 1500 万美元融资,嘴炮 Gary Marcus 也难逃真香定律

    作者 | 八宝粥 出品 | CSDN(id:CSDNnews) 谁也逃不过真香定律! 美国当地时间 28 日,位于湾区的机器人相关 AI 初创公司 Robust.ai 获得 1500 万美元融资.此次 ...

  8. 鸿蒙系统如何设置双屏,华为P50 Pro曝光,魅力双屏+麒麟9000+鸿蒙系统,逃不过真香定律...

    在竞争激烈的手机市场,只有持续研发和创新的手机厂商才能走得更加长远,毕竟行业的发展规律就是优胜劣汰适者生存,因此手机厂商们要想在残酷的市场竞争中谋求发展,那么创新和研发便是通往成功的唯一途径.众所周知 ...

  9. 米家电磁炉显示e10_真香定律,米家电磁炉也难逃

    真香定律,米家电磁炉也难逃 2019-10-28 18:10:01 1点赞 0收藏 0评论 真香定律也许会迟到,但永远不会缺席. 今年的双十一好像来得格外早,银行卡里的余额格外少,也不知道家门口的那座 ...

最新文章

  1. 局域网子网知识 子网掩码的计算
  2. 华为p40论坛_花粉俱乐部网友:华为P40千万别上双扬声器,小米10方向错了
  3. C++项目參考解答:求Fibonacci数列
  4. MySQL(二)InnoDB的内存结构和特性
  5. java的调试工具_[Java教程]chrome调试工具
  6. 工作220:git clone的时候地址需要改成自己的用户名
  7. 死磕 18 个 Java 8 的日期处理,工作必用!
  8. 有参组装新转录本cufflinks_RNA-Seq流程(cutadapt-tophat2-cufflinks)
  9. java定时器 多线程_Java多线程 定时器
  10. [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
  11. sam音高修正_音高修正软件melodyne使用方法1中英文对照
  12. php 邮件服务器 群发,发送使用PHP群发电子邮件发送使用PHP群发电子邮件(Sending mass email usin...
  13. 从吴军的书《格局》总结出的37条为人方法论
  14. php生成gif1009php生成gif,怎样将几张图片做成会动的GIF的动态图像?GIF动画制作软件,将图片制作成GIF动图...
  15. 2022按键精灵内存逆向新教程:乐玩篇:1-10课更新试看
  16. 亚利桑那州立大学在线计算机硕士录取,亚利桑那州立大学计算机科学(信息保障)理科硕士入学条件及实习就业...
  17. 绝了,这款P2P全平台的文件同步工具,开源且不依赖中心服务器
  18. data.frame中的NA值怎么替换成0 把na变为0 把na变为想要的数 改变na 是否为na is.na()是否为null is.null() is.null() 删除去掉NA的行
  19. 谷粒学院day09——课程发布与阿里云视频点播服务
  20. 我的世界java版复仇双持_我的世界战备双持2mod整合包

热门文章

  1. python考研人数数据分析统计服_2018年全国研究生招生数据调查报告
  2. margin取负值详解
  3. Java中public等修饰符
  4. 朱靖波:谈谈机器翻译技术发展与产业化
  5. RGB图像,索引图像,二值图像,灰度图像之间的转换
  6. DevExpress16.2补丁
  7. python解决鸡兔同笼问题解法_Python解决鸡兔同笼问题的方法
  8. kali下扫描CMS web漏洞小工具web-sorrow
  9. 1+X Web前端等级考证 | 2020 12月Web前端开发中级实操 (模拟试题第二套) 附答案
  10. java第五章上机流程图,第五章汇编语言程序设计