如果是985,211大佬或者搞过其他语言的(学过HTML的不算!),不需要学,一看就会。
完全没接触过编程的话,那就是另外一回事了。
自学的话,目的不一样难度等级也相差很大。
如果你只是拿这个语言干点小工作或者小脚本,自娱自乐。(难度等级:简单)
如果要靠这个吃饭,那就完全不一样了。(难度等级:困难)
具体为什么,看下面就明白了。
如果是第一种
只是兴趣,自娱自乐的话,完全不需要学的很全面,而且一些软知识,也可以一眼带过。
如果是第二种
恭喜你,开启了新世界的大门。
不管哪种目的,语言基础全家桶【变量、数据类型、选择和循环语句、函数、类、模块】,这些语法、概念要先搞定。这些是编程最基本的概念了。而且这些东西,可以直接往其他语言上套用。套不上?等套不上再说! 这就是之前为什么说搞过其他编程语言的,不需要特意花时间专门学语言的原因。用的时候,边用边学,边学边用,过一段时间自然就掌握了。
这一块的教程网上满天飞。菜鸟教程就还行,不是广告,不是广告,不是广告!!!。(菜鸟教程python)
个人自学很容易会在最开始装环境这一步出一些乱七八糟的问题。环境这一块,不推荐使用一些已经集成好的环境,还是需要自己学会配置环境,要知道出问题怎么调整。因为去公司,一般前两天就是需要你自己配置工作环境,这种问题问同事,会有点…
环境配置这一块(python3.x + pycharm)网上也是视频,文章一大堆。现在比较友好的是,大家不需要再纠结python是要装2.x还是3.x版本了。2.x已经停止维护了,新项目基本就是3.x了。
当然如果想要了解一些python的历史,特点什么的可以参考B站里的一些视频。比如:动画了解python的历史
基本语法这一块,如果996的话,基本上10天就差不多了。最开始不用深入研究面向对象或者高阶的一些东西(比如装饰器,元类等),然后自己写点纯控制台的文字项目做个总结。
比如搞一个文字对战游戏(就是两个人有一些属性,然后相互伤害),或者什么猜大小这种项目做个总结。那么基本语法阶段就可以先告一段落。这里只是说基础语法,有些复杂可以后边再补,不然上来就啃难的,很容易从入门到放弃。
然后就是岔路口。不同的路,除了语言一样,其他知识就千差万别了。
这里可以分五条路:
还有些人会把游戏方向也算进去,Unity、Unreal、Cocos、LayaAir不香吗?
什么后端?C++和Rust不香吗?小游戏那你就随便~
自动化运维不太清楚,就不讨论了。聊聊其他几条路。
先聊聊web,那么传统的HTML,CSS,JavaScript这三样不能少了吧!
JavaScript一些库和框架也要了解一些吧!jQuery,Bootstrap,Ajax。
前端框架也要了解一些吧!Vue,Angular,React。框架核心还是JavaScript。
后端框架也要了解一些吧!Django,Flask,Tornado。
数据库也要了解一些吧!MySQL,MongoDB,Redis。
网络也要了解一些吧!Socket,TCP/IP,HTTP。
序列化也要了解一些吧!JSON,XML,ProtoBuff。
但是后边这几个(数据库,网络,序列化)是所有技术通用的。
TMD~ 搞个Web这么大一坨东西~
爬虫嘛,技术好不好,全看能不能强到吃牢饭的地步。每个知识都是一个入狱小技巧。
有些东西和上面的Web一样。除了框架不用了解其他法人也全需要。其实的就是爬虫相关的框架或者工具库了。
爬虫主要分为三步。
走错片场了。
5. 模拟网络请求
6. 信息解析
7. 数据持久化
urllib,requests这两个基础的请求库,或者只学后一个也可以。
lxml/xpath,beautifulsoup/css选择器,正则这些解析工具。
selenium,appnium,airtest这些自动化测试工具,虽然这些事测试工程师的工具,但是搞爬虫的也要学一学,主要是为了反爬。
Fiddler,Charles, Wireshake这些抓包工具,用来搞一搞app。
Scrapy,Celey,Apsheduler框架也要了解一下。
UA,IP,Cookie,字体反爬,css反爬,验证码,js加密,安卓逆向这些反爬措施也要了解一下吧。
当然想进监狱更快一点,再搞点多进程多线程协程。
其实爬虫搞到最后,那都是…
数据分析主要是业务的理解,其他的都只是辅助工具,用来加速数据处理或者可视化等。
(马云数据分析哪个省的妹子胸最小)
业务就不说了,每个行业千差万别。我们这里只讨论技术。
Excel是个好东西。
Excel表示:搞什么编程,我一个打十个。
当然Excel很强大,但也需要其他一些知识
数字数据处理那就学一学numpy,pandas,scipy。
数据可视化可以学一学matplotlib,pyecharts,seaborn。
BI工具可以学一学PowerBI,Tableau,FineBI。
当然数据分析再多走一步就是数据挖掘,机器学习了。比如sklearn、pytorch,tensorflow。
这个主要就玩数学和算法了,而且方向其实分的也很细。不同的方向,知识体系也是千差万别,现在大部分人工智能都在指的是机器学习的领域。
关于人工智能领域,大家可以先了解一些概念,对哪个方向有兴趣,再深入研究即可。
关于概念级别的推荐这位大佬的,讲的很通俗易懂。
https://www.cnblogs.com/subconscious/p/4107357.html
当基础语法搞定、方向选定,真正的自学之路才刚刚开始。建议学习的时候,买本书参考或者利用网上一些系统的教程。
详细目录和试读可以参考当当网
http://product.dangdang.com/24003310.html
网络教程推荐:(8w start +)
https://github.com/jackfrued/Python-100-Days
Day01~15 - Python语言基础
Day16~Day20 - Python语言进阶
Day21~30 - Web前端入门
Day31~35 - 玩转Linux操作系统
Day36~40 - 数据库基础和进阶
Day41~55 - 实战Django
Day56~60 - 实战Flask
Day66~75 - 爬虫开发
Day76~90 - 数据分析和机器学习
Day91~100 - 团队项目开发
刷题的话可以参考另一个知乎回答:
https://www.zhihu.com/question/265662120/answer/1174288268
自学时候的一些建议:
一张图表明我们的学习过程。无知要比博学更容易产生自信。