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

简介: 喜欢这篇文章的朋友可以多多收藏、点赞、关注 一条龙~

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

1. 解释你在干什么

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

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

1

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

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

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

2

3. 评估工期

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

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

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

3

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

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

4

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

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

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

5

7. 测试你的代码

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

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

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

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

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

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

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

6

8. 写软件文档

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

7

9. 处理IT问题

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

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

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

8

10. 处理人的问题

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

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

9
.
.
.

如有侵权,请联系删除

目录
相关文章
|
程序员 项目管理
程序员如何做好个人职业规划彻底摆脱焦虑?
程序员如何做好个人职业规划彻底摆脱焦虑?
138 0
|
人工智能 IDE 算法
【周末闲谈】新的编程方式,程序员的未来何在?
【周末闲谈】新的编程方式,程序员的未来何在?
124 0
|
数据采集 消息中间件 运维
我这几年踩过的十个坑,每一条都是血泪教训
我这几年踩过的十个坑,每一条都是血泪教训
126 0
瞧!这5000个爱管闲事的工程师干的好事.....
从 2018 年 4 月来到大爱清尘基金开始,师先存就没有正经过过几个周末。
10168 0
|
程序员 SQL Java
程序员最头疼的七件事
懂点技术,瞎指挥 有人说不懂技术的瞎指挥很可怕,我倒是觉得懂点技术,然后指手画脚更可怕! 有个国企的项目,甲方负责人李总是个局里的二把手,不知道什么时候了解了一点编程的技术, 每次开需求会都是和我们大谈如何开发软件,他的口头禅就是: 这个需求,用个SQL从数据库一选不就出来了?!你们怎么得开发一周?!别想蒙我! 唉,他怎么能考虑到用SQL的like是效率极低的, 数据量大了是要崩溃的,我们得建立全文索引,需要用一套基于搜索的解决方案才行。
1015 0
|
Java 程序员 应用服务中间件
影响程序员生涯的三个错误观念,你千万不要犯!
程序员在社会上,到底是怎样一个生活群体?是否能找到自己方向?其实,路一直都在那里,只是你看不到而已! 当初的你,可能一直被一些技术牵着鼻子走,并不是自己在做着自己想做的,而是被技术推到了现在这样子。
1243 0
|
程序员
程序员提前完成任务不加班,领导:效率高,不能成为不加班的理由
在职场上因为员工的能力高低不同,同样的工作量每个人完成所需的时间也就有长有短。而作为领导,有可能会看到提前完成工作的员工早早的就下班回家了,而做的慢的员工每天都在加班加点,这个时候领导就可能会对每天加班的员工更欣赏,而认为下班早的员工在偷懒。
1130 0
|
分布式计算 Hadoop 数据挖掘
程序员,如何从平庸走向理想?
博主说:也许我们都不是天才的程序员,但至少我们都可以成为一个理想的程序员。      正文      我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。
1202 0
|
程序员
程序员加班那么多,公司为什么就不多招几个程序员呢?
绝大部分的程序员都会存在经常加班的情况,至于为什么程序员加班这么多?
4985 0