欢迎访问小程序员!

我知道,“line of code”(LoC)是一种非常愚蠢的计量方式。不要急着喷我,请大家先听我讲讲我最近参与的两个项目,看一下一些非常有意思的数字。 项目#1:传统的同地协作 第一个项目是由一组程序员通过传统的同地协作来执行的。人数为20(不包括项目经理、分析人员、产品负责人、SCRUM大师等等)。该项目是一个大流量的网络拍卖网站(每天有超过200万的页面访问量)。 代码库的大小约为20万行,其中15万是PHP,3万5是JavaScript,其余则是CSS、XML以及Ruby等。这20万行只包括使用cl ....

我之所以要用聪明和懒惰来形容高效的程序员,原因有以下几点: 聪明是因为能找出问题的正解 懒惰是因为不愿写多余的代码(即不会长时间地坐在电脑前) 好的软件开发过程应该是懒惰的软件开发,亦称耐心开发,原因是开发人员在写代码之前会先将时间花在透彻地考虑各种解决方案上。 这是懒惰开发的主旨,即在不了解之前就不会开始写代码。这个负责任的态度减少了他们所需要写的代码量。 主要需要做到以下几点: 真正了解需求、获得产品管理,关键是要明确什么才是实际要求 确保与团队中其他开发人员之间的顺利对接 这些过程都是需要时间的。然而 ....

刚刚从之前的工作中抽身出来。还是应该需要对之前的工作进行一个整理,外加一些遇到的应聘经历的事情。 关于老板如果是新人的问题 如果老板是新人,并且你的能力强过他而且能够看到他很多不足的地方那么请:离开他除非他开的salary足够高并且他一言九鼎。(新人老板很少会有一言九鼎的,哪怕他有钱,而且不够稳定,多几次的求职经历就会让后来的公司认为你经常跳槽和公司难以融洽相处,其实哪里是呢明明是池塘太小) 如果老板是新人,并且你是看着做产品进入的公司,那么他很可能会这么干:为了抵冲在产品空闲期间的人力成本会引入一些out ....

有时候我们会突然发现自己的项目正在走向注定的死亡。下面这些迹象可以让你提早发现项目失败的趋势。 在数月内三次更改项目名称。 项目经理决定,与其写一个国际化的单一版本还不如针对某个国家写一个完全独立的版本。 需求定义发布于开发工作开展4个月后。 新聘请的R&D主管纸上谈兵地表示,该项目将比计划提前6个月完成,并且自吹自擂地保证无需经过版本测试就可以直接发布给客户。 如果你是web开发人员,你用HTML文档打开客户发过来的压缩文件,其网站脚本是需要集成到web应用程序中去的。但是你打开HTML文档,得到 ....

无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是我作为一名软件开发人员所学到的经验,希望能对大家有所帮助。 1.不要害怕在工作中学习。 只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放慢脚步,先将一些基础的知识捡起来。 2.在事业上勇往直前,自己为自己负责。 大概只有十分之一的人才能得到导师的特殊照顾,如果你是十分之九中的一 ....

谷歌,被公认为全球最大搜索引擎,是一家真正牛逼的互联网科技公司。谷歌多年盘踞“全球最佳雇主榜”前几位并且曾经数次蝉联榜首,而它选拔聘用人才的标准也是出了名的高。 那些从事计算机、工程、人文科学甚至自然科学院系毕业的人,都希望为谷歌效力,待在谷歌,你在无形中有一种光环——优秀光环!那么问题来了,谷歌的工程师们薪酬到底是多少呢? 美国招聘网站Glassdoor日前透露了部分谷歌员工领取的年薪和奖金数额,我们发现特别吃香的工程人才报酬十分丰厚。如果你在谷歌当工程师,你的收入堪比华尔街的金融人才。以下是谷歌15个职 ....

受访者简介:Andy Matuschak,现就职于知名在线教育网站 Khan Academy 领导其移动开发团队。在之前他担任了 iOS 4.1 至 8 的 UIKit 的开发和维护工作。同时 Andy 也是 Mac 知名框架 Sparkle 的创建者。可以说无论是 iOS 开发者还是 Mac 开发者,我们其实每天都在使用着 Andy 所开发的东西。 Andy Matuschak Andy,谢谢你抽空接受采访。可以跟我们谈谈你是如何开始编程的吗? 我想应该跟很多人一样是从游戏开始的。小时候有段时间,家里是不 ....

