JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

软件开发是现时很火的职业。据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%。很多人年轻人会选择编程作为自己职业生涯的起点。如何学好编程?如何成为优秀的程序员?如何规划好程序员这个职业?是许多年轻人关注的问题。在Infoworld最近做的一次调查中,邀请到了JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Spring Framework创建者Rod Johnson,Npm 创建者Isac Schlueter, 以及发明了Python的Guido Van Rossum接受了采访。这些编程界的大牛们分别就“教育背景”、“编程语言”和“编程实践”这三个方面,对年轻程序员的职业规划提出了建议。让我们一起来分享这些大牛的见解吧。

教育背景

在人生中最大的挑战不是技术可以解决的。”Eich说,“所以我们要学习历史、语言、艺术、还有其它人类的知识,而不是只学习与电脑有关的东西。”

Hickey赞同了Eich的观点。他认为,要把编程放在一个更宽的视野中。“在具有历史性的事物中,编程是一个全新的成果。我们不要以为已经懂得了怎样用最好的方法去追求它。”Hickey建议年轻人应该追求其它的学习兴趣去帮助理解在编程中的各种问题。“最好的程序员是那些在他们所擅长的领域里,有理解能力的,善于沟通的,以及能够解决问题的人。软件只是一个工具而已。”

Johnson认为,要成为程序员的话,应该要探索计算机科学和数学以外的学科。这样可以帮助程序员拓宽他们的教育背景,因为最终“编程是关于人的,而不是关于数学的。”即使是当谈及把计算机科学作为一种学历时,Johnson也有着不同观点。他说:“绝大多数时候,我们学习是为了工作。 良好的计算机科学背景的确是有价值的,但我已见到过有许多优秀的程序员,他们拥有不同的教育背景。”

Schlueter 认为,这是作为一名出色程序员的重要一面。“无论你是否上大学,都要尽量花时间,而且要尽早阅读大量的文学和哲学,并尽可能写作,”他说。如果你不打算上大学,那么尽快找一个导师,让他给你布置写作任务和帮你的文章润色。这项工作发生在互联网上,书面语是人们在互联网上交流时使用的。你能写得越有效,你就越会越好。”

编程语言

一旦你坐下来开始学编程了,哪种语言是首先应该考虑的呢?

“OCaml,Haskell,Rust,C++,TypeScript,JS,Racket 或者Scheme,”Eich说。当然,我不是要求每个人都去学习所有这些语言,但只要在合适的时间和地点学好其中几种就很好了,这对那些有兴趣和能力的大学生尤其有用。”

Hickey也建议要有学习多种语言的计划,但他的观点更具哲学性,他提出要把现有的广泛的编程语言中具有代表性的,整合在一起。“选择一种很有代表性的语言,计算机是如何工作的(C),一种封闭式的语言(Haskell,Prolog),一种静态的函数语言(Haskell),和一个动态的函数语言。我喜欢Clojure,”他说。

Johnson提议学习编程语言要用对比的方法。“语言可以影响编程的思维,所以学习一门以上的语言是很重要的,而且学习不同的语言要有不同的方法,”他说。“例如,一个面向对象的语言和一个函数语言,而不是说JavaC#。”

编程实践

一旦你已经开发过了一些项目,你如何把自己的技能提升到更高水平呢?

Eich建议要向早期的或现在的编程大牛们学习如何写出很棒的代码。“阅读高质量的代码,有时候甚至要把它们打印出来,在有需要的地方做好笔记。”Eich说。“说到高质量的代码,我觉得经典的仍然是Kernighan & Ritchie‘s The C Programming Language, 还有 The Unix Programming Environment”。近年来值得一读的代码是‘Solving Every Sudoku Puzzle,或者是 norvig.com的代码。”

要了解更多这些编程大牛们的观点和建议,可以浏览全文:http://wp.me/p6WSQY-1G5

时间: 2024-07-30 06:34:41

JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议的相关文章

WebAssembly系列2-为什么我们需要WebAssembly—采访Brendan Eich

