对于毫无编程经验的同学来说,总会感受到自己与编程之间有堵厚重的墙——不知道从哪下手,以至于用python编程迟迟不能开启。这篇文章写给小白,为了让他们踏上用python的征程。
如果打磨编码技能有终点的话,我假设终点的分数是100分。一路走来,我感知到编程路上的5个关卡。
闯过第一关、第二关你就已经入门了;
走过第三关,你已经从1提升到了10;
闯过第四关,你会变成代码熟练工;
进入第五关,其实一切才刚刚开始。
1.挖掘你学编程的刚需
在学习英语、销售、逻辑、写作、编程等等技能时,有经验的人总是会建议我们先思考一个问题:“你为什么要学这项技能?”
这种问题让我很头大,有什么好回答的,就是有用我才会学啊。正如我为什么要学销售?因为我想挣钱哪,就这么简单。
这样回答,好像没啥毛病,可实际情况是,即便我已经接受销售培训好几期了,我还是卖不出去写作课门票。
为啥呢?因为我没持地续地练下去。
为什么不持续练下去呢?因为卖不出去门票我也能活,深刻一点就是销售不是我的刚需。
同时,我也琢磨了,别人问:“你为什么要学这项技能?”其实是想问:“你学这项技能的刚需是什么?”
读过《财富自由之路》书籍中的那篇《究竟是什么在决定你的自驱动力?》的同学都知道:
正确的刚需是可以主动选择和培养的。
那你就要把学编程的刚需挖掘出来了,一定要挖出来,一定要让自己不学会编程就难受。
我是个程序猿,不学会编程没饭吃,这是我绝对的刚需;对于小白同学,倒是有个方法论,同样来自《财富自由之路》:
赋予编程重大意义。
站在很久的未来思考并写下“学好编程会怎么样?”的答案,越具体越激动人心越好;同样写下“学不好编程又会怎样?”的回答,写得越具体越惨烈越好。
如果非要让我挖一个刚需:为了让我的孩子不输在终点线(很久以后的未来)上。
是否会输在起跑线上,我无法确定无法保证也并不重要,因为人的一生并不短,站在任何一个时间节点上偶尔输偶尔赢很正常。当别人手动挨个处理重复事情的时候,她已经能够批量处理了,时间久了次数多了,她的工作学习生活效率也就能得到提升,那人生效率就会提升。并且我作为认知升级过的家长,一定会把我的孩子培养成进取型人格,让她意识到“你不需要跟别人比,你要跟过去的那个你比。”
2.部署编程环境
心理建设做好了,那我们开干吧,先装三个软件:visual studio code、anaconda、git。看到长串的字母很头疼吧,把这三个软件当作苹果、香蕉和梨看待吧。
- visual studio code(苹果):代码编辑器,写代码、调试代码在这个软件上进行,下文简写为vscode;
- anaconda(香蕉):简单点说这个是代码运行起来所需要的环境,就像你有辆豪车,但是豪车走起来总得有平整宽阔的大马路吧,你还得有红绿灯这些基础设施吧,那这个软件的作用就是为了让你的程序顺畅地跑起来;
- git(梨):这里就不解释这是个什么东西了,会把小白吓跑。只说新手同学能用这个软件干啥,可以用来通过使用命令行来执行你写的python程序,是用命令执行,而不是手动点点点。当然,还可以输入相关命令来做很多其他事情。提前装上这个软件是为了让你感受命令执行的快感。用久了用熟练了,你会感受到图形界面有的时候真的很浪费事儿,效率从此提升。
1.anaconda下载地址
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D2.visual studio code下载地址
https://code.visualstudio.com/Download3.git下载地址
https://git-scm.com/download/win
如果你下载不了,我在百度网盘提供了python编程三件套,不过需要说明的是,我的是windows操作系统。
特别地,安装软件,只有一个地方需要注意,就是安装anaconda的时候,一定要选中Add Anaconda3 to my PATH environment variable。其他安装点击next就行了,不用多看不用多想。
环境安装好了,那我们开始动手写代码吧,最让人心动的自然是输出程序界最流行的“Hello Word”,教程如下:
- 进入D盘,建立文件夹code;
- 进入文件夹code,鼠标右键,选择Git Bash Here,会弹出个黑色界面框,这个就是传说中的命令行界面了;
- 输入
code .
,回车(注意code和.之间有个空格), vscode软件被你用命令行打开了; - 创建一个hello.py文件:文件——新建文件——ctrl+s保存在code文件夹中;
- 在hello.py中输入
print(“Hello World”)
,快捷键Ctrl+S保存当前文档; - 在刚才打开的黑色Git框中输入执行代码
python hello.py
,回车; - 界面上成功输出Hello World。
可以了,够了,你已经入门了,你已经从0提升到1了。
3.抄代码
那是大二升大三的暑假,同学们基本上都离校了,而我选择留在学校,因为我被刺激了!放假前老师组织了一批同学参加了一个图像处理方面的创业项目,给大家安排了实验室和电脑。一段时间后,有些同学开始能用C语言写代码了,甚至能写出实现一定功能的代码,比如说竟然画出了一个会动的时钟,“太厉害了,他们真的是天才”,当时的我只能这么惊讶。反观自己,连c语言的基本语法都还没弄懂,差距也太大了吧,我被这件事深深刺激了。不知道哪里来的不服气相信我也能学会c语言,所以暑假哪都没去,就留在学校学啃那本黄色的清华大学出版的《c语言程序设计》,方式很简单:
1.从第一页的第一行开始看;
2.把书中的代码逐字母逐行的敲到电脑上;
3.代码一定要跑通,并且尽量弄懂为什么出来那样的结果。
每天的时间安排也异常的规律,早上八点半之前到实验室,下午五点半之后离开。即便在重庆白天40℃的高温,半夜两三天床板都还是烫的,也无法把我赶回家,依旧每天准时准点出入实验室,以至于我们实验室所在教学楼因为某些重要考试禁止入内的时候,我还是能照常进出,因为我跟门卫大叔已经很熟了。
新学期开始不久,我会写点代码这事儿传到其他老师耳朵里,这位老师邀请我去他家帮忙写代码处理博士论文中的数据……
《自学是门手艺》上的全部代码,全部抄写一遍,抄完就运行一遍,看输出结果跟书中是否一样,如果不一样就得使用vscode进行调试查找问题了。至于如何调试,上网查找已经有很多热心人给你提供了答案。
如何使用vscode调试代码是小白同学的必经之路。
完成后,你已经从1升级到10了。
4.模仿别人的代码
再给大家一个从10到50的简单粗暴有效的方法:
模仿别人的代码。
找一段别人能够实现某种功能的相对简单点的代码,模仿它。
注意,模仿不是抄,你至少得改一下别人的变量名称,改着改着总会有意外,解决意外之后又总会有惊喜。
这是“我组装”的一个可以实现截取和合并pdf功能的小程序。为什么是“我组装”,而不是“我写的”,后面有解释。
同样是上面那个百度网盘二维码。
模仿四五个程序之后,你还是不及格,仍就半桶水,似懂非懂,但是你已经能够熟练使用Python了。
5.用python
一路升级打怪,已经获得50分了,这已经是巨大的胜利。
不过,仍旧不及格,因为一切才刚刚开始。
接下来,你就要琢磨怎么用了,用Python去解决你生活的问题以及你工作中的需要重复的或者非人力能及的问题。
怎么用,用在哪里,这个问题我也不知道,我现在也仍处在这个阶段。若是我觉得某个问题也许可以用程序解决,我会先做一番搜索,查看下python库中是否有某个工具可以解决遇到的问题。
什么是python库?好比自行车上的配件,需要什么配件就去市场上把配件买回来,然后组装成自行车。
我们写代码也一样,不需要自己生产配件再组装成车,我们应该借助强大的网络,去上面找各种各样能帮我们解决问题的配件,我们要做的就是按照我们的思路将这些东西组装在一起。所以我们做的更多的事情是组装代码,而不一定是写代码。
越写到后面,你越会感受到:编程语言本身并不重要,重要的是你解决问题的思路。
有任何问题或者补充,欢迎联系我,一起讨论,一起进步。