201411-11 为何程序员完成最后20%的工作需要的时间跟之前的80%一样多? 听过行百里者半九十吧。这句话在程序员的工作中同样适用,到底是为何呢?Matija用一个精巧的比喻揭示了个中道理。其实这就好比在高峰期从郊外开车回市中心。前80%的路程很顺,高速嘛,可能两小时就走完了,但是到了城里,就走不动了,红绿灯,人行道,各种环线和菜鸟司机,可能两个小时还不够用的。编程也是如此。最开始你要设计框架,给整个项目打基础,然后开始开发,几周或者几月之后,你完成了整个项目80%的工作,各种... 继续阅读 >
201411-11 程序员杂谈之程序员需要具备的基本技能 软件开发是一个跨度很大的技术工作,在语言方面,有C,C++,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科学研究。但是,不管是什么的情况,总是有一些通用的基本职业技能。这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些基本技能,所以,他们需要有老手带,需要努力补齐这些技能... 继续阅读 >
201411-11 程序员杂谈之编程能力与编程年龄 程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希望能像《21天速成C++》那样速成,好多时候超级有... 继续阅读 >
201411-11 程序员杂谈之做个环保主义的程序员 十多年前刚走入社会工作的时候,那时的中国软件开发根本没有什么版本管理,也没有什么编程规范,软件开发相比起今天来说非常地混乱,那时仅凭自己的一些学习总结了一些C语言编程中的好的小笔记,后来,这些笔记写成了一篇叫《编程修养》的文章。今天,又有些感触,想把这个话题扩大一下,从“个人修养”扩大到“环境保护”,所谓,穷则独善其身,富则达济天下,今天的技术人员比十多年前在技术和环境上都富有了许多,所以,也应该... 继续阅读 >
201411-11 程序员杂谈之程序员的四种类型 不是每一个写代码的都是程序员。这里,我把程序员定义为以编程为生的人。我认为世界上存在四类程序员:(计算机)科学家、码农、专家和工匠。下面我一一介绍自己的观点。(计算机)科学家与其说他们是程序员,不如说他们是数学家。他们发明了各种理论、算法和术语,教科书上那冗长的证明和计算也出自他们之手,其他的程序员都或多或少受益于他们的成果。有时,他们的一篇论文能改变整个业界的思维方式,但他们通常不会也不喜欢把... 继续阅读 >
201411-11 程序员杂谈之不要在愚蠢时间写代码 时不时地,总会听到、看到一些团队频繁熬夜加班,甚至觉得这很浪漫。他们的想法是跟夜晚作弊,持续编写代码或做其他事情。有时这是因为抽风的经理,但也有时诱因来自团队内部。我曾经写过,偶尔是会有一些灵感的火花促使你工作到深夜。但那是另一回事。那种情况下,是灵感的火焰在胸中燃烧,你需要让它经过手指全部转化为电脑中的代码。但这么好的事情不会经常有。我要说的是那种没有什么特别的事情,只是不间断地、夜复一夜地... 继续阅读 >
201411-11 程序员修炼之编程从业五年的十四条经验 排列不分先后:1.当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。2.关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑... 继续阅读 >
201411-11 关于软件开发人员技术等级晋升的几个误区 每到年底,业内不少工程师又需面对晋升答辩的流程,如何让自己在最短的时间完成职级提升是大家关注的话题。在一个规范运作的公司里,基础的晋升通常由部门的经理或者技术负责人定夺,更高级别的评估通常由一个跨部门或公司范围的技术专业委员会(TechnicalCommittee简称TC)来负责。本人有幸参与了几年TC的工作,很高兴看到不少人员的快速成长,但同时看到的一些成长认识误区如下。大家可以通过这些误区的了解,来合理的规划自己... 继续阅读 >
201411-11 聊聊程序员面试中额外的“潜规则” 本文内核来自于我的一位经验丰富、体重异常、阅人无数的HR好友,感谢各路好朋友们给我提供这么多的素材。本文以第一人称撰写,但并不完全代表作者本人。正文开始:每个程序员都会碰到面试,也许你的面试只有一轮,也许有两轮甚至三轮,这里我来阐述一下最新的HR圈里在通常的第一轮面试中的识人小“潜规则”,不上大雅,但是很有可能你碰到的HR面试管都在默默的使用着。一、询问微博、微信传统的博客已经是司空见惯的东西。... 继续阅读 >
201411-11 程序员杂谈之程序员追求的是什么? 上周我收到三位Halmstad大学学生的电子邮件,他们正在做一个为期三月的项目,内容是关于程序员在工作中追求的是什么,以及企业如何吸引有才华的程序员。下面是我对他们问题的答案,按重要程度排序。显然人们会有不同的偏好,所以我很有兴趣听到你们赞同哪些反对哪些,以及你们认为遗漏了的要点。1.做软件产品。我希望我参与编写的程序成为公司的主要业务。这就排除了IT维护工作,因为这种工作只是间接地支持了真正的业务(不管... 继续阅读 >
201411-11 怎样判断自己是否在平庸者之列? 平庸是程序员的最大忌讳。大家可以看看最近出来的《软件开发者薪资调查报告》。读过之后每个人的认知可能不同,有的人感觉我怎么赚这么少得跳槽了,有的人感觉自己还可以,我个人的感觉就是上面那句话:平庸是程序员的大忌。你可以参照图中的数据,看看自己在哪个区间里。如果在0~50%间,那么说明你的收入处于行业的中下游,需要努力提高自己的各方面能力了,长期平庸的结果很可能就会被淘汰。在一个还不算老的行业里,在一个... 继续阅读 >
201411-11 是什么精神支柱能让你专注编程数十年?——程序员的专业精神 昨天在博客园头条看到这么一篇文章,《没学历的IT人生没那么悲催,献给程序员们》。感觉整个大环境还是比较浮躁。引用@最最简单的回复:实际上敢称程序员的,实力至少达到专业水准。而且作为有专业水准的程序员,至少在收入,工作这方面的人生上没有悲催一说!另外再建议楼猪这样的北京大青鸟的学员,多看看老赵的文章。才上路就动辄IT人生,献给程序员。老赵这样专业水准的,也没敢说能给程序员献什么。他只告诉你们,别再去... 继续阅读 >
201411-11 程序员职业生涯的另一个出路——职业发展的思考 从11岁开始一个已经十分明确的事情就是,我要成为一名程序员。那一年我有了一台Commodore64机器,开始在上面编写BASIC程序。我十分喜爱编程,以至于不久之后用于编程的时间就超过了玩游戏的时间。编程中有一种美妙和纯粹的东西是现实生活中任何事情都不能替代的。即使要面对bug,时间限制和失败沮丧,编程仍然是美妙的。我考入工程学院取得了计算机学位,之后几年又在本地的卑尔根大学里对计算机课程进行了深入的理解。于... 继续阅读 >
201411-11 为什么你写不好一个快速排序? 谈程序员的职业发展 我常常在想,当初我若不离开完美,现在肯定也是总监级的title了,收入比现在高一倍不止。但是另一方面,在编码能力上我甚至不如某些刚毕业的本科生。比如,快速排序的算法我很熟悉,就一句话:“随机选一个元素,用它把输入集分成两半,对这两半继续递归,然后将递归得到(已排好序)的结果合并”。但几个月前看算法书的时候自己尝试写了一下快速排序,发现远远是另外一回事。虽然我对这个算法很清楚,但是用C++实现的时候充满了疑惑... 继续阅读 >
201411-11 一个来自波兰的程序员(自由职业者)的月收入报告 最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告。数据显示,上月是目前为止他收入最多的一个月。Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者。他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富。他的收入主要来自下面几个方面:1.亚马逊分销联盟(AmazonAffiliateProgram)——他把互联网用... 继续阅读 >
201411-11 一个独立程序员对自己近九个月工作生活的回顾 引言有些人可能还记得,去年年初时,我写过一篇文章介绍我是如何开始成为一个独立程序员的文章。随着新的一年的到来,我想是该做一些反省/总结的时候了。在这篇文章的结尾,我会告诉大家目前为止我挣了多少钱。我计划把这种收入公布做成一种每月一次的例行公布,就像 KreCi 在他的网站上的做法一样。但首先,我觉得需要用稍微多一点的篇幅先介绍一下我是如何计划和开创这整个“事业”的。计划部分故事很短。我已经受够了在电... 继续阅读 >