最近公司来了一个实习生妹子,在读商科硕士,平时我会让她做做数据清洗的工作,她工作倒是贼认真,但对计算机属于一窍不通,不会写SQL,Ecxel也很菜,对于很简单的取数往往会花很多的时间。
她向我倒苦水说,她在学校里尝试学过数据库、SQL、Python、R,但没有一个入了门,基本是学个两三天就开始怀疑自己能力不行,属于编程绝缘体那种。 我大概知道她的困惑,其实原因也很简单,她太缺乏练习了,一直用意念学编程,这哪够呢?
就拿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的学习资源,你想要自学,压根就不需要去买什么课程,如果这点学习和检索能力都没有,那还怎么工作干活啊。说到底,练习是学习编程最重要的能力和基础,脱离了练习,其他的努力都是空中楼阁啊。
加入知识星球 【我们谈论数据科学】
600+ 小伙伴一起学习!