Fork me on GitHub

我的编程之路(一)

大学

大一随着课程学习前端,第一学期的课程设计,我用纯HTML+CSS实现了一个学院网站的静态页面,这个网站我的主要精力花在设计上,每一个框框的px我一点点调,设成不同颜色,看如何能更漂亮;在第二学期,我发现了BootStrap这个前端框架,原来只需要简单引用组件,就能达到我上一学期花很多时间效果。

大二,学院开始教后端的内容,比如Java语法基础,网络、数据库。当时Java老师上课讲教科书让我昏昏欲睡,但是我察觉这只是老师的问题,并不是后端的问题。比起前端。后端才是我想要真正学习的编程。因为我想要掌握的编程不仅是想要样式,更希望编程能够做一些更有用的事情,比如通信,对现实生活映射。于是我开始自学后端。

入门后端比较印象深刻的事是:

  • 在图书馆借了这本书《Data Structures and Other Objects Using Java》它让我完全理解了栈和队列等数据结构以及其作用。顺便提一句,书中有一个用树实现的小程序,叫猜动物。我特别喜欢这个程序,因为这个简单程序能够“自学”。每一次玩游戏后,程序都会更聪明一点。
  • 跟着网上的资料,照猫画虎写了一个聊天室,用到了socket网络通信,https://github.com/wangxuanni/MyChat
  • 发现了这个网站,开始接触一些流行的互联网技术,比如SSM、Redis https://how2j.cn/
  • 数据库这门课我学的挺好的,期末只扣了几分。当时想着不如去考一个证,于是准备了两个月,拿下了软考中级——数据库系统工程师。

大三,随着学习深入,职业专业方向变得清楚:服务端+互联网。

  • 写了一个HTTP服务器,参考《tomcat是怎么运行的》
  • 认真的写了一个贴吧项目,用SSM+mysql+redis,。后来这个项目作为我的毕业设计,后来还拿到了年级的优秀毕业设计。
  • 报名蓝桥杯比赛,想着以考代学,让对算法一无所知的我,有一个驱动力去啃算法。刷题了两个星期,拿了省三安慰奖。之后囫囵吞枣刷过一遍剑指offer,leetcode70题左右。

大三下学期,去了广州的一家软件公司实习了2个月,发现学到的东西和工资一样少的可怜,就辞职了,准备好好参加秋招。
当时因为很穷,租到房子通勤需要一小时。广州早上8点的5号线,人多到工作人员拉九曲围栏,让人们排队等待限流进闸门。这种通勤体验令人难受的不仅仅浪费时间和挤来挤去,还有在背着电脑的人群中排队缓缓前进的时候,会忍不住觉得自己好渺小,像自己这样的打工人有那么多个,我和别人又有什么不同呢。

19年9月,参加秋招,这期间我学了这些:

  • java并发包的源码看了一遍,如HashMap、CurrentHashMap,syn,volatile。
  • 看了十本左右书和数不尽在闲鱼淘的视频。
  • 租了个云服务器,自己实践了一遍redis的容灾全过程,当我把master节点kill掉后,从redis的日志能看到,哨兵会进行哨兵选举,选举出来的哨兵进行主从复制。这次实践给我留下来很深刻的印象,而且这之后我完全理解了raft协议。
  • 还尝试写一个RPC框架,但后面精力放在面试了,没有写完。

秋招最后收获三个Offer,蘑菇街、老虎证券、growingIO,接受了蘑菇街的。

实习

其实秋招offer是可以不用来实习的,但我想提前看看工作环境,没想到这一来,就呆了5个月。

我所在直播的稳定性小组,简单来说就是在业务部门做中间层相关的事。在实习的前四个月我没有做过业务需求,都在跟着我学长了解稳定性的方方面面,比如用flink监控直播流、把直播界面模块抽象成插件化、直播拉流的容灾切换。

工作和自己学的东西非常不一样,在来实习之前,我全凭自己的兴趣学,对分布式有兴趣就自己租服务器实践,对并发有兴趣就一边看源码一边看博客。工作后,我学到了身为工程师的基本素养。举一个方面,学生的时候我的写代码,最在乎的是能不能跑起来,谁要跟我说你这程序如果突然有大流量会不会崩溃;如果功能变了,你的改动成本是多大。我会觉得他没事找事,但是对于一个工程师,这些考虑都是最最基本的,和能不能跑起来一样基本。此外因为是在团队里,会更加注意代码规范。

当时一人来到了杭州,当时在杭州谁也不认识,在租房等房东来签协议。突然觉得特别孤独。当时认真的把社交写进了待办事件,后来在杭州认识的朋友,比我大学都多。

大三认识了一群五湖四海的同届朋友们,我们有一个技术小群,群里技术氛围浓厚,每周都会有技术讨论会。后来在秋招的时候,大家互相内推,每周分享技术,群里讨论问题,复盘面试。秋招大家也都去到了理想的公司,至今我们仍然每天聊天。

值得一提的是,群里有个小哥哥叫糖糖,当时我两都在杭州实习,面基后还蛮聊得来的。赞同他说过一句话”人总是会高估每天能做的事情,却一直低估一年能做的事情”。他秋招被毁约之后(这时秋招已经结束了)虽然很气,但是甚至没有告诉我们,因为他知道我们肯定会为他打抱不平。当时他最重要的不是闹事,而是最后的补招,后来他拿到了更理想的offer。运气不好遇到这种仍然能沉得住气,知道自己想要什么,我很佩服。

在我实习期间,20年3月爆发疫情,导致回家之路九九八十一难,因为疫情航班被取消了两次,要走的那天6点起来把床收了,结果一看手机航班又取消了 - -,只能放弃直达,从杭州飞广州,再从广州做汽车。接下来还遇到如下困难:迟到了改签+行李很多+汽车晚点车站人很多+下雨+新修的陌生汽车站。

实习结束,是我最后也是最长的一个暑假,把朋友的ps4和碟片借来了。天昏地暗的玩游戏。刺客信条、底特律变人、美国末日、风之旅人、最后的守护者、鬼泣5。追星看小说,在我的最后一个暑假,干一些毫无意义但非常快乐的事。