程序员做讲师(数百万的程序员导师)

说到Zed A. Shaw这个名字,很多人可能会表示不认识。但是一说到他的“笨办法”系列,不少人会恍然大悟:是他啊,我的Python/Ruby/C就是跟他学的!“笨办法”系列在全球范围内帮助上千万的人成功掌握一门或数门编程语言,进入编程这个精彩的世界。

不过,网络上人们对于他的评价似乎两极分化,有无数人感谢他提供的“笨办法”让自己学会了编程,也有不少人抨击他狂妄自大,是个固执的怪人。那么今天,小异就和大家一起走进Zed A. Shaw的世界,看看这个“奇怪”的程序员是如何做到既被人喜欢,又被人“讨厌”的。

程序员做讲师(数百万的程序员导师)(1)

▲ Zed的“笨办法”系列

怪人?我只是一个会玩的程序员而已

和很多程序员一样,Zed喜欢在网络上发表和分享自己的知识与观点,个人博客和推特是他的两大阵地。他现在使用的这个推特号,自2014年以来已经发布了超过14000条推文,平均每天发近5条,“战斗力”属实爆表。

程序员做讲师(数百万的程序员导师)(2)

▲ Zed每天都会在推特上分享信息

最近的推文显示他创建了“笨办法”学JavaScript的新项目,并且使用直播搭建游戏分享网站的方式作为实战演练;同时,他依然没有放弃“炮轰”那些他认为有缺陷、不好、讨厌的项目,比如持续“喷”了几年的OpenSSL;就在几天前(北京时间6月18日),他在家附近开始了一个人物绘画培训课程,捡起了几乎全忘掉的水彩画。

帮助上千万人学习编程

加上最新的JS课程,“笨办法”系列已经有了四名编程语言成员,这些课程都能在网站“笨办法学编程”上获取。

如同Zed在网站主页上所说的:任何人都可以学习编程!

程序员做讲师(数百万的程序员导师)(3)

▲ Zed认为所有人都能学编程

“笨办法”系列课程累计在全球范围内帮助了上千万的人进行编程学习,成功掌握一种或多种编程语言。每一个使用“笨办法”学习编程的人都非常感谢他,感谢这个简单有效的“笨办法”,让来自世界各地、各行各业、年龄不一的他们能够从零开始学会编程。

尽管帮助了这么多人学会特定的编程语言,但是在他看来编程语言不重要,重要的是编程本身——使用编程去做一些有趣的事。并且学会编程不一定意味着你会变好或变坏,只是会让你变得与其他人不同——别人可能因为你会编程而给你安排更多的工作,因为你会编程而认为你是一个“不善言谈的书呆子”——总之会有人认为你很“怪”。

“奇怪”的程序员

在早些年,互联网和计算机行业还没有像今天这么火热的时候,程序员在很多人眼里和“书呆子”差不多,是一个沉默寡言、不修边幅的群体——现在的不少人仍然有这种刻板印象。

Zed就是如此,他沉迷数学,沉迷编程,沉迷写作,抱着一把吉他一弹就是好几个小时,外界的偏见与自己的性格让他推掉了很多约会和其他社交活动,变得越来越“怪”:他喜欢与人亲近而不必与他们互动。

有一次他和朋友科里约在联合广场见面,在科里到之前,Zed穿着普通的牛仔裤、T恤,坐在那自顾自地弹吉他。因为戴着耳机,吉他声音只有他自己能听到,所以别人并不能听到他弹的是好是坏。和科里游玩回去之后的第二天,他去找昨天的游玩记录以寻求写作灵感,发现别人的一个关于科里的帖子:你真漂亮,只是和你在一起的那个“怪人”一直在弹吉他。

程序员做讲师(数百万的程序员导师)(4)

▲ Zed 与他的吉他,2012

有时候,他不愿意以程序员这个身份来介绍自己,而说自己是一个作家——但也有人会说他写的不是“真正的书”,因为那是关于编程的——比如在学画画的时候,他如果说自己是程序员,别人就会讨论一些关于“技术人员”之类的内容,给他不一样的眼光。

在最大程度上忍受别人的偏见之后,Zed依然热爱着编程,热爱着吉他,热爱着画画与写作,对它们充满激情。

高强度“网络对线”

作为一个经验丰富的程序员,Zed创建的Mongrel Web服务器在网络开发领域享有一定盛誉。它是推特使用的第一个Web服务器,并且在一定程度上启发了Node.js。

