高手教你快速学习编程语言

发布时间:
浏览次数: 569

小编为您收集和整理了高手教你快速学习编程语言的相关文章:背景介绍:Paul在牛津大学获得了哲学、政治学及经济学学士学位后,曾在微软,sybase,Hyder和QA培训等公司做软件以及技术培训工作。目前他是专业技术培训公司MallonAssociates的董...

  背景介绍:

  Paul在牛津大学获得了哲学、政治学及经济学学士学位后,曾在微软,sybase,Hyder和QA培训等公司做软件以及技术培训工作。目前他是专业技术培训公司Mallon Associates的董事,并总管一家跨国金融服务公司的全球技术培训生项目。

  你从当初自学编程到现在运作和掌管贵公司的专业技术培训业务,并总管一家跨国金融服务公司的全球技术培训生项目,这其间经历了多少年?

  初中时学Basic的经历不算在内,我第一次正式学习编程是在1992年到1993年吧。

  2013年的时候我成为我们公司的首席培训师。

  2015年起我开始负责我们最大的客户的全球技术培训生项目。

  这样算下来20多年吧!

  我知道C++之父Bjarne Stroustrup请你喝过酒。

  有很多人好奇你和Bjarne是怎么认识的。

  我从是2003年开始为我们最大的客户提供技术培训服务的。

  在我的职业生涯中让我特别惊喜的一个事件就是2013年的时候Bjarne Stroustrup加入了该公司。

  那之后我有过几次和他面对面交谈的机会。

  能和我心目中的偶像聊生活和技术实在是太兴奋了!

  你本科所学的专业是PPE(Philosophy, Politics and Economics哲学、政治学及经济学),它和计算机编程并没有多少关系。

  你是怎么想起来要自学编程的?

  你的第一份编程工作是怎么得来的?

  1992年到1993年我在牛津读书的时候突然生了一场重病。

  当时为了方便治疗我不得不离开牛津回到家乡。

  回到老家看病的那一年里我要养活自己所以不能无所事事(本文作者注: 在英国大部分年满18岁的人都自己工作挣钱不再依赖父母。除少数情况外,住在父母家的成年子女要给父母交房租和分担水电等生活费用。)。

  看病之余,我需要找一份全职工作。

  我的一个朋友当时在一家公司的技术部门工作,他的推荐帮我赢得了一次面试机会。

  那次面试很顺利,那之后我就开始边工作边学习。

  我记得最开始学的是两门语言,Visual Basic for Application和C++。

  我当时的工作内容之一是在excel里面用VBA编程。

  可是如果你之前并没有学习过编程的话,你是如何通过那次面试的呢?

  我当时用了一个周末做了一些准备。

  一个周末?

  是的。

  你已经做了很多年的专业技术培训,到现在你总共掌握了多少种编程语言?

  我数一下。

  Java,Scala,Perl,Python,JavaScript,C,C++,C#,SQL MDX,SQL的各种版本,Q,VB,F#,Forte,swift和ObjectiveC。

  十六种?

  差不多吧。

  下面我想是程序员们最关心的一个问题了。

  当客户要求你提供某种你原本不熟悉的编程语言的培训时,你是如何做到在非常短的时间内掌握,甚至能够给有过实际使用该语言工作的学员授课,让他们从中有所收获的并得到他们的好评的?

  你有什么特别的学习方法吗?

  我觉得学习编程语言和学习任何一门人类语言一样,你不能只是被动学习,你必须主动使用。

  仅靠一本入门书学习语法并能写出一句可以编译通过的语句是不够的。

  我会给自己布置题目,选择一些有趣的小项目,然后用这门新语言实现。

  在项目的选择上你有什么考量吗?

  我只选择自己已经用其他熟悉的语言做过的项目,这样可以把未知因素降到最低。这是其一。

  其次我会根据要学的这门语言的特点去选择最合适发挥该语言优势的项目。

  比如说Scala是一门函数语言,我会选择一些和数字处理相关的项目,而不会用Scala去做一个用户界面。

  通过实际做项目来学习是个非常好的主意!

  除此之外,你还有其他的学习途径吗?

  学习编程语言和学习一门外语是类似的,在你着手写代码同时你也要学习如何阅读别人的代码。

  就像你不会仅仅学了某门外语的基础单词和语法就立即去写作文一样。

  你要花大量的时间去精读和泛读经典的作品,有了足够的输入才能自己有所输出。

  你这样一横向比较就很清楚了。

  学英文的时候,我们是从第一天就开始阅读简单的课文,然后在学习的初期,中期和所有的学习过程中要始终坚持阅读。

  是的。

  像要学好英文必须持之以恒地阅读原汁原味的英文作品一样,程序员必须坚持阅读他人的优秀代码。

  我一直奇怪为什么人们学习编程的时候就把这一点给忽略了。

  是不是有些程序员水平提高得慢也和平时工作中光写不读有一定的关系?

  要做到不停地进步就必须坚持阅读优秀的代码对不对?

  那你一般是从哪里去找合适的代码来读的呢?

  假如你所在的公司需要你学习一门新语言好做一个新的项目,或至少你有相应的权限,那你就可以直接阅读公司内部已经上线的工作代码。

  工作代码的质量虽然良莠不齐,但通过阅读你会慢慢体会到它们之间的差异,并从中学习。


  如果没有相应的公司内部资源可用,你可以去github上找开源代码学习。

  我担心国内没有google很多优秀的资源不方便找。

  其实没有google影响不大,bing也是可以用的。

  在中国出差的时候我就经常使用bing。

  还有就是读代码时不要仅满足于理解代码的意思,更要思考这行代码这么写好不好,有没有更好的写法,可以做到效率更高,或者把代码写得更简洁易懂,更容易维护等等。

  你给的意见都非常实用。

  不过我想会不会有人担心你之前的基础比较好,所以才能做到轻松地通过阅读源代码和自己做项目的办法来学习新的语言呢?

  在学习的最初阶段我估计这么做会有一定的难度吧。

  在入门阶段我觉得一本经典的好书还是很有必要的。

  但我想强调的一点是:如果说一门语言本身可以被学习和掌握的内容像是一个广大的二维平面的话,那么一本经典读物就是这个平面上的一条通道。

  再优秀的图书都不可能展示给你所要学习的方方面面;作者能给出的是ta自己觉得效率比较高的一条道路。

  然而走法是无穷无尽的,没有唯一的最好方法,尽管学习效率方面会有一定的差别。

  我会选择一本好书作为一种方向上的指南,但它不是一份地图,也不是我学习的全部。

  经典的工具书我也会买来,比如reference和cookbook之类的。

  这些工具书在做项目和今后的工作中会有很大的帮助。

  平时没必要一条一条顺序去读,只是一种参考。

  你会通过网络课程来学习吗?

  我确实使用过一些,不过课程的质量高低对学习的影响很大,这一点要留心。

  Coursera是我用过的一个不错的学习网站,里面几乎所有资源都是免费的。

  我在上面发现过很好的课程,但有时也有很差的。

  如果你觉得某个网络课程并不适合你,你不必勉强自己,继续去寻找更适合你的方法。

  我想一个人自学的时候难免会遇上难题或绕不过去的弯,在那种情况下你是如何解决这些问题的呢?

  我建议任何人都不要一个人闷头学习,要和其他人一起学,并请教有经验的人。

  如果是环境设置的问题,我经常能在stackoverflow网站上找到解决对策。

  如果你身边有同样初学的朋友,要经常和他们一起交流讨论。

  如果你身边没有这样的朋友,就去网络上寻找其他初学者。

  比如去一些开源网站帮助做一些工作,哪怕只是帮忙写文档做点贡献,这样很容易结交到志同道合的伙伴。

  如果你认识已经有经验的朋友或同事就更好了。

  为防止过度打扰别人,你可以平时积累各种问题,把其中有一定深度的问题保留下来,有机会的时候一次性问清楚。

  这一点很像我以前一个同事说的,小事不决问google,大事不决问老板。

  绝对不要一有问题不动脑筋不做研究就直接问老板,否则老板会因为你把ta当成google搜索代理而非常不满的!

  是这样的。如果你问的是一个好问题,即使是有经验的人也不会觉得你在浪费ta的时间。

  我突然想到一点,因为你工作的关系经常要从能够教会别人的角度去学习,这样是不是帮助你遇到任何含糊的地方都不能草草地绕过去,而必须自己理解得清楚透彻才行?

  这样的高要求是不是对你的学习也起到了帮助?

  我觉得确实是有帮助。

  教别人是一种很好学习手段,对不懂的内容你不能蒙混过关。

  在教的过程中我也经常可以从别人的问题和讨论里学到新东西。

  真所谓是教学相长啊!

以上就是小编为您收集和整理的潜能开发,儿童编程,培养儿童编程相关内容,如果对您有帮助,请帮忙分享这篇文章^_^

本文来源: https://www.qinzijiaoyu.com/a/643b5791f84c8d46bf0fdbf2.html

分享到: