新晋程序员晋升空间在实际的工作中究竟是一番怎样的体验

广州JAVA培训中心
美国上市公司 · 亿元级外企Java培训企业
课程咨询 :020-
&&&&&&作为一名新手程序员,你应该知道这些
作为一名新手程序员,你应该知道这些
刚进入编程这一行业,成为一名真正的程序员,应该怎么做呢?工作了多年的程序员给出了他们的建议。
如果大家属于刚刚涉足专业软件开发世界的新人,各位可能会以为自己完全能够凭借着多年来在计算机科学及编程领域获得的教育及/或培训顺利玩转一切。不过在这一行业浸淫多年的老鸟开发者则希望提醒大家,单凭科班灌输的知识还远远不够,我们还需要从实践当中了解到更多极具指导性的宝贵财富。
为了掌握这些真知灼见,我与多位经验丰富的资深开发人员进行了沟通——他们至少在软件技术领域拥有十年乃至更长的从业经历(有几位甚至已经从业数十年)。提到他们希望自己在刚刚毕业并初次涉足编程行业时能够了解到哪些箴言,他们都有着自己的答案。无论大家是刚步出校门的应届生还是已经在编程领域有些心得的从业者,下面这些来自老鸟们的建议相信都能在未来的发展道路上帮助各位找到正确方向。
了解与底层系统相关的一切
当然,软件开发工作当中的重要组成部分之一正是编程语言本身。不过正如各位前辈所分享的心得所言,开发人员同样需要了解堆栈之下所发生的一切。
“很多语言会以抽象形式将系统级别的运作机制剥离出去,而这种抽象性确实非常重要,因为它允许开发人员在大部分时间内保持更高的生产效率。”Acquia公司技术支持工程师Pete Bull指出。“不过当大家遇到障碍或者说非常严重的错误时,则需要对引擎盖之下运作的一切拥有相当程度的理解。我们需要有能力调试某项进程,并查看系统调用以真正掌握特定代码片段与系统其余部分之间的交互活动,”他在采访邮件当中写道。
同样的,Platform.sh公司客户满意度副总裁Robert Douglass告诉我们,“当我刚开始上手编程工作时,计算机本身还蕴含着大量我无法理解甚至闻所未闻的奥秘。文件系统、网络以及数据如何驻留在内存当中,这就是三个典型的实例。这部分知识的缺失,意味着我根本无法真正从编程角度出发了解开发项目中的某些目标。”
熟悉命令行工具
作为一位开发人员,大家很可能会把大量时间用在使用IDE或者代码编辑器身上。不过需要提醒大家,如果了解如何在命令行上实现同样的操作,那么各位的日常生活绝对会变得更加轻松。
“有时候,大家会发现自己只能使用一台配置一切就绪,但可用工具非常有限的设备,”一位已经拥有二十年从业经历的资深程序员告诉我们。“要像熟悉呼吸那样熟练掌握shell,包括find、comm、diff、vi/vm、sed以及awk等等。有时候利用正确的合作行编写小型脚本来查找必须马上进行修改的文件将非常重要——因为生产体系很可能已经受到了影响、而造成URL指向未知文件的那位技术人员还在斐济度假呢。”
作为一位开发者,Bull最初使用的是微软工具,但随后逐步转移到了Linux阵营。他表示“我已经学习到大量与命令行相关的专业知识,并意识到Linux系统之上提供的这些功能的重要地位。现在我能够轻松地重新调用几年前自己编写完成的代码,或者拿出几天或者几周时间对grep + awk作出进一步改进。”
调试器是我们的好朋友
要想显著节约宝贵时间,非常重要的一点就是利用相关工具追踪各类bug。Novartis公司生物信息学开发人员Dave Varon对于调试器的重要意义作出了强调,并解释了其如何帮助我们获得远超过初始学习成本的收益。“学习使用调试器,快快快!”他在采访当中指出。“拿出一、两天时间好好钻研配置一番。在此之后,如果发现结果与预期不符,那么马上调试:设置断点、贯穿代码,特别是第三方代码。这不仅能够帮助我们大大降低问题出现机率,同时也能够让大家在其间学习到很多原本只能通过阅读他人代码掌握的知识。”
学习编写测试
一部分开发人员认为单元测试——具体来讲,就是编写测试以验证小型代码单元是否起到了其应有的作用——非常关键。来自Strategic Power Systems公司的数据库开发人员Richard Handloff就是其中之一。“我认为我能给新人们提供的最好建议,就是学习如何编写出优秀的测试机制,并在项目开发初期就制定出一套可行的测试方案,”他在采访邮件当中写道。
制定改变规划,了解新型系统
时至今日,每位从业者都清楚地意识到技术正在快速发展转变。这种现象不仅影响着我们心爱的客户的实际体验,同时也改变着底层系统、语言乃至程序员们日常工作所使用的各类工具。
Milestone Made公司创始人兼移动开发者Adam Wulf建议称,新晋程序员们应当准备好——而且抢先一步——应对技术变革。“就目前来讲,我认为大家应该以四年为周期就学习全新技术堆栈作好规划,”他表示。“良好的基础知识当然能够始终发挥作用,不过我们每天所使用的工具乃至技术方案每过四年就会发生颠覆性的变更。”
“项目不应再利用单一框架以单一语言编写而成,”一位不愿透露姓名的开发者建议道。“大家千万不要在某个项目当中只使用一种开发方式,因此请尽快适应在不同项目之间进行语言/技术转换的实际需求,”他在采访邮件当中写道。
与他人保持良好关系
尽管常规概念下的程序员都会戴着耳机在自己的小世界里埋头工作,但不可否认的是,我们仍然需要同他人并肩协作。Sinclair Digital Ventures公司CTO Ben Miller着重强调了作为团队成员角色工作对于实现职业生涯成功的重要意义。“大型项目往往是由众多活动组件构建而成,如果我们无法顺利完成协作,那么组件的合并将成为一项不可能实现的任务。”他在采访邮件当中指出。“在尝试对某种算法进行优化之前,请先与团队进行沟通并确保任何能够帮助团队成员减轻工作压力的任务分配规划都已经部署到位。编程是一项团队竞技项目,千万别忽视了这一点!”
Varon还着重强调了人际交往能力的重要性,表示“如果大家无法自行完成API或者调试的审查工作,请借力于他人。我们自认为编写出了一段堪称杰作的代码,并不意味着它就一定出色或者没有进一步提升的空间。跟在大学里一样,同处一室的其他同伴也面临着同样的问题,而且每个人都有可能找到了解决问题的最佳答案。与同事们建立起融洽的合作关系,有时候甚至单纯向对方描述问题就足以帮助我们找到解决灵感。”
另一位不愿透露姓名的受方者也表达了类似的想法,即成为团队中一员对于顺利完成任务所起到的积极作用。“即使当前的工作比较繁重,我们也应当尽可能帮助其他成员解决各类难题,这将让大家的职业生涯走得更加顺畅,”他表示。不过在这种情况下,他也提醒大家“但请注意,要保证有理有节的帮助强度,否则我们很可能身陷其中而耽误了自己的份内职责。”
勇敢迈出自己的道路,以自由职业身份编写代码
Miller在这里提出了一项有趣的建议,而且乍看起来似乎难以理解。他在采访中告诉我,“在工作之外编写代码更易于实现职业生涯提升。找到最简单的问题解决办法并对代码进行免费的弹性设置与维护,那么客户自然会提供更多工作供我们完成。他们甚至会邀请我们以教师的身份指导其内部开发人员,”他解释道。“简而言之,过分担心当下这份工作是否稳定反而会阻碍职业生涯的健康发展。”
最新开班日期 &|
Java--零基础全日制班
开班日期:12/29
Java--零基础周末班
开班日期:12/29
Java--大数据全日制班
开班日期:12/29
Java--大数据周末班
开班日期:12/29
达内新闻 &|
达内时代科技集团有限公司 版权所有 京ICP证8000853号-56程序员创业是怎样的一番体验? ---Joyqi访谈--百度百家
程序员创业是怎样的一番体验? ---Joyqi访谈
分享到微信朋友圈
创业,互联网,融资,程序员......这些被推在风口浪尖的词总是勾起人们无限的好奇心。在这期访谈中,SegmentFault 的 CTO Joyqi 向我们描述了一个技术人在这场互联网创业浪潮中的一些感想。
创业,互联网,融资,程序员......这些被推在风口浪尖的词总是勾起人们无限的好奇心。什么样的人适合创业?程序员创业是怎样的一番体验?从0到1的创业过程究竟是怎样的?在这期访谈中,SegmentFault 的 CTO Joyqi 向我们描述了一个技术人在这场互联网创业浪潮中的一些感想。
以前一个人做网站和现在一个团队做社区产品,你感觉有什么区别?
在一个团队里工作是很需要胸怀的。一开始,我很有洁癖,总是会挑剔团队里的程序员写的代码,很难忍受自己的程序里有一坨不怎么优美的代码,然后总是忍不住去把它们改掉。挺长一段时间以后,我慢慢领会到很多过分去纠结的细节其实没有那么重要。作为一个团队的领导,我更需要把我的精力放在把握大方向上。与此同时,我需要相信我的队员,给予他们足够的空间去发挥。如果他们实在写了些不好的代码,我会引导他们如何去更好的思考问题,优雅地去写代码。如果团队里的每个人都能提升能力,整个团队的能力就能上一个境界,这远远比我一个人不停地修进代码更有效率和长远的价值。
SegmentFault 还在探索盈利模式,这可能在刚开始创业的时候就预想到了,那为什么当时不选择一个可以有清晰盈利模式的领域呢?
当时我们的想法非常简单,就是想做一个程序员的问答社区。我们觉得只要把社区做大了,就可以赚钱,至于怎么赚钱,当时没有思考。就是这么一股热血地辞掉了工作开始干了起来。创业不久,我们就把我们的本金烧光了。这个时候,对公司的业务的思路发生了转变。因为急需赚钱,我们开始办各种线下活动,比如影响力比较大的有黑客马拉松。这些活动不仅帮助我们渡过资金难关,更帮助我们树立了品牌形象,和程序员们有了实际的互动。
做社区最直接的一个收入来源就是广告,为什么 SegmentFault 从来没有在平台上放过什么广告呢?
商业广告对程序员是个很大的干扰。我希望我们的问答社区是个很纯粹的技术平台,在程序员遇到问题的时候,可以在我们的平台里找到思路,而不是被广告分散了注意力。广告的收入并不值得我们牺牲用户体验。
创业过程中,有没有一个时刻让你感觉到前途一片光明?
没有。创业每一刻如履薄冰。我觉得成功是有很大的偶然性的,一个人成功之后,后人可以总结很多很多的经验,但是就算另一个人复制了相同的技能,也未必成功。因为市场是多变的,不可复制的,所以我对市场总是抱有很大的敬畏心,不停地去理解用户的需求,大趋势的发展。
目前的 SegmentFault 离当初的目标还有多远?你们在做什么样的改进?
当时创业之初的目标很简单,做大,做成一个能让所有程序员用的网站。这是一个很迷茫的过程,真的很迷茫。以前每天上班,修复一个 bug,改改版,就不知道要如何前进了。但是这又是一个很有价值的磨砺过程,它迫使你去更多更深入的思考自己的产品。现在的愿景是把目前的产品做踏实了,然后在这个基础之上,希望可以建立一个体系。在 SegmentFault,一个程序员,不仅有 TA 提问和回答的历史,还有他的个人档案,喜好,甚至和 GitHub 对接,以更完整的数据去体现一个程序员的技能。然后我们希望更好更好的使用这些数据,为每个程序员提供更多人性化的服务。简而言之,还在探索,也会一直探索成长下去。
对于技术人员创业,有什么建议?他们有什么劣势,又有什么优势?
在一个开发者没有具备好相关技能或者对此没有任何思想准备之前,不要轻易走上创业之路。开发者由于经常面对代码,他们往往会遵循一条基本准则,那就是任何问题都是有原因的,而且都是有解决方案的。但如果是去干一个企业,这么想会死得很快。任何事情都是有原因没错,但是找到这个原因所需要的代价可不是你在电脑上 debug 代码所付出的那一点时间,在现实生活中试错的成本任何人都承受不起。
至于有什么优势,那么他以前所积累的专业知识可以看成他的一部分资源,仅此而已。至于说什么开发者看问题更理性,更全面之类的,是不是因人而异不说,经过验证也没有什么决定性作用。用这几点总结出创业成功学的都是马后炮,毕竟有那么多比你更理性的人失败了,而还有那么多比你感性都比你更成功。
所以要创业就先把以前的自己当成个屁放掉。。。
分享到微信朋友圈
在手机阅读、分享本文
还可以输入250个字
推荐文章RECOMMEND
热门文章HOT NEWS
你们真是一群穿着皇帝新衣,马云爸爸正需要的活雷锋!
阿尔法工场
九点半财经
百度新闻客户端
百度新闻客户端
百度新闻客户端
扫描二维码下载
订阅 "百家" 频道
观看更多百家精彩新闻更多公众号:gh_c7分享_绝不_止于Android!最新文章相关推荐搜狗:感谢您阅读作为一名程序员是一种怎样的体验,本文可能来自网络,如果侵犯了您的相关权益,请联系管理员。QQ:优秀的程序员都在哪里 如何寻找优秀的程序员? | Hello world!小组 | 果壳网 科技有意思
128254人加入此小组
优秀的程序员都在哪里这是你第一次公开招募雇员。如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历。一份份看下去,你会想:“嗯嗯嗯,这人应该可以。”或者:“这人差远了。”或者:“我要知道他能不能下决心搬到布法罗 来。”但是,我保证有一件事绝对不会发生,那就是你对自己说:“哇,这家伙太聪明了!这种人,我们一定要得到!”事实上,当你看完足足几千份求职简历之后(假定你懂得如何看简历,那可并不容易),老实说,你从中没有发现一个优秀的程序员。一个也没有。下面我就来说说为什么会这样。很简单,就同所有行业中最好的人才一样,那些优秀的程序员是不会出现在招聘市场上的。通常优秀的程序员在整个职业生涯中,可能会有4次求职。那些最优秀的大学毕业生,他们会从教授那里得到实习的机会,而教授跟业界有不少联系。这样,他们会早早地就从实习公司得到机会,根本不用去找其他工作。如果他们离开那家公司,那可能是因为同朋友一起去创业,或者因为他们跟着一个了不起的老板一起跳槽到另一家公司,或者因为他们决定一定要换个工作方向。比如说Eclipse ,因为Eclipse很酷,所以他们想去BEA 或者IBM找一个Eclipse的工作,然后他们肯定会得到这份工作,因为他们是优秀人才。如果某一天,你遇到了这样的人出现在招聘市场上,那么你很幸运,你真的非常幸运。可能的情况是,他们的配偶决定到安克雷奇 当一名实习医生,他们就会发出简历,给少数几个他们认为自己愿意效力的位于安克雷奇的公司。但是大多数时候,优秀的程序员(我几乎是在重复了)是那么优秀(对,我就是在重复),未来的雇主通常会一眼看出他们的优秀,这意味着,这些程序员基本上想去哪里工作,就能去哪里工作。所以,老实说,他们不会发出许多份简历,到处找工作。听起来,他们就是你想雇的那种人?当然。这条规律(优秀的人才从不在市场上求职)有一个推论,那就是在人才市场上找工作的,大部分都是一些水平很差、完全达不到要求的人。他们一年到头都在被解雇,因为他们不能完成工作。他们所在的公司也会完蛋,因为这些人水平太糟糕,以致于整个公司都会被他们拖垮。是的,这种事真的会发生。(公司完蛋的另一个可能的原因是,既然雇用了一个不合格的程序员,就可能雇用一大堆不合格的程序员,累积起来,就导致了最终的失败。)谢天谢地,这么糟糕的人很少能够求职成功,但是,他们总是不断地发出求职信。他们找工作的时候,就去 ,将所有的职位翻看一遍,300个或者1000个,试图中奖。从数量上说,优秀的人才很少,而且从不出现在招聘市场上,而那些不称职的人,即使数量也同样少,却在整个职业生涯要申请几千份工作。所以,老兄,现在让我们回到你从Craigslist 上搞到的一大堆简历上来。你对他们中的大多数都看不上眼,有什么好奇怪的?我猜想,聪明的读者读到这里,会指出我遗漏了最大的一类人:那些可靠的、称职的程序员。人才市场上这一类人在数量上多于优秀程序员,但是少于不称职的程序员。不管怎样,总的来说,在你收到的1000份简历中,他们的比例是很小的。在绝大多数情况下,几乎所有此刻桌子上堆着1000份简历的Palo Alto 人事经理们都会发现,其中970份简历是出自同样的那少数970个不称职的程序员,内容都一样,这些家伙针对每一份工作都发求职信,也许会这样干上一辈子。1000份简历中仅仅只有30份是值得考虑的,其中可能偶然会出现一份优秀程序员的简历。OK,可能一份也没有。请想一想,如何在一堆干草中找到一根针。我们下面将会看到,这是可以做到的,但是比较难。~我能得到他们吗你能!好吧,你也许能!实际上,这要看情况而定!请不要将招聘看作一个“收集简历,过滤简历”的过程,你必须将它看作一个“追踪优胜者,设法结识他们”的过程。我有3个实现这个目的的基本方法。(1) 走出去。(2) 实习生。(3) 建立自己的社区(community)。*(“建立自己的社区”这一条后面有一个星号。它的意思是,这一条有难度,难得就好像数学家乔治o丹茨格 解决的那道数学难题一样。他之所以能解决是因为,他上课迟到了,以为黑板上的题是课外作业,而没有听到老师说那道题是无法解决的难题。)在这方面,你可能有自己的想法。我只是想谈一谈这3个对我自己有效的方法。~走出去,伙计设想一下那些你想雇用的人会出现在什么地方。他们会去参加哪些会议?他们住在哪个地区?他们属于什么组织?他们上什么网站?不要像撒大网一样在上搜索求职者,你可以浏览“乔尔谈软件”网站上的求职讨论区,将搜索范围缩小到那些阅读我的网站的聪明人。你还可以去那些真正有趣的技术会议上寻找合适的人。优秀的Mac程序员会参加苹果公司的WWDC大会 。优秀的Windows程序员会参加微软的PDC大会 。此外,开源软件也有许多会议。你要关心正流行的热门新技术。去年是Python语言,今年轮到了Ruby语言。你去参加它们的会议,在那里你会找到这些技术的早期接受者,那些人对新事物充满好奇心,而且永远对如何进一步改进有兴趣。你要在走廊里到处走走,同遇到的每一个人都攀谈一番;去参加技术环节的小组专题讨论,将发言者邀请出来,一起喝杯啤酒。当你终于发现聪明人的时候,立刻进入全力套近乎和吹捧模式。“啊哈哈哈哈,那真是太有趣了!”你说,“哦,我真不敢相信你这么聪明。还这么帅!你刚才说你在哪里工作?真的吗?那个地方?哎呀呀呀呀。你会不会觉得,你能做出更大的成绩?我想我的公司可以雇……”这种方法的引申含义就是,不要在大型的求职论坛发布没有针对性的招聘广告。有一年夏天,我一不小心在MonsterTRAK 上发布了一个暑期实习的招聘广告。只要出很少的钱,MonsterTRAK就能使你的招聘广告有机会被位于美国各地的所有学校的学生看到。结果就是我收到了几百份简历,但是其中没有一份能够通过第一轮筛选。我们花了钱,却得到了一堆几乎毫无机会被我们雇用的人的简历。一连好几天,MonsterTRAK 源源不断地送来简历,这样的事实使我觉得我们大概不会找到想要的人了。同样的,当Craigslist刚成立的时候,用户都是互联网产业的业内人士,我们通过在上面发招聘广告,找到了优秀人才。但是今天,会用计算机的人差不多都在上Craigslist,结果就产生了太多的简历,在其中发现人才简直比在一堆干草中发现一根针的概率还要低。~实 习 生抢到那些永远不会在招聘市场上出现的优秀人才,有一个好办法。那就是当他们还在学校里的时候就出手,那个时候他们甚至还没有意识到世界上有人才市场这件事情。一些人事经理非常反对雇用实习生。他们认为实习生不成熟、水平不够。一定程度上确实如此。实习生不如资深雇员有经验。(且慢,真的如此?!)你不得不在他们身上多付出一些,这需要时间,然后他们才会全速前进。对于我们这个行业来说,好消息是,一些真正优秀的程序员往往在10岁的时候就开始编程。当其他同龄的孩子正在玩足球(这是一种许多不能编程的孩子喜欢玩的游戏,就是用脚去踢一个叫作球的圆形物体——这样说听起来很怪,我知道的),他们却在爸爸的书房里试着编译Linux的内核(kernel)。他们不去操场上追求女生,而是在Usenet 上大打口水战,宣称某些编程语言糟糕透顶,没有实现Haskell 风格的类型推断(type inference)。他们不在车库里组建乐队,而是动手完成一个很酷的黑客程序,对付那些企图偷用别人Wi-Fi带宽的邻居。当那些人一打开网页,所有里面的图片都会倒过来。所以,在软件开发这一块,同其他行业(比如法律或医学)不一样,当那些孩子进入大二或大三的时候,他们已经是好得不得了的程序员了。天底下有一个工作,几乎所有人都会投求职信,那就是每个人的第一份工作。大多数孩子都觉得,犯不着为这种事担心,到大学最后一年再说吧。事实上,大多数孩子都不会太主动,他们要等到校园招聘开始以后,才会觉得应该要投简历了。在第一流大学读书的孩子们,单单从校园招聘中就会有足够的好工作可以挑选,他们很少会再去考虑那些懒得来学校的雇主。你可以赶去参加校园招聘,虽然乱哄哄的,但是别误会,这是一件好事。你也可以在孩子们毕业的一二年前,就把事情搞定。在这方面,我自己的Fog Creek软件公司有许多成功的例子。每年9月份,我就开始行动,我动用所有的资源追踪这个国家最好的计算机专业的学生。我给全国二三百所学校的计算机系写信。在离毕业还有两年的时候,我就搞来主修计算机科学的学生名单(为了搞到名单,你通常需要在系里有认识的人,老师或者学生)。然后,我就给我找到的每一个学生写一封信。不是电子邮件,是真的纸质的信,上面有Fog Creek软件公司的抬头。我还用墨水笔,醒目地签上自己的大名。很显然,如今这种事情不多见,所以我的信可以得到足够的关注。我在信里跟学生们说,我们公司有实习的机会,我以个人名义邀请他们来申请。另一种情况是,我给计算机系的教授和校友发电子邮件,请他们将我的邀请信转发到计算机系的邮件列表中去。慢慢地,我们就会收到许多实习职位的申请信,我们就从中挑出最后的入选者。在最近几年中,我们每个实习职位都有200个人申请。我们通常从这么多申请表格中筛选出10份(每个职位),然后给这些人打电话考察。在通过电话考察的人中,我们可能会邀请2~3个飞到纽约,对他们进行面试。到了面试这一步,面试者就很有可能被我们雇用,所以现在是时候启动全场紧逼式的招募了。豪华轿车在机场等着他们,穿制服的司机帮他们提行李,并且将他们送到酒店,那里很可能是他们迄今见过的最酷的酒店:坐落在城中最时尚、随时都能看到模特在街上走来走去的地区,卫生间里有各种复杂的设备,简直可以放进当代艺术博物馆中当作藏品(祝你好运,希望你能在这样的卫生间里弄清楚怎么刷牙)。当面试者住进酒店以后,我们给他留了一个大礼包,里面有一件T恤、一本由Fog Creek员工编写的纽约观光手册、一张包含2005年暑期实习全过程的纪录片的DVD。屋里有一个DVD播放机,所以他们当中许多人都看到了上一年的实习是多么有趣。一天的面试结束以后,如果他们想看看纽约,我们出钱让他们再待上二天。最后,用豪华轿车接他们离开酒店,送到机场,搭上返家的航班。即使到纽约参加面试的人中,三个里面只有一个能够通过全部的考核,但是让那些最后通过的人对我们有一个正面的印象,这是非常重要的。就算那些没有通过的人,也会认为我们是一流的雇主。当回到学校时,他们就会告诉所有的朋友,这次住在豪华酒店的纽约之行是多么好玩。他们的朋友听了,就会在明年夏天申请我们的实习生,哪怕只是为了有机会到纽约来玩一次。就暑期实习本身来说,在这个过程中,学生们通常会想:“OK,这次暑期实习还不错,我得到了一段美好的经历。也许,只是也许,我可以获得一份全职工作。”我们在学生前面就已经想到了这个问题。在暑期中,我们会决定想要哪些人留下来作为全职雇员,学生也要利用暑期决定是否愿意加入我们。正是因为如此,我们会把真正的实际工作交给实习生。那些都不是轻松的活。我们的实习生总是接触会在最后产品中使用的代码。有时候,他们做的是整个公司里最新潮的东西。这会让我们的正式雇员有一点点嫉妒,但是这就是生活啊。有一年夏天,我们让4名实习生组成一个开发小组,从零开始做一个全新的产品。他们用几个月的时间就做成功了。公司获得的收益完全超过了实习的开销。实习生做的即使不是新产品,也总是真实的、会投入生产阶段的代码,并且他们个人要对软件功能中的某个主要方面承担完全责任(当然,资深雇员会作为导师帮助他们)。为确保他们的实习生活过得愉快,我们会举办晚会,邀请他们到家里做客,免费为他们提供条件很好的宿舍,在那里他们可以结识来自其他公司和学校的朋友。我们每周还有一些课外活动或者郊游,比如听百老汇的音乐剧(今年的实习生都迷上了音乐剧《可爱大道》 )、参加电影首映式、参观博物馆、围绕曼哈顿岛划船、观看扬基棒球队的比赛。不管你信不信,本年度最受欢迎的活动之一是登上落基山顶。我的意思是,爬到曼哈顿中区一幢高楼的顶楼平台。你大概不会觉得这种活动好玩,但是它真的受欢迎。除了实习生以外,Fog Creek的一些正式员工也参加了每次活动。当夏天结束的时候,总是有一些实习生让我们确信,他们就是那类我们非雇用不可的真正的优秀程序员。不是所有的实习生都是这一类,请听好,有些实习生确实是优秀程序员,但是我们愿意让他们离开,还有一些实习生可能在其他地方会成为优秀程序员,但是不是在Fog Creek。举例来说,我们是一家很强调自治(autonomous)的公司,没有很复杂的管理层级,我们希望所有人能够主动工作。从过去来看,有些时候,如果有人督导,一些暑期实习生就表现得非常好,但是一旦来到Fog Creek这种没有很多硬性管理的环境,他们的表现就不太好。无论如何,对于那些我们确定要雇用的人,等待是没有意义的。我们会很快就提供一个正式职位,条件是他们毕业以后过来工作。这个职位的待遇很丰厚。我们就是要他们回学校后,跟朋友们交换意见,然后他们会意识到自己的薪水比别人都要高。这是不是意味我们给的报酬太多了?完全不是。你要这样看,第一年的薪水一般来说总是要打一点折扣的,因为必须考虑到新人没有好的表现的风险。但是我们已经考察过这些孩子了,可以毫无风险地认定他们就是优秀人才。我们很清楚他们的能力。所以,当我们雇用他们的时候,我们比其他雇主有更多的信息,后者仅仅面试过他们而已。这意味着我们能够付更高的报酬。我们有更充分的信息,所以我们愿意比那些没有这些信息的雇主付出更高的工资。如果我们做好了份内的事情(我们通常都能做好),那么到了这个时候,我们选定的实习生就会作出决定,到底接受还是放弃我们提供的职位。不过有时,还需要一点额外的说服工作。有些实习生不愿意马上给出明确答复,他们还想等一等,看看有没有更好的机会。但是,一个来自Fog Creek公司的有效的工作机会会起到这样一种作用,那就是当他们第一次在早晨8点不得不起床、穿上套装、去参加甲骨文公司的面试的时候,当闹钟响起的那一刻,他们很可能会说:“我干嘛一定要在该死的早晨8点起床、穿上套装、去参加甲骨文公司的面试呢?不是已经有一个很好的工作机会在Fog Creek等着我吗?”我的期望是,他们会觉得太麻烦,就不去参加那个面试了。在我继续往下讲之前,顺便说一句,我必须对计算机科学和软件开发行业的实习生问题进行一点澄清。在如今这个时代,在这个国家,对实习生支付报酬被认为是理所当然的,而且他们的报酬往往很不错。虽然不付报酬的实习生在很多其他行业依然很常见,比如出版业和音乐业,但是我们的工资标准是每星期750美元,还提供免费的住宿、免费的午餐、地铁交通费,更别说来回纽约的飞机票和其他各种福利了。如果单看钱数,我们的工资比平均水平要低一点,但是如果将免费住宿考虑在内,我们的工资就比平均水平要高一点。我想之所以我要说这个,是因为每次我在我的网站上谈到实习生的时候,总有人搞不清楚,认为我占了别人的便宜,好像我在搞奴隶制似的。那边的谁——你们这些自以为是的毛孩子!给我拿一杯冰镇橙汁,要手挤的,别磨磨蹭蹭!实习生制度创造了输送优秀人才的管道,但是这根管道比较长,而且一路上的损耗很大。根据我们的计算,基本上每雇用一个全职雇员,我们就必须请两个实习生,以便挑选。如果你请的实习生离毕业还有一年,那么从你开始确定实习人选的时候算起,到他正式第一天上班,会有两年的时间间隔。这意味着,每年夏天我们的办公室有多少空位置,我们就要请多少实习生来。头三个夏天,我们试着将实习生限制为离毕业还有一年的学生。但是今年夏天,我们终于意识到错过了一些更年轻的优秀学生。所以,我们将实习生计划向高校中所有年级的学生开放。说出来你可能不信,我正在琢磨怎样将高中生弄进来,也许让他们课后组装电脑,为上大学攒一点钱。我们的目的就是开始着手建立与下一代优秀程序员之间的联系,即使这样一来,管道会长达6年。没关系,我有长远眼光。~建立社区*这里的基本思想是创造一个大型的网络社区,让观点相近的优秀软件开发者以某种形式聚集在你的公司周围。然后,每当你有职位空缺的时候,总会有天然的候选者。告诉你实话,Fog Creek里这么多优秀的程序员,就是通过我的网站发现的。那个网站上主要的文章的读者多达100万,其中大部分都是有能力的程序员。有了这么庞大的、自发聚集起来的读者群,无论何时,只要我在主页上提到我正在招聘,通常就会得到很多优秀人才的简历。我用一个星号表示这种方法很“困难”,因为我感到,好像我给你的是这样一个建议:“要赢得选美比赛,第一步是要变美,第二步是参加比赛。”我有这种感觉是因为,我真不太清楚为什么我的网站变得这么流行,或者为什么浏览这个网站的人都是一流的程序员,我不知道自己做了什么。我真心希望我能在这个地方给你更多帮助,但很抱歉我没做到。在这方面,Derek Powazek写过一本好书Design for Community: The Art of Connecting Real People in Virtual Places。许多公司尝试过不同的网志策略,但是很不幸,其中的大多数最终都不会有任何读者群。所以我只能说,对我们有效的方法,对你可能有效,也可能无效。我不确定你到底该怎么做。我在自己的网站上搭建了一个求职区()。你只要出350美元就可以在那里发布招聘广告,该网站的所有读者都会看到。~员工推荐:小心陷阱寻找优秀程序员有一个所谓标准建议,就是询问你现在的雇员。怎么说呢,它背后的理论是,聪明的程序员一定认识其他聪明的程序员。他们可能确实认识,但是他们的亲密朋友中也会有人不是非常优秀的程序员。这种方法会制造大概100万颗地雷。所以,真实生活中,我一般认为员工推荐是最不可靠的招聘新人的方法之一。一个无法回避的巨大风险,就是竞业限制合同 (noncompete agreement)。如果你不以为然,请想一想Crossgain公司的遭遇,这家公司不得不开除了四分之一员工,因为那些人以前都在微软工作,微软公司威胁起诉他们。在正常理智的情况下,没有程序员会签署一份竞业限制协议,但是大多数程序员确确实实签署了,因为他们觉得这种合同不可能会实施,或者因为他们没有习惯去阅读合同里写了什么,或者因为他们已经接受了雇主提供的职位,穿过半个美国,举家搬到新的城市,在上班的第一天第一次看到了合同的全文,这时再要协商具体条款为时已晚。不管什么原因,总之他们签署了。但是实际上,这是雇主让人最讨厌的做法之一,而且这个条款可以强制执行,并且真的会被执行。如果你不当心竞业限制合同,并且很依赖员工推荐,后果可能是,你雇了一堆人,他们的前雇主都是同一家公司(因为就是在那个地方,你的雇员第一次结识了其他明星程序员),那么你将承担非常巨大的风险。另一个问题是,如果你不能保证应聘者百分之百被接受,那么当你要求你的雇员推荐人选时,他们甚至都不会考虑向你说出他们真正的朋友。如果自己推荐的朋友还可能被拒绝,就没有人愿意说服朋友来应聘自己的公司。这样多多少少会破坏友谊。因为他们不告诉你谁是他们的朋友,你可能就不能雇到以前同他们一起工作的人。那么,他们推荐的其他人可能就不是很有能力了。但是,“员工推荐”的真正问题在于,如果负责招聘的人事经理懂一点经济学,决定为每一个有效的推荐提供奖金,麻烦就来了。提供奖金的做法很常见,原因是这样的:如果通过猎头公司或者外部招聘渠道雇人,每个职位的中介费用大概是3万美元到5万美元。如果我们向“员工推荐”支付奖金,比方说,每次成功推荐一个人,他们可以拿到5000美元的奖金,或者成功推荐10个人,他们可以得到一辆昂贵的跑车,或者其他的奖励方式,那样的话,想一想可以省下来多少钱。即使对于一个工资丰厚的雇员来说,5000美元听上去也像是一笔小财,的确是笔不小的收入。总之,这样处理看上去是一种双赢的、对各方面都很周到的方案。麻烦是,突然之间,你发现每个人的心眼都活了,雇员们开始将他们能想到的每个人都拖来面试,他们强烈希望他们找来的人能被雇用。他们教外面的人如何应付面试,在会议室中同应试者说悄悄话。转眼之间,你手下的整个劳动大军都在设法让你雇用某人的一个大学室友,而此人对你毫无用处。这样是不行的。ArsDigita公司曾经轰动一时,因为它买了一辆法拉利跑车,将车陈列在停车场上,并宣布不论是谁,只要能成功推荐10个人进公司,就能拥有这辆跑车。无人完成这项任务,甚至连接近完成的人都没有,但是新进员工的质量却不断下降。该公司后来倒闭了,不过原因可能不是这辆法拉利,因为后来被曝光该车是租的,不过只是公开作秀而已。如果Fog Creek的雇员提议雇用某个可能对我们很合适的人,我们愿意省去第一步的电话筛选,但是仅此而已。我们仍然要求应聘者通过剩下的所有面试,我们坚持高标准不变。~寻找优秀的程序员之实战指南程序员会怎么找工作?如何使一份工作对程序员更有吸引力?你怎样才能变成他的雇主?请继续往下阅读!摘自
+ 加入我的果篮
对于天朝来说几乎就是狗屁满满。入学时唯一一个跟我一样上大学之前写过网页之外的代码…而且写的比我好…的同学,因为什么基础课挂科太多,而且也不愿意学,早早退学了。我算是凑合毕业了,但是中国人的单位也要挑剔我不会英语而且也学不会,要不是会点日语,备不住我现在住在哪个耗子洞里卖水果也说不定。
其实真正的问题是很多公司嘴上说要优秀的程序员,但实际上想要的是听话的程序员,面试的第一个问题是“愿不愿意长时间加班?”,祝他们早日倒闭。
对于天朝来说几乎就是狗屁满满。入学时唯一一个跟我一样上大学之前写过网页之外的代码…而且写的比我好…的同学,因为什么基础课挂科太多,而且也不愿意学,早早退学了。我算是凑合毕业了,但是中国人的单位也要挑剔我不会英语而且也学不会,要不是会点日语,备不住我现在住在哪个耗子洞里卖水果也说不定。
其实真正的问题是很多公司嘴上说要优秀的程序员,但实际上想要的是听话的程序员,面试的第一个问题是“愿不愿意长时间加班?”,祝他们早日倒闭。
引用 的话:其实真正的问题是很多公司嘴上说要优秀的程序员,但实际上想要的是听话的程序员,面试的第一个问题是“愿不愿意长时间加班?”,祝他们早日倒闭。这样子说来,优秀的定义对不同的人是不同的呢。比如我学校保研到清华北大的“优秀学生”基本是看见两层以上非从头开始的循环就蒙圈,看见两层以上指针就吐血的货。但是人家英语好啊,数学分高啊。
网上那些关于程序员的帖子,往往是各种吊炸天的名词堆叠,这时候我们这些做界面的程序员就插不上嘴了来自
引用 的话:这样子说来,优秀的定义对不同的人是不同的呢。比如我学校保研到清华北大的“优秀学生”基本是看见两层以上非从头开始的循环就蒙圈,看见两层以上指针就吐血的货。但是人家英语好啊,数学分高啊。才两层循环?两层指针?……他们估计NOI水平都没有吧
引用 的话:才两层循环?两层指针?……他们估计NOI水平都没有吧noi是神马…?嘛,领会精神就好……
引用 的话:noi是神马…?嘛,领会精神就好……全国信息竞赛咯,大学生的话是ACM
引用 的话:全国信息竞赛咯,大学生的话是ACM查到了,虽然都没听说过。可能南方地区比较热衷这个。
引用 的话:查到了,虽然都没听说过。可能南方地区比较热衷这个。北方也行啊,我们山东可是NOI大省啊!……虽然只有青岛很厉害
引用 的话:北方也行啊,我们山东可是NOI大省啊!……虽然只有青岛很厉害我是沈阳的…我学校除了智能车,几乎不参乎别的比赛,基本都没人提。像acm我是毕业好几年了才听到。
对于大公司来说,感觉校招才是找到高性价比的人的好地方,牛逼的应届生相对于社招的来说开价那么低,实力又不缺,就是缺工程经验而已,而工程经验这种东西,对于这些人来说学起来很快的。另外,数学能学好的人,基本不可能计算机学不好,如果他愿意学的话。特别是某些对数学要求比较高的地方,能通过面试的很多都有数学背景……(我才不会告诉你们我们组的这群新人就我一个不是本科数学硕士计算机的。整天被碾过来碾过去不好受啊T_T)
引用 的话:对于大公司来说,感觉校招才是找到高性价比的人的好地方,牛逼的应届生相对于社招的来说开价那么低,实力又不缺,就是缺工程经验而已,而工程经验这种东西,对于这些人来说学起来很快的。另外,数学能学好的人,基本...数学很油但是学不明白编程的人我见过几箩筐。现在的公司正好马上就要开除这样一批实习生…每年都要开一批,虽然老大们跟人资抱怨了无数次,要他们少看成绩单多找点能做事情的。不过大家也都理解分辨这样的人其实挺难的。我感觉数学和计算机就天赋这个角度来看根本就是两码事。嗯,我是个很讲究天赋的人,从我发现我无论如何也学不会洗衣服之后,我了解到天赋这种东西真的存在,而且不是努力能弥补得了的。
引用 的话:对于大公司来说,感觉校招才是找到高性价比的人的好地方,牛逼的应届生相对于社招的来说开价那么低,实力又不缺,就是缺工程经验而已,而工程经验这种东西,对于这些人来说学起来很快的。另外,数学能学好的人,基本...刚看到你括号里的那行,你是新入行的程序猿么?如果是,我能理解你会说工程经验学起来很快这种话…虽然照我的经历来看就是胡说…不用在意那些本科数学考研才考计算机的,我见过这样的人是废物居多…可能搞理论的除外?我没搞过…以前跟我同时入职的也有的是这样的,最后其中最惨的一个调岗做测试了,其实我周围的研究生普遍都混的不怎么样,过得最好将来看着也最光明的同事,基本都是计算机本科毕业就工作的。如果你都混了好几年,那我只能猜,你去的地方对程序员来说不太好,既没有也不用有啥积累,或者你这句话是把业务和经验混为一谈了。
引用 的话:刚看到你括号里的那行,你是新入行的程序猿么?如果是,我能理解你会说工程经验学起来很快这种话…虽然照我的经历来看就是胡说…不用在意那些本科数学考研才考计算机的,我见过这样的人是废物居多…可能搞理论的除外...我入行不到一年,确实是算是新人吧。业务经验和工程经验确实不是一回事……我们这有很多算法密集型的开发,特别是有些数学密集型的算法开发,所以感觉那些有数学基础好的做这种事情上手就比较容易,而且做得比较好。而且,感觉他们写代码的能力都挺强的,写得快,也学得快。不会的东西自己查资料很也快就能搞定。(比如一个纯程序的例子:某同学C++掌握的并不深入,模板元编程什么的看起来以前就没接触过,但是他就在这样的基础上直接做C++的反射系统这种非常tricky的东西,只用了不到2周,就完成了成员变量的反射部分。看他的代码,里面已经充满了各种元编程的技巧,运用的也都挺到位的。)你说的最光明的多是本科毕业,这个有同感,我读研期间的同学确实很多都感觉完全是混日子的……很多大神级的人物,如果不走学术方向的话,本科毕业就会找到很好的工作,根本没必要硕士……硕士的优势在于做有学术应用相关的算法的时候,这些人会有一定量的学术资料阅读与实现的相关积累。我们仅有的有几个本科的,也确实很强。不过我们这那些硕士也都挺厉害的。可能还是要看地方吧。
引用 的话:我入行不到一年,确实是算是新人吧。业务经验和工程经验确实不是一回事……我们这有很多算法密集型的开发,特别是有些数学密集型的算法开发,所以感觉那些有数学基础好的做这种事情上手就比较容易,而且做得比较好。...我这儿算法要求不高,用到的就查查资料就搞得定。基本没有学术性的东西,积累有啥用也体现不出来。用到的数学以我这儿的视角来看是算作业务的一部分,依据项目需要现学。学习效果感觉大家都差不多,个别数学系出身的并不比别人好,反倒在编程手感和设计方面赶不上学计算机的。所以我感觉这些半路出家的就是渣…也不是就我一人感觉…公司也已经决定今后几年的招聘本科不是学计算机的一律不招了。至于学语言写代码和查资料…这个其实怎么说呢,应该是计算机学得好的强项才对,去年我们这换新平台,新学两种语言,一套通讯协议,自学&时间只有一周多一点,然后老员工都能做得跟干了几年一样,新来的绝大多数跟不上。我个人感觉就是经验还有编程手感上天赋的差距吧。有些人简单学了语法就能写很漂亮的代码,有些人写的就是烂,手感这东西很奇妙的。
正确的描述说三遍:优秀的技术人员不会出现在招聘市场优秀的技术人员不会出现在招聘市场优秀的技术人员不会出现在招聘市场
并不在理,我的大学同学在找工作的时候几乎都是自己投简历去找的,他们有些真的很优秀
在哪里可以找到最优秀的程序员?我愿意出年薪一千万!完成一套商业模式!颠覆现在所有的商业模式,形成一个内生循环系统。也可称之为矩阵系统。可以对接全世界所有的企业和个人!生老病死全部包含!而且人人都愿意参与进来!现在要的是时间,因为市场上也有同类的程序出来了,只是他们做得并不合理。需要完善!如果有请联系我错过了时机。这辈子就没有这么好的机会了来自
引用 的话:并不在理,我的大学同学在找工作的时候几乎都是自己投简历去找的,他们有些真的很优秀在哪里可以找到最优秀的程序员?我愿意出年薪一千万!完成一套商业模式!颠覆现在所有的商业模式,形成一个内生循环系统。也可称之为矩阵系统。可以对接全世界所有的企业和个人!生老病死全部包含!而且人人都愿意参与进来!现在要的是时间,因为市场上也有同类的程序出来了,只是他们做得并不合理。需要完善!如果有请联系我错过了时机。这辈子就没有这么好的机会了来自
引用 的话:这儿算法要求不高,用到的就查查资料就搞得定。基本没有学术性的东西,积累有啥用也体现不出来。用到的数学以我这儿的视角来看是算作业务的一部分,依据项目需要现学。学习效果感觉大家都差不多,个别数学系出身的...在哪里可以找到最优秀的程序员?我愿意出年薪一千万!完成一套商业模式!颠覆现在所有的商业模式,形成一个内生循环系统。也可称之为矩阵系统。可以对接全世界所有的企业和个人!生老病死全部包含!而且人人都愿意参与进来!现在要的是时间,因为市场上也有同类的程序出来了,只是他们做得并不合理。需要完善!如果有请联系我错过了时机。这辈子就没有这么好的机会了来自
作为一个搞oi的人,我要真心说一句:oi与实际开发相差甚远。oi需要的是速度和算法设计能力,而开发应该更偏重于架构和算法应用能力。
引用 的话:我这儿算法要求不高,用到的就查查资料就搞得定。基本没有学术性的东西,积累有啥用也体现不出来。用到的数学以我这儿的视角来看是算作业务的一部分,依据项目需要现学。学习效果感觉大家都差不多,个别数学系出身的...搞oi的,10个中9个代码都是不好看的,但是能对
引用 的话:搞oi的,10个中9个代码都是不好看的,但是能对我感觉即使不好看,但是弄得很干净是可以的。这样就行了。开发最重要的是业务理解能力和工作手感。当然并不是说就不讲究速度了…至于算法,只要扯到设计,肯定是有具体问题的,那就也是业务的一部分了,纯搞科研的除外。
引用 的话:对于天朝来说几乎就是狗屁满满。入学时唯一一个跟我一样上大学之前写过网页之外的代码…而且写的比我好…的同学,因为什么基础课挂科太多,而且也不愿意学,早早退学了。我算是凑合毕业了,但是中国人的单位也要挑剔...大学帮班里一半人搞定c语言大作业,然而四级就差十几分而找不到好工作,然而这不是最难受的,最难受是八年过去已经真的在技术上落后那些同学了
引用 的话:大学帮班里一半人搞定c语言大作业,然而四级就差十几分而找不到好工作,然而这不是最难受的,最难受是八年过去已经真的在技术上落后那些同学了为什么?
引用 的话:大学帮班里一半人搞定c语言大作业,然而四级就差十几分而找不到好工作,然而这不是最难受的,最难受是八年过去已经真的在技术上落后那些同学了如果别人学英语的时间你没拿去做更有效率地提高自己的事情,那很自然除了英语差,啥都剩不下。我的第一个单位把我列为备选是因为我学过点日语,但是进了那家单位我是凭手法杠倒了很多外语成绩好的好孩子。机试我是唯一一个完整写出程序的。大部分人只完成了UI。以及,泼盆冷水,以我对大一大二所有最后要交程序这些课的印象,全是我初中时候水平就能搞定的。跟实际工作难度水平本来也是天差地别。你有没有想过,别人可能其实是把他们嫌麻烦的杂事推给了你,自己却在做更有效率的提升?来自
好长,没看完……
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:

我要回帖

更多关于 程序员的晋升之路 的文章

 

随机推荐