缘起
我18年毕业于黑龙江某二本院校,这里就不说母校的名字了,怕给母校丢脸。电子信息工程学院。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在富士康的昆山厂区,做自动化工程师。
记得那时候税前薪资大概是7k左右,因为是在工厂,工作环境很差,加班时间又很长,最重要的是也很危险,身体开始出现了各种毛病,所以我一直有想转行的想法,正好有当时的同事提前离职,报了一个线上培训班学习python。他学习结束后,在上海拿到一个12k的offer,所以就更加坚定了我转行学python的想法。
在辞职之前,心里还是有一些担忧,害怕学得不好,找不到工作,不过前同事帮我打消了很多顾虑,他告诉我python有很多优势:
1.简单:Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想。阅读Python程序像是在读英语。
2.易学:Python入手非常快,学习曲线非常低,可以直接通过命令行交互环境来学习Python编程。
3.免费/开源:Python的所有内容都是免费开源的,这意味着你不需要花一分钱就可以免费使用Python,并且你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
4.自动内存管理: 如果你了解C语言、C++语言你就会知道内存管理给你带来很大麻烦,程序非常容易出现内存方面的漏洞。但是在Python中内存管理是自动完成的,你可以专注于程序本身
5.可以移植: 由于Python是开源的,它已经被移植到了大多数平台下面,例如:Windows、MacOS、Linux、Andorid、iOS等等。
6.解释性 :大多数计算机编程语言都是编译型的,在运行之前需要将源码编译为操作系统可以执行的二进制格式(0110格式的),这样大型项目编译过程非常消耗时间,而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。
7.面向对象 :Python既支持面向过程,又支持面向对象,这样编程就更加灵活。
8.可扩展 :Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写。
9.丰富的第三方库:Python具有本身有丰富而且强大的库,而且由于Python的开源特性,第三方库也非常多,例如:在web开发、爬虫、科学计算等等
学习之旅
在他的开导之下,我很快就看开了,我觉得培训学习这种事情,更多的是要看自己的态度,要始终严格要求自己,确保自己在认真努力的学习,而不是自欺欺人的假努力。我自己也比较有信心,我知道我能做得到,所以21年初,我也毫不犹豫的选择裸辞,开始了为期半年的学习python之旅。
我学的是python,也是当下比较火的语言之一,发展方向也有很多。我选择的是做web,因为自己上一份工作时就有自学过相关的知识。学习的日子当然是比较枯燥啦,还好与身边的同学们一起学习,一起讨论问题,也不会觉得特别无聊。每天早上8点钟起来,9点钟上课,中午午休,下午继续上课,学校晚上会要求我们上自习,会有老师对一天的问题进行答疑,个人认为,这才是对一天学习内容吸收的最佳时机。
学习方案
下面是学校给我列的三十天计划里面的学习框架,我在这里放上来。
Day01~15 - Python语言基础
Day01 - 初识Python
Python简介 - Python的历史 / Python的优缺点 / Python的应用领域
搭建编程环境 - Windows环境 / Linux环境 / MacOS环境
从终端运行Python程序 - Hello, world / print函数 / 运行程序
使用IDLE - 交互式环境(REPL) / 编写多行代码 / 运行程序 / 退出IDLE
注释 - 注释的作用 / 单行注释 / 多行注释
Day02 - 语言元素
程序和进制 - 指令和程序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制
变量和类型 - 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换
数字和字符串 - 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码
运算符 - 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑运算符 / 身份运算符 / 运算符的优先级
应用案例 - 华氏温度转换成摄氏温度 / 输入圆的半径计算周长和面积 / 输入年份判断是否是闰年
Day03 - 分支结构
分支结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
if语句 - 简单的if / if-else结构 / if-elif-else结构 / 嵌套的if
应用案例 - 用户身份验证 / 英制单位与公制单位互换 / 掷骰子决定做什么 / 百分制成绩转等级制 / 分段函数求值 / 输入三条边的长度如果能构成三角形就计算周长和面积
Day04 - 循环结构
循环结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
while循环 - 基本结构 / break语句 / continue语句
for循环 - 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序
应用案例 - 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡
Day05 - 构造程序逻辑
基础练习 - 水仙花数 / 完美数 / 五人分鱼 / Fibonacci数列 / 回文素数
综合练习 - Craps赌博游戏
Day06 - 函数和模块的使用
函数的作用 - 代码的坏味道 / 用函数封装功能模块
定义函数 - def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数
调用函数 - Python内置函数 / 导入模块和函数
函数的参数 - 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数
函数的返回值 - 没有返回值 / 返回单个值 / 返回多个值
作用域问题 - 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字
用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块)
Day07 - 字符串和常用数据结构
字符串的使用 - 计算长度 / 下标运算 / 切片 / 常用方法
列表基本用法 - 定义列表 / 用下表访问元素 / 下标越界 / 添加元素 / 删除元素 / 修改元素 / 切片 / 循环遍历
列表常用操作 - 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找
生成列表 - 使用range创建数字列表 / 生成表达式 / 生成器
元组的使用 - 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换
集合基本用法 - 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空
集合常用操作 - 交集 / 并集 / 差集 / 对称差 / 子集 / 超集
字典的基本用法 - 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空
字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法
基础练习 - 跑马灯效果 / 列表找最大元素 / 统计考试成绩的平均分 / Fibonacci数列 / 杨辉三角
综合案例 - 双色球选号 / 井字棋
Day08 - 面向对象编程基础
类和对象 - 什么是类 / 什么是对象 / 面向对象其他相关概念
定义类 - 基本结构 / 属性和方法 / 构造器 / 析构器 / str方法
使用对象 - 创建对象 / 给对象发消息
面向对象的四大支柱 - 抽象 / 封装 / 继承 / 多态
基础练习 - 定义学生类 / 定义时钟类 / 定义图形类 / 定义汽车类
Day09 - 面向对象进阶
属性 - 类属性 / 实例属性 / 属性访问器 / 属性修改器 / 属性删除器 / 使用slots
类中的方法 - 实例方法 / 类方法 / 静态方法
运算符重载 - add / sub / or /getitem / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
类(的对象)之间的关系 - 关联 / 继承 / 依赖
继承和多态 - 什么是继承 / 继承的语法 / 调用父类方法 / 方法重写 / 类型判定 / 多重继承 / 菱形继承(钻石继承)和C3算法
综合案例 - 工资结算系统 / 图书自动折扣系统 / 自定义分数类
Day10 - 图形用户界面和游戏开发
使用tkinter开发GUI
使用pygame三方库开发游戏应用
“大球吃小球”游戏
Day11 - 文件和异常
- 读文件 - 读取整个文件 / 逐行读取 / 文件路径
- 写文件 - 覆盖写入 / 追加写入 / 文本文件 / 二进制文件
- 异常处理 - 异常机制的重要性 / try-except代码块 / else代码块 / finally代码块 / 内置异常类型 / 异常栈 / raise语句
- 数据持久化 - CSV文件概述 / csv模块的应用 / JSON数据格式 / json模块的应用
Day12 - 字符串和正则表达式
- 字符串高级操作 - 转义字符 / 原始字符串 / 多行字符串 / in和 not in运算符 / is开头的方法 / join和split方法 / strip相关方法 / pyperclip模块 / 不变字符串和可变字符串 / StringIO的使用
- 正则表达式入门 - 正则表达式的作用 / 元字符 / 转义 / 量词 / 分组 / 零宽断言 /贪婪匹配与惰性匹配懒惰 / 使用re模块实现正则表达式操作(匹配、搜索、替换、捕获)
- 使用正则表达式 - re模块 / compile函数 / group和groups方法 / match方法 / search方法 / findall和finditer方法 / sub和subn方法 / split方法
- 应用案例 - 使用正则表达式验证输入的字符串
Day13 - 进程和线程
- 进程和线程的概念 - 什么是进程 / 什么是线程 / 多线程的应用场景
- 使用进程 - fork函数 / multiprocessing模块 / 进程池 / 进程间通信
- 使用线程 - thread模块 / threading模块 / Thread类 / Lock类 / Condition类 / 线程池
Day14 - 网络编程入门和网络应用开发
- 计算机网络基础 - 计算机网络发展史 / “TCP-IP”模型 / IP地址 / 端口 / 协议 / 其他相关概念
- 网络应用模式 - “客户端-服务器”模式 / “浏览器-服务器”模式
- 基于HTTP协议访问网络资源 - 网络API概述 / 访问URL / requests模块 / 解析JSON格式数据
- Python网络编程 - 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块
- 电子邮件 - SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / poplib模块 / imaplib模块
- 短信服务 - 调用短信服务网关
Day15 - 图像和文档处理
- 用Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果
- 读写Word文档 - 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理
- 读写Excel文件 - xlrd模块 / xlwt模块
- 生成PDF文件 - pypdf2模块 / reportlab模块
Day16~Day20 - Python语言进阶
- 常用数据结构
- 函数的高级用法 - “一等公民” / 高阶函数 / Lambda函数 / 作用域和闭包 / 装饰器
- 面向对象高级知识 - “三大支柱” / 类与类之间的关系 / 垃圾回收 / 魔术属性和方法 / 混入 / 元类 / 面向对象设计原则 / GoF设计模式
- 迭代器和生成器 - 相关魔术方法 / 创建生成器的两种方式 /
- 并发和异步编程 - 多线程 / 多进程 / 异步IO / async和await
Day21~30 - Web前端入门
- 用HTML标签承载页面内容
- 用CSS渲染页面
- 用JavaScript处理交互式行为
- jQuery入门和提高
- Vue.js入门
- Element的使用
- Bootstrap的使用
另外,进步最大的阶段,还是学校安排做项目实训的时候,同学们几人一组,组成开发团队,然后分析项目,划分任务,根据平时所学,进行实战。会给大家提前进入职场的感觉,当然过程中会遇到大大小小的问题,同学们一起商量,互相帮助,最后项目成型以后,真的是觉得很有成就感,进步也是最快的。
在整个学习过程当中,我是没有碰到什么瓶颈的,因为我的学习习惯就是不去积压问题,发现不清楚的点,第一时间去解决,所以学起来没有多困难。通过这半年的学习,除了专业技能的明显提升以外,家人都说我比之前更懂事了,生活也变得更规律,对时间和知识的管理更加的完善,对于我个人来说,的确变化很大。
面试找工作
学成就要实战嘛,学习结束以后,我开始投简历、面试。一开始还是很慌张的,因为自己是半路出家,没有开发经验,担心自己不够用人单位的要求、被嫌弃。当时我的就业指导老师和班主任对我帮助很大。他们告诉我,有这种想法很正常,都是这样过来的,别顾忌那么多,先把这一步迈出来,多面几家,哪怕一开始准备的不够充分,多面几家下来,自己的问题点就会暴露出来,然后再去准备,再面试,这样一来,总会有offer的。
我听从他们的指导,白天面试以后,把碰到的问题记录下来,晚上回到家,就去找答案,就这样,面了4、5家,我就轻轻松松拿到3个offer。最后我比对一番就入职了,目前我在软通动力上班,是华为的外包,办公地点也是华为公司,工作不算累,也不像网上说的那么可怕,偶尔加班也不会很晚,薪资16K。
现在回过头看当初的决定,还是正确的,我也没让自己失望,确实把自己转行成功了,脱离了工厂,薪资也翻了一倍不止。
总结
对于转行做程序员,我能成功靠什么?两个关键词,决心和毅力!
如果你下定决心,做了选择,就一定要坚持到最后。
如今我已成功转行,现在在这个行业只算得上一个新人,但随着岁月增长,我会慢慢成为一名“老猿”,但我也会依然把自己这颗学习的心保持到老。同样的,我也希望你在青春迷茫时,能不要放弃,因为每个人,都有柳暗花明的那一刻。
在这里我愿意把我当时学习的编程教程资料来分享给大家然后让大家可以更好的学习好Python知识教程!!!
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
学习资源推荐
除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。
这里给大家展示一下我进的兼职群和最近接单的截图

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
### 1.Python学习路线
2.Python基础学习
01.开发工具
02.学习笔记
03.学习视频
3.Python小白必备手册
4.数据分析全套资源
5.Python面试集锦
01.面试资料
02.简历模板
因篇幅有限,仅展示部分资料,添加上方即可获取👆
------ 🙇♂️ 本文转自网络,如有侵权,请联系删除 🙇♂️ ------