我本科硕士都是读新闻专业, 毕业后却去了游戏公司做程序员, 震惊了不止我的老师、同学,也震惊了我的父母。那么, 这么大跨度的转变我是如何实现的呢?

要想从完全不相关专业和背景转换成为程序员,基础、时间、决心,三个条件只要具备了两个就有很大概率成功。接下来,我将和你说说我的故事,希望对你有所帮助。

决心:从产品经理到工程师

大四的时候(2015~2016年),正是国内互联网巨头群雄逐鹿的时代,每天打开手机看新闻和朋友圈都是相关的资讯,而且互联网的高薪和发展前景非常吸引我。于是我就开始马上学习编程要做程序员升职加薪迎娶白富美当上CEO了么?

当然不是了。

一开始我认为大学非理工专业的人要进互联网行业肯定是先从运营或者产品经理开始。所以我先打算成为一个产品经理。

我在一番拉勾、实习僧和微信群中的寻找和投递后,获得了在百度图片当产品实习生的机会。这段实习让我不是很想继续追求做产品经理了——因为我发现他们所需要的“产品实习”只是需要有人帮他们重复地评审图片而已,这并不是多有技术含量的工作,如同流水线工人一般,非常的无聊。

这次实习最大的收获或许是百度的那种重视技术的文化(百度每年各种奖项都是颁给技术人员)。这让我下定决心,要放弃成为PM而转为RD(百度内对程序员的称呼)。

起步:学习编程的基础

那么我有学习编程的基础么?算是有,也算是没有。

我在高中学过的pascal的基础——是真的很基础,就是差不多会写if-else和for语句的那种水平。大一的时候我又学了C语言。虽然这些语言的知识我已经几乎全部忘光了,但是学习过编程的经历让我对编程这件事至少有一些感觉,不会一想到要学习编程就觉得这对我来说不可能(而这却恰恰阻碍了很多人)。

经历一些编程学习的人都知道编程不是什么黑魔法,其实也就是人把自己脑子里的逻辑思路写到电脑里去让它执行,本质上和写一篇英语文章是很类似的。

起步阶段,我想先学一些容易的内容。

16年的时候前端大热,我就先是报了个网易云课堂的前端微专业,开始跟着学习HTML、CSS和JS这些东西。不过我学了两个月后,听说Java作为后端最常用的语言更好找工作,于是又同时开始学习Java方面的课程。

通过这两个方向的课程,我对web开发的前后端都有了一定的了解,并且发现自己更喜欢做的是后端的编程,因为前端很多东西过于琐碎了,经常在为了视觉上的一些对齐而纠结。

深入:学习数据结构和算法

在接触Java学习的同时,我也经常上知乎等网站看一些前辈对学习编程的建议。在这些程序老手的建议中,反复被提及的就是要学好数据结构和算法,因为它们是一个程序员的基本功。

这时候,我刚好读硕士第一年开学,我赶紧就利用大学的在线系统,查一下学校里有哪里在开《数据结构》和《算法》这两门课。查询到具体课程的上课时间、地点和专任教师后,我就通过邮件咨询了老师看看我能不能去上课。

现在看来我这封邮件言辞非常不谦虚,接触了一两个月Java和JS竟敢自称“熟练”。不过所幸我但凡有发邮件的教师/教授都给了我积极的回应,因此很快我就出现在了计算机和信管专业的教室里。

