....
由Eich,Hickey,Johnson,Schleuter和vanRossum向编程新人提供的专业建议。他们分别是JavaScript的作者BrendanEich,Clojure的创始人RichHickey,Spring框架的鼻祖RodJohnson,Npm创始人IsaacSchlueter,和Python语言的发明者GuidovanRossum。
随着编程语言种类的急速扩张,程序员的需求量在到会有17%的增长率,这是美国劳工统计局的官方数据--而其他职业的增长率只有7%。我们不得不说,软件开发这个行业是越来越火了。
面对如此巨大的需求量,有很多非本专业的人儿和还没毕业的学生们都在积极考虑程序员这个职业(很好就业的样子)。那么,想成为一名合格的编程者需要做哪些准备呢?对此,我们采访了几位软件开发领域的大牛,看看他们对那些职场新兵们都有哪些建议吧。
下面就让我们来看看这些编程大师们在学习编程,选择语言,技能提升几方面给我们提供了哪些建议。
1论如何学习编程
拥有某个大学的计算机科学学位或某个培训机构的毕业证书并不能代表什么,编程领袖们纷纷强调全面教育的重要性,而并不仅仅是在毫无灵感来源的shell控制台前死磕。
“人生只有一次,是没办法重来的,”Eich感叹道,“年轻人不要把时间都荒废在玩电脑上和研究代码有几种写法上去,你们应该多接触跟人类相关的各种知识,比如历史、文学和艺术啊什么的。”
Hickey也非常赞同,编程并不仅仅只是写写代码就ok的事情,我们应该用更宽阔的视野去看待它。
“相对于人类历史发展进程而言,编程是一种非常奇妙和新鲜的职业,”他说,“我们不应该假定这就是它的完整形态了,是的,这需要我们一起去努力寻找和见证。”
Hickey提出,“我们应该多去了解其他方面的知识,这样能够更好的理解编程和它的应用能力。”
“真正优秀的程序员是那些专注于认识、理解、沟通和解决问题的人,”他说,“你得明白,软件只是用来增加效率的工具而已。”
Johnson也这样觉得,想当程序员的话,就应该趁在学校的时候多接触其他学科,而不是把时间都浪费到计算机和算法研究上面。毕竟,“程序是通过人的逻辑编写出来的,人的逻辑应该是活跃的,富有灵性的。不要陷入理论的固有模式中去,那样就没意思了。”
“熟读理论基础和一个专业学位能够让你有很大的优势,但经验这种事情,是只有在真正工作了之后才能慢慢积累出来的,”Johnson说,“而且有很多有名的程序员都不是专业出身,他们都有各自不同的背景。”
VanRossum非常同意这个观点,“我认识的有几个英语专业出身的Web开发人员,他们就通过DjangoGirls教程自学的技术,干起活来和那些通过传统四年计算机专业出身的人没啥区别,甚至比他们更牛逼,哈哈。”
Schlueter说了一个奇特的观点:“大家可以试着养成爱于写作的习惯,写什么都行,我认为这是成为一名好的编程者所必要的。”
“最好是高中之后再继续上四年大学,进行素质教育(或称通识教育),不断的写作,查资料,你会懂得越来越多”他说,“这将会是你人生中最精彩的一段时期,在学习和写作中充分享受着你的美好青春,然后你便会得到社会的充分认可。”
2论选择哪种编程语言
一旦你决定走上码农之路,最先面对的问题必然是,你要学习哪种编程语言呢?
“OCaml,Haskell,Rust,C++,TypeScript,JS,Racket或者SICP中提到的语言等等。”Eich建议,“显然我不希望各位把所有语言都学个遍,当然这里的‘各位’不包括那些天赋异禀的学霸们。”
Hickey也支持多语言学习的途径,并且提供了一个更好的方案,就是可以针对于语言类型的不同,在各类型中选择一种具有代表性的语言。
“可以根据类型的不同各挑一个来深入了解,能够更好理解计算机是如何工作的的语言(C语言),一个封装特性好的语言(Haskell,Prolog),一个静态类型的功能性语言(Haskell,again,fine),和一个重视功能性的动态语言,比如Clojure。”他说。
Johnson认为学习语言要具有针对性。
“语言可以影响编程的思维,所以学习多种语言是一件很必要的事情,不同的语言有不同的处理方式,”他说,“举个例子来说,我建议大家学习一个面向对象的语言和一个功能性的语言,而不是说,Java或C#。”
“Python是一个好的开始,”vanRossum说,“从零开始的话,毫无疑问你应该直接去学习Python3。”
Johnson也推荐年轻的开发者们北京治疗白癜风多少钱咨询白癜风专家哪里最好