`
sun4love
  • 浏览: 230584 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

给程序员新手的一些建议

阅读更多

 

前段时间因为实习生计划花了很多时间做了实习生招聘的工作,产生的一些想法,写在这里。

这次招聘过程中,我发现我们在校的学生有下面的这些特点:

1)NB的项目。当说到自己做过的项目时, 我发现他们做的事都是很NB。要么是研究Linux的底层内核,要么是图像识别处理,要么是推荐算法,要么做高性能计算,要么做数据挖掘,要么是移动方面的协议,还有一些很高深的课题我听不太懂的项目。这让我想起当年我在学校里的实习,对比起我用Java Applet 和 HTML做操作系统的教学课件,或是在公司里用Delphi/PowerBuilder做的那些MIS系统。让我觉得有些汗颜。

2)OK的解决问题能力。当问到算法题时,我发现他们的问题解决能力还OK。我一般问1到2个中低难度的算法题和1个基本的面向对象设计的题,都不难。我相信只要在学校里好好学习的人都应该答得出来。无非就是一些基本的算法和基本数据结构操作的问题,和比较基础的面向对象设计的题,说白了就是作业题。可惜的是,只有5%不到的同学能够在不给提示的情况下答出来,70%的人可以在给一定的提示下答出来,15%左右的同学需要提示到几乎给出答案才能答出来,还有10%的同学怎么给提示都答不出来。

3)WTF的编码能力。老实说,对于解算法题,我还是比较可以接受的,因为80%左右的同学在给予提示后都能描述出解题的算法,于是,我让他们把这个算法用他们最熟悉的语言写出来。但结果让我出乎意料,一段在解法很清楚的情况下只需要不到30行代码的小算法题,只有一个人能在10分钟几写完,其它的人基本所有的需要30分钟左右(甚至40分钟),有2、3个人居然写不出来。有一个比较极端的case是——有个同学花了十分钟都写不出从一个整型数组中找到最小的正数的代码。这个事让我觉得很惊讶,难道大家在做项目的时候不编程吗?

对于这种情况,我想给大家以下后一些建议:

 

  • 我感到我们在校的学生正如“为什么中国的网页这么烂”中所说的——他们习惯于获取大量的知识,而从不对这些知识进行思考和总结。问题不是我们知道多少东西,问题是我们在获取这些知识的时候会不会去思考这些知识后的东西?比如:为什么会有这么多经典的数据结构,数组,链表,树,哈希表,图这些数据结构主要用来解决什么样的问题,他们的优势和劣势是什么?没有思考过,就不算真正的懂,没有思考过,你将无法应对万变的问题,没有思考过,你将成为书呆子
  • 多多实践而不是研究。编程不是在实验室做科研搞理论啊,计算机这本就是一个实践性很强的的学科啊,这不是数学,这需要你多多的实践啊。我们不要真以为读的是——计算机科学(Computer Science )就是搞理论的了,这里面需要很多很多的Engineering的工作。(我实在是很难想像,居然有这么多人写一般难度的程序居然会是那么痛苦的事)
  • 我在我的新浪微博(@左耳朵耗子)里说的,我们不要以为做过项目,会写程序,我们就是程序员了。如果你只是在按部就班地写代码,你就是Coder,江湖叫“码农”,不要把自己当成“码农”,我们一定要对自己的代码,自己的设计不停地反思和总结,并精益求精,写程序本来就是一件有价值的事,这就像写篇作文人人都会写,但并不是人人都能把文章写好。编程和写作都是一样的,这都是在搞创作啊。想做“码农”还是想做“程序员”?自己决定吧
  • 我们的教育的确很“废柴”,但这不是我们成为“废柴”的原因。如果我们的学习还停留在“别人给我什么我就学什么”的被动学习阶段,那么你真的不懂怎么是学习。虽然,我们的学校里并没有教你什么是“Version Control”,什么是“Coding Style”,什么是“Refactory”,什么是“Code Review”,什么是“Unit Test”,也没有告诉你一些经典的设计的和架构,等等,等等,但是这是什么年代了?这个时代不是像我上学那时——学校机房里上机用的电脑连内存和硬盘都没有,用5寸的低密软盘面对绿色显示器的286,上网还要“猫”,而且贵的要死(一小时22元),而且网上什么都没有时代了。我们身边有很多很多优秀的人,网上有很多优秀的文章,书店里也有很多不错的书,而且我们的软件开发日趋成熟,如果我们还学不好的话,那么我们就是在犯罪!

最后,和大家说一下公司的实习生招聘。这个事情其实是毕业生招聘的一个组成部分,也就是说,因为我国教育的问题,再加上学生自己的问题,导致毕业生量多质次的情况很严重,对于公司,其很难从学校招到一个比较不错的毕业生,这种情况已经不是新问题了,所以,也有很多公司都不招刚毕业的学生。因此,通过实习机会了解并招聘毕业生成了很多公司的毕业生招聘的手段。所以,在这里想告诉在校的同学们,千万不要以为实习计划就是字面上的实习。其实,这和正式的招聘没有什么差别,同样也要看你的能力的。

(全文完)

本文转自 酷壳

http://coolshell.cn/articles/4976.html

 

分享到:
评论

相关推荐

    程序员新手必备,逻辑思维相关训练

    总的来说,这些文件为程序员新手提供了一个系统性的逻辑思维训练平台。通过这些训练,新手不仅可以提升在编程中运用逻辑思维的能力,还能培养出分析问题、抽象问题和解决复杂问题的技巧。因此,对于想要在IT行业发展...

    给新手程序员的10点忠告(精辟)

    ### 给新手程序员的10点忠告 #### 1. 规划职业生涯 - **核心要点**:作为新手程序员,重要的是明确自己的职业规划和发展方向。选择合适的行业入手,并逐步深入理解这个行业,避免频繁跳槽,特别是在薪资差异不大时...

    写给即将入行的程序员的一封信

    该文档提供了 Akash 对程序员的建议,旨在帮助新手程序员快速入门。以下是该文档中的重要知识点: 1. 不要等待,马上开始编程。编程经验是最重要的,不要等待学习完所有知识再开始编程。 2. 刚开始不要管算法和...

    推荐给程序员看的书籍.txt

    这本书提供了一系列实用的建议,帮助程序员从新手成长为专家。书中包含了许多关于编程技巧、设计模式和职业发展的见解。它强调了灵活性和适应性的重要性,并鼓励程序员不断地学习新技能和改进现有技能。 #### 6. ...

    给新手程序员的一点学习建议

    以下是我根据个人经历和当前技术趋势,为新手程序员提供的一些学习建议。 首先,理解编程的不同阶段至关重要。编程经历了从面向机器到面向对象的演变。面向机器编程是早期阶段,程序员需要直接处理二进制指令,后来...

    程序员面试全攻略

    《程序员面试全攻略》是一本...《程序员面试全攻略》通过这些具体且实用的建议,帮助程序员在面试过程中表现出色,提高求职成功率。无论你是初入职场的新手,还是寻求职业发展的老手,这本书都能为你提供宝贵的指导。

    程序员的八重境界

    **定义:**新手程序员已经具备了一定的基础知识,能够完成简单的任务,但在解决问题的能力上还有很大的提升空间。 - **特征:** - 能够独立完成小型项目。 - 对新技术充满好奇,愿意学习新知识。 - 缺乏足够的...

    程序员成长的烦恼pdf

    在面对压力和工作与生活的平衡时,《程序员成长的烦恼》可能提供了一些实用的策略。长时间的编码工作可能导致疲劳和 burnout,因此书中可能会讨论如何合理安排工作时间,保持身心健康,以及如何有效地应对压力。 ...

    Java 程序员宝典 pdf 电子书

    "51培训网.txt"和"程序员之家.txt"可能包含了一些培训资源和社区链接,帮助读者持续学习和提升技能。 最后,附带的URL文件,如"程序员之家.url"和"51培训网.url",很可能是指向相关在线资源的快捷方式,提供了更多...

    程序员电子杂志2009高清版

    综上所述,《程序员电子杂志2009高清版》是一本全面反映2009年IT行业发展趋势、技术热点和程序员成长的权威资料,无论对于新手还是经验丰富的开发者,都是宝贵的参考和学习材料。通过阅读这份杂志,可以回顾历史,...

    程序员的思维修炼

    一本讲解程序员所要具备的修养的好书,建议程序员新手阶段开始阅读,培养素养

    程序员必看书籍

    11. **持续学习与个人发展**:《软技能:代码之外的生存指南》、《程序员的修炼之道》等书籍提供职业规划和自我提升的建议。 这些书籍不仅提供了理论知识,还有实践经验的分享,对于程序员的成长至关重要。无论你是...

    致刚入门的程序员五点建议

    【描述】:本文主要针对新入行的程序员,讨论了企业对程序员的实际需求与新手程序员面临的就业困境,并提出了五个建议,帮助初学者提升技能,适应职场需求。 【标签】:刚入门、程序员、建议、文章、职场创业、职场...

    程序员学习能力提升三要素

    - **利用时间**:强调利用好一切可利用的时间进行学习,但同时也提到了不要在上班时间看书的建议,以免引起不必要的误解和困扰。 - **聚焦工作需求**:学习的方向应紧密围绕当前工作需要,而不是盲目跟风学习新技术...

    一个程序员对学弟学妹建议.doc

    【描述】中的内容看似不完整,但从【标签】"建议"来看,我们可以推测全文主要是向学习IT的新生或新手提供实用的学习指导。 【部分内容】中,作者提到了几个关键点: 1. **基础课程的重要性**:作者强调了如数据...

    perl程序员应该知道的事

    书中内容不仅包含了Perl语言的基础语法,还涵盖了高级技巧和最佳实践,这对于新手Perl程序员来说是非常宝贵的学习资源。此外,书籍的作者是Perl社区内的知名贡献者,他们在Perl语言的发展和普及方面有着丰富的经验和...

    程序员十层楼 程序员的修炼

    1. **入门级**:这个阶段的新手程序员通常刚接触编程,对基本语法、数据类型和控制结构有初步理解,例如学习Python、Java或C++等语言。他们可能正在完成简单的练习或小项目,如“Hello, World!”程序。 2. **初级...

    程序员新人成长动力(一个项目经理的早年手记).word

    标题中的“程序员新人成长动力(一个项目经理的早年手记)”揭示了这份文档的核心内容,它是一位有经验的项目经理对新手程序员的成长建议和自身早期职业生涯的反思。这份手记可能包含了他在编程、项目管理、团队协作...

Global site tag (gtag.js) - Google Analytics