从大学到社会,我的编程之旅(2022)

我的学习工作经历,七千字长文,阅读时长随心

2022-05-17,我从工作五年的公司离职,做出这个决定后,我心中一直有个声音和我说,写点什么纪念一下吧。

这算是我人生中一个比较重要的节点,于是我就从心地将我的个人经历梳理一番,本文我将围绕学校、业余、工作这三块来展开说说自己从毕业到工作这9年的一些经历和感悟:

  • 学校:从生物专业到拿计算机全国设计大赛一等奖;

  • 业余:来一个焦虑感十足的标题就是我是怎么半月赚十万块;

  • 工作:如何在工作中保持进步。

‍ 学校

骐骥一跃,不能十步;驽马十驾,功在不舍

大学时刚入学的我,普通二本,无所谓什么专业;没有人生目标,满脑子的吃喝玩乐。但是,一个人开窍有时候真的是一瞬间,我永远记得那个瞬间:

2013年,我躺在宿舍床上,看着樱木花道重置版,一脸傻笑。突然,我也不知道什么情况,就像通灵一般,好像有个人在我心中发问,然后一个问题从我心底升起:毕业后你会干嘛?

这个瞬间我真的愣住了,我会干嘛?我能干嘛?我是学生物的,而且还是二本学院的生物专业。这种让人一瞬间成熟的悸动之感,让我永生难忘,因为这一瞬间,造就的可能是前后两个人生。

我学会了两件事情:

  • 思考规划未来

  • 逐步执行前进

所以我开始计划转专业,这让我来到了我生命中第一个转折点,软件工程。刚转过去c语言什么的我也不了解,也跟不上班上的同学,但坚持就是胜利,大一的暑假我就留在学校宿舍写代码,从师兄那里借了c语言一行行地敲,我什么都不懂,只是机械地将一段段字符输入到电脑,然后得到输出,期间也自学了前端。

每天自学编程到深夜,我永远记得黑暗中明亮的电脑屏幕,以及在我指尖跳跃的字符。这样的状态持续了许久,最后我感觉自己顿悟了,功力突飞猛进。

我觉得编程主要是思维的转变,有了编程思想,学什么都快。

大二,学了PHP,当时学校首页上出现了我学校某某同学在某某大赛斩获三等奖,我好羡慕,那时候不知道三等奖是优秀奖……

他可以,我不可以么?了解后我就果断报名了。于是我和同学组了队,这里我遇到了最好的老师,她简直就是我心目中老师的样子,她对学生都一样,都是她的孩子,我没啥基础就会点PHP和前端,和队友做了个小demo,找她说我们要参加比赛,她毫不犹豫就答应了,还有另外一个老师和她一起作为指导老师,也是一个特别好的老师,我尊敬她们,她们给了我们很多建议,几个月的修修改改,终于通过第一关,进了决赛,那种心情,我永远不会忘记,最终是全国二等奖。

这个暑假我还学了Python,这后来成为了我工作中的主力语言。大三继续参加比赛,这次我是作为组长,做的题目是浙江大学的命题,互联网新闻推荐系统。

感谢老师,让我知道了代码还能这么写,推荐系统,机器学习,又给我打开了新的大门,命运真是神奇,这就决定了我未来的就业方向。

这个系统我真的花了很多精力,爬虫,新闻分类、评分、推荐算法,后端接口,其中IOS客户端开发我从零到一只花了三天,人的潜力真的是无穷的,现在的我再回去也不一定做得了。最后是到南京东南大学参加全国决赛,我心中是有给自己压力的,我希望毕业前为母校拿下一等奖,最终幸不辱命,也算为我的毕业画上了比较好的句号。

此后我的大学非常单调,我应该有保持每天六小时以上的刻意练习,我当时完全是自己摸索,这也是我比较遗憾的事情,如果有更专业的人来指导,我可能会研究得更加深入。

写到这里,虽然才到大三,但是我的大学生活可以说结束了,因为在大学表现还不错,而我也决定不考研,老师们允许我大四免修,我直接出去实习了。

最后,我再总结一下,我的大学经历能给大家带来哪些启发:

  • 及时思考自己的未来三到五年的人生,然后定好里程碑持续前进;

  • 不考研的话尽快工作,尽可能积累经验;我是大二就开始暑期实习,大三直接就出学校开始工作,所以我毕业就已经工作一年工作经验了,我三周就转正,不知道在公司是不是一个记录哈哈;

  • 尽快意识到自己是一个平凡的人,做好自己,攀比无用,然后努力。

