和其他领域一样,在软件开发的世界中也有一些有趣而著名的定律,开发人员、管理人员还是架构师,都经常在会议或闲谈中提到他们,很多时候我们都只是点头附和,免得让人知道自己其实根本没听说过布鲁克斯(Brooks)、摩尔(Moore)或康威(Conway)这些大佬。在这里,我把这些定律整理出来,分享给大家。墨菲定律 (Murphy's Law)或许是所有的定律中最广为人知的,因为它不仅仅适用于软件开发领域。凡是可能出错的事就一定会出错。衍...
6年前 (2019-03-12)
阅读(3194)
赞一个 (7)
链接直达
为什么程序员老在改 Bug,就不能一次改好吗?程序员的日常三件事:写Bug、改Bug、背锅。连程序员都自我调侃道,为什么每天都在加班?因为我的眼里常含Bug。但是真的有这么多Bug要改吗?就不能一次改完吗?程序员听这问题后要拍键盘了,还!真!不!能!用户使用场景的不确定性在日常生活中,即便每个物品都有使用说明书,可一千个用户就有一千种使用方式。例如用诺基亚手机砸核桃,用iPad当切菜板,所以说程序是确定的,但用户的使用场景是不确定性的。...
6年前 (2019-01-28)
阅读(8585)
赞一个 (7)
链接直达
会议,什么都不懂的经理,生产效率指标——这就是你和下一个伟大软件之间的天堑。昨天必须得发布产品。用户争闹和咆哮某个缺失的功能。老板的老板说,我们最好迅速行动起来否则就炒我们的鱿鱼。感觉一切都有心无力。没有人满意开发人员这种已经“竭尽全力”改变世界的速度,每个人都希望代码像消防水管里的水一样能够源源不断地流出来,但没有人愿意提供给开发人员更好地完成工作的条件。正如那个想要我们昨天就完成工作的老板,他不愿意雇佣更多的人,不愿意购买速度更快的...
6年前 (2018-07-16)
阅读(3341)
赞一个 (6)
链接直达
作为一个老技术人,今天不聊技术,就聊点技术人员职业发展的事情:对技术管理岗位的认知,比如技术总监。先贴一张技术人员职业发展路线图,按照管理路线和技术路线区分。在国外管理路线和技术路线的职位会按照 IT Manager 和 TechLead 去区分。但在国内其实是没有纯粹的管理路线,管理岗位中一定有具体技术工作的要求。今天我说说对“技术总监”岗位职能要求的理解。我理解技术总监的权责范畴应该包括:技术性工作管理性工作,分为人员管理(即团队管...
7年前 (2018-06-18)
阅读(2828)
赞一个 (4)
链接直达
男朋友是程序员,每天熬夜又对着电脑,真的太伤身体了,可是我没法让他早睡……我能为他做点什么吗╯﹏╰正常状态:喜欢常年坐在电脑桌前,双眼紧盯屏幕,十指敲击键盘,忘了时间忘了天地,和电脑一生一世一双人。bug 状态:抓耳挠腮,薅头发,45 度仰望天空,怀疑人生。1. 不要随便买机械键盘!!有钱的话可以买好一点的显示器,不是所有的程序员都喜欢机械键盘,我教研室的师兄买了机械键盘之后就闲置了。但是显示器总是很给力的,我的好多程序员男同学都自己买...
7年前 (2018-06-16)
阅读(4442)
赞一个 (6)
链接直达
你是不是还在怀念曾经逝去的高三,遗憾自己没有超常发挥,或者遗憾自己志愿表没有填好。其实,只要志愿选的好,年年期末像高考。比如,你选择了计算机专业,那么你将面临高等数学、线性代数、C语言、计算机引论、离散数学、电子技术、C++程序设计、汇编语言程序设计、计算机组成原理、编译原理、操作系统、数据库原理……又是一年高考季,一起来做做“程序员们的高考试卷”,压压惊吧~2018年普通高等学校招生全国统一考试(A卷)程序员的高考试卷(A卷)考生类别...
7年前 (2018-06-16)
阅读(3139)
赞一个 (2)
链接直达
中年危机、技能转型、强制加班、生活平衡......在打怪升级的道路上,程序员们需要面临着各种职场陷阱,也许稍不留意就会摔个四脚朝天,翻不了身。本文的作者作为一个身经百战的过来人,给予了八条忠告:不要陷在某个固定的技术上,不要追求技术垄断,更不要对办公室政治避而不见......研习了这八条职场陷阱,一定可以助你的技术之路走得更加顺畅。下面我们就来一探究竟。以下为正文:如果你喜欢编程,但从未考虑过自己的职业或业务,那么即刻起你应该面对现实,...
7年前 (2018-05-24)
阅读(4224)
赞一个 (3)
链接直达
【CSDN编者按】技术人在职场中,是该做“正确的事”,还是该做“正确的人”?如果想做一番实事,就应该大刀阔斧、扫除一切破旧技术。但如果想在职场中如鱼得水、混得更好,随波逐流或许才是最好的选择。本文的作者Renato Athaydes将将试用了五个月,就惨遭辞退了——不是技术不好,而是技术太好从而引发了“众怒”。原因如何,我们来一探究竟。以下为译文:在工作了5个月后,我被老板辞退了。一般来说在我们国家,我签的合同包括6个月的试用期,在此期...
7年前 (2018-05-21)
阅读(3479)
赞一个 (0)
链接直达
软件架构(software architecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。O'Reilly 出版过一本免费的小册子《Software Architecture Patterns》(PDF), 介绍了五种最常见的软件架构,是非常好的入门读物。我读后受益匪浅,下面就是我的笔记。一、分层架构分层架构(layered...
7年前 (2018-05-06)
阅读(3838)
赞一个 (1)
链接直达
曾经在和朋友的闲聊中,聊到了关于个人发展的问题。后来讨论出一个 PPC 理论,该理论粗略地把涉及个人发展的方向分成了三个维度,包括:专业 Profession展现 Presentation连接 Connection像程序员这样的专业技术人员,都倾向于在专业维度不断发展提升,而往往忽略了另外两个维度。如果三个维度综合发展的话,可能会得到 1 + 1 + 1 >> 3 的效果,即三个维度相加,远远大于 3。专业(Professi...
7年前 (2018-04-28)
阅读(3385)
赞一个 (0)
链接直达
你还记得第一次接触计算机时的情景吗?你还记得写下第一行代码时的年纪吗?你还记得入行时的理想是什么吗?时间改变了你的什么,生活又教会了你什么?要是能重来,你是选李白,还是再选一次程序员?15 岁那年,你跟着小伙伴们一起,第一次溜进了黑网吧,躲着父母、老师的“追捕”,玩上了红警、魔兽、CS。那天起,你感觉自己好像打开了新世界的大门,原来这方方正正的显示器里,藏着这么多好玩的玄机。夜里,你躺在床上,耳边萦绕的都是“Construction c...
7年前 (2018-04-28)
阅读(2812)
赞一个 (2)
链接直达
有不少人向我抱怨说工作中都是写业务代码,刚开始还有新鲜感,熟练了以后就觉得无聊了。这样的问题多了,也促使我去思考和总结,我总结了一个自检的列表, 如果你已经确定在一个公司发展下去,不妨对照着检查一下,看看差距在哪里,估计就不会无聊了。1. 我是否对系统的业务有了整体的了解?我能不能对其他人(例如面试官)描述下该系统实现的业务:系统有哪些角色,这些角色如何与系统交互;系统有哪些主要流程,次要流程,都有哪些角色参与其中。2. 系统的整体架构...
7年前 (2018-04-15)
阅读(2800)
赞一个 (6)
链接直达