简明现代魔法 -> 互联网时代 -> 如何成长为企业需要的程序员

如何成长为企业需要的程序员

2011-05-25

许多的应届毕业生程序员,他们当中只有很少部分被录用,但大多数还都因各种原因没被录用,或者是进入公司不久又被辞退了。那么没被录用就是不优秀吗?不一定。那么我也接触过一些同行或合作伙伴,比如做应用的天正、理正、施惠特、网通、移动内部研发部门等、还有上海贝尔、华为海外工程部等,有时候也会谈到需要的程序员的类型。

公司需要什么样的程序员,说实话我当时第一个念头就是:公司需要花最小的培养成本就能编出能卖钱的软件的人。那么这句话很俗,但却是市场上许多中小型软件公司对研发人员的心里话,当然大公司他们有系统完整的培训体系,但大多数的中小型公司就是想"短平快"地从市场上找到合适的程序员。

基础知识

缺点:基础知识不扎实,知识面很窄,眼高手低,只关心待遇。

因为日常工作中,项目的进度不允许我们经常搬着书本查语法,更多要关心的是程序的业务逻辑和实现效率,当用及某项技术时再说我不了解或没听说过,对编程语言的熟悉深度不够,代码积累不够。知识点比较零散。并且很关心待遇,而认不清自己的现状。

现在的简历上大多写的是精通VC++、.NET、****语言或技术,曾独立或参与某大型系统中的实施等等。其实我不否定你接触过这些,但你不要轻易别说自己精通,对于基础知识的考核,一般公司面试时并不是找太难的知识点来考核,都是一般性的知识,因为只要业务运转正常的公司都会缺乏人才,公司也是抱着诚意在招聘人,而不是想给你为难,或者把你考倒。

学习能力、规范化的编码习惯、适当的注释、良好的文档习惯

如何考核这些呢?一般都会设计一段程序的运行结果,如果是应届生,其实我关心的并不是你能否实现出来。当然实现出来更好了。那我关心的更多的是你的基础知识,与学习能力,编码习惯等。比如,你做的过程中可以问,因为我设计的只是一个通用代码,如果你做其它方面比较多,而这方面不足,问的过程中也反映了你的知识面。

  1. 需求的理解能力:当你听清了我的需求之后,你要快速地理解,并且再陈述。
  2. 反应能力,比如一种算法没有实现到预想的结果,或者不是太优化,没关系,我会提示你,这个时候是考核你的基础知识与反应能力。
  3. 在正常的工作中,学习能力尤为重要,公司的业务知识、内部类库的使用、不断出现的新技术,都需要你快速的学习掌握。学习方法很重要:请常按F1,随时随地记笔记(知识点多,常用的技术点重复犯错是不允许的。)常开口讨论。善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,才能成长起来。
  4. 编码习惯。适当的注释、尽可能明确的定义。良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同人员之间的协作。
  5. 作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到麻烦。

沟通能力

沟通能力:比如你在面试的时候,对于我设计的一段程序,一定的时间内没有想出主意或好的解决方案,但你相信自己能做出来,那么你怎么去要求面试者给予时间。如何说服。这考察了你的自信与沟通能力。比如:程序员做久了,都有些个性的。他们都认为自己写的代码是最优秀的,或者自己设计的解决方案很好,那么程序员之间如何为了整个项目或软件的进度达成一致意见很重要。因为一旦进入商品化和产品化的开发任务,不良的沟通协作可能导致项目的流产。

时刻修定自己的认识和行为与公司的核心价值观保持一致

公司经营都会把长期目标分解为若干个短期目标来实现,那么在什么时段做什么样的项目,或者进度的把控,做为程序员要高度地与这些目标保持一致,不要在关键时刻"掉链子",这是最重要的,比如一个项目合同接下来了,而你还沉浸在前一个项目或者是一个不重要的模块上,或者你偏偏在这个时候请假,都会影响项目的实施。我记得小时候在农村有一次快要下雨了,而爸妈正急着收麦子,刚好经过一个卖冰棍的,我就缠着要买冰棍,爸打了我就放在一边哭了,爸当时说的是:"不打勤,不打懒,就打你不长眼"。现在的理解:"物有本末,事有终始;知其先后,则近道矣!"。

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们