智能科技

当前位置:金沙棋牌 > 智能科技 > 提高编程能力的10种方法,程序员的编程能力与编

提高编程能力的10种方法,程序员的编程能力与编

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-12-26 06:02

从上图 StackOverflow 调查得出的关系很明显看出:程序员的年龄越大,声望就越高。

结论

论文的结论是:

  • 1)程序员技术能力上升是可以到50岁或60岁的。
  • 2)老程序员在获取新技术上的能力并不比年轻的程序员差。

程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型。在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每当我听到这样的言论,都让我感到相当的无语。

 

style="font-family: Microsoft YaHei; font-size: 14px;">本文转自:

style="font-family: Microsoft YaHei; font-size: 14px;">英文来源:           

style="font-family: Microsoft YaHei; font-size: 14px;">提高编程能力的10种方法

By Slacken | Published: 2011/07/03

 

style="font-family: Microsoft YaHei; font-size: 14px;">1、学习一种新的编程语言

style="font-family: Microsoft YaHei; font-size: 14px;">学习新的编程语言会强迫你运用全新的方法来思考,特别是当这门语言使用一种你还不怎么熟悉的范式。你能够学习到很多将来你会在你熟悉的语言中用到的思考方式,而且甚至你还可能用新的语言来实现一个正式的项目。

style="font-family: Microsoft YaHei; font-size: 14px;">能够提供一次极好的学习过程但不仅限于此的优秀编程语言包括:Lisp金沙棋牌 ,(Scheme非常好)、Forth、PostScript或者Factor(面向堆栈的编程语言)、J(奇妙的阵列编程语言)、Haskell(强类型、纯粹的函数式编程语言)、Prolog(逻辑程序设计)和Erlang(并行编程典范)。

 

style="font-family: Microsoft YaHei; font-size: 14px;">2、读一本优秀且具有挑战性的程序设计书籍

style="font-family: Microsoft YaHei; font-size: 14px;">我们能从书中学到很多东西。尽管实践很重要,读一本真正好且具有挑战性的编程书籍是挑战你的思维并将其提升一个层次的极佳方式。这样具有挑战性的书包括:《计算机程序设计艺术》(如果你想要一个真正的挑战)、《计算机程序设计与解释》(SICP)、《编程学(A Discipline of Programming)》或者著名的《龙书(dragon book)》。

style="font-family: Microsoft YaHei; font-size: 14px;">你也可以读没那么具有挑战性的书,但要避免读像《天才班》丛书一样、试图在“24小时”或者“21天”教会你东西的书;你很难从中真正提高编程技能。

 

style="font-family: Microsoft YaHei; font-size: 14px;">3、加入一个开源项目

style="font-family: Microsoft YaHei; font-size: 14px;">加入一个开源项目有什么好处呢?你将会同别人合作(当你以前只是在周末从事于个人项目时这尤其不错),而且你必须深入研究和学着理解一个你不熟悉的代码库(这会是非常具有挑战性的)。

style="font-family: Microsoft YaHei; font-size: 14px;">你可以在像GitHub、Sourceforge、gitorious、BitBucket或Ohloh的网站上找到不同的项目。

 

style="font-family: Microsoft YaHei; font-size: 14px;">4、解决编程难题

style="font-family: Microsoft YaHei; font-size: 14px;">你会经常解决编程难题,而且的确存在很多难题。你可以在Project Euler——可能是关于编程难题的最热门的网站——在上找到各种基于数学的问题。

style="font-family: Microsoft YaHei; font-size: 14px;">你也可以尝试代码高尔夫(code golf)——程序员用最少的击键次数来解决一个给定的编程问题。这能教会你很多更隐晦和特殊的语言特性,并且你将必须对编码进行创造性的思考(而这非常有趣)。

style="font-family: Microsoft YaHei; font-size: 14px;">编程难题,主要是代码高尔夫,可以在codegolf.stackexchange.com上找到。

 

style="font-family: Microsoft YaHei; font-size: 14px;">5、编码

style="font-family: Microsoft YaHei; font-size: 14px;">开始从头到尾写一个程序。设计各种体系架构并实现它,如此往复。

style="font-family: Microsoft YaHei; font-size: 14px;">最好的学习编写程序的方法就是编写程序。你会从你自己犯的错误中学习,而且完成一个项目会给人以动力,这比读一本书可有趣的多。

 

style="font-family: Microsoft YaHei; font-size: 14px;">6、读源代码,从中学习

