谢不邀。
我学了本+硕7年的计算机,PM、Dev都干过。
那我就从一个还算专业的角度论证一下,学Python需要什么基础。
本文要点:一、零基础入门python真的可行吗?
二、学python的实操方法
三、过来人的一点小建议
一、零基础入门python真的可行吗?
完全可行,而且不需要其他编程语言基础。
我研究生是人工智能方向,必须要用python,但是本科从来没有接触过。可是并不耽误我直接在网上扒了代码就开始写,没有人会教的,都是自己琢磨。
你们肯定会说,那你也有其他语言的基础啊。
抛开我是个渣渣不提,学过的东西早忘了。
主要是我感觉什么算法、编译原理、组合数学,甚至是c++、java这些专业课,真的对我从网上扒代码没什么帮助。
而且我们实验室也有跨专业的研究生,学数学的,生物的,甚至心理的都有。他们来了也跟我们一样,上来就扒代码去了。
再从另一个角度看,现在少儿编程都是从python开始的(scratch那种就不算编程了哈)
你说它会要求多高的基础呢?
那既然这么容易入门,为什么我还学不进去?
答:方法错了呗。
我相信不只是编程,许多人在学习一门知识前,第一步都想着从头开始。
买一堆专业书,教程也是从“xxx的起源”开始看起。
所有的热情在还没有进入正题时就已经消耗光了。
用实际行动践行着《python:从入门到放弃》
以我及我们实验室小伙伴的亲身经历告诉大家:
学习python,动手最重要。
不要一开始就看枯燥的原理,太折磨了。
从具体的项目,真实的案例入手,直接读代码,遇到不会的再查,这样才有助于真正的理解。
而且python是一种工具,我们学习的目的就是使用它。
从实践入手,每次成功跑起来一个代码都是巨大的成就感,激励着你不断深入。
按照这个思路,下个部分我们就来说一说具体怎么操作:
硬实力:从哪去找代码,遇到不会的怎么查工具书。
软实力:从实践入手不代表理论不重要。只是有了实战经验再看基础知识就没那么劝退了。
二、学python的实操方法
1.硬实力
这个可是必不可少。首先,要从这个网站下载python。
另外,这里还有说明文档和交流社区,在遇到问题时来看看准没错。
这个不用我多说了哈。我们的一项日常工作就是追踪顶级会议和top期刊,一般作者都会把代码放在github上,然后我们就开始复现。不得不说,这个过程真的对代码能力是一种极速的提升啊。
大家也可以随便看看自己感兴趣的代码,尝试着跑一跑。
这个也是老牌社区了。如果英文费劲一点,可以逛逛它。我平时是用博客比较多,比较适合入门选手。如果觉得GitHub上的项目太复杂,也可以从CSDN上的小项目入手。
2.软实力
结合着实战经历再来补充必要的基础知识。
首先,如果你是纯小白,真正的0基础,那么不建议直接看网上的各种资料,往往会迷失自我,收藏了一堆最后都是吃灰的下场。因为对于刚刚接触编程的小白,可能在第一部分说过的下载安装Python和实操代码就遇到困难。所以建议选择一个系统的python课程学起,比如下面这个免费课程↓新手友好,可以直接在网页上学习代码实操,完美符合咱们说过的实战+基础的学习思路:
如果有一定的基础,自学能力比较强,也比较自律的朋友,可以上一点难度了:《Python Cookbook》:这本书对于一些基本的知识点讲的比较透,而且会有适当的延伸和拓展,适合稳固基础。
《算法》和《数据结构》:要想学好一门语言,底层的知识还是需要掌握的。这两本书算是经典了,有很多版本,都可以。我们的教材用的是清华大学出版社的,大家可以搜搜看。
喜欢看视频的同学,推荐斯坦福的课程:Python Numpy Tutorial (with Jupyter and Colab)cs231n.github.io还有他们的机器学习(cs229)太经典了,我们实验室的必修课。各大视频网站都有,我就不上链接了。
我推荐的东西不多,但是认真学习+科学使用,绝对够用了!毕竟,我们专业的也就这么搞!
三、过来人的一点小建议
这部分贡献给想从事这行或者真正感兴趣想较为深入研究的朋友们。官方教程真的不是摆设。前面推荐的python官网( http://python.org )里面有一个tutorials,很容易被初学者忽略。但是这个真的是绝佳的工具书啊,简洁准确,遇到困难没有思路了来看看它准没错。这个教程是英文的,但基本都是常用词汇,还能顺便练练英文。实在不想看的,也可以直接看中文版,一搜就出来了。但毕竟是搞计算机这一行,建议还是直接看英文的,养成这个习惯很有帮助的。
anaconda一生推。基本平时会用到的库anaconda都包了,一劳永逸的选择。自动调试、补全、查询等等功能都是自带的,而且还有spyder,ide党也可以放心使用。
DL一直热度不减,有能力的话可以掌握一到两个框架。我们在复现代码的时候,经常会遇到大神们喜欢的框架都不一样,所以学习多个还是很有必要的。最推荐的就是pytorch、Tensorflow、Keras。
永远不要放弃学习。像我开头说的,实践永远是最重要的。跟踪自己的领域,复现大神们的代码是最快的。我自己是计算机视觉&自然语言处理方向,推荐几个顶会:cvpr、iccv、eccv、ACL、EMNLP、NACAL。看到感兴趣的文章,把代码跑一遍,再创新一下自己的想法,你就真的踏进这个门了。
福利时间:
我算是个方方面面都涉猎一点的宝藏博主吧,去我那看看呗~Jiujiuwww.zhihu.com