1.前言:
以下这些文字,是我离开学校进入软件公司,从事软件开发工作1.5年后,来自公司领导的教诲,和同事闲聊时的感悟,在网络上读到的行业思考,亦或是在路上听到的话。这里记录下来,权当是作为一种人生经历,或许对那些还未进入职场的弟弟妹妹们是一种忠告吧。
这些语录我采用关键词、描述和评论的形式,展现在这里。
2.职场见闻:
2.1【招聘难不难】
Q:你看每年有那么多软件和计算机专业的毕业生,我觉得公司招聘一个程序员还是挺容易的吧?
A:招聘很难,而且是非常的难。你想那么短的时间里,你要去认识和了解他,简历又不可完全相信。而且即使笔试和面试都表现非常优秀,你知道来了公司以后到底能不能胜任真正的工作任务呢。所以,招聘是一件非常困难的事情。这年头,毕业的学生觉得找工作难,而公司又感叹找到一个合适的求职者是多么的困难。
【评论】:招聘难吗?难,难于上青天;找工作难吗,难,衣带渐宽终不悔,为伊消得人憔悴。如何能够找到适合自己的工作?面试前,对公司的业务要了解,对自己的知识和技能要了解,实话实说,把真实的自己交给面试官。让面试官去衡量你和岗位的匹配度。
2.2【我们就是想招那种已经结过婚的,最好有房贷和车贷的求职者】
这种员工,一般都面临着赡养父母和教育孩子的任务,因此他们需要一份稳定而有保障的工作来作为支撑。他们也才有可能更安定地完成工作任务。
【评论】:员工稳定是一个公司能够长期发展的重要因素。除去增强员工的工作归属感,适当的外界刺激因素也是很重要的。
2.3【留住核心员工】
Q:华为、百度等公司,人员流动极其频繁,很多员工都是干2~3年后就跳槽走人,难道这些公司没有什么补救措施吗?俗话都说,人员稳定是一个公司能够长期发展的基础。
A:像华为、百度这种技术类公司,领导层的主要任务是留住处于公司核心技术层的精英,至于底层的那些技术员工,即使人员流动再频繁,对于公司的战略发展影响不是特别大。
【评论】:多么残酷的现实啊。努力的方向,当然是未来能够进入公司的核心技术层。
2.4【把学习留在业余时间】
Boss:公司招聘你来,就是希望你能够给公司带来价值的。不要在工作时间看书和学习,把学习的时间留在工作以外。
【评论】:业余时间才是拉开两个人差距的关键。事实上,天下没有“幸运”这回事。所谓的“幸运”,其实是机会来临的时候,决不让它溜走,而是牢牢抓住。为了抓住每一个机会,就必须做好充足的准备。如何做好准备?为何毕业2年后就出现分水岭?答案就在每天下班回家后8~10点这两个小时里。看看别人在做什么就明白了。
2.5【不要重复制造轮子】
场景:经理给安排了一个小任务,在web端截取字符串的长度,如果超过限定值则用省略号显示。就是这样一个小任务,我花了几个小时的时间在网络上都没有找到一个合适的解决方案。结果,经理仅用了5分钟就在网上找了3~4个可行的解决方案。
Boss:遇到问题就要从网络上去找解决方案,不要重复造轮子。如果给你安排的任务在网上找不到相似的解决方案,说明你做的这个事情是世界上从来没有人做过的。你觉得这个可能吗?
【评论】:网络资源是无限的,关键看你会不会去利用它了。绝对不要去重复造轮子。
2.6【工欲善其事,必先利其器】
Boss:如果一个任务,需要你去重复地做一些操作时,你就应该想办法用工具去优化它,节省宝贵的时间。程序员要想提高,就应该想办法从繁重的“体力劳动”中抽身出来,去干有意义的事情。
Me:我有时候不太信任那些工具,觉得还是自己去做比较放心。
Boss:你去试过这些工具了吗?
Me:没有。
Boss:一件/一个工具,不一定需要帮你完成100%的工作。它只要能够帮助你完成80%的工作,剩下的20%由你自己去完成,就可以节省你很大的工作量了。
【评论】:俗话说,磨刀不误砍柴工。要想提高工作效率,还是要分析制约自己效率的因素,然后去做一些针对性地改进。要善于利用合适的工具去节省时间。软件毕竟是一项系统工程,不能蛮干。很多程序员,虽然他们工作辛辛苦苦,任劳任怨,但是工作效率却不高。就是因为他们太勤奋了,而不去动脑筋思考如何更高效地完成工作任务。
2.7【开源项目大部分是国外人在干】
Q:为什么像GitHub,Stackoverflow,itk,vtk,dcmtk和各种开源项目,绝大部分都是由国外的人完成的呢,他们怎么那么有奉献精神呢?
A:国外的人们工作真的是比较闲的,他们的业余时间非常多。如果他们喜欢编程的话,做点开源项目,让有共同兴趣爱好的人一起维护这个项目,也是一种乐趣哦。兴趣是最好的老师。
2.8【经常加班真的会让领导给你加薪吗?】
Q:我工作勤劳,并且下班后还自愿加班。领导看到我这样子,会不会主动给我加薪呢?
A:答案是否定的。你经常加班,只能说明你的能力还不能完全胜任给你分配的工作任务。那样领导以后再给你分配工作的时候,可能就不会再分配更难和更重大的任务了。你觉得这是好事吗?
【评论】:很多人都觉得自己加班是好事。但可能领导并不是这样想的。换位思考,是一种解决途径。同时,努力提高自己工作时间的效率也是很重要的。
2.9【编程到底难不难?】
Q:都说编程是一项技术密集型工作,科技含量很高。各种编程语言,如汇编,C,C++,Java,C#,Python,JavaScript,PHP等等,还要掌握操作系统,数据库等知识。那么编程真的是一项很难的工作哦?
A:编程其实并不难。首先计算机是由人发明的,计算机再怎么发达也还是达不到人的思维方式。问题的关键是人和计算机的思维方式是不相同的,因此编程的关键是,你需要把业务逻辑用计算机能理解的语言告诉它,计算机只会做加法和重复性的工作。
Q:如果真的这么简单的话,那么为什么还是有很多人认为编程是一项很难的工作呢?
A:那是因为他们没有学过。人们总是对自己不了解的事情充满好奇。其实,只要学习过,每一个人都可以成为程序员的。就像医生,你接受过医学专业的学习和技能的培训,也是可以当医生的。
2.10【阅读技术类书籍】
Boss:像阅读编程技术类的书籍,就要强迫自己在一定时间内读完。不指望第一遍阅读就能完全读懂,关键是要了解这个语言所有的特性。在以后工作中,再遇到相关特性的时候,再进行深入理解就可以了。
【评论】:制定一项读书计划时,一定要加入时间限制,不要拖延。没有时间的计划,是永远都完不成的。
2.11【分配的任务要在规定时间内,保质保量完成】
Boss:任何一个分配给你的工作任务都要争取在限定的时间内,保质保量地完成。“保质保量”是说你完成的代码要在能够实现需求的情况下尽量减少bug的发生;“规定时间”是做在完成任务时一定要注意对时间的把控,如果虽完成了任务但是超出了限定时间,那也是应该受到责备的。就像医生给病人做一台要紧的手术,即使你刀口切得再细,缝合得再细致,如果没能在规定时间内把病人救过来,这台手术也是失败的。
【评论】:工作就是一场博弈,你需要时刻在质量和效率上平衡。工作中通过向有经验的人请教是很重要的,二十岁跟对人,三十岁做对事。
2.12【你应该对自己要求更加严格一些】
Boss:你应该对自己要求更严格一些。当接到一个工作任务时,不能只是想着简单完成任务就可以了,而是应该尽自己最大的努力把它做到完美。同样是写代码,为什么人们之间的差距会越来越大呢。
【评论】:工作态度是决定一个人能不能很好地完成工作任务的最重要因素。
2.13【请不要说自己是Java程序员】
http://zhang.hu/hire-a-smart-developer/
编程语言只是一种工具,对一个聪明的程序员来说,用没用过什么工具主要是由他原来的工作需要决定,并不能代表他全部的技能。一个人的聪明程序、对新知识的好奇心、自我驱动意识、为问题找到最佳解决方案的决心,才是他能不能成为一个好程序员的关键。
不要把自己定位为某种语言的程序员,说自己是 Java 程序员,C 程序员,Python 程序员等等。一方面会限制自己的发展,一方面对团队整体的能力提升也不利。几乎所有的语言都有它自己的适用场景,在合适的地方用合适的语言,才能极大的提升生产效率。
正确的做法是,首先要有良好的基础知识,深刻的掌握2~3门语言,然后适用于不同场景的语言要了解概念。基础知识包括各种计算机原理、数据方面的知识,在学校没认真学的,现在有时间也要补充。语言方面比如掌握了 C/Java,那 C++/Python/Bash/Javascript/CSS等都可以了解下概念,至少要理解在一个完整的产品链里,它们分别适用于哪个环节。
【评论】:软件行业是一个非常强调人的价值的行业,价值就体现在有效地推动产品前进,而语言只是实现这个价值的工具。
2.14【修改bug也是程序员的工作】
Boss:很多程序员总是不愿意把改bug的时间计入自己的工作时间,但实际上,修改bug是程序员一项非常重要的工作。修改bug所花费的时间也是区分一个程序员好坏的重要指标。
【评论】:一个程序员完成功能编码时引起的bug数量,bug的修复数量,修改bug引起新bug的数量,bug修改后又被测试reopened的,对引发bug的原因分析,对bug优先级的划分等等,都是衡量一个程序员是否优秀的考查点。其实,写程序不难,难的是知道怎样去写;修改bug不困难,难的是要找到bug在哪里。
2.15【不要不懂装懂,问问题要具有针对性】
Boss:在公司工作的时候,如果遇到自己不会的事情一定要及时去问,千万不要不懂装懂,既耽误你的时间,又会对整个项目的进展造成不利影响。分配的工作任务,如果花了2~3个小时,仍然没有找到头绪,要及时找人讨论;任务完成到30%的时候而依然进展不顺时,也要及时找人讨论。此外,当你去问别人问题的时候,问题一定要非常具体和具有针对性,而不要问太宽泛的问题。问问题时,一定要去问比自己水平高的人,而不要去问和自己水平差不多的。
【评论】:要想得到具体的答案,首先你问的问题就必须非常具体。问问题一定要问比自己水平高的人。