【51CTO.com快译】Donald Knuth、Ken Thompson、Dennis Ritchie以及Grace Hopper:美国这片土地上诞生过众多最伟大的软件工程师。
但在过去二十年中,美国之外的各个国家在计算机技术与教育领域也取得了巨大成就。事实上,在中国以及其它一些欠发达国家,每年都有大批年轻人成为熟练的程序员。
那么,全球最强程序员在哪里?而更重要的是,为何某些国家能够在这一领域取得优势?
中国与俄罗斯登顶
HackerRank公司会面向拥有超过100万名程序员的社区内组织各类编程挑战活动,同时亦为企业提供人才招聘服务。根据各国程序员解决不同难题的能力(包括‘算法’、‘数据结构’乃至C++或者Java等特定语言等方向),HackerRank给出结论称,最顶尖的开发人员来自中国——俄罗斯则紧随其后。
中国是个人口众多的国家,所以存在众多具备编程才能的人才也在情理之中。俄罗斯亦是同样。
但单靠人口并不能解释为什么中国与俄罗斯程序员拥有如此出色的排名,而且事实证明也非因为中国及俄罗斯的程序员更热衷参加编码赛事。根据谷歌Code Jam等编码活动的结果,中国与俄罗斯确实在各类赛事中皆拥有精彩的表现。
同样值得注意的是,特定国家在特定领域往往拥有技术优势:日本程序员最擅长人工智能,而香港则拥有最出色的Python程序员,最佳Ruby程序员来自芬兰,丹麦则出产优秀的SQL程序员。最佳数据库程序员来自瑞士,乌克兰最擅长安全领域,斯里兰卡专于分布式系统,法国则登顶C++开发。
从基础教育抓起
在HackerRank公司先进技术内容经理Heraldo Memelli看来,中国与俄罗斯程序员之所以水平更高,是因为“这些国家可能采取集中化教育方式。人们很早就开始接触数学、科学与编程内容。伟大的程序员可能来自任何地方,但更早学习数学能够帮助他们尽早发挥出自己的天赋。”
来自中国的高水平程序员张石米(音译)支持这一假设。“数学与计算机科学在中国很受欢迎,家长和学生也关注与科学技术相关的各类话题。”他同时指出,教育中的激烈竞争意味着中国学生必须尽早养成良好的学习习惯,而这一切都能够在他们接触到编码课业后更为努力地进行深入研究。
“中国学生从小学阶段就非常努力,因为缺乏充足的高质量教育资源供聪明的学生支配,”张石米表示。“他们必须全力以赴考入重点中学、高中和大学。很多学生在学习编程时,仍然保持着这种努力的习惯。”
另外,美国大学生在学习编程的具体方式上与中国亦存在差异,不过张石米认为美国的教育制度更有优势。“中国高校的大部分基础课程是由讲师传授,而非教授,所以这些课程在质量上无法与美国高校相比。在美国,学生可以在大二或者大三参加研究小组,但中国则只有顶尖大学能够做到这一点。”
尽管张石米认为美国高校在制度上更有优势,但这似乎不足以让美国的年轻人在与中国大学生比拼时胜出。
需要组织更多黑客马拉松活动
Memelli认为,美国应该在课程之外组织更多竞争性活动。“美国教育工作者可以组织补充性的课外竞赛活动,包括黑客马拉松等,”他建议称。
相比之下,张石米认为美国学生更擅长解决实际问题,而中国学生由于投入学术研究的时间过多,而缺乏检验自身真实水平的机会。“这实际上能够帮助中国学生在进入行业之前拥有更为扎实的基础技能,但美国学生仍然更善于解决真正的挑战并改变整个世界。”
卓越中心
中国与俄罗斯在广义层面上也许水平更高,但为什么特定国家往往在特定领域更具优势?
Memelli认为,这是因为各个国家可能存在一些“倾向”。举例来说,如果某个国家需要大量的人工智能专家支持特定行业,那么相关学习者群体也就更大,出现顶尖程序员的机率自然更高。
这样的结论非常看似直白,但却具有重要的含义,特别是在招聘特定类型的开发人员或者决定在哪个国家建立具体项目时。总体来讲,特定编程技巧在世界各地并非均匀分布,因此我们应当更有针对性地物色最出色的对应人选。
本文作者:核子可乐译
来源:51CTO