同样作为一个充满激情的程序员,他经常会参与到一些模块、方法、理念之争。比如最经典的是他早期关于Rubuy模块Rails——Rails依赖Mongrel——的讨论,他以一篇满是脏话的文章Rails Is A Ghetto (Rails是个贫民窟,在自己网站上已经删除了原文)发泄着自己的不满,从开发者到公司,从PHP到社交网络一路开喷,认为社区乌烟瘴气,框架本身漏洞百出,最后表示“老子不干了”离开了Rails社区。

那篇文章引发了延续数月的讨论,不少人认为他的观点是正确的,Rails社区的确存在某种“精英主义”,框架本身也存在不少缺陷;但也有不少人通过这篇文章更坚定地认为Zed是一个傲慢无礼的家伙,非常讨厌。

在做开发的二十多年里,他与无数人发生过争论,遭到过无数“网络喷子”的围攻与长期骚扰。很多时候他都会予以回击,言辞激烈,充满“F”单词,遭受极大非议。

就在昨天,他还在“炮轰”存在严重缺陷的OpenSSL。有人说他和Linux之父Linus Torvalds一样,是那种对自己喜欢的事情充满激情并且极度“自恋”的人,对于自己不同意的观点会发出最直接的反驳。

程序员做讲师(数百万的程序员导师)(5)

▲ Zed认为OpenSSL有着严重缺陷

人总是充满矛盾的,Zed会充满耐心地去给初学者教学编程,会在社区、论坛上回答别人的技术问题,也会在推特上与人互动关心对方学习了编程之后是否有用。同时,他也会连发数条推特回怼那些与自己持有不同观点的人,用满是“F”单词的句子喷得对方连连败退。

在教学生编程的时候,他总会以自己学习音乐和绘画作为例子,告诉他们学习编程并不难,直接开始练很快就能学好。

关于绘画

Zed不是左撇子,但是他有时候会使用左手去做一些事情,比如弹吉他,比如画画。最开始他用Drawing on the Right Side of the Brain: The Definitive, 4th Edition自学画画,在尝试使用左手练习两个星期无果,并且会有莫名其妙的“笑意”:只要用左手画画就会控制不住地笑。换成右手作画那种感觉就慢慢消失了,让他百思不得其解,问了一圈其他人之后都觉得他疯了。

不久后他看到一个那本书作者儿子开设的强化课程,意识到这是一次难得的机会,这个每天八小时的课程能够提高他的绘画技巧。课程内容是每天早上进行一些讲座,然后根据讲座内容进行4-5个小时的画图,Zed去了。

每天雷打不动的课程让他有点紧张,但是他并没有松懈,而是认真地跟着老师的指引去学,去画。终于在第三天对着同一个港口画透视图的时候,他感觉到某个一直挡住自己的门被推开了,豁然开朗!他欣喜若狂地测量透视角度然后完成画图。

程序员做讲师(数百万的程序员导师)(6)

▲ 港口,2013

那天是2013年3月10日,是他学会画画的日子。尽管后面关于肖像画的课程Zed并没有很好的掌握,但他觉得在画码头那天,他学会了画画。

在之后,他痴迷于绘画,在19个月中自学了油画、水彩,使用丙烯、木炭、粉笔,甚至是Photoshop来作画。在那几个月中,他阅读了每一本他能够找到的绘画图书,参加并完成了每周固定时间的绘画课程。

程序员做讲师(数百万的程序员导师)(7)

▲ 河边的波浪,2015

然后他能画得很好了。(认真的讲,小异觉得这幅画非常好看!)

编程同样是一门艺术

Zed一直以来都认为编程不是一项单纯的技能,而是一个充满创造力的活动,能够使用代码与人进行双向互动,是一门真正的艺术。

学习艺术最重要的是坚持练习

万事开头难,艺术的学习同样如此。

在学习吉他那段时间,他每天至少花费2个小时去练习音阶、和弦、音乐理论、乐曲演奏、训练听力等。有时候兴致来了,甚至会用8个小时去练习——当时他觉得那是一件非常有趣的事。对于大多数人来说,要学好一个技能,最自然、最根本的方法就是反复练习。尽管有时候会没有收获,有时候内容又太难理解和操作,但是只要坚持下去了,终有一天崎岖会变坦途。