✍️ 业余

不鸣则已,一鸣惊人

我是怎么半月赚十万块?其实全靠大学四年的积累。

回到家,你是希望写代码&看书学习还是躺在床上喝着可乐玩手机呢?你可以思考几秒,想想自己的日常。理智上来看,自然是看书写代码对个人提升更好,但是大部分人大概率会倾向于玩手机这种比较放松的选项,这是为什么呢?

一个人的行为决策,实际上主要是被本能脑(3.6亿年前形成)和情绪脑(2亿年前形成)控制。在原始社会,人的首要目标是生存,对食物或舒适的环境有着本能的渴望。简单说就是会最优选择当前对自己最舒服的选项,选了之后还会自行找理由说服自己。

怎么脱离这种困境呢?这涉及到的就是自制力,这种高级功能主要是被人的理智脑控制,主要用来控制自己的情绪和本能。对于人来说,理智脑很年轻(250万年前形成),在一些决策面前,理智脑是非常容易被情绪脑和本能脑压住,这也就是前面为什么心里想着我要学习要进步最后又选了喝可乐玩手机的原因。

所以我建议大家不要只喜欢看谁谁谁怎么成功,怎么会赚钱的标题文章,然后一门心思专研赚钱而忘了前进的动力是学习,这种状态下的你就是个被本能脑情绪脑控制的一个名为韭菜的动物,不要把路走窄了。

打铁还需自身硬,自身知识积累不够,大部分的成功真的很简单,在一个领域刻意练习即可。说回前面的问题,我是下班继续学习的那种,所以我的业余主要围绕两件事情:

  • 持续学习:新领域的知识

  • 坚持产出:文章或者开源项目

  • 不断思考:思考促进个人认知提升

坚持学习,则清风自来,我大学时期也产出了些上千Star的项目,所以会有一些外部合作找到我,当时我也是刚毕业,一些软件开发的需求找我,差不多十万,尽管技术栈之前没接触过,但头铁的我半月搞定。能做到这样的程度,实际上靠的是当前看不到的,大学四年的默默付出。

业余这块我自身也还在摸索,我个人在这块确实没有取得什么拿得出手的成绩,但是我的观点不会变,那就是坚持学习&产出一定是有回报的,先把自身基础打好,有一道坚固的护城河后,再想其他的,跟风的事情我更不建议做,不要急,做好自己,等风来,然后直上云霄

‍ 工作

业精于勤,荒于嬉;行成于思,毁于随

工作,对于大部分人都是不可避免的一件事,有的人是为了生存,有的人是为了自我价值的实现,也有人是为了将来不工作而现在努力工作,出发点可能各种各样,但是工作总是大部分人不可避免的一部分。

程序员,相对来说是薪资较高的群体,也是相对来说比较容易焦虑的群体,而我就是一名工作中的程序员,我想谈谈程序员在工作中如何进步,从而保持自己的竞争力。

说自己心中的一些大道理前,还是拿出一些比较好的结果才会让人更信服,我将我在上家工作五年的公司取得的一些成绩列出来吧(我在厦门):

  • 2017年中:应届毕业,负责后端微服务,三周转正(7月入职,薪资9k),年底再涨薪到10

  • 2018整年:主要在业务中摸爬滚打,由于大学比赛接触过机器学习,主动请缨构建分类模型解决了公司聊天广告问题,获得公司风云人物表彰,薪资16

  • 2019整年:应领导需求在公司组建算法组,获得公司股权激励(每年根据公司收入分工),薪资22

  • 2020整年:搭建风控系统,在业务中摸爬滚打,任组长,薪资26

  • 2021整年:这中间经历了很多,激动和伤心都有,不多说,薪资29

  • 2022年中:做了一段时间数据架构和产品经历,薪资加上加班补贴接近40,后面有自己的想法,出来做技术合伙人。

其实做到后面,年收入来看,薪资部分占据年收入的比例是慢慢减少的,因为还有分红、奖金、年终奖。

当然,这里不是说自己薪资高或者怎么样,因为在当前社会,别人总是用收入评判你的能力,特别是工作中,既然我现在是说自己在工作中的一些建议,那么就要表现自己的工作能力,当然,有非常非常多的人比我优秀,对于这种人,会心一笑略过即可,在下班门弄斧了。

程序员需要面对的问题