我一个非工科专业学生学习CS核心课程,一开始就是抱着诚惶诚恐的心态的。我基本上每节课都坐在第一排,然后尽可能做到课前预习,课后完成老师要求的作业,并且上完一个章节的知识就写一篇知识总结。相关的算法和数据结构知识总结我很多发在了简书上(https://www.jianshu.com/nb/7225186)。

在上算法课的实验课写上机作业的时候,因为当天学的东西掌握得还不牢,我经常还得一直请教助教小哥怎么写。好在助教小哥是人长得很帅人还超好的学长,基本上有问必答。有一次我还去学长的宿舍楼下问图算法那章节的作业,学长解答完了我的问题才和他女朋友出门……

一整个学期下来,我成功学习完了《算法分析与设计》、《数据结构》、《离散数学》这三门课,其中算法得了93,数据结构得了88分(哎,我为啥一开始不直接学CS……),对整个计算机专业的体系结构有了初步的认识。

第二个学期,我又报了《计算机网络》、《操作系统》、《机器学习入门》、《计算社会学》、《文本挖掘》等课程。报了这么多课程,一方面是因为第一个学期我的学习成绩让我觉得自己能够handle更复杂深入的课程了,另外一方面则因为我硕士学业有很多的选修学分需要完成,既然我现在打算走CS这条道路了,那么就干脆选修课也全上CS好了。

走出校园:实习与就业

学习编程、踏入CS最后还是为了能找个写程序的工作,但是万事开头难。

我在上算法的那个学期的期末就开始积极寻找相关实习,希望寒假的时间能积累自己的简历。然而,北京之大,我在拉勾投递了三四十个简历后,却只收到了两三个面试机会。

其中有一次,有一个小公司说让我去北京的东五环外的一个地方面试,结果我到了那里之后却发现这公司在一个废弃工厂里,而且这个地方周围一个人都没有。我面试完出来的时候是晚上八九点,一个人瑟瑟发抖,心想万一被传销分子抓走了怎么办。

所幸我后来在新浪找到了一个实习的机会,因此那个寒假都呆在新浪,工作主要是帮数据管理/分析员打下手,做些凌杂的事情。

这段实习做了一个多月后,我感觉能学习到的东西实在有限,因为我主要想做开发岗位,而当时数据管理/数据分析的工作主要是单纯写SQL调取数据以及处理一些其他数据报表的小问题。这项工作要求人比较细心且对数据非常敏感,这并不是我喜欢和擅长的方面。

大概三月份的时候,各个互联网厂商都开始暑期实习的招聘。名义上这是暑期实习,但其实就是当年的秋招,因为实习机会就是留用机会。而且一旦取得一个大厂的实习机会后,收获的不仅仅是这个大厂的留用机会,也是秋招时候简历上的经历,一举两得。

我一边买了面试准备的书(主要都是《Java程序员面试笔试宝典》之类)学习准备面试常考的技术知识,另一边投递了几乎所有市面上叫得出的有规模的互联网公司,也收获了很多次面试机会。

其中我印象很深刻、感觉特别挫败的是阿里的面试:我面到了第二轮的时候,被面试官嘲讽我是不是写的代码非常少,因为面试时候他让我说出我遇见的Exception,我说了大概五六个就语塞说不下去了,确实体现了我开发经历严重不足。

还有一次,我面了今日头条的岗位,两轮面试写代码后,面试官还带我去食堂吃了饭,然后HR和我谈,问我打算什么时候实习,来实习多久。我回学校后天天刷邮箱就等着发实习offer,没想到过了几天却收了一封拒信。

暑期实习招聘的那段时间我整个人感觉非常焦虑又亢奋,每天都在想如果我一个实习都找不到,干脆还是放弃了回去做本行专业找个工作或者考公务员好了。还好最后,我有幸通过了一家知名游戏公司的面试,成为暑期实习生的一员,并且最后也通过完成实习项目获得了公司的留用offer(那个暑假也过得很艰难,但是篇幅所限不再展开了~)。

这段暑期实习的从求职到最后结束,让我才开始确信,我真的成功转行到技术了。回头看,我特别感激我当时暑期实习公司的领导兼导师。

之后,秋招的时候,我也投了很多公司,进行了一轮尝试,因为我想知道自己到底是因为实力能留在实习的公司,还是单纯的运气而已。最终秋招里我拿到了百度开发类的SP(据说算法的SP更高)、滴滴出行的小SP、央行背景的网联清算公司(给北京户口和年20多万薪水)、华为、招银网络以及招行深圳分行的研发offer。

因为我想离开北京,所以我放弃了网联清算、百度和滴滴的SP。由于当时对暑期实习公司的好感以及一种被认可的感激之心吧,我最后选择留在它们这里而不是去深圳华为。

回顾:理性乐观地选择,扎扎实实地努力

回头看16、17年这两年,做这个转型的过程是痛苦和快乐交织着的:做自己不熟悉而且风险很大的方向,自然是有很多痛苦的,跑不起来代码又自己解决不了不得不到处微信上问人的经历我真的是每天都有;

但是做技术不断进步,看到自己不断取得成绩,理解越来越多的方面知识,这种成就感所带来的快乐又是巨大的。

我在向技术转型的这两年,经常反复读知乎问题《23 岁的你,曾处于什么样的状态?现在呢?》中的一个回答(https://www.zhihu.com/question/19832061/answer/13163761)

答主是一个自己努力学习成长克服困难最后在北京扎下根的技术女前辈。

她说:

做事要努力,困难面前不屈不挠;

选择不要犹豫,下了决心就付出行动;

放下过去的成绩,才能担当新的重任;

工作很重要,家庭更重要;

乐观、积极、向上的心态是幸福的源泉。

我谨把这些话送给所有决心走这条路的人。

我是如何从一个新闻狗转行成为程序猿的?相关推荐

  1. 纪念一下第一个在csdn的1024程序猿节日

    纪念一下第一个在csdn的1024程序猿节日 啥子是1024 啥子是1024 1024 是自然数之一 1024是2的十次方 1024是二进制计数的基本计量单位之一 在数字世界里,1024BYTE(字节 ...

  2. 奇葩的java代码_聊聊我面试过的一个最奇葩的 Java 程序猿!

    上周我聊了聊最让我反感的 10 种程序猿,无奈一个小时就进行了删除,详细原因就不说了,容易招黑. 今天聊的我面试过的最奇葩的一个程序猿,绝对是奇葩中的奇葩,简直是程序猿中的另类,最让我反感的程序猿又添 ...

  3. 2019年末回顾——一个不过平安夜的程序猿

    满地都是六便士,他却抬头看见了月光.----毛姆 前言 2019接近尾声了,一年一度的年末抢票大战一触即发.今天离2020还剩7天,抢票的行车之日是我的生日,别具意义.毕竟快到年关,所以我一般很少过生 ...

  4. 我从平面设计师转行做程序猿

    还记得上一年大学实习,因为参加省赛拿到三等奖,自己设计的东西也被指导老师夸赞,当时被夸的失去了方向,在VR领域取得的一定成绩我也没有在乎,转身去面试平面设计师,当时面试了一个实习工资底薪四千(我所在大 ...

  5. 一个工地狗变成程序猿的故事

    土木行业的苦逼在此不再赘述,现在很多土木狗都转行去做程序猿了,互联网是新兴产业,土木是夕阳产业,趋利避害是人的天性.然而转行真的那么容易吗?今天来说一个从工地狗变成程序猿的小故事,以及他的近况. XX ...

  6. 七夕关爱单身狗程序猿:4本书给你一个完整的脱单秘籍

    导读:今天,数据叔要关爱一下单身狗中的程序猿,当然,也可以说关爱一下程序猿中的单身狗,看起来有点动物园-- 别错过,文末有福利! 身为一个程序猿单身狗,在即将到来的明天可能面对的情况是介样婶儿滴! 也 ...

  7. “转行做程序员”很难?这里有4个建议

    近几年来,传统行业多处于经济下行,加上互联网行业的赚钱效应,想要转行到这一行的人越来越多,其中程序员这个行业更是很多人梦寐以求的. 但另一方面,我们也发现,这些想要转行的同学们往往会遇到很多困扰.就在 ...

  8. 女生做一个“程序猿”,真有那么不现实吗?正在学编程的女孩子注意了!

    最近在知乎上看到一个问题: 一位女生毕业工作快两年了,却越来越觉得现在的工作不适合自己,想转行IT做一个女程序猿,可是身边的朋友们都觉得女生学编程不好就业,劝我尽早放弃.我很迷茫,做一个女程序猿真有那 ...

  9. 女生转行程序猿,到底难不难?

    一条女生吐槽的消息: 你好,我毕业工作快两年了,却越来越觉得现在的工作不适合自己,想转行IT做一个女程序猿,可是身边的朋友们都觉得女生学编程不好就业,劝我尽早放弃.我很迷茫,做一个女程序猿真有那么不现 ...

最新文章

  1. 实例教程一:电话拨号器
  2. 分布式中Redis实现Session终结篇
  3. boost::mp11::mp_valid相关用法的测试程序
  4. Windows Phone 7“芒果”更新带来浏览器重大升级:IE Mobile 9
  5. javafor循环打印图案_C程序使用循环打印盒子图案
  6. php 分类排序,php将地区分类排序的算法
  7. Java中抽象类和接口的区别?
  8. 阿里巴巴闲鱼架构负责人王树彬:万亿交易规模技术架构实践
  9. mysql数据库mha_MySQL高可用性大杀器之MHA
  10. 理解Java - 线程池
  11. Android之断点续传下载(转)
  12. python机器学习之决策树详解
  13. HDU 2549 壮志难酬
  14. android扫雷PPT,《扫雷游戏制作》PPT课件.ppt
  15. 2020互联网公司中秋礼盒大比拼(22家互联网厂商)
  16. 赤子城科技三年两变:音视频社交成主力军,营收结构稳定性存疑
  17. 美国计算机研究生留学签证时间,美国大学研究生录取结果,美国研究生院录取时间和流程一览!附2021秋季截止日期...
  18. 一位MIT计算机博士对数学知识的思考
  19. 一分钟让你了解什么是CYN
  20. 让我摘下星星送给你_想摘下星星给你摘下月亮给你是什么歌

热门文章

  1. 眼下最流行的五大CSS框架_你都知道么?
  2. 10 个适合网店使用的免费 Bootstrap 模板
  3. pmp考试中容易混淆的22组概念
  4. ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)(转)
  5. 我和我老妈的经典搞笑故事[原创]
  6. gcc/g++静态链接和动态链接解决glibc版本不兼容的问题
  7. crtmpserver流媒体服务器的介绍与搭建
  8. linux shell 中 printf 与 echo的区别
  9. linux下使用expect+scp+shell实现分布式集群系统安装,升级,部署
  10. 计算机网络实验报告哈工大_哈工大计算机网络实验报告.doc