style="font-family: Microsoft YaHei; font-size: 14px;">研究著名的软件项目,像Linux内核(提示:它很庞大)。一个适于学习用途的优秀操作系统是MINIX3.你可以从中学到很多新的语言惯用语法,一两种软件体系架构。读不熟悉的代码一开始是令人畏惧的,但报酬也是丰厚的。

style="font-family: Microsoft YaHei; font-size: 14px;">你还能够增进对你常用的一些API的理解,或者编程语言——通过读它的实现方式。

 

style="font-family: Microsoft YaHei; font-size: 14px;">7、活跃在编程网站上和多看博客

style="font-family: Microsoft YaHei; font-size: 14px;">活跃在像论坛或者Stackoverflow的网站上会将你置于其他程序员及其学识的审视之下。

style="font-family: Microsoft YaHei; font-size: 14px;">还有,多看博客,也许这更可取。好的博客有:Joel on Software(尽管Joel不再写博客了,但好的文章可以在存档中找到)、Coding Horror和Lambda the Ultimate。

style="font-family: Microsoft YaHei; font-size: 14px;">你还应该订阅news.ycombinator.com。

 

style="font-family: Microsoft YaHei; font-size: 14px;">8、写关于编程的文章

style="font-family: Microsoft YaHei; font-size: 14px;">开始在博客上写关于编程的文章,尽管可能写出的文章只有你一个人看。你还可以在不同的问答网站或论坛上回答问题,或者在一些网站(如DreamInCode)上编写教程。在你写关于编程的文章的时候,你得确保使用正确的术语并且知道为什么以便解释问题和技术。这能够让你反省你的编程知识并且提高你的英语语言能力,而这对于编程很重要。

 

style="font-family: Microsoft YaHei; font-size: 14px;">9、学习底层的编程

style="font-family: Microsoft YaHei; font-size: 14px;">学习底层的编程及对应语言对于获取对底层机器的更好理解很有用。试试C,也许还可以学学一些处理器的汇编语言。

style="font-family: Microsoft YaHei; font-size: 14px;">了解计算机是如何执行一个程序和操作系统是怎么工作(在高一层)。如果你真的想认真尝试低级语言编程,你可以读一些关于计算机组织、操作系统、嵌入式系统、操作系统驱动开发等等方面的书(我现在就在读)。

 

style="font-family: Microsoft YaHei; font-size: 14px;">10、别急着求助于StackOverflow。请认真思考先!

style="font-family: Microsoft YaHei; font-size: 14px;">当你遇到一个困难,在试着花半分钟解决无果之后,你是怎么做的?求助于StackOverflow。千万别。而是花一些时间独立试着自己解决。拿一张纸和一支铅笔,草拟出解决办法。假如这没有用,停下来一会儿以保证大脑清醒,然后继续。

style="font-family: Microsoft YaHei; font-size: 14px;">如果一个小时(具体时间取决于问题的大小)后还是没有结果,这时你才应求助于StackOverflow,反正求助之前你得自己想清楚

 

结晶智慧不仅是老年人的财富,更是四五十岁的软件开发者的财富。由于最主要的因素就是经验,即使是年轻的工程师,只要他编程经验多,就能比其他人干得更好。

《Is Programming Knowledge Related to Age?》, 这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick Morrison 和 Emerson Murphy-Hill 对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow.com上的数据是公开的,任何人都可以用来分析和统计,所以这篇论文的真实性是有的)
数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁)
15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。

上图中我们可以看到,程序员的能力在从25岁左右开始上升,一直到50岁后才会开始下降。所以说,程序员吃的不是青春饭。只有码农,靠蛮力,用体力而不是用脑力的程序员才是吃青春饭的人。

 

流动智慧

Reputation声望在2-100K之间。(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值)

论文的作者然后用了一套比较严谨的算法来查看那些所谓的“老程序员”是否在新技术上跟上不了,所谓跟不上,也就是这些老的程序员在回答这些新技术上并不活跃。所谓老,就是37岁以上的程序员。

年龄和声望之间有很强的关联性的原因是,老程序员回答的问题要远远多于年轻人。似乎程序员年龄越大,知识就越多。而且,这些知识似乎并不会过时。

年龄分布图

下面我们来看一下他们的年龄分布图:我们可以看到程序员年纪的正态分布(高点在25岁左右,但是中点在29岁左右)

金沙棋牌 1

说一说我的一些感受:

金沙棋牌 2

我的一些感受

最后,我说一说我的一些感受:
这些年来的对于外企和国内感受—— 国外牛B的IT公司的工程能力并不见得比国内的要强多少,但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。

对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。

