我在大学是如何通过自学编程从养殖(动物科学)专业变IT男的经历

585 阅读13分钟

时光不负,创作不停,本文正在参加2022年中总结征文大赛

名人名言:

  • 坚持不一定成功,放弃必定失败
  • 种一棵树最好的时间是在十年前,其次是现在

我在大学是如何通过自学编程从养殖(动物科学)专业变IT男的经历

我的 2015 ——> 2019 年,大学的专业是动物科学(高考填报的全是计算机软件之类的,后来没录取,调剂成动物科学了),属于养殖类的,看似和计算机专业不搭边,但是我个人比较喜欢计算机,喜欢瞎鼓捣,后来也就走上了IT 的道路

怀念我的美好大学时光,我的大学室友,我的毕业导师

大纲:

  1. 15 年 9 月 入校,大学的生活一切都是那么的美好
  2. 16 年 给自己定了第二条 职业规划,开启双修之路
  3. 17 - 18 年,疯狂自学Python web 开发,爬虫,前端,都知道一些,但是并不是很熟悉
  4. 18 -19 年,被人工智能劝退,遇贵人 老板,开始远程工作(并未入职),帮忙做一些开发的工作锻炼自己的技术
  5. 19 年毕业,再遇良机,并抓住了机会,正式踏入 IT 行业 (你不会知道,将来你的那个技能树会帮到你,但是你尽管努力即可,剩下的交给命运)
  • 15 - 16年 年初入大学,充满了向往,通用课程学习很勤奋,还得了一个小的校级奖学金的奖。后来发现课余时间比较多,因为也并不是很喜欢这个专业,开始在课余时间学习编程。期间接触了有手机端的编程,E4A,IApp等不知名的语言,PC端接触的有易语言,Java,C,最后发现了慕课大学,并选修了Python 这门语言,发现Python的 简单灵活,以及其强大的第三方库(Python 也被称为胶水语言),发现这门语言才是最适合我的,开始坚持学习了下去,也获得了两个证书(北理工大学的Python语言程序设计证书和北京大学的Python语言基础与应用证书),自此开始踏入了双修之路(动物科学和Python)。

  • 16 - 17 年,好像是开始上专业课了,时间太久了,已经记不太清了。因为慕课网里学的Python的知识都是比较基础的,我想更加深入的去了解,去学习这门语言,就去网络上找了某🐴的就业班课程,课程内容几十个G,从Linux 命令开始,一直学到 Python的web开发(这门课程真的很丰富),课程内容有linux 方面的知识,以及Python的高级知识,还有前端三大件的知识,在web 框架方面学习的是 Django 和 tornado,也跟着教程写了几个项目,那时候接触的前端还是 jQuery去操作真实DOM,配合Django 使用的服务端渲染。期间还利用学生身份的抢到了某云的一元一月的服务器,真的爽。开始在服务器上进行研究,鼓捣,那时候虽然学的是Python,但是我服务器跑的代码却是网络上搞的PHP的源码,哈哈,因为使用的是 宝塔面板(很好用,强烈推荐)。

  • 17 - 18 年,在2年之间,坚持的把 几十个G的网络课程学完了,后面发现 爬虫 也是Python的一个方向,并且也是比较有意思的,又自学了 21天学会Python爬虫的课程,掌握了 如何去爬取网页,去自动化浏览器,去写xpath 语法,去使用框架去爬取数据,并且使用了 fiddler 等抓包工具去爬取 手机端的数据,以及使用appium去做手机端的自动化爬取。在 18 年的时候要去实习,因为专业是养殖类型的专业,无奈只能去养殖场,其实在去养殖场之前我就遇见了我的一位贵人。之前在某个Q群遇到一位求助的小白,需要搭建服务器环境,我就好心帮了他一下,然后没想到是一个某科技公司的老板,老板看我人也不错,后续有相关的编程的小任务也安排给我了,还给了我不错的酬劳(大学生外快吧,帮老板搞点小玩意,随便锻炼了自己的技术),就这样虽然身在养殖场,但是在下班之后,我却在抱着电脑和老板远程沟通,也算是计算机的实习经历了,虽然说是老板,但是却更像是朋友,老板也会给我讲些其他方面的事情,增加我的认知,再次谢谢老板,提供了远程实习的机会,祝老板公司做大做强。

  • 18 - 19 年,因为最近人工智能和机器学习特别火热,并且慕课大学上有相关的课程,本来也打算浅学一些,哈哈,看来不是这块料呀,各种数学算法公式直接劝退在下了。在学校一边帮老板工作,一边学习新的编程知识。没想到也是坚持了这么久哈哈。

  • 19 年毕业后,本来先打算从事大学所学专业的工作,做了一个销售(朋友们都很NICE),但是干了一个月,我这口才对客户不行呀,说服不了客户,就辞职了。阴差阳错,在辞职的当天我记得特别清楚,因为我的简历在某招聘网站上挂着,有个男的hr 给我打电话,问我有没有意愿去工作,说他们需要Python。瞬间就答应了。虽然也在犹豫是不是骗子(因为我只有远程工作的经验呀),但是后来还是下定决心去试试看。

  • 入职 新公司前 是需要面试的,然而在新公司我是第一个 Python开发,没人面试我,就给我安排了一个 搭建Python的 Odoo (企业级的ERP框架),hr 说 也有让之前一个候选人来搞odoo的搭建,但是 那个候选人搭建了一周没有搞起来。我这边是没有接触过这个框架,开始各种查资料,查官网,查如何配置环境,从开始搭建仅用了一天 就把搭建成功的前端odoo界面发过去了(当时是window本,上面使用了 Ubuntu虚拟机,然后除了 普通搭建方式以外,哈哈,还有 docker 镜像,那不是 效率高起来了),然后就属于面试通过了(准备开始工作之旅啦)。

  • PS:在大学其实不仅仅学习了Python,还有docker Nginx k8s 等相关的知识(有的没用到,现在都忘记了哈哈,还剩下一堆的有道云笔记来证明我曾经学过),因为我是一个比较爱鼓捣的,大学相对来说我那个专业又比较闲,背背书就能考过,我就各种知识都学了一些,有些在毕业以后用到了,有些没有用到(但是我喜欢,也可能将来会用到)。我目前记得的首先学习的应该是DREAMWEAVER,因为在最开始想做一个网站呀,就发现了这个,并找了相关的课程,没想到课程有点古老,我是从头开始学的,前面的课程中又把 PhotoShop这个软件给学了,现在发现ps 里的好多的颜色概念,以及图层概念对我去理解和学习其他事物挺有帮助的。学习完PS 开始学习 JavaScript了,但是课程讲的并不好,所以学习了一段时间就放弃了,真正学习并用到js 的时候是在学习 Python 就业班的课程的时候。还学到了一些其他的知识,现在也记不清了。对了期间 还搞过 淘宝店(起来以后一个月的利润好像有一千块左右,后来被搞死了),还做过自媒体(搞的一个视频火了,赚了 千把块),还搞过 比特币(可惜是假的网站),把我赚的钱全亏进去了,哈哈。

  • 和老板相关的事情:因为我服务器上跑的是PHP 语言,我自己平时也在研究一些PHP的源码,前端研究的是 小程序(那两年小程序是风口),主要的工作就是远程上班,通过微信电话,帮老板搭建和修改现有的小程序,老板很有人脉,月入10万呀,羡慕,而我是他们公司的技术,此处你会发现老板的用人之道(资源聚合),我不用会编程,我找会的人来帮我即可。

