转行|零基础|自学,Python,仅花半年时间,从月薪5K到月薪
对于程序员而言,学习是一件永无止境的事情,否则就得做好被优化的准备。
很多码农还存有“侥幸心理”,认为危机是突然而来的,其实你未来的职业发展很大程度上是由你当下的学习和积累决定的。
比如,编程语言Python成为一种趋势。越来越多的公司都让自己的员工来学习Python。
Python可以做:数据挖掘、分布式爬虫、数据分析 、报表呈现、搜索引擎开发 、软件开发 、 游戏开发、 自动化运维、 自动化测试 django、tornado、flask、web.py
堡垒机 等等…
Python还能比 Java、C、C++ 这类语言省去至少一半代码量,甚至连 BATZJ 的技术大牛,都无可否认 Python 现在对于一个程序员发展的重要性。
重要归重要,但是不少人学起来依然有很多困惑,比如:
- 之前一直写 C,学 Python 难吗?
- 怎么入门 Python 最快?
- 可以练手做项目的 Python 项目去哪里找?
- 好用的爬虫工具又有哪些?
- Python 应用方向太多了,怎么选择?
- …
当有这样新的技术需求出现时,有的人在观望,有的人想学但是不知道如何下手,他们大多遇到了以下几个问题:
image
- 不能完全吸收和掌握核心架构原理,并将基础理论运用到实践中;
- 不能全方位、深层次地认知技术细节,做到技术实现;
- 掌握核心架构和网络原理,不能灵活运用技术细节;
- 不能极好地掌握实战思维,对工作中的实际问题仍上手困难;
如果不能找到适合自己的解决办法,跟大多数人一样都处于观望的状态,最后你将面临的只有被这个行业淘汰!
如何紧跟时代环境,抓住时代浪潮中的热门技术时机?如何突破瓶颈,掌握解决实际工作难题的思维,并获取高薪的秘密?
这些问题相信很多人都曾遇到过,我也不例外。但这些年摸爬滚打学 Python 也攒了不少经验,给大家分享一下:
- 扎实基础;无论做数据分析还是 Web 开发,要按照完整的学习路径学;
- 多实践项目;对比方案的优劣,了解市面上性能较好的解决方案;
- 提升自己的认知水平,拓宽行业视野。
Python 易学难精,不是一朝一夕就能深入掌握。在这分享我珍藏的「学 Python 知识框架图」,系统地梳理了入门 Python 的必备知识点,建议保存。
第一周:熟悉 Python
要积极探索 Python 的使用方法,尽可能多的完成下面这些任务:
- 第一天:基本概念(4 小时):print,变量,输入,条件语句
- 第二天:基本概念(5 小时):列表,for 循环,while循环,函数,导入模块
- 第三天:简单编程问题(5小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等
- 第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等
- 第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表。
- 第六天:面向对象编程(OOP)(6小时):对象,类,方法和构造函数,面向对象编程之继承
- 第七天:算法(6小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)
通过第一周时间,python大致能熟悉了,自学能力稍微弱一点找人带下你,节约自己的时间。
这里给大家推荐一本python入门学习书籍帮助初学者《看漫画学Python》,系统的资料让学习效果事半功倍。书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
第二周:开始软件开发(构建项目)
接下来,让我们朝着软件开发任务进军吧!不妨尝试综合你学到的知识完成一个实际的项目:
- 第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期, 我建议你在VS code 中安装 Python 扩展或使用 Jupyter notebook。
- 第二天:Github(6 小时):探索Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request)。
- 第三天:第一个项目——简单计算器(4小时):熟悉 Tkinter,创建一个简单的计算器
-
第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它。光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去。如果你不知道你该做什么,可以查看下面的实战案例。
image - 第七天:托管项目(5 小时):学习使用服务器和 hosting 服务来托管你的项目。创建一个 Heroku 设置并部署你构建的应用程序。
为什么要写项目?
如果仅仅按部就班地学习课堂上或视频中的内容,你无法拥有独立思考能力。所以,你必须把你的知识应用到一个项目中。当你努力寻找答案时,你也在慢慢地学会这些知识。
第三周:让自己成为一名程序员
第 3 周的目标是熟悉软件开发的整体过程。你不需要掌握所有的知识,但是你应该知道一些常识,因为它们会影响你的日常工作。
- 第一天:数据库基础(6 小时):基本 SQL 查询(创建表、选择、Where 查询、更新)、SQL
函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等 - 第二天:使用 Python 数据库(5 小时):利用一种数据库框架(SQLite 或 panda),连接到一个数据库,在多个表中创建并插入数据,再从表中读取数据。
- 第三天:API(5 小时):如何调用 API。学习JSON、微服务(micro-service)以及表现层应用程序转换应用程序接口(Rest API)。
- 第四天:Numpy(4 小时):熟悉 Numpy并练习前 30 个 Numpy 习题
- 第五、六天:作品集网站(一天 5 小时):学习 Django,使用 Django 构建一个作品集网站,也要了解一下 Flask 框架。
- 第七天:单元测试、日志、调试(5 小时):学习单元测试(PyTest),如何设置和查看日志,以及使用断点调试。
真心话时间(绝密)
如果你非常「疯狂」,并且非常专注,你可以在一个月内完成这些任务。你必须做到:
- 把学习 Python 作为你的全职活动。你需要从早上 8 点开始学习,一直到下午 5 点。在此期间,你可以有一个午休时间和茶歇时间(共 1 小时)。
- 8 点列出你今天要学的东西,然后花一个小时复习和练习你昨天学过的东西。
- 从 9 点到 12 点:开始学习,并进行少量练习。在午饭后,你需要加大练习量,如果你卡在某个问题上,可以在网上搜索解决方案。
- 严格保持每天 4-5小时的学习时间和 2-3 小时的练习时间(每周最多可以休息一天)。
- 你的朋友可能会认为你疯了。走自己的路,让别人去说吧!
如果你有一份全职工作,或者你是一名学生,完成这些流程可能需要更长的时间。作为一名全日制学生,我花了 8 个月的时间来完成这份清单。现在我是一名高级开发人员。所以,不管花多长时间,一定要完成它们。要想成功完成一个目标,必须付出百分之百的努力。
第四周:认真考虑工作(实习)问题
第 4 周的目标是认真思考如何才能被录用。即使你现在不想找工作,你也可以在探索这条道路的过程中学到很多东西。
- 第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接。
- 第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中。
- 第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上。
- 第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题。
- 第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面。
- 第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3
个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们。 - 第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。
博主寄语
我当初就是这么过来的,我能成功相信再看本篇文章的你也一定可以,在学习Python的路上我也受到了很多前辈的关照,这次换我来给大家帮助。下面我会分享最近梳理出来的Python零基础系统教程,如果你是准备学习或正在学习Python,这份资料一定对你有帮助。
-
① Python所有方向的学习路线图,清楚各个方向要学什么东西
-
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
-
③ 100多个Python实战案例,学习不再是只会理论
-
④ 华为出品独家Python漫画教程,手机也能学习
-
⑤ 超多本Python电子书,主流和经典的都有
-
⑥ 历年互联网企业Python面试真题,复习时非常方便
image
需要博主分享的这套资料的小伙伴可以给博主发简信【88】,我看的后会给你分享。