编程就像登山一样,越往上爬人越少,所以,在30多岁还有想法,对编程还有热情的人不多了,基本上都是转Manager了。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量

年纪大的人是否跟不上新技术

Robert Fletcher

能力和年龄分布图

然后,计算每个人每个月的Reputation,这样可以找到这个用户的真正的活跃时间,这样便于计算这个程序员的真实能力。(总声望 / 活跃时间),可以得到他平均每个月得来的Reputation。
我们来看看程序员的能力和年龄段的分布图:(你可能会大吃一惊)

金沙棋牌 3

上图中我们可以看到,程序员的能力在从25岁左右开始上升,一直到50岁后才会开始下降。所以说,程序员吃的不是青春饭。只有码农,靠蛮力,用体力而不是用脑力的程序员才是吃青春饭的人。
年纪大的人是否跟不上新技术
论文的作者分析了Tag,用了最近5年内比较流行的技术Tag,然后用了一套比较严谨的算法来查看那些所谓的“老程序员”是否在新技术上跟上不了,所谓跟不上,也就是这些老的程序员在回答这些新技术上并不活跃。所谓老,就是37岁以上的程序员(就是我现在的年纪)。
得到了下表:可以看到,老程序员和年轻的程序员对于一些新技术的学习来说也是差不多的,甚至有些项还超过了年轻的程序员。

金沙棋牌 4

对年轻程序员的感受——国内新一代的程序员们太浮燥了。老实说,对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员所以,并不是编程编到30岁就玩完了,而是编程编到30岁才刚刚入门。这些不合格的程序,整天BS这个不好,那个不好的,而且喜欢速成,好大喜功。

另一方面,年轻程序员的主要财富是“流动智慧”。研究者引入“流动智慧”一词来描述处理与已有知识无关的新问题的能力。通常,老年人无法像年轻人一样迅速地学习新东西,因为年轻人有很好的流动智慧。

上述的条件一共过滤出84,248名程序员,平均年龄:29.02岁,平均Reputaion在1073.9分。

下面我们来看一下他们的年龄分布图:我们可以看到程序员年纪的正态分布(高点在25岁左右,但是中点在29岁左右)

尽管两种智慧在儿童时期都会成长,但流动智慧会在 30~40 岁时开始下降。这就是为什么四五十岁的程序员会在黑客马拉松这种使用各种新技术的比赛中败下阵来。但是,结晶智慧会在整个成年期一直成长,直到生命的晚期才会下降。

用户在2012年内都回答过问题。因为StackOverflow在2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。

年龄分布图

金沙棋牌 5

举例来说,如果一个人一辈子不断阅读,他的阅读理解能力和速度都会提高。正因为如此,老年人的信息理解能力要比年轻人快得多、好得多。在编程方面也一样。

用户在2012年内都回答过问题。因为StackOverflow在2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。

面对老年人,他们最宝贵的财富就是多年的“结晶智慧”。科学家将“结晶智慧”定义为“使用技能、知识和经验的能力”(

论文的结论是:

【CSDN编者有话说】 style="font-size: 16px;">程序员吃得是青春饭?

别逗了!

style="font-size: 16px;">作为年轻人,你可以肯定且大声地说“我写的代码比那些四五十岁的老程序员更快更好 style="font-size: 16px;">”吗? style="font-size: 16px;">千万别太自信了。

首先,我们先来看一篇论文《Is Programming Knowledge Related to Age?》,这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick Morrison 和 Emerson Murphy-Hill 对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow.com上的数据是公开的,任何人都可以用来分析和统计,所以这篇论文的真实性是有的)

你觉得你们公司有严重的年龄偏见吗?如果是,那么你也可以根据一些科学研究来表明以事件为基础的合作能去除同事之间有害的成见。法兰克福和卡尔斯鲁厄的几所大学为来自中国和欧洲的许多软件开发团队组织了一场讲座,并确定那些激励年轻程序员和老程序员之间的交流与合作的团队能够有效地在长时间内减少年龄偏见。

Reputation声望在2-100K之间。(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值)