这里我们不谈一个在社会摸爬滚打的人需要面对的问题:结婚、买房、买车,只谈程序员这个群体相对其他职业比较独特的但是不得不面对的问题:

  • 技术更新换代后如何在新一代的浪潮中屹立不倒

  • 如何应对年龄增长带来的焦虑感

  • ……

其实我们对于上面那些点可以做下总结,那就是如何不断自我增长以应对将来各种变化,对于我们这些工作人士,一天最宝贵的时间自然是贡献给公司,所以需要面对的就是在工作中如何保持进步。

下面描述的例子可能很浅显,因为是我好久之前写的,但是意思到了就行,现在懒了不想改了。

融入

刚入职一家新的公司,开始的磨合期是比较重要的,主要是个人价值观和企业文化之间的冲突。就像谈恋爱,两个人在一起更多的是彼此家庭文化之间的碰撞,能不能碰撞中找出那一份平衡,这将决定恋爱后能否结婚。

如何融入一家公司是很重要的一步,每一家公司都有自己的技术基因,进入一家新公司就意味着你必须先融入这家公司的技术环境,努力地成为其中的一份子,比如:

  • 了解并接受软硬件各方面的开发环境

  • 了解并接受该公司的技术架构

  • 了解并接受该公司的沟通方式

  • 了解并接受该公司的项目开发模式与各种规范

作为一名程序员,我理解你内心的高傲与自信,我相信你一定自认为自己的东西一定是好的,但是当你进入一家公司发现这家公司各方面都和你有不同程度的冲突的时候,你有两种选择:

  • 了解并接受

  • 离开

举个简单的例子,让我们从这两个角度来看看,刚入职发现公司 Python开发还在用 Python2.7,你了解并接受后发现是因为公司的一些历史项目不好进行迁移,对于这个情况怎么办:

  • 离开的人:还在用 Python2.7没救了,换一家吧

  • 留下的人:为什么还在用 Python2.7,我先用着吧,后面我了解清楚再看看要不要建议公司决策者对版本进行更新

很简单,不喜欢就离开,但是总有你可以做出了解并接受这一决定的公司吧?找到这么一家公司后,就可以继续深入了解了。

改变

当你决定留在当前的公司,就意味着有了更多的可能性,当你在融入阶段对公司的一些情况不甚满意但是勉强接受的时候,这时候就可以考虑对其进行改变。

我们知道,某项你认为不合理的东西依旧存在着必定是有历史遗留原因的,你了解并接受了公司的某一件事物,也就了解了这个事物的缘由,知道了公司为什么在某件事上用这种方式去做,原来并不是公司看不出这件事物的局限性,而是有一些实实在在的原因在困扰着公司去尝试更好的方式。

有时候出现这个情况我觉得是好事情,因为这是你可以改变公司某一件事情的机会,如果你有信心,那么你就可以推动公司在这件事物上做出改变,然后朝你赞同的方向发展。

所以开始吧,去改变它,让你的技术基因融入到这家公司

继续使用上面的例子,你已经了解到公司还在用 Python2.7的原因是项目构建初期的项目都是使用 Python2.7,大家也知道 Python2.7即将失势,但是公司一些项目还是单体应用,如果更新,会有一些版本之间的兼容问题,会投入相对较多的人力物力。

好,此时你已经清楚了问题的原因,接下来你要做的就是如何做出改变,比如你写了一个自动 python2->3的迁移工具,成功地将公司项目升级到了 Python3.6

项目大获成功,领导很愉快地接受了你的升级方案,你在庆幸终于可以不用写即将被抛弃的 Python2.7之余,顺势再朝领导提了将单体应用朝微服务架构转变的意见,此时,公司已经看出了你的能力,后面让你挑大旗只是时间问题了。

所以,融入一家公司后,不能安于现状,应当勇敢地做出改变。

提效

在我看来,做出改变的都是有自我要求的人,这样的人有技术热情,有自我增长的能力,他们做出改变的目的都是让一切往更好的方向发展,比如可以提高工作效率。

还是以上面的例子解释一下效率工作的情况:领导经过调研后,发现微服务架构确实优于目前公司的单体应用,决定开始向微服务方向转变,你信心大振,公司的一个单体应用开始拆分成数十个微服务,你也踏上了用 Flask编写微服务的幸福生活。

但是写着写着,每个人在构建一个微服务的时候,你注意到大家都会做一件重复的事情:复制上个项目的配置文件、日志文件、数据库操作文件等等。总结来说就是目前开发一个微服务前需要花半个小时来搭建项目的基础设施,而这些设施是类似的,是属于重复性的动作。