Zed学画画的时候同样如此,最开始跟着书自学并没有取得满意的结果。但是他坚持了,也坚持到“豁然开朗”的那一刻,然后自然而然地学会了画画。

编程作为与绘画、音乐类似的艺术,同样适用这种方法。

编程学习的“笨办法”

真正的初学者——可能命令行是什么意思都不懂,真正没有接触过编程的人——在学习编程更会遇到“开头难”这个问题。陌生的概念、工具、方法、名词充斥着整个视野,实在让人望而生畏。

但是,一旦我们把编程看成与画画无异的艺术技能,认识到它也是一项充满乐趣与创造力的活动,知道能够通过编程做一些很酷、很有意思的事情,我们就会发现编程的价值。

然后,跟着书本,跟着课程,一字不差地录入每一段代码让程序运行起来,从头到尾认真完成每一个习题(当然实在不会的可以暂时跳过),就这样“简单地”开始学习编程了。

这就是学习编程的“笨办法”,直接写代码

对于真正的初学者来说开始的确有点难,不过只要坚持下去了,很快也能迎来自己的“豁然开朗”,发现这一切竟然真的是那么简单,那么有趣。

使用笨办法学习编程

其实我们很容易就能看出来“笨办法”是有效的,关键在于突破最开始的那一关。而作为想要学习编程的我们,每天花费一两个小时在这件事上面相比是完全没有问题的,那么开头也变得不难了。

那就让我们使用“笨办法”,开始编程之路吧

“笨办法”学Python 3 与进阶篇

《“笨办法”学Python 3》

程序员做讲师(数百万的程序员导师)(8)

▲ “笨办法”开山之作

这是经典Python自学畅销书入门篇,Zed的“笨办法”开山之作全新升级。

书中有着300分钟完整的教学视频,虽然是英语授课,但是配上了中文字幕,照顾到了英语不好的初学者。

《笨办法学Python 3 进阶篇》

程序员做讲师(数百万的程序员导师)(9)

▲ 进阶!继续选择“笨办法”

作为《笨办法学Python 3》的进阶内容,这本书通过52个精心设计包含实际演示的习题帮助我们夯实Python 3基础,并教会我们如何使用文本编辑器管理复杂项目、怎么用算法处理数据结构等实际项目中会用到的技巧与方法。

从基础学习到实际开发,两本书一站式搞定!

《“笨办法”学Ruby(第3版)》

程序员做讲师(数百万的程序员导师)(10)

▲ Ruby入门首选,“笨办法”效果保证

这本书也是大部分Ruby程序员的入门首选,因为简单有效。

书中前半部分用26个习题覆盖输入/输出、变量和函数3个基础内容知识,后半部分同样的使用26个习题包含了一些高级的知识与应用,比如条件判断、循环等。

作为“笨办法”系列的一员,本书也是极度适合初学者的,完全没接触过编程也不是问题,相信“笨办法”。

《“笨办法”学C语言》

程序员做讲师(数百万的程序员导师)(11)

▲ “笨办法”学C语言,效果同样棒

严格来说,这本书并不是纯教C语言编程的书,更重要的是学会防御性编程——在作者看来C语言充满缺陷,学习和使用能够有效学会如何编写更健壮的代码。

同样的这本书中也是使用了其他“笨办法”系列同样的习题模式,只要跟着作者一个个代码输入,得出错误或者正确的代码,然后运行测试程序就好了。

“笨办法”总是那么简单粗暴。

最后说一下

其实不管从哪个方面来看,Zed都是一个怪人,但就是这么一个怪人开发出来离经叛道的“笨办法”教学模式,成功让无数人学会编程技能。

尽管在很多人看来他依然是一个傲慢的“网络喷子”,但也有更多人把他当作耐心的编程老师。

小异倒是觉得他挺酷的,特别是弹吉他那会儿,一点也不怪!

文章编辑:沙鱼 审校:桐希

参考来源:

[1]Zed Shaw's Blog..

[2]Zed Shaw - Wikipedia..

[3] Zed A. Shaw, Writer (@lzsthw) / Twitter..

[4] Rails is a Ghetto... [NSFW for Language] | Hacker News..

[5]The Code Breaker | The City Exposed. Youtube.

[6]Breaking code to climb scales of success..

[7] Zed Shaw, .Closeup of the painting for today...

[8]泽德·肖.笨办法学Python 3.[M].北京:人民邮电出版社:2018.

—END—

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页