但是,“人们依然认为,IT 相关的工作更适合年轻的员工,而不是老员工。”这句话出自一篇研究报告《老程序员是否和年轻程序员一样出色?》( 1995 年~2012 年之间存在的年龄偏见。尽管世界上的科技日新月异,但人们依然认为年老的人不如年轻人。从软件开发者的工资年增长情况也可以看出这一点。

我们来看看程序员的能力和年龄段的分布图:

StackOverflow上的年龄和声望的关系

15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。

  • 详情请阅读这篇论文:《减少软件开发中的年龄成见:以认知和合作为基础的多样性干预的效果》(

这些年来的对于外企和国内感受——国外牛B的IT公司的工程能力并不见得比国内的要强多少,但是国外那些NB的IT公司的架构和设计能力远远超过国内的公司,最可怕的是,那些有超强架构和设计能力的“老程序员们”还战斗在一线,这些战斗在一线的老鸟的能力绝对超过100个普能的新手。

征稿啦”返回搜狐,查看更多

上述的条件一共过滤出84,248名程序员,平均年龄:29.02岁,平均Reputaion在1073.9分。

金沙棋牌 6

能力和年龄分布图

减少年龄偏见 = 降低成本

我把这篇文章送给那些和我一样准备为技术和编程执着和坚持的人。

真正有创新性的组织是建立在持续学习和知识共享上的。但这一切存在的前提是团队成员拥有互相合作的基础。将合作的实践融入公司,最终会带来更高的生产力、更少的错误和愉快的团队。

然后,计算每个人每个月的Reputation,这样可以找到这个用户的真正的活跃时间,这样便于计算这个程序员的真实能力。(总声望 / 活跃时间),可以得到他平均每个月得来的Reputation。

结晶智慧实验

金沙棋牌 7

减少年龄偏见 = 更多创新

互联网如今对于人才的需求越来越多,先不说一些大公司BAT之类的,也还有很多中小型公司,这都是数不胜数的。很多人想转行程序员,却又因为网络上太多舆论说程序员是一门青春饭,望而却步。我想说的是,学习这件事,无关年龄!

老程序员为公司带来的并不仅是结晶智慧。例如,Netflix 雇佣了一名 42 岁的软件工程师 Robert Fletcher(下图)。五年之后,他依然在 Netflix 工作。而且显然他不是唯一这样做的人。一般来说,上年纪的工程师对公司更忠诚,能为组织提供更大的持续性和价值。他们能降低员工流失造成的入职成本和知识损失成本。

感谢阅读

金沙棋牌 8

金沙棋牌 9

style="font-size: 16px;">原文:

作者:Jexia 编辑团队

译者:弯月,责编:屠敏

得到了下表:可以看到,老程序员和年轻的程序员对于一些新技术的学习来说也是差不多的,甚至有些项还超过了年轻的程序员。

激励年轻的员工和老员工之间的合作

2)老程序员在获取新技术上的能力并不比年轻的程序员差。

责任编辑:

数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁)

科学研究表明,年轻的程序员和老程序员参与同一项挑战时,假设两人都很熟悉规则,那么通常老程序员能做得更好更快。

金沙棋牌 10

在这种氛围下,受害的不仅是老程序员,还有老程序员的雇主。如果公司不处理年龄偏见,会导致关系恶化,员工关系疏远,以及缺乏内部沟通。这会对软件团队以及一切依赖于创造性、合作和开放式沟通的团队造成巨大影响。

编程就像登山一样,越往上爬人越少,所以,在我这个年纪还有想法,对编程还有热情的人不多了,基本上都是转Manager,也就是管理层。其实,什么职位,Title都是虚的,公司没了什么都没了,只有技术才是硬道理。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量。

50 岁之后的工程师的平均收入会比不到 50 岁的人更低,拥有学士学位的人会低 17%,拥有硕士和博士学位的会低 14%。

喜欢小编文章的,可以点个订阅,小编都会不停更新文章,分享前端学习知识,以及程序员的趣事!

金沙棋牌 11

金沙棋牌 12

年龄偏见就是年龄本身

金沙棋牌 13

德克萨斯州和俄克拉荷马州的几所大学最近主导了一次编程实验,证实了这一点。这次实验由 140 名科技相关专业的学生参加,他们的年龄在 19~54 岁之间(中位数为 23 岁)。所有参赛者在参与之前都接受了使用 Microsoft Visual Basic 编写了最基本的计算机应用的信息。每人有一个小时来编写一个简单的应用,帮助博士课程的主管决定学生的录取情况。实验结果表明,学生的编程经验越多(编程经验与年龄强相关),在这次挑战中的表现就越好。结果还表明,编程经验越少,受到的压力就越大。

1)程序员技术能力上升是可以到50岁或60岁的。

金沙棋牌 14

原标题:程序员过了 30 岁就没人要了?!

本文由金沙棋牌发布于智能科技,转载请注明出处:提高编程能力的10种方法,程序员的编程能力与编

关键词:

上一篇:Plus拍照对比,让人变美的机会不能放过

下一篇:没有了