我是如何自学编程的

打印 上一主题 下一主题

主题 1057|帖子 1057|积分 3175

本日来简朴写一下我是如何自学编程的。
自从泰半年前写了这篇文章《从英语翻译到人工智能:我如何用两年时间跨界转行》后,我就不停地在公众号和微博上收到标题里这个题目,这个周末终于有点清闲,就找机会把这篇写出来了。
18年年初,在我决定要从纯语言学转方向到计算机语言学之后,我就开始了自学基础编程(——之前有不少读者误会我是在学校转了专业,其实不是,一是因为我们学校没有计算机语言学,二是德国大学普遍不能转专业。所以我只是在课余自学而已)。看了一些前辈的科普后,我选择了先从 Python 开始。因为我从前在 Coursera 上过网课,体验很不错,所以当时也照例先在 Coursera 上找到了一门 Python 入门课。
我选择的第一门编程课是密歇根大学推出的《Python for everyone - learn to program and analyze data with Python》——信赖很多自学编程的人都曾上过这一门相称热门的编程系列课。

16年上半年四五个月的时间里,每个周末我都拿出几小时花在密大这一系列共5个模块的课上。因为我对于新知识向来入门慢,结束这系列课所花时间确实不少,但我终极照旧完成了全部课程内容和作业,也算是一只脚跨进了编程的大门。
现在转头看,密大这个系列的编程课最大优势在于传授讲得非常浅显易懂,Python 的基础知识点都一一讲过;但是,整体课程实在有些浅,很多计算机科学的基础知识都略过了,编程作业也太少太浅,导致单纯按这个课程走下来的学生肯定练习严峻不足。编程知识与技能的积累相辅相成,两者都需要用大量练习形成肌肉记忆,才能真正走到应用这一步。
当时 Coursera 上的课程还普遍免费,只有最后的 certificate 需要付费。我并不迫切需要 certificate,就利用 Coursera 当时的政策报名了好几个与计算机科学或数据科学有关的课程。除了密大的 Python 入门课之外,我还上完了杜克大学的《Mastering Data Analysis in Excel》。这个课则比我预想得讲得深不少,一方面帮我拾回了不少数学基础,另一方面我也偶然中学到了一些数据科学(Data Science)的基础概念和方法,例如非常有效的二分类(binary classification)、混淆矩阵(confusion matrix)、熵(entropy)和互信息(mutual information)等。我认为,假如你大学没修过任何高数类课时,想要转行进入数据科学或软件工程的话,那至少杜克大学这门课里面的全部基础概念都应该认真掌握。

接下来18年的暑假,我申请到了去图宾根大学计算机语言学系练习的机会。在那儿,我第一次接触到了学术界关注的几大自然语言处置惩罚主题,比如分词、句法分析、情感分析等等,NLP 于我不再只是一个空中楼阁般的虚称。
同时,在我的积极争取下,mentor 给了我一个简朴的编程任务,但需要用 Java 来实现。Java 基础完全为零的我在两周内通过自学挣扎着写完了一个短步伐,完成了任务!
当时快速记下的种种 Java 语法细节,自然是过后全被我忘了,但这个履历让我开端熟悉到不同编程语言之间范式的不同,也让我了解到编程在实际中的应用形式,同时还大大锻炼了我通过谷歌和 stack overflow 在纷杂的互联网天下里快速寻找有效信息的能力……
暑假结束,我回到学校继续上课。一天我在翻李笑来多年前的旧博客时,看到他推荐过 MIT 6.00 (2008 fall) Introduction to Computer Science and Programming 这门网课。后来我才发现这是门相称有名的经典计算机科学入门课,西欧很多自学计算机科学转行编程的前辈都学过并推荐这门课。于是我在课余也开始踏上了自学这门网课的“漫漫之路“。