工作后的我

从后端 Python 开发 转为 前端 开发的 神奇之路

  1. 19 年 7 月,去了常州,入职 第一家 IT公司,从事Python 后端开发,框架 Odoo,并搞小程序开发,以及学习 Vue 和 React
  2. 20 年 7 月,去了上海,跳槽到了 第二家新公司,开始全职搞 前端 React 开发,内网环境,局限性太大,代码写着很不舒服
  3. 21 年 3 月,因某些变故,辞职 回老家,从上海来到郑州

我的 2019 ——> 至今的工作之旅。生命不息,鼓捣不止

  • 19 年,在入职了第二家 互联网 公司后,因为上面提到了招聘我的是男的hr 吧(简称A),我们3个人就一起合租了一个房子,为啥是3个人,因为还有一个Hr 朋友(简称B)。两个Hr和 我一个程序员(后来在我的劝说和影响下,主要是分析了hr 行业和IT行业的利弊, 也成功帮他们 转行了前端,成为了程序员,他们现在都过的很不错)。新公司的第一个项目是小程序(因为我之前一直帮老板搞小程序),那时候还没了解过 跨端开发框架,直接原生的搞起来。后来就开始搞Python的企业级框架(Odoo),期间发现现在的前端已经不是之前的jQuery时代的前端了,就在下班后又开始刷前端知识了。
  • 开始刷前端知识了,先是学习了 Vue框架,卧槽,前端还能这样写,感觉用elementUI写着很爽,效率也高。但是用vue 全家桶写着 就是感觉不够灵活,在后来 学习到了 React库,又使用 react 全家桶耍了一下,发现在前端里,这个才是我的真爱。期间开始在网上 找各种实战教程,各种学习资料,疯狂吸收知识,终于学有所成。
  • 后端到前端的转变:后来发现前端 比后端 更加有意思(PS:产品不反复变更需求的情况下前端是真的舒服,因为产品需求的变更,大概率的会导致前端界面的变更),索性直接从 第二家公司 通过 前端面试 跳槽到了 第三家 公司 转成了前端,因为在原公司是搞 Python后端的,没有前端的项目让我去实践我的前端知识。
  • 20 年了,入职了 第三家 公司,在前端的某次需求中,需要要求前端进行 地理位置的获取,并且显示在界面上,因为是 银行的 金融项目,所以是内网,在测试的过程中,会发现Edge 浏览器的位置获取api 可以精确获取到地址坐标,而谷歌不行,这引起了我的好奇心,我更加疑问了为啥在内网环境下依然可以获取到定位信息呢?查询网上各种资料来确认定位的原理网址。发现原来无论是 谷歌 还是 Edge 浏览器都是要发送当前设备的相关信息给 自家的定位服务器去查询当前设备定位地址的,于是 我就来了个 骚操作,利用学Python爬虫时候的知识去爬取一下这个接口,使用fiddler 进行 抓包分析谷歌浏览器调用地理位置错误原因,后来真的看到了 浏览器发出的数据。哈哈,鸡贼。
  • 但是在这个公司的前端开发中,写代码写的并不舒服,因为前面也提到过是内网环境,这导致 遇到问题了 只能用手机 查询解决方案,或者直接使用另外一个电脑,效率太低了。还有一个缺点就是 项目使用的 react 的全家桶,但是却不给谷歌浏览器安装 redux 相关的调试工具,这也间接导致了 效率低的问题。
  • 因为上面说的两个原因导致开发效率低,我是不能忍的,期间 我曾 尝试 越权,因为某些正式员工的电脑是可以直接访问外网的,我就开始鼓捣,哈哈,终于 通过好像通过改 pac 的协议吧(时间太久忘记了),竟然可以成功访问 谷歌了,但是没过 2 分钟,就被再次 封了。第二个问题是 不让安装 谷歌浏览器redux 扩展的问题,我直接安装了 redux-logger这个包打算提高通过控制台的日志输出,来看redux state的变更,进而提高开发效率,后来被 项目负责人知道了,这个git 提交被撤回了,及时是为了提高效率。总的来说,还是学到了很多的东西,遇到了不错的哥们,一起探讨技术,解决难题,但是在开发的过程中 并不舒服。
  • 一直到 21 年 3 月份,上海疫情,过年不能回家,到了大年三十团圆夜也是一个人呆着,还是在学习ing,过年结束,因为发生了一些变故,只能辞职回老家了,开始新的工作和生活。

闲暇时光

搞搞树莓派相关的硬件开发,虽然没有硬件方面相关的知识,但是 只要学,那都不是事

  • 大学学Python的时候就有Python操作树莓派,但是大学没钱呀,就没有买,直到毕业后,自己买了一个树莓派哈哈,也是心疼了好久,开始搞机。
  • 树莓派 说白了 其实就是一个服务器,你可以安装各种操作系统,也可以使用树莓派进行硬件开发,我用树莓派搞过 使用树莓派,通过Python 和 node 控制 led 灯,因为树莓派链接的有线网络是局域网,我又用react 写了一个静态页面,去调用Python 或者 node 的接口 进而去控制 led 灯 的 亮 和 灭,哈哈,这要是在结合一些 摄像头 或者 麦克风 那不就是做到 智能家居了,哈哈 等以后买房子了,一定要自己写一套 这玩意。

WZRY,这个游戏也是从 15 年就陪伴我的,在学习枯燥的时候来两把(游戏虽好,不要贪杯呀)