无师自通变身程序员你也可以做到

治白癜风专业医院 https://mjbk.familydoctor.com.cn/bjbdfyy/
白癜风临床治疗 https://m-mip.39.net/fk/mipso_5429169.html

全文共字,预计学习时长11分钟

图源:unsplash

科里·奥尔索夫既是作者,也是演讲者,同时是一名创业导师。他所创作的《无师自通:专业程序员的养成》被BookAuthority评为有史以来最好的编程类书籍之一。尽管大学时主修的专业是政治科学,克里·奥尔索夫后来却在eBay当软件工程师,又多次在硅谷创业,这些工作中积累下来的经验成为他创作的基础。

他在书中为我们展示了如何无师自通成为一名Python程序员,采用的是一种非传统的方式:编码实操先行,理论学习次之。这份指南足以带领新人程序员们从写下第一组Python程序开始,直至成长到可以通过第一次技术性面试。

如今,越来越多人想要自学成为专业的程序员,这种趋势肯定还会延续下去,于是,我们决定访问科里·奥尔索夫,与他共同探讨初学者要面临的最大挑战。

新入行的开发人员要不要既学前端开发又练后端开发,以及在职业生涯的起点上,Python新人开发员有哪些可以考虑的工作类型,对于这些问题,科里都会为我们一一解答。

Evrone:科里,您好,很荣幸今天能够跟您面对面交流。现在开始吧。有人说,对于软件开发,就像对于音乐表演和画画一样,有些人抱有天生的热忱,您觉得这是真的吗?

科里:我相信肯定有部分人在编程上是有天赋的。但并不代表其余的大部分人就不能做编程了。

如果有人觉得自己没有编程天赋,我会推荐他去读丹尼尔·科伊尔的《一万小时天才理论》。他详细地阐述了天赋的作用是如何被高估的,同时充分论证了学成任何技能的关键更多在于刻意练习而不是天赋。

Evrone:现代IDE编辑器和VSCode一类的代码编辑器都习惯将Git与精美的图形界面整合到一起。您觉得,对于新入行的开发者来说,是学习使用Git命令行界面好呢,还是依赖IDE集成工具好呢?

科里:在我的书上也好,课堂上也好,我都会教学生怎样根据命令行使用Git。IDE集成工具是很好,但是它要求对GUI(图形用户界面)下面的变化要有基本的了解。

Evrone:对于新人开发员而言,最难的一件事或者一个概念是什么呢?

科里:大多数程序员最先碰到的难关是函数,但是,大多数情况下,新人程序员要学的最难的概念是面向对象程序设计(object-orientedprogramming)。Python中,将“自身实例”作为参数传递的概念尤其难为理解。

Evrone:在年,标准英语读写能力是不是世界各地的软件开发者都必须具备的呢?对于这个专业来说,这是个必修技能还是选修技能呢?

科里:这是个有用的技能,但不是必须的。说它有用是因为很多资料都是用英文写的。可就算这样,去年我有幸在东京的PyConJP上发表演讲,那里的Python场景很宏大,可是在日本说英语的人很少。由此可见,不会说英语也绝对可以成为一名优秀的程序员。

Evrone:您的书《无师自通:专业程序员的养成》帮助无数想要成为软件开发员的人奠定了入行的坚实基础。您现在拥有五万个Facebook组群,在知名度这么高的情况下,您目前工作的动向是什么呢,能跟我们分享一下吗?

科里:眼下,我正在写一本新书,叫《无师自通:计算机科学家的养成》。这是上一本书的续作。在第一本书里,我有提及一部分计算机科学知识;而在这本新书里,我会更深入地阐明一些概念,对自学而成的程序员来说,这些概念对他们整个职业生涯都是很有帮助的。

此外,我手头还有一个新项目叫“编码表”。这是一个网站,上面有超过两万门编程课程,而用户可以通过价格、评论、主题以及其他标签在这些课程中进行筛选。一旦你找到合适的课程,这个网站就能帮你结识到参加编程课程的其他人。

图源:unsplash

Evrone:运营这样庞大的一个Facebook社区,对您开发和改进指导方案有没有帮助呢?

科里:肯定是有的,它可以帮忙找出那些重复出现的问题。这也是我创立“编码表”的出发点之一。总有很多人在问,针对不同的程序设计科目,什么课程是最好的。这样相同的问题很多,我们却要反复去解答,这样很没有效率。所以,我决定创建一个网站,帮助人们找到针对任何程序设计科目的最佳课程。在这方面我有很多想法,这些想法对我优化课程设置也有帮助。

Evrone:大部分人都认同,Python是最佳的多用途编程语言,是应该教给初学者的第一门编程语言。那么,您觉得程序设计中第二优秀的语言是哪种呢?除了Python,您还有其它喜欢的语言吗?

科里:如果不先教Python的话,我会根据学生感兴趣的领域,选择教JavaScript或者Swift。这两种都很好学,市场需求也都很旺盛。

Evrone:对于初学者,他们可以选择从VSCode这类简单但可延展的程序编辑器入手,也可以直接接触PyCharm这种功能齐全的IDE,这两种方式您会推荐哪一种呢?

科里:在我的书和课程上,我都是从IDLE开始教的。很多学生都掌握不到IDLE的窍门,而IDLE已经比VSCode和PyCharm简单多了。

我想让他们从更简单的东西入手,随后再引导他们学习PyCharm,这是我最喜欢的IDE。PyCharm好用的功能特别多,在上面编辑程序很方便,不过刚开始学习的时候用不到这些功能。

Evrone:有人说“选择语言的同时,也是在选择未来每一天要做的工作以及完成工作的方式”。对于Python而言,在职业生涯初期,新人Python开发员可以预想到的项目是怎样的呢?

科里:对于新入行的程序员,我尤其推荐Python,原因之一就是它功能真的太丰富了。如果你学JavaScript,只有做网页开发才用得上。在数据科学领域是用不上的。

而学Python,你可以进入任何领域:后端网页开发和应用程序开发,游戏开发,数据科学等等。既然Python可以用于这么多不同的领域,那一个Python程序员在职业生涯的起步阶段,就可以任意选择进入那些领域中的某一个,这是很令人开心的。不过Python程序员一般不会从事网页和应用程序的前端。

Evrone:对于初学者来说,在入门期就学习新的Pythonasync库合适吗?还是说,这个功能对学习者的实操经验有一定的要求,在实践几年后再去学习asyncio和aio


转载请注明:http://www.aierlanlan.com/cyrz/4781.html