我们如何改善总体程序员教育和培训?[关闭]


13

上周,我刚刚观看了《第二人生》的菲利普·罗斯代尔(Phillip Rosedale)的凯文·罗斯(Kevin Rose)所做的精彩采访。

他们就如何找到,聘用和确定优秀的程序员,以及找到优秀的程序员有多么艰辛进行了精彩的讨论。

这使我真正考虑了我们程序员学习的方式。对于我们大多数人,包括我自己在内,我们都是自学成才的。成为一名程序员很棒,任何人都可以学习和发展技能。

但是,这也意味着,没有一个真正的标准来确定一个好的程序员是/是什么,以及什么样的环境可以促进编程技能的发展。

这不是一个问题,而是我的一种愿望,希望了解我们如何才能改变编程的文化和编程的管理者,从而鼓励教育和自我完善。

继续教育,YouTube视频,书籍,会议有很多途径,但是由于我们所做的事情具有经验性,因此并不总是清楚学习和掌握重要的知识。

让我们看一下Joel 12 Steps。

乔尔测验

您是否使用源代码管理?

您可以一步一步构建吗?

您每天制作吗?

您有错误数据库吗?

您在编写新代码之前会修复错误吗?

您有最新的时间表吗?

你有规格吗?

程序员有安静的工作条件吗?

您是否使用金钱可以买到的最好的工具?

你有测试员吗?

新候选人在面试中会写代码吗?

您是否进行走廊可用性测试?

我认为所有这些都具有重要的价值,但是由于我所说的“经验差距”,如果程序员或经理从未经历过因未完成列表中的项目而遭受的任何负面后果,他们将永远看不到需要做任何事情其中。

经验鸿沟是我的基本理论,即我们每个人都有不同的工作和不同的经历。因此,对于我们中的某些人(这些人一直与数十名程序员一起工作),必须具有源代码控制。但是对于那些一直是唯一的程序员的人,他们无法想象需要源代码控制。

正是由于我们在学习方面存在重大缺陷,我们才根据人们的最佳实践对他们进行评估,以及他们这样做的原因都可以引发一场大战。

我们总是根据他们的工作来评估他们,并认为:“哦,如果这个人/ gal没有做过xyz最佳实践,那么他/她就不能成为一名优秀的程序员,因此,不要浪费时间或精力与他们聊天。”

这就是为什么我们有如此多的编程火焰战争的原因,由于经验差距,我们无法想象人们没有做出我们必须做出的决定。

因此,这使我想到,我们完全需要重新考虑如何训练,教育和管理程序员。

例如,在您的经理的鼓励下,有百分之几的人参加会议,甚至让他们付费?

对于我和很多人来说,这是极为罕见的,我们很多人都希望参加会议,了解更多信息,但是没有钱去做。

因此,这个问题的重点确实是激发了我们如何更好地进行培训,学习和管理?

我们如何创造一种新的学习文化,不会侮辱人们没有相同的工作经历。

是的,我们每个人都有工作要做,但是我们做好工作的能力取决于我们对提高对技能的掌握的愿望,兴趣和支持。

现在,我看到我们的文化变得杂乱无章,我们支持精英阶层,但是我们当中很多想要变得更好的人,只是没有足够的支持来学习和改善自己。

我的意思是,我们作为一个行业,是否希望被视为可替换的齿轮?

谢谢...


+1:我认为是.NET Rocks的卡尔·富兰克林(Carl Franklin)曾经指出,编程行业“吸纳了学徒”。我希望我已经正确地引用了这句话;但我完全同意这一观点。我真的不知道这些天入门级候选人是如何工作的。
Jim G.

感谢您的好评。但是,我的目标之一是帮助唤醒我们这个行业的巨头,我们需要更好的教育机制,而我只是认为会议和大学还不够。虽然不确定什么是正确的答案。
crosenblum

我的目标不是推动特定的框架或方法,而是推动更多的教育并确保程序员得到支持。
crosenblum 2011年

任何人都可以尝试学习和发展技能,大多数人没有所需的属性;但无论如何,都要付出我们行业的成本。
2011年

你有采访的链接吗?youtube.com/watch?v=irF-V9RUuXo这个吗?
Lukasz Madon

Answers:


13

哇,好想的问题,很难回答。因为我们都有不同的经验和期望,所以很难提出一种适合所有解决方案的尺寸。但是,我将抛弃我多年来在同一个主题上发表的一些意见

