零基础自学黑客的方法最全版(黑客0基础自学)
从小白到成为准「黑客」,仅需要半年,她是如何做到的?1)提前刷了 7 本书;2)课前练习了《Learn Python The Hard Way》;3)坚持自主学习;4)正确提问、咨询教练;5)输出作品,取得突破。 P.S.编程思维 Python 基础班四期开放预约中!
半年太短,几乎一眨眼的功夫,就从 2016 的尾巴转场到 2017 的开幕。半年太长,长到我们都不能完全做好哪怕一件事。刚刚过去的半年,却成为最让我难忘、也受益颇大的一段时光。我在开智课堂 Python 基础班第三期,完成了从计算机小白到准「黑客」的蜕变。
去学 Python 的路上
五年前,我因惧怕程序员的辛苦,自断了编程念头。如果像班克斯博士一样习得了七只桶语言和七语思维,那时的我更可能选择另一条职业道路吧。
半年前,为了偷懒,不会编程的我,根据廖雪峰的 Python 教程,硬生生地拼凑出一个非常粗糙的网站状态查询程序。这个程序的使用方法是,每天从命令行 CLI 环境中运行程序,输入账号和密码,若返回状态为 200,就表明网站正常。我欢天喜地地用了起来,但不过半个月,就对这个程序之简陋忍无可忍了。
展开全文
当得知了开智课堂 Python 基础班第三期的开班预告后,我做了一些课前准备,刷了(粗粗浏览)多本相关书籍,《信息简史》、《浪潮之巅》、《数学之美》、《程序是怎么跑起来的》、《计算机是怎么跑起来的》、《天才的拓荒者冯诺依曼》、《智能时代》等。
人生苦短,我学 Python
一个不错的开篇。课程准备周的《 Learn Python The Hard Way 》给了我很大的信心,我预感到自己一定能够顺利完成整个课程,不由发出感慨:「编程一点都不难嘛!」这个不错的开篇很大程度上增加了努力学下去的信心。
当时也有担心,就是课程大作业。像大多数理工科同学一样,虽然学过一年的C语言,我却从没有开发过一个可用的作品。现在回想,这也许就是 C 语言学习始终没有产出作品的心理阴影吧。
编程新手都会经历自以为是地自主学习阶段吧。像很多编程初学者一样,我也是一个喜欢死磕的人。也许是受传统教育的影响太深,我在课程学习中坚决不看小伙伴们的作业,非要独立思考题目逻辑和实施步骤,阅读官方文档,查找网络资料等。
无论课程提示信息如何强调,我都不为所动,坚持着自己的「学习原则」,有时甚至不认真看课程卡包中的提示。当然,我在提交作业以后,还是会逐个阅读小伙伴们的作业,尽量吸纳优点,在后续的学习中整合到个人作业。这样的学习节奏从 chapter0 持续到 chapter5,一直很适用,有时候,我还会为自己摸索出来的一些特别方法而感觉良好。真是好傻好天真!
向外寻求帮助总强于被锁死在某一关卡。当课程任务难度再度提升以后,我曾「引以为豪」的独立学习策略开始捉襟见肘了。chapter6 的云端部署和 chapter7 的微信端部署,真是难倒我了。花了大量的时间,多次尝试,我仍搞不明白部署中的若干步骤和操作要点。
我不得不多次请教课程教练,他们不厌其烦地为我纠正分析问题的思路,解决问题的方法,一直鼓励着我继续前行。
在 chapter7 微信部署问题得不到解决的情况下,我为强迫自己必须做出来,在微信朋友圈发布了 chapter6 的成果,得到多位朋友的鼓励后,我竟然一鼓作气地解决了 chapter7 中始终不能解决的几个关键问题;后来,在紧要关头,咨询请教了同学,他给我最重要的帮助,就是提醒我尽快去发 Issue ,等我终于把 Issue 问题描述清楚后,问题却迎刃而解了(错在单词拼写上)。
一入编程深似海。chapter6-chapter7 这个阶段是最痛苦的,感觉每天都是死去活来。有一次,连续两天都没有进展,情绪很低落,但从来都没有想过放弃。调整好情绪后,第二天天一亮,就接着去重新研究探索。
我最终发现了一个十分有效的心理暗示法。每次在开始编程前,告诉自己:「这半天一定要把某个具体问题解决掉」。如此进行,最多 2-3 次,这个问题就被解决掉了。
每个程序员,都会有调试代码到凌晨的经历吧,我也不例外。身体的辛苦,精神的痛苦,都是免不了的。但是,每次最终完成作业所得到的快乐和成就感,让所有的痛苦都被抵消了,甚至还有富足剩余。
输出作品,取得突破
我做了一个出乎意料的决定。欢乐也好,忧愁也罢,我总算从 chapter0 ,过关斩将(跌跌撞撞)走到了 chapter7,最终站到课程大作业的面前。为了能够充分巩固初步习得的编程思维和习惯,我做了一个让自己也很惊讶的决定:独自开发一个程序,完成结业大作业。
课程教练与课程客服都很担忧我,多次问候、跟踪我的情况。课程大作业开始的太晚了,从 3 月 10 日才正式开始( 3 月 28 日项目路演),但我既然决定了,就一定要做下去。
就这样,我根据教练给我的研发建议,适当调整了自己的项目设计和方向。从扇贝网的学习情况分析转向了班级学习情况汇总程序,开发《 Py103 学习分析》。
结业项目是一次难得的锻炼机会。独立完成结业项目,我最大的感想是:一个人做有一个人做的好处,从项目设计、需求分析、文案撰写、原型设计、研发计划、研究代码、路演视频、项目汇报,所有的事情都需要思考、设计和完成。
这个完整而艰难的过程让我得到了很好的锻炼。但是,一个人做项目也有明显的遗憾,比如,能力结构不全面,时间紧迫,精力有限,缺少同伴学习的机会等。
总之,有得必有失。希望在未来的学习中,能够加入到研发团队中,和小伙伴们一起奋斗,一起前进。
终于完成课程的时候,我惊讶的发现:原来,我比想象中走得更远。
新的开始,扬帆再出发
这个终点成为新的起点。到课程快结束的时候,我们会理所当然地期待好好休息一下,给自己放个假吧。但是,结业项目《 Py103 学习分析》中的一个现象改变了我。
课程开始时的 128 名同学,有很多都没有完成 chapter7。我想,开智提供了这么好的思维和资源,却没有被所有同学充分利用,当真让人心疼。于是,我决定做的更多一点。
因为,有很多像曾经的我一样小白的同学们也许还在迷茫中,如果我能够陪伴他们一程,也是极幸福的事。所以,我发了一个 Issue—— Py103 互助复习计划。很快就有 50 位同学加入我们,决定继续一起努力,共同打造同侪压力,磨炼自己的 Python 思维,打造自己的 Python 产品。
我从课程学到的重要一课是:重点在自己,但功夫在诗外。无论是学习新的课程,还是复习原有课程,无论是教练的跟踪询问,还是同伴创造的同侪压力,都是为了最终获得编程技能,习得黑客思维。
对于编程新手来说,闷头自学是必不可少的。然而,课程中的观察(去看看其他同学的作业)、讨论(教练答疑中的交流)、交流(比如项目点评视频交流活动)、提问(比如开智课程的提问模板)、帮助他人(去回复其他同学的 Issue,发起复习计划),才是真正让我更好地学习编程知识,磨炼黑客思维的环节。
继续磨砺自己,早日成为真正的黑客吧。以此自勉。
——- Python 基础班第四期即将开始 -——
你将在此课程,
掌握 Python 基础语法,明确 Python 新手到专家的进阶路线图;
获得一个自主开发的 Python 项目;
能够自如地进行网络数据抓取,操作常见数据库;
养成良好的提问、检索和解决问题的习惯;
搭建个人学习网站,持续记录你的学习心得;
认识一大群爱学习的互联网圈小伙伴;
……
掌握 Python 基础语法,明确 Python 新手到专家的进阶路线图;
获得一个自主开发的 Python 项目;
能够自如地进行网络数据抓取,操作常见数据库;
养成良好的提问、检索和解决问题的习惯;
搭建个人学习网站,持续记录你的学习心得;
认识一大群爱学习的互联网圈小伙伴;
……
戳原文,预约学编程!