不夸张地说,我认为从我开始上这门课的那一天起,我才真正入门了计算机科学(Computer Science)。从前只是入门了初级编程而已,其实根本还没遇到 CS 的门边儿——CS 之于 coding,就好比“懂得出海捕鱼之于只会去鱼市买鱼”一样,其实完全不能等同于一回事。
MIT 6.00 这门课很难,我直到2019年暑假才把全部课程视频看完、课后阅读读完、编程作业和考试写完。但这门课的两位传授(Eric Grimson & John Guttag)是我在网上见过的讲 CS 讲得最好的老师之二,跟着这两位传授的指引,我加深了对 Python 的理解,了解了几种基础算法的实现,学习了数据科学基础和机器学习,知道了测试的紧张性,熟悉了几种常见编程范式,还了解了 CS 在工业中的具体应用。
   很多初学编程的人,已经跟着一门像密大 Python for Everyone 那样的课程规规矩矩学完了 Python 的全部语法,但若抛给他一个实际题目、问他如何用 Python 实现,他就立马傻眼了。这些只学会了表层语法的人,都需要认真研究一门像 MIT 6.00 如许真正的计算机科学入门课,来进步对编程的理解与真正写步伐的能力。
  MIT 6.00 这门课也让我深刻熟悉到良好的老师毕竟有多么紧张。天下老师手里的课本都相差无几,但大部分老师只是在做“努力把课本中的表层知识搬运到学生的耳边”如许的事,只有少数良好的老师才真正理解一个知识点的内涵与外延、一群知识点之间的接洽、不同学生的困惑之处,以及如何画龙点睛般化解学生的疑问。
承袭着这个“只管只上好老师的课”的尺度,在学完 MIT 6.00 后我又找到了另一门“名师课”:Peter Norvig 在 Udacity 上开设的免费课程《Design of Computer Programs》

In case you don't know Peter:Peter Norvig 是现任谷歌科研主管,USC 副传授,曾任 NASA 科研主管,出版过 CS 课本。Norvig 曾写过一篇名为《Teach Yourself Programming in Ten Years》的著名文章,西欧步伐员险些无人不知无人不晓。
这门课果然没让我扫兴。假如你已经很熟悉 Python,也有一些基础的 CS 知识了,那就可以上这门网课试试(链访问文末)。Peter Norvig 教了很多编程自学者轻易忽略的步伐筹划的原则和算法考量,我常常一边上着课一边在内心惊呼:“噢,原来是如许!”

除了以上这些值得一写的网课之外,我还上过其他大大小小、免费或付费的在线课程,但总体来说,那些课程质量并没有太出挑的。
关于选网课,我总结了一下自己的履历和尺度——非常简洁!假如你是真正想要扎实学到知识,而非为了快速获得一个不知哪儿来的认证或为了缓解自己的内心焦虑,那最紧张的尺度就是「老师」。
岂论谁来教 Python,语法都千篇一律,但良好的老师积攒了大量业界履历和教学履历,良好的老师能够筹划出良好的课程安排,良好的老师可以高屋建瓴地点通你的困惑,良好的老师拥有能感染学生的热情。只有跟着良好的老师,才能最少弯路地进入一门新学科——你可是只有一次“入门”新范畴的机会呀。
除此尺度之外,付费照旧免费、课时多少、有没有结课证书,这些都没那么紧张。作为学生,对老师的要求应该只管高一点,对自己的大脑只管珍惜一点——绝不是什么人都可以来向你大脑里灌输内容。如许终极你自己的水平才会越来越高。
除了网课之外,在2019年春夏时,我去 IBM 全职练习了5个月。这5个月不仅大大进步了我的编程和测试能力,也向我揭开了编程在大数据和机器学习应用的实现方式。在有若干 mentor 和同事的情况中,显然我的进步也更快了。我也是从当时起从零开始学习 Bash 脚本编程,开始频繁利用 git,开始学着以编程思维来思考工作中的题目,学着用写步伐来简化重复性工作、减轻不必要的工作量。

在 IBM 的练习结束后,我拿一部分练习工资买了一台 MacBook Pro,从此终于进入了用 macOS 编程的人生!我不得不也老生常谈一句,对于步伐员工程师来说,硬件与软件工具都很紧张。能力范围内能升级的工具都可以只管升个级。
以上就是我在正式开始工作前近两年大抵的编程自学之旅。其实也不外乎网课、练习、看书、练习,然而如许一点一滴的用心积累,确是进步的最快路径。
最后免费分享给大家一份Python全套学习资料,包罗视频、源码,课件,希望能帮到那些不满近况,想提升自己却又没有方向的朋友。
关于Python技能储备

学好 Python 岂论是就业照旧做副业赚钱都不错,但要学会 Python 照旧要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点资助!
一、Python全部方向的学习路线

Python全部方向的技能点做的整理,形成各个范畴的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,包管自己学得较为全面。

二、Python必备开发工具


三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,照旧很轻易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、Python练习题

检查学习效果。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料信赖大家都能找到满意的工作。

   这份完整版的Python全套学习资料已经打包好,需要的小伙伴可以戳下方链接免费领取
  

  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表