被访者简介:Loren Brichter 是 App Store 的明星加传奇开发者之一,曾经开发了 Letterpress 霸占欧美排行榜首位很长时间的游戏。其实 Loren 之前曾经在 Apple 任职,担任 iOS 图像方面的开发工作。之后他从 Apple 离职创业,最后成功被 Twitter 并购。2012 年 Loren 离开 Twitter 再次创业,也正是在这之后 Letterpress 横空出世。 Loren,感谢你特地在假期中抽空参加我们的访谈。这几天都在忙什么呢? 我整个假期一直都很忙, ....

被访者简介:Natasha Murashev 作为一个俄国妹子在美国学了三年心理学后成功混入 FBI 担任行动计划专家,之后辗转 Google 等知名企业后,现在在 Captial One 从事 iOS 开发。作为一个 iOS 开发的一年级生,Natasha 已经取得了非常多的成就,并且维护了一个 Swift 周报。 Natasha,感谢你抽出宝贵的时间!你能简单介绍一下最近你的工作和开发者社区中做的事情吗? 我是 Captial One(第一资本金融公司,是美国一家金融控股公司,专营信用卡、房屋贷款、汽车 ....

最近,我辞去了我的工作,然后就在森林中的一顶帐篷里安了家。 夕阳西下,我坐在一个小篝火前,看着在微风中荡起了粼粼微波的湖泊,一种岁月静好的安详感涌上了心头。 在我腿上的,是我的笔记本。 我是一个程序员,我住在帐篷中。这是为了能够将我所有的时间、所有的精力都用来写我的初创项目。 这么做不但能让我有充足的时间专注于自己的项目,同时也给了我一种心灵的宁静。我大约以每周两次的频率转移阵地。 计算机、森林中、电池……很不切合实际,是不是?也许住在公寓里更理性…… 但是,理性和真理并不如影随形相协相伴。 我现在没有公寓 ....

如果你是一个程序员,那么你的美好时光来了。根据美国劳动统计局的预测,计算机方面的工作岗位将在接下来的七年时间里增长8%。如果你很擅长于写代码,那么你的薪资可以高达300美元一小时甚至更多。 想要拿到这一领域的高薪,那么你就得掌握最需要的几门编程语言。 下面是Doug Winnie——在线学习平台Lynda的内容总监指出的2015年你需要知道的15种编程语言: 1. Java Java用于构建企业web应用的后端,是当今最为流行的编程语言之一。Web开发人员可以凭借Java和基于Java的框架为各种用户建立可 ....

在我先前的博客中,我主要讲了我们的编码风格应该适应我们所处的业务领域。即不同的业务领域需要不同编码风格的软件。例如,为防御体系写的软件必须强健稳定,因为一次崩溃可能就会终结它的生命周期,而为市场交易写的软件,则必须可维护,并且还可以添加广告,通常这些项目和软件的生命周期都非常短,所以这些软件还必须可以重复使用。 虽然我之前从没看到过它被应用于这些业务领域,但是关于编码优先顺序这一观点却并不是最近才出来的。我第一次看到这一观点是在Steve Maguire写的一本由微软出版社于1997年出版的书上,书名叫做《 ....

我决定谈一谈世界上最著名的虫子:BUG ! BUG 困扰了一代又代的程序员,不论是杰出的计算机科学家,还是像 Linus Torvalds(Linux内核创始人) 、Bill Joy(传说三天写出BSD的前身,vi和csh的作者)等神一样的传说,抑或你我芸芸程序猿,都是 BUG 骚扰的对象。 BUG 是绝对狂热的好战分子,具有永不停歇的战斗欲望,它潜伏在程序员的周围,一双小眼贼亮贼亮,在你百密一疏时出其不意一击奏效。而无论你是钢筋铁骨,还是羊脂玉体,只要被这只虫子袭击(看过《木乃伊》的话,对圣甲虫一定印象深 ....

什么?你要和程序员约会去了?!!咋一听到这个消息你会怎么想,是嗤之以鼻还是羡慕嫉妒恨? 下面且听我一一分析与程序员约会的优缺点吧。 优点:他们不会骗人;他们也没有时间去拈花惹草。 缺点:不过他们也没有什么时间陪你。 优点:他们喜欢脱光(strip)、抚摸(touch)、摆弄(finger)、释放(unzip)、骑上去(mount)…… 缺点:……别想歪了,这些都是Linux命令…… 优点:他们很聪明,超级聪明。 缺点:分分钟碾压你的智商。 优点:他们喜欢“kiss”。 缺点:当kiss遇上kiss原则,完全 ....

一般而言,一个系统能用5年、10年,甚至20年以上。但是某特定代码行以及某特定设计则往往比较短:当我们使用了不同的解决方法,其生命周期可能就只有几个月、几天,甚至是几秒种的时间。 有的代码就是比其他代码更重要 通过研究代码如何随时间变化,Michael Feathers确定了代码库的功率曲线。每个系统都有代码,通常而言里面的很多很多代码,一次写好之后就永远不会变了的。但是还是有少量的代码,包括最重要和最有用的代码,会被一遍又一遍地改动、重构甚至是重头开始重写。 随着你对系统、问题领域以及架构方法方面经验的增 ....

我们程序员的努力与挣扎有时非常尴尬,如果没有结果,都是徒然,都是说不得说不得…… 我自己做项目经理时,干的项目也经常延期……非常惭愧。而延期其实对研发团队成员、产品线、市场、销售、公司领导、客户、用户都是一种折磨。对其它人的折磨这里就不说了,谁被虐谁知道,至于有没有想死或者想灭谁谁的心就甭去管它了。作为程序员,我其实也只能体会到延期对程序员们的折磨。 也是蛮拼的 在相当长的一段时间内,”也是蛮拼的“这个短语在网络上大行其道,我们先看看它的出处。 先做剪报吧,这是我的强项。来自百度百科: ”也是蛮拼的“,出自 ....

世界上最苦逼的职业是什么?——程序员。谁没有女朋友注定孤老一生?——程序员。夜间出没的生物有哪几种?——吸血鬼、僵尸、程序员。这些调侃也就算了,现在居然还说程序员当不了管理者!是可忍孰不可忍!程序员愤怒了:我们不仅要当管理者还要当 CEO! 许多初创公司在挖掘和培养一个出色的计算机工程经理的问题上,存在普遍的误解。人们总觉得天才工程师都是异常执着的代码狂人,对成为一个领导者完全 不感冒。这是对工程师们的一个极大的误解!在其他的团队中,你慧眼识英雄,那为什么到了计算机工程团队你就满脑糊涂了?这无疑会对你的人才 ....

学习Java,他们都说很easy。 作为一名刚从斯康星大学麦迪逊分校计算机科学系毕业的大学生,我通过一些编程课程认识了很多使用Java的朋友。现在很多学校都在从别的编程语言(大多是C ++)转教Java,一项于2014年7月所做的研究表面截至调查时间为止,39个顶级美国CS项目已经有22个使用Java作为入门课程。 那么,到底是什么使得Java能从众多的教学语言中脱颖而出?纵观各个方面,我们发现了一些蛛丝马迹: 语法相对比较简单(相较于C语言和C++),难点较少(还是相较于C语言和C++)。语法越简单就意味 ....

大多数程序员要么是早起的鸟儿要么是个夜猫子,而且我敢打包票,你对自己属于哪一类心里一清二楚。现在有一种说法是,早起的鸟儿一般属于快乐群体。这是来自多伦多大学的一项研究表明的。据他们统计,这一类人不但早上的时候心情更为愉悦,而且他们更满意自己的生活。 但是此研究也发现,人们随着年龄的增长,越加喜欢早起工作,比如说60岁这个年龄层大多数就属于这一品种。如果你是一个年轻人,那么所占的百分比就只有7%左右。 “我们发现,老年人在早上的时候比年轻人更为积极,所以相较于年轻人,老年人更倾向于是早起的鸟儿,”研究人员说, ....

在科研和设计部门经常有人会长时间工作,一周会超过70个小时。他们就像获得荣誉勋章的烈士一样。但我们要清楚一点,长时间工作其实意味着:你是在免费工作。 即使你获得了薪水,但你还是在免费工作。因为每周工作40小时之后,你继续工作的话也不会让你的口袋多增加一分钱。 长时间工作不合理,也不可持续。 客户和老板会期望开发人员长时间工作。 允许长时间工作的公司的企业文化大有问题。 每周工作80-100个小时会毁掉一个人。这完全是不可持续不健康的,因此人们会辞职。他们辞职的时候,我敢保证,他们肯定会跟同事抱怨辞职原因。这 ....