在2015.06.17, JavaScript之父Brendan Eich宣布了一个新项目:将新的底层功能(low level primitives)带入web中[1],?这将使在浏览器或其他JavaScript环境中采用类似于C & C++等语言编写的项目的编译更加容易.如果是第一次听到这个想法,可参见阅读"What is WebAssembly"的基本描述[3]. WebAssembly团队包括来自Google, Microsoft, Mozilla, Apple, 以及W

javascript刷新父页面方法总结

用iframe.弹出子页面刷新父页面iframe Js代码   <script language=JavaScript> parent.location.reload(); </script> 弹出子页面 Js代码   <script language=JavaScript> window.opener.location.reload(); </script> 子窗口刷新父窗口 Js代码   <script language=JavaScript>

Java程序员的JavaScript学习笔记(2——属性复制和继承)

计划按如下顺序完成这篇笔记: 理念. 属性复制和继承. this/call/apply. this/闭包/getter/setter. prototype. 面向对象模拟. jQuery基本机制. jQuery选择器. jQuery工具方法. jQuery-在"类"层面扩展. jQuery-在"对象"层面扩展. jQuery-扩展选择器. jQuery UI. 扩展jQuery UI. 这是笔记的第2篇,聊聊属性复制和继承的事情.非常基础,同样,也非常重要. 一切皆

“抛弃”javascript,拥抱typescript——给所有javascript程序员的一句忠告!

好久不来博客园,今天偶尔来逛逛,发现有不少文章写javascript的,比如面向对象什么的,代码组织管理什么的,看过之后有句话如鲠在喉,不吐不快——“抛弃”javascript,拥抱typescript吧,别再浪费你的青春.你的生命了!这是我给所有javascript前端程序员的一句忠告.不解释,能理解的自然会理解. 没有听说过typescript的同学猛戳这里:http://www.typescriptlang.org

[JavaScript] 初中级Javascript程序员必修学习目录

很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认 为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持 个3个月,你的js层级会提高一个档次,无他,唯有努力与坚持,请看: 1. 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象 2. 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,模式,等各个方面

Java程序员的JavaScript学习笔记(5——prototype和Object内置方法)

计划按如下顺序完成这篇笔记: 理念. 属性复制和继承. this/call/apply. 闭包/getter/setter. prototype. 面向对象模拟. jQuery基本机制. jQuery选择器. jQuery工具方法. jQuery-在"类"层面扩展. jQuery-在"对象"层面扩展. jQuery-扩展选择器. jQuery UI. 扩展jQuery UI. 这是笔记的第5篇,聊聊prototype.内置的Object对象和Object对象的属性和

Java程序员的JavaScript学习笔记 (目录)

终于完结了,历时半个月. 内容包括: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源码级解析. jQuery EasyUI源码级解析. Java程序员的JavaScript学习笔记(1——理念) Java程序员的JavaScript学习笔记(2——属性复制和继承) Java程序员的JavaScript学习笔记(3——this/call/apply) Java程序员的JavaScript学习笔记(4——this/闭包/getter/setter) Java

Java程序员的JavaScript学习笔记(14——扩展jQuery UI)

计划按如下顺序完成这篇笔记: Java程序员的JavaScript学习笔记(1--理念) Java程序员的JavaScript学习笔记(2--属性复制和继承) Java程序员的JavaScript学习笔记(3--this/call/apply) Java程序员的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序员的JavaScript学习笔记(5--prototype) Java程序员的JavaScript学习笔记(6--面向对象模拟) Java程序员

Java程序员的JavaScript学习笔记(汇总目录)

终于完结了,历时半个月. 内容包括: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源码级解析. jQuery EasyUI源码级解析. Java程序员的JavaScript学习笔记(1--理念) Java程序员的JavaScript学习笔记(2--属性复制和继承) Java程序员的JavaScript学习笔记(3--this/call/apply) Java程序员的JavaScript学习笔记(4--this/闭包/getter/setter) Java