你心想:为什么不将常用的基础项目组件汇总成微服务模板,然后做一个命令行工具一键生成呢?半个小时就缩短成 5s,何乐而不为?

于是你编写了一个脚手架可以自动生成微服务模板,你将自己的成果朝同事展示,获得领导允许推广的承诺,从此,每个使用这个脚手架的人都至少节省了半小时的时间,大大为公司提升了工作效率,你高兴之余再顺势朝领导提出了 Go语言开发微服务可能更爽~

再一次,你成功对公司的一些事情做出了改变,并带动了效率的提升,这样的你,不仅展现了能力,还带来了你独有的价值。

产出

谈产出,我觉得这部分是双向的,所以我们可以从下面两个角度出发:

  • 你为公司产出了什么

  • 公司促进你产出了什么

你为公司产出了什么

公司考量一个人,你对公司的产出是十分重要的一个点,你有再厉害的技术,如果不能给公司带来实实在在的产出,那么你的技术可能对公司并没有什么用。

有的人可能觉得自己在公司就是一个拧螺丝的,自己做的事情很简单平凡,并没有什么挑战性,这样怎么做到产出呢?

对于这样的想法,我觉得首先要改变一下自己的思维,拧螺丝、做的事情很简单,这些都不是理由。

任何人,只有个人水平提升到相对较高的时候,做大部分事情都会觉得简单,你现在觉得此事做的事情简单,希望更有挑战,如果让你做难一点的事情,你习惯后,又觉得简单了,这样你就陷入了觉得简单,提出要求,继续觉得简单,继续提出要求的情况,这样对个人的发展是及其不友好的。

我个人建议,哪怕在做简单的事情,你可以自己来让这件事情做得不简单,自身主动地给这件事来提升难度。很简单的道理,都是做一样的事情,你做得更加深入、优秀,甚至能影响到其他人为你手头的事情做出改变,这就体现出你不一样的地方,你做再简单的事情都能有不一样的产出。

再说,简单的事情你都没有产出,公司也不放心把更有挑战性的事情教给你啊。

所以,看你为公司产出什么,在任何岗位都是可以体现的,和做的事情没关系。

做的工作简单或者说拧螺丝都没关系,但是你的产出完全可以不平凡

公司促进你产出了什么

好的工作环境,是共赢的,你可以为公司做出产出,公司也应该会促进你进行一些被动产出。

所以一个好的工作会给你带来反向的输出,不论是管理还是技术甚至是做人的道理,比如:

  • 开始慢慢带新人,你有了管理方面的经验

  • 和同事交流学习,你代码水平进一步提升,github上又多了一个上千 star的项目

  • 公司信任你,开始给你更多的挑战,你有了系统级的开发经验

这样你和公司之间就有了非常好的工作关系,做到这一步,我觉得可以在工作中持续不断地进步。

所以,在工作中持续进步依赖于和所在公司有一个很好的工作关系,从而互相促进产出、进步;而产出则依赖于你认真的工作态度和超出常人的开发效率,开发效率的提升有个必不可少的前提,那就是你拥有一个不安现状善于改变的心。

而这所有的前提,是找到一个你愿意了解并接受然后融入的公司,各位,祝好。

如今

鹏之徙于南冥也,水击三千里

我是思考了许久决定从上家公司离职,我非常感谢上家公司,领导也对我特别好,好到一些不爽事我都可以忽略不计。

不论是物质还是精神上,我都收获良多,感谢公司以及共事的朋友,谢谢,我心存感激。

但是我有自己的一些想法,也遇到了志同道合的人,接下来我将在跨境电商领域继续奋斗,立足于业务,打造一个不断探索创新的技术团队,争取和新的小伙伴做出满意的产品(这里我招人:1~3年前后端,实习生,欢迎来撩)。

非常感谢你可以耐着性子看到这里,谢谢你的支持,希望我在学校、业余、工作这三个角度的分享能给你带来一些启发。

如果你觉得意犹未尽,想和我交流,可以加我微信:Howie6879,我们可以在以下方向深入展开聊聊:

  • 职业发展&职场晋升&缓解焦虑

  • 游戏风控领域技术交流

  • 创业思考等

最后,祝大家一切顺利,但行好事,莫问前程,共勉。

你可能感兴趣的:(大数据,编程语言,人工智能,java,面试)