大家好,我是小顾,大学顺利毕业,找到工作后一直都想为之前的生活状态和经历做个总结。但都因为懒于自思和回顾而被耽搁了,所以,很荣幸在此与大家分享我的故事。希望通过我的故事能帮助你们收获到自己的故事和心声。
在我的大学生涯里,有幸在一次活动中见识到了人工智能编程的魅力,所以就了解到了python这门语言编程,也心向于此,但苦于专业与此相差甚远,因为学的是土木工程专业,毕业后顺利进入一家从事水利水电行业的国企,工作也混到了个小领导,工资待遇倒也还说的过去。但本人对于这份工作是极其不喜欢的,工作常年漂泊在工程上,山沟沟的穷乡僻壤,人迹罕至,对于年轻人来讲简直是一大折磨。
恰逢疫情原因,长居在家就萌生了转行的想法,说实话这个想法是经历过很多个冥思苦想的夜晚才定下来的,天平的两头,一边是稳定可期的工作,一边是一无所知的未来,我毅然而然的选择了看似摇摇欲坠的一头。有人为了就业,有人为了高薪,有人为了梦想,但我想,能够选择一份长期喜爱并值得你持续投入付出的工作定然是个不错的选择。
既然目标定下来了就很好办了,不放弃一直走,我先在网上搜集了大多python的相关资料和介绍,我从去年四月份开始接触编程,先在此声明,之前毫无经验。所以先是买了几本基础的书和在b站的学习视频跟着学习,初窥门径后觉得自学效率太低,花费时间成本太高,又在网上看到有专门的培训机构,于是就和相关人员联系,然后开始了我的python的线上培训学习旅程。
学习的开端
作为初学者,我接触到的第一个月的月目标是这样的:
熟悉基本概念(变量,条件,列表,循环,函数)
练习超过 30 个编程问题
利用这些概念完成两个项目
熟悉至少 2 个框架
开始使用集成开发环境(IDE),Github,hosting,services 等
整体计划
我将月计划细化成周计划。
第一周:熟悉 Python
要积极探索 Python 的使用方法,尽可能多的完成下面这些任务:
第一天:基本概念(4 小时):print,变量,输入,条件语句
第二天:基本概念(5 小时):列表,for 循环,while 循环,函数,导入模块
第三天:简单编程问题(5 小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等
第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等
第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表。
第六天:面向对象编程(OOP)(6 小时):对象,类,方法和构造函数,面向对象编程之继承
第七天:算法(6 小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)
第二周:开始软件开发(构建项目)
第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期,我建议你在 VS code 中安装 Python 扩展或使用 Jupyter notebook。
第二天:Github(6 小时):探索 Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request)。
第三天:第一个项目——简单计算器(4 小时):熟悉 Tkinter,创建一个简单的计算器
第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它。
第七天:托管项目(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),如何设置和查看日志,以及使用断点调试。
真心话时间(绝密)
现在回过头来发现我当时真的非常「疯狂」,并且非常专注,竟然可以在一个月内完成这些任务。
第四周:认真考虑工作(实习)问题
第 4 周的目标是认真思考如何才能被录用。即使我现在不想找工作,那我也应该在探索这条道路的过程中学到很多东西。
第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接。
第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中。
第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上。
第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题。
第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面。
第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3 个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们。
第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天 的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。
为工作准备
讲师的授课细致入微,往往一知半解的知识点,讲师几句话就能深深映入脑海里。
在这样的环境下,知识技能水平水涨船高,最深刻的一点就是编程学习的提升永远都不是循序渐进,更扎实的基础和知识意味能带来更大的知识效益。所以学习到了后期完全是游刃有余。在学有余力的情况下还自学了一些前端和算法知识,也算是为之后的高薪就业和工作做好了铺垫。
再之后就是找工作的事了,python一般有web和数据分析方向的两条主线的工作可以找,因为对于开发还是很符合我的兴趣的,然后就投简历,boss,拉钩大量海投,一开始没有经验也没有好好准备又是上课又是面试,第一个星期劳而无功,于是总结经验,好好准备面试考点和失败的面试经验。苦心人天不负,第二个星期面试了7家公司拿下4个offer,编程半年,我选择了一家待遇较高做文本智能的公司,13k底薪,14到18薪年终奖以及项目提成。
Python学习经验分享
首先告诉大家,Python是一门简单易懂的编程语言,适合0基础人员学习,该语言的语法结构非常简单清晰,比较适合入门学习,如果你真的没有任何基础,想要学习好Python,可以从以下几点出发:
1、首先制定一套合适的学习计划。Python虽然对比其他的语言要简单很多,但是学习任何东西一定要注重整体的结构性,有计划的学习才可以更好的掌握好技术。在学习Python之前,我们需要做Python有简单的了解和认知,理解这门编程语言的意义和概念,同步去学习更多的知识。
2、合理的时间计划和安排。学习编程语言需要一个循序渐进的过程,不间断的学习下去才可以更好的掌握好Python。对于完全没有基础的人来说,建议参加培训班去学习,效果快、时间短,提高就业优势,而对于职场人来说,想要完全靠自学,一定要每天抽出2-4小时的时间去学习,做好安排。
3、注重动手和实践。很多时候实践出真知,学习Python最好是边学习边进行练习,通过大量的项目练习可以更好的掌握好Python,建立编程思想,利用Python来解决问题。
4、多交流多学习。完全自学的情况下,如果没有线下资源,可以进行线上交流学习,在Python相关的学习论坛,与行业大佬进行交流也是提升自身水平的关键。
分享一些python入门学习资料和书籍帮助初学者,系统的资料让学习效果事半功倍。文中所展示的资料全部都是免费分享,需要的小伙伴请私信我【免费获取】。
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
安装 Python 环境!
工欲善其事必先利其器。学习Python常用的开发软件也都整理在这了,给大家节省了很多时间。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去。如果你不知道你该做什么,可以查看下面的实战案例。
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
你曾年轻过,奋斗过,不放弃,精彩还会继续...