这是本人真实的转行经历,其实早就想整理出一篇文章了,无奈前几天工作任务繁重,自己可支配时间较少。
发这篇文章的目的,也是给大家提供一些参考,避免一些坑。
文章内的观点只代表我个人的看法,不绝对。如果有其他的问题,欢迎在文章的评论区一起讨论。:)
背景介绍
我先介绍一下我自己,以及我是如何萌生转行至程序员的这个想法的。
我是18年毕业于某985的机械设计制造及其自动化专业,了解这个专业的应该都知道这是个大坑。如果读研的话,会好很多。而我在校学习期间整天只知道玩,学习成绩倒数,临近毕业也不想考研。毕业时找了一个大型国企的机械工程师的工作,当时找这个工作只知道是跟我专业对口的, 这份工作具体干什么的是一无所知。毕业后进入公司才发现,这不是我想要的,工作环境、工作内容,都很无趣。所以萌生了转行的想法。
当时部门内部是有软件科的,一起共事久了发现,好像做软件搞编程很适合我。于是在下班以后,经常自学编程方面的东西。上学期间是学过C语言、计算机组成原理这些课程的,当时心思都在玩上边,所以这些课成绩都很差。现在也不知道为什么,突然觉得编程真的很有意思。于是我就几乎每天晚上学习着写点代码(主要是python),然后第二天中午吃饭时,就跟软件科的小伙伴一起聊昨天的一些问题点。慢慢的,我觉得时机成熟了。
如何选择
到19年的10月份,我辞职了。开始在家全身心的准备转行。
第一,我为什么选择python。因为首先python的语法比较简洁,写着很爽(自从学了python语法后,再也不想看别的语言了…当然这也不是什么好事)。而且python的应用场景也很广,爬虫、web、数据分析、人工智能等。
第二,我为什么选择自学。辞职前,我也向周围的同事和一些培训班的老师了解了一下情况,都是推荐上培训班。培训6个月左右的时间,光学费就将近2万块钱,再加上吃住,真是一笔不小的开销。但是我觉得,如果课程质量高的话,花这些钱是值得的。然后我在周末的时候就去一些培训机构进行了试听,然后发现……跟我自学的内容差不多啊!而且老师为了照顾班里一些理解比较慢的同学,课程也会讲的比较慢。最后的最后,选择了自学。
自学经历
工作期间只是会python的基本语法,这离胜任开发还差的很远。所以我计划在家学习5个月的时间,即从19年10月份到20年的3月底,开始找工作。
我是准备以Python Web开发作为切入点的。所以在自学期间,主要学习了Flask、Django等Web开发框架,然后前端学习了HTML、CSS、JavaScipt、Vue框架(后来都不怎么熟悉了),数据库学习的是MySQL与Redis,还学习了MongoDB(没怎么用也忘了)这时候就准备学习着写个小项目了,我参考的是黑马的《DailyFresh天天生鲜》与《iHome》。项目我最后都重新整理发布到我的Github中了,链接如下:黑马天天生鲜项目,黑马租房项目,项目的环境搭建以及如何部署我都写好了,大家如有需要可以参考。
项目部署时,听说Docker部署方便,又学习了Docker(k8s没有学)。为了很好的支持高并发,学习并使用了Nginx。还有他的一些,比如Git版本管理工具、RabbitMQ消息队列等。
在准备面试前,发现自己专业知识欠缺,又啃了啃《数据结构与算法》、《计算机网络》、《操作系统》、《高性能MySQL》这几本书。
这些东西有的长时间不用就忘了,中间还回顾了好多次:)
投简历前,我看了些准备面试的文章,比如:Python面试题汇总、技术面试必备,还有一些视频,比如:Leetcode刷题,通过这些真的又学到了很多东西。
面试经历
开始投简历,我是用的拉勾网和boss直聘这两个招聘网站,前两天根本没有公司理我。估计是看我没有相应的项目经历,又是半路出家的,就直接pass了。开从第三天开始,从boss直聘上慢慢收到了面试邀请,当时我知道这些机会来之不易,所以每次面试前和面试过程中都很紧张,导致好多东西我能答出来的却磕绊了或者答非所问……
面试的内容我整理了部分,放在这里供大家参阅。Python Web面试一,Python Web面试二,然后华为的面试只进行了机考(因为面试时间跨度太长了,遂放弃了),华为机考题分享。
最后终于面上了一家,这家公司内部的职位涵盖了Python爬虫、Web开发、数据分析、机器学习,如果入职后对岗位不满意,还可以调岗。其他包括工作环境和待遇,我觉得的还不错,最后就签了合同。至此成功转行。
自身感悟
转行成功后,周围好多人都开始找我聊天,问我这个那个的。问的最多的就两个问题。
一个就是怎么办到的。我身边也有人想转行,但是没有勇气。那么我就开始鼓励他,给他喝些鸡汤哈哈哈哈。工作这个事是大部分人都逃不掉的,是要陪伴大半辈子的,与其在自己不喜欢的领域摸爬滚打受苦受累,还不如拼一把,转到自己喜欢的领域去奋斗拼搏。
再有一个问的多的就是程序员加班多不多,累不累。说实话,一线城市各行各业都会有加班的,而且还不是少数,我觉得要坦然面对这个事,活儿干不完不得加班啊。再有就是,如果说真的喜欢这个专业,比如我,是无所谓加不加班的,因为就算不加班,晚上回来了我还得打开电脑学习技术。这是逃不掉的,想入行就得做好这个思想准备。
我觉得,如果想转行进入编程岗位,基本功是必须要扎实的,包括计算机专业相关知识和编程能力。我在面试的时候问的最多的,就是数据结构和算法相关的问题,还有就是要现场写代码。再有一个就是要明确自己的切入点吧,因为软件知识是非常多的,而且刚入行不可能做到这个也学那个也会的,所以确定一个切入点挺重要的。
目前上班将近一个月了,同事和领导都很nice,感觉自己的成长也是突飞猛进,真的很庆幸之前做的那个决定,改变了我人生的轨迹,让我感觉实现了自己的价值。最后希望以后自己工作能越来越顺利吧~