1)不再认为跳槽是一件很糟糕的事情,而是要鼓励它。每隔几年更换公司。程序员在职业生涯中接触了许多不同的技术,方法和业务。企业不断获得新想法。

2)不再将自己视为X公司的程序员,而将自己视为向X公司提供服务的专业人员。如果您认为自己像专业人员,那么您将被视为专业人员。如果我们被视为可替换齿轮,那是因为我们的行为就像可替换齿轮。

3)大学需要改变。他们应该具有2年的计算机基础教育初期,然后进行选择。计算机科学或计算机工程。工程领域需要每天在现场工作的专业人员,而不是只写论文的专业人员。而且所教的内容必须切实可行,这样您就可以在毕业后的第二天开始工作。对于那些没有通过学位课程的人,也许会有一个学徒计划。

4)编辑:这有点夸张。我的意思是,无论年龄和经验如何,我们所有人都有很多可以互相学习的地方。

5)与第2点有关。不要再视雇主对您的职业负责。你是。只有你 如果您想参加会议,请自己付费(如果您的公司不愿意)。每年专门为书籍,培训和专业发展拨出钱。如果您等待雇主将您送去接受培训,那么您将等待很长时间。花时间看你的技能变得无关紧要。做得还不够吗?换工作。

6)我们需要对自己和对我们的程序员诚实。编程很难。很难。我仍然看到毕业后保证赚钱的计算机培训广告。这将许多人带入该领域,他们根本没有资格甚至更糟,除了钱以外没有其他真正的兴趣。我们需要找到一种方法来鼓励他们重新思考他们的职业计划。

在这一点上,我认为我的头将要爆炸,所以我将得出结论。

好问题!我非常期待阅读更多回复。


3
对于点2和点5的大部分,+ 1。这是一个令人振奋的时刻,当您意识到雇主比您更需要您时。
卡尔·诺鲁姆

@卡尔,那真的是一种很棒的感觉。

+1表示很好的问题。完全同意。我也完全同意分2和3
KeesDijk

我认为在不久的将来,商品化趋势不会逆转。在大多数公司软件商店中,趋势是朝着角色的超专业化(又名“鸽子化”)发展。
2011年

1
但是经济可以迫使我们从事工作,而我们没有那么多的自由或选择。
crosenblum

1

我不认为这仅仅是由于缺乏教学而造成的混乱。我认为实际上“最佳实践”会因工作的不同而有所反映。“最佳实践”将始终基于特定的上下文。

对于某些最常见的工作领域,确实有很多交叉之处。Web开发。但是,我认为相信一个谬论是,仅仅因为在大多数工作中都从事某种特定的实践是件好事,所以应该在所有工作中都使用它。

您从事的实践应来自对如何使您更好地工作的分析和实验。不应盲目选择它们。仅仅因为某些事物在网络上经常被回声并不能使它成为您所处情况的真相,也就不是一个真理(对于所有情况)。


0

锻炼头脑的好问题,我同意需要做的事情,但我认为无法回答。我的尝试:

首先,一般来说,不要杀死创造力,我必须说我同意肯·鲁滨逊爵士,观看TED的精彩演讲。我们的教育体系正在扼杀创造力,必须对此加以修正。特别是对于程序员。

二次教样模式我们的专业领域还不够成熟。我们认为有很多不同的方法可以解决,但我们无法就它们达成一致。(考虑一下TDD,BDD,Agile vs Waterfall,所需的文档数量,Java或.Net)在我看来,这是由于没有上下文的讨论以及很多专业知识。如果不知道在什么情况下问问题,就无法做出正确的选择;如果只知道一个选择,就无法做出正确的选择。当您将其带回教育时,似乎无法解决。您不能期望有人知道所有可能的上下文和所有可能的解决方案。但是现在有了模式,它们提供了一些通用的解决方案,以及适用的上下文和解决方案崩溃时的上下文。恕我直言,这是我们需要教的方式,

第三,对示例放下免责声明我认为我们在MSDN,博客,书籍等中显示的示例存在问题。示例通常被愚蠢地理解,以阐明作者试图提出的观点。但是在最基本的示例中,已经在许多层面上做出了决策。这些示例教导所有其他错误的决定。我认为每个示例都必须带有免责声明,以说明要点和总体上不应该做什么。一个很好的例子是今天在这里博客。

最后要做的事我认为还需要做更多的事情。我已经学会了大多数只是做,失败,修复和讨论。

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.