每个大学毕业的程序员应该具备哪些技能?[关闭]


9

我们学校有一位客座讲师,他对即将毕业但未达到他期望的技能水平的人进行正切。熟悉一种大型编译语言(如Java,C ++或C#),一种脚本语言(如Python或Ruby),一种Web框架。你们认为还有哪些其他技能对毕业的学生绝对至关重要?


我假设你是说要大学毕业?
迈克尔·肖

1
@托勒密:在美国,大学一词是正确的。
Macneil 2010年

1
一个会踢屁股,不听短信的人,小混混们!socializedpr.com/…–
Job

Answers:



4

应届毕业生不仅需要学习的欲望,还需要对学习的痴迷,对学习方法的理解以及对软件现实的牢固了解。我通常不在乎您知道什么语言,但是每位大三学生都必须:

  1. 了解历史。计算机科学是一个经过充分研究的领域,存在许多已解决的问题。知道这一事实为您学习之前的事物打开了大门。即使知道拥有丰富的历史可以从中挖掘知识,也比许多毕业生graduate不休。其中包括诸如big-O表示法,算法历史,先知原则(Knuth,K&R,Hofstdater等)以及公认的实践和模式。

  2. 知道可以解决。当开发人员遇到问题时,我总是感到惊讶。学习的一部分是简单的原理,即问题总是容易解决的。一旦您知道了这一点,它便为您寻找合理答案提供了思路。

  3. 了解分解。不仅可以解决问题,而且解决问题的方法就像分而治之一样简单。将问题简化为更简单的组件,您的答案将始终存在。

  4. 知道如何衡量。除了能够分解问题之外,新开发人员还需要知道如何收集有关这些问题的事实。多久?多大?多快?多少?简单的事实是理解和客观思考的一步。在没有事实的情况下进行假设是在问题空间中迷失的简便方法。

  5. 要客观。所有问题都可以分解,度量和简单理解。无法理解的问题仅需要额外的分解,度量和理解。生气或沮丧无济于事,争论理论或指责也无济于事。与解决问题的过程相关的任何非理性行为或信念都是有毒的,这使得解决方案很难找到。

  6. 偏好模式和原则。您将遇到许多正确的方法来做事情,语言,编程模型,计算机体系结构,甚至是工程方法。没有唯一正确的方法,但是可以反复应用坚实的基础概念。学会看这些模式,因为它们将指导您学习和思考每一步。



0

作为雇主,我只会雇用以下人员作为程序员:

  1. 有单步执行代码的经验。
  2. 可以选择适当的设计模式来解决一个简单的特定问题。
  3. 可以实现反映他们选择的设计模式的代码。

根据我的经验,在申请编程工作的计算机科学专业毕业生中,只有不到5%的人具有基本技能。这些是在商业上有用的最低技能,重要的是,并非每个人都能够学习这些技能。

其他值得拥有的还有:

  • 团队项目工作经验
  • 使用源代码控制
  • 单元测试经验

这些使他们与现有开发团队的集成更加容易,但是通常可以在工作中教授这些主题。


0

我曾经有一个团队,其中大部分都是我刚毕业的员工“继承”的,而我的经验是,那些真正从事“下一步”编程研究的人(最赚钱的人)是最有能力的团队成员。因此,经验是关键,什么语言都无关紧要

但是,如果您查看招聘人员的需求(在所有常见的招聘人员网站,如jobserver.com等),有趣的是,发现有很多人要求C ++,C#,Java,但也有其他人正在寻找和像COBOL这样的“异国情调”事物仍然存在。


0
  1. 人际沟通技巧
  2. 务实的方法(不是那种学术理论)
  3. 能够认为自己不是技术上有经验的客户
  4. 能够评估重要/可忽略的方面,包括成本/收益
  5. 团队合作能力
  6. 能够进行战略思考:架构,可扩展性,可扩展性
  7. 公开接受大学的教义与现实世界无关(取决于大学-有些情况对此有所帮助)。

这个专业的学习过程永无止境。一个人必须不断学习和提高自己,否则,他会很快真正地“退出”游戏。


这些都是有用的。但是,几乎有零的大学毕业生有他们,而且他们并不严格,因为大多数人很容易在工作场所获得。我认为您在回答另一个问题。
dbkk 2010年

@dbkk-不好意思,但问题不是“应届毕业生应具备的技能”,而是“应……具备的条件”。另外,不,它们不容易获得。恰恰相反,拥有多年经验的人往往仍然缺少大多数人。
Rook

1
这些是通用技能,很多并不真正适合在学校学习。
David Thornley,2010年

-1

其他答案很好,但是我想说大学里被忽视的第一名技能似乎是实际的 软件工程

教OOP和Java之类语言的基础课很棒,但是在第三和四年级,为什么学生(至少在我当地的大学里)写编译器和操作系统,而不是学习如何识别和创建好的体系结构,剖析需求并从中创建技术规范列表,也许最重要的是,好的代码有效和坏的代码之间有什么区别。

这就像我们的大学几乎生产出编码器,而不是软件工程师。我绝不会聘请没有在工程方面表现出一定技能/才华的人。


4
因为教给人们的是计算机科学,而不是软件工程。如果大学和学生意识到计算机科学!=软件工程,计算机科学是一门科学,计算机科学与编程无关,而软件工程与编程无关,那么这个问题将消失。
Thomas Owens

-1。即使您从未真正在此级别下工作,也要了解事物的工作原理(编译器,OS,汇编语言等),这很重要,因为在某些时候您将面临泄漏的抽象。
dsimcha'2

@dsimcha,如果您相信的话,那么您对现实世界中的公司目前正在雇用哪种软件工程师的看法非常狭窄。这并不是说这些东西没有增加任何价值,而是不学习更重要的东西所带来的机会成本。
妮可
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.