最近公司来了一个实习生妹子,在读商科硕士,平时我会让她做做数据清洗的工作,她工作倒是贼认真,但对计算机属于一窍不通,不会写SQL,Ecxel也很菜,对于很简单的取数往往会花很多的时间。
她向我倒苦水说,她在学校里尝试学过数据库、SQL、Python、R,但没有一个入了门,基本是学个两三天就开始怀疑自己能力不行,属于编程绝缘体那种。
我大概知道她的困惑,其实原因也很简单,她太缺乏练习了,一直用意念学编程,这哪够呢?
就拿Python来说,Python是典型的入门简单、深入应用难的编程语言,想要精进Python,唯一的方法就是练习,保证每天都有一定的代码量,不断地写脚本、做项目,切勿只看不做。
很多人盘桓在初学阶段,没多久就放弃了,就是没领悟到“编程是一门实践的艺术”。
学Python和练功一样,百炼成钢,Python高手都是经过数万行代码的洗礼。
如何去练习Python?
首先在新手阶段,Python书籍、教程里的每一段代码都要亲手去敲一遍,体验代码从输入到输出的闭环逻辑,这样能让你快速理解编程是怎么回事,不至于一直抽象的去感受。
当你过了新手阶段,也就是会安装python、会使用IDE、了解基础语法后,就扔掉教程,去解决具体问题。
Python能应用的场景很多,比如爬虫、数据建模、机器学习、可视化、搭建web、量化分析、办公自动化等,你总能找到自己的痛点和需求。
举个例子,你想爬取某电商商品数据,那么就立马干起来,不要觉得python还不熟悉没法做。
首先定位好需求,为什么爬数据?爬哪些数据?什么频率爬?爬取的数据存在哪?爬好数据怎么用?
接着确定技术方案,用request+xpath解决静态网页,用selenium解决动态网页,或者其他工具。
这些技术用到的第三方库可以即用即学,不会的去搜索去看博客,不要执着于语法细节,务必把链路跑通。
整个案例操作下来,你会对以前不熟悉的语法有更深的认知,也会掌握相关库的用法,最重要的你有了使用python解决问题的意识,也知道怎么去检索。
所谓输出倒逼输入,深度应用即深度学习。
“抄袭”并不羞耻,copy才是毒药
可能有人会说,遇到技术问题总是想不到好的代码思路。
这很简单,去“抄袭”,去模仿,但不要copy。
你可以把别人的算法、脚本亲手敲出来,放到自己的代码里。这个过程需要加入自己的理解,因为代码可能需要微调、优化。
GitHub 上有无数成熟的python代码模块,你可以大胆地去模仿、借用,久而久之你也能写出优秀的代码。
新手去哪里找Python练手项目?
Python作为目前最主流的编程语言之一,很多网站、比赛都能找到大量的开源项目,比如github、kaggle、gitee、kecsi、tianchi等等。
这里重点讲讲Github,Github是综合的代码网站,拥有世界上最多的python资源。
如果你用Github搜Python,会出现两百多万个结果,也就是说这么多repository都和Python有关
这是什么概念呢?这个数字几乎是所有编程语言中最多的,而且远远超过C++、JavaScript等
简单推荐几个Python仓库,初学者没事可以多去瞅瞅。
Awesome Python
这个项目收集了Python生态中各领域核心第三方库,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等
比如说数据可视化领域,就有matplotlib、seaborn、dash等库,包含其文档链接及简要介绍
这个项目还有中文版
Python-100-Days
这是一个中文版python学习项目,名叫Python - 100天从新手到大师。
作者以100天为周期,把Python从入门到进阶的知识点分门别类,做成教程形式。
当然,这个教程不光有Python语法,还有爬虫、数据分析、机器学习、数据库、软件测试、web开发等各种应用层知识,足够让你跨入Python世界的大门。
作者对于Python学习和就业的建议也非常中肯,这里摘抄给大家参考。
项目开头给初学者的几个建议,也值得好好体会
1、Make English as your working language. (让英语成为你的工作语言)
2、Practice makes perfect. (熟能生巧)
3、All experience comes from mistakes. (所有的经验都源于你犯过的错误)
4、Don’t be one of the leeches. (不要当伸手党)
5、Either outstanding or out. (要么出众,要么出局)
My Python Examples
这是一个python脚本案例大集合,作者总结了日常工作中的实用脚本,包括文件整理、图片处理、视频下载、数据转化等各种代码。
作者也说,他不是程序员,整理这些脚本只是为了更方便快捷地解决问题。
我想这也是很多人学习python的诉求,为解决问题而学习,这是最高效的。
free-programming-books-zh_CN
这是一个免费技术书籍分享项目,作者收集了IT领域各类主流中文/英文技术书,部分含有下载路径或者电子书链接。
这其中主要是github和stackoverflow推荐的书籍,层层筛选,相信不会辜负读者。
项目里你可以根据索引来选择某种语言的书籍,其中python书籍非常丰富,包含了cookbook、thinkpython等经典书籍。
语法&第三方库&应用
HelloGitHub
这是一个非常受欢迎的开源项目分享项目,作者每周都会筛选github上流行的项目,按语言类型汇总成一个杂志式看板。
该项目内容包括:有趣、入门级的开源项目、开源书籍、实战项目、企业级项目等,包括Python等各种语言。
里面的很多Python项目非常有意思,大家可以去看看,模仿好东西是怎么开发出来的。
其实网上到处是Python的学习资源,你想要自学,压根就不需要去买什么课程,如果这点学习和检索能力都没有,那还怎么工作干活啊。
说到底,练习是学习编程最重要的能力和基础,脱离了练习,其他的努力都是空中楼阁啊。