201411-23 程序员必须知道的10大基础实用算法及其讲解 算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divideandconquer)策略来把一个串行(list)分为两个子串行(sub-lists)。算法步骤:1... 继续阅读 >
201411-21 浅谈程序员的薪资和工作经验 我发现很多人都会问关于程序员薪资与工作经验年限的内容,无论是在就业论坛的评论还是作为网上流传的指导性文章,都会涉及这方面的问题。例如,有人知道3年Java/JEE工作经验的工资是多少吗?本人拥有10年Java/JEE工作经验并且懂Spring、Struts和Hibernate,提多少薪水比较合适?请发我一些关于拥有多年经验的面试问题,谢谢。对于那些只有一两年工作经验的入门新手,讨论这个问题或许还有点意... 继续阅读 >
201411-20 数据说话:怎样的程序员最抢手? 100offer10月程序员拍卖在100offer程序员拍卖的日常运营中,我最重要的工作,就是定期对拍卖的数据进行分析与整理。今晚刚好整理了10月的拍卖数据,跟大家分享一下:怎样的程序员最抢手?100offer程序员拍卖本文主要探讨三个部分:1、2014年怎样的程序员最抢手?2、互联网公司怎样吸引优秀程序员加盟?3、程序员跳槽中的一些典型案例。本文所有的数据来源于100offer10月参与拍卖的200名优秀的程序员收到的1244份面... 继续阅读 >
201411-11 程序猿的“代码社交平台”:GitCafe想要打造一个技术项目分享与教育平台 不去Github托管几行代码,都不好意思说自己是“程序猿”,甚至很多技术类岗位都会优先查看应聘者对Github的使用情况,可见托管代码对于程序猿的标志性意义。最近国内的代码托管服务平台“GitCafe”宣布,获得景林资产300万人民币天使投资,在代码托管的基础之上,继续打造一个技术项目分享与教育平台。“GitCafe”是一个基于代码托管服务打造的技术协作与分享平台,程序猿们可以通过使用代码版本控制系统git来将他们所写的... 继续阅读 >
201411-11 程序员杂谈之多些时间能少写些代码 我在我的微博上说过这样一段话,我想在这里把我的这个观点阐述地更完整一些。@左耳朵耗子:聪明的程序员使用50%-70%的时间用来思考,尝试和权衡各种设计和实现,而用30%–50%的时间是在忙碌着编码,调试和测试。聪明的老板也会让团队这样做。而傻逼的老板,苦逼的程序员会拿出来100%-150%的时间来忙着赶进度,返工,重构,fix大量的bug…所以,越差的团队一般会越忙,而且还忙不完。在现在这个浮躁的时期,再加上敏捷咨询师... 继续阅读 >
201411-11 程序员那些悲催的事儿——从错误中学习进步 在StakeOverflow上有这样一个贴子叫“ConfessionsofyourworstWTFmoment”(WTF就是Whatthefuck的缩写),挺有意思的,我摘几个小故事过来,希望大家在笑过之后能从中学到什么——所有的经验都是从错误中来的。我们公司的软件是给警察局用的,那是一个对用来处理被逮捕的人的系统,此系统还需要收集脸部特征和指纹信息,并且,这个系统和会向FBI的系统提交这些信息。当我们在测试这个系统的时候,我们一般都是用我们自己的... 继续阅读 >
201411-11 GitHub如何运作(一):时间并不决定一切 导读:Github公司的职员ZachHolman写了一篇关于“GitHub如何运作管理”的文章,文章分三部分,这是第一部分:时间并不决定一切。弗雷德里克·温斯洛·泰罗在1911年写了一篇有关管理和效率的惊世之作:《科学管理原理》。他是用科学方法阐述工业生产中最优效率的第一人。时间就是金钱。效率越高越好,时间越多越好。“时间决定一切”不适用于我们在很多行业中,时间是评判效率的准则,但不是我们的标准。在创业公司工作是完全不... 继续阅读 >
201411-11 GitHub如何运作(二):异步工作 这是到目前为止我在GitHub工作最喜欢的方面:每件事都是异步的。聊天GiHtub在最初的两年没有办公室。我们用聊天室(Campfire)来沟通。现在我们已经搬到了第二个办公室,但仍然使用Campfire。这是因为聊天可以是不同步的。用这种异步的交流方式,我可以出去吃饭,然后当我回来的时候我仍能跟得上对话;我可以问同事一个问题,不用担心会打扰到她,因为当她有时间的时候她自然会回复;我可以去Minnesota的乡村,也可以同平常一样好... 继续阅读 >
201411-11 程序员杂谈之面试时如何向公司提问? 很多人将面试看作一种单向选择,事实上,面试是一种双向选择:不仅是公司挑选你,也是你挑选公司。面试就是为双方提供互相了解的机会,公司在评估你,你也在评估公司。面试官也知道这一点,所以他们有心理准备,期待你提出问题,并且会做出回答。所以,面试时不要浪费向公司提问的机会。而且,你主动提问,表明你比较重视这个职位,会加深面试官对你的印象,可能会提高面试的成功率。有一些注意点,你需要知道1.面试之前,一定... 继续阅读 >
201411-11 程序员杂谈之如何面试程序员? 如果你要面试一个程序员,应该问他什么问题?有人在HackerNews的讨论区里,请求指点,怎么才能在面试中发现合格的人。众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章。一、提问之前的准备首先,最重要的是,你自己一开始就应该想清楚:1.需要新员工完成什么样的任务?2.怎样的人能完成这样的任务?3.哪些途径和方法可以发现这样的人?只有明确这些根本性的问题,才能正确高效地完成面试... 继续阅读 >
201411-11 程序员修炼之工作中只接触到小项目该如何提高自己? 注:本文整理自知乎。问题程序猿,工作只接触一些小项目,也不需要高难技术,怎么样才能提高自己?自学当然能提高,但是还是接触不到大的或者高难度的项目,这方面没法提高,咋办?回答精选1.Fenng(Work@丁香园)的回答:小项目小需求:做一个专题页面。如果你觉得这是个简单的东西,那就三下五除二就能搞定,熟练的人可能一天能捣鼓出来几个,还能有时间刷个微博。如果你仔细去看你做的页面,就会发现一堆问题。举个例... 继续阅读 >
201411-11 程序员修炼之如何在小公司成长和大公司学习 这篇文章会带有普遍性,不见得适合所有人,或者文章所描述的也不见得是对的,只是根据我的经历和所见写成的一篇文章,仅供参考。前言:在软件行业工作有几个年头了,换过多个开发语言,跳过槽,也被猎头找过,经历了三五杆枪打天下和创业公司一起成长灭亡,也进入了大公司。在这些年的历练中,看见很多刚进入软件行业不久的新人总在抱怨,说学不到东西。其实不管你在大公司还是小公司,都可以学到很多东西,关键看你怎么去学习,... 继续阅读 >
201411-11 程序员修炼之能力提升三要素——读书、效率、心态 IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。众所周知,现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%。对于软件行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在掌握了多少... 继续阅读 >
201411-11 程序员修炼之给年轻程序员的建议 偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员需要做的一些事情。记住,想成为一名程序员,很多条路可走,这里列出的只是我的方法。1. 解决你自己的问题从外面获取答案和自己解决问题、找到答案,这两种方式是有区别的。当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解... 继续阅读 >
201411-11 程序员修炼之11步让你成为更优秀的程序员 这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的10件事情。1.永远不要复制代码不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿。现代的编程语言... 继续阅读 >
201411-11 程序员修炼之十年学会程序设计——急功近利没什么效果 十年学会程序设计。作者 PeterNorvig 是计算机科学家,Google的研究总监。在本文中,PeterNorvig会告诉你:为什么急功近利地学习软件开发技术是没效果滴?================华丽的分割线================为啥都想速成?随便逛一下书店,你会看到《7天学会Java》等诸如此类的N天甚至N小时学习VisualBasic、Windows、Internet的书。我用亚马逊网站的搜索功能,出版年份选1992年以后,书名关键词是:“天”、“自学”、“教... 继续阅读 >