2020 summary & 2021 outlook

2021/01/01

2020年注定是难忘的一年,这一年我24岁,经历了职业生涯的变化,同时全球被新冠病毒席卷,截止至2021年1月1日,全球已有191个国家和地区累计约8千万名确诊病例,其中约181.5万人因而死亡。

从时间角度,可以把我的2020年划分成三块,上半年,6-9月,9-12月,分别记做黑暗时刻,蓄势待发和披荆斩棘。

黑暗时刻

这要从2019年双十一说起,这一天我离开了玫琳凯,到交通银行报道,职位还是Java开发。

这也是我第一次体验国企的上班氛围,特别是国企中的技术岗位。

工作时间为早9晚6,有严格的打卡制度。由于我在16楼办公,要想顺利坐上电梯,那么你最少需要提早半个小时到达公司,否则需要经历漫长的等待,或者是爬楼梯,我曾见过同事因带着口罩,爬了16层楼梯,而满脸通红,上下不接下气。

所以,我一般都是8点半到达公司,而我单程需要花费1个半小时,其中包含从地铁站走到公司的15分钟。

接下来介绍一下工作环境。

一开始我和明新兄共享一张L型大桌,办公场地还行,不算拥挤,同时在这段时间内还向明新兄学到不少东西,如:类图、时序图的绘制标准,后续就是一人一张L型大桌,非常宽敞。

但是显示器太差了,几乎就是大学实验室的显示器,又矮又小,分辨率还低!还有一点也令我非常非常难受:公司电脑只有内网!那么你查资料只有两种选择,要么用手机,要么自己带台笔记本电脑。

好在对外设的管理不严,你可以用自己的键盘和鼠标,这无形中也算一种安慰吧。

同时,国企对基本的生活保障还是挺好的,比如:管饭。每个月会往你的饭卡中充钱,所以你一个月的伙食基本不用花钱,虽然食堂的饭菜味道一般。

再来介绍一下工作内容。

我们Team主要是负责交通银行APP后台系统的几个模块,如:生活缴费,我的管家等。

我做的最多的工作就是变更原有的接口,增加或修改几个字段,从其他系统获取数据,并将其发送给前端。

其中花在沟通和流程上面的时候远远超于开发时间!一些老套、难用的任务追踪工具,甚至打开都要花约10分钟,然后沟通的时间还不算在正常工作时间之内,真是让我心力憔悴,度日如年。

还有我们的应用竟然要花费约7分钟才能启动完成!这就导致我的试错成本变得非常昂贵。我们平常的开发就像在原有建筑上进行修修补补,都是case by case,根本就不会有良好的系统设计和复用,并且从技术角度上根本就没有什么提升。

最后,再来介绍下我利用自己的空闲时间做了哪些技术方面的提升。

首先是我看过的书:

  • 《Java多线程编程核心技术》
  • 《Java并发编程的技术》
  • 《Java8 实战》
  • 《疯狂Java讲义 第5版》
  • 《Redis开发和运维》
  • 《Redis深度历练:核心原理和应用实践》
  • 《Spring源码深度解析 第2版》
  • 《Spring技术内幕 第2版》
  • 《Spring实战 第4版》

以上的书籍部分的阅读感悟和总结都以博客的形式记录在我的网站上。

然后,我开启了刷题之旅。凭着一腔热血和网上的资料,完成了首个Leetcode的一百斩!

虽然,在整个过程中还是懵懵懂懂,有的时候一道Easy的题目都要花好几个小时来理解,

但是好在我勇敢并坚定地踏出了这一步,并把我做过的每道题目都总结思路,绘制示意图,并且一遍又一遍地复习。

蓄势待发

从入职交通银行的第一天,我就想着离职,终于在2020年6月4日,正式离职。

提离职后,公司留了我一个月,那一个月基本就是带薪学习,每天就是用自己的笔记本刷算法题,那个时候已经有了按照不同类型进行刷题的意识,然后不断做新题和总结旧题,进度基本上是每天做6道新题。

这里需要谈一下决定离职时那段时期的内心活动。

我觉得在你决定离职前需要仔细考虑以下几点:

第一,是否已经找好下家?若没有找到,是否有了目标公司?目标职位是什么?是否做好了面试准备?若还没有准备好?是否已经清楚地列出需要准备的内容?大致需要花费多少时间?列得越细越好。

第二,你的积蓄是否可以支撑你的准备时间?真实的情况往往需要花费更长的准备时间。

第三,你是否有家人的支持和理解?

我当时还没有找好下家,我的目标公司是上海的外企:微软、Ebay、Paypal、Coupang、花旗银行等,目标职位是Java开发。同时我把需要学习和复习的内容列了一个详细的清单,预计需要花1个月的时间,但是实际花费了约2个月。然后我计算了下当时的积蓄,可以支撑半年左右,并且和家人商量多次后,终于得到他们的支持,所以,毅然决定离职。

在三个月左右的时间内,每周都有周计划,需要学习什么内容,预计花费多少时间,并且每周进行复盘,实际花费了多少时间,有哪些内容需要做横向扩展。

同时每天都有详细的日计划,记录每天的有效学习时间和内容,平均在6小时左右。

学习内容主要以算法为主,Leetcode上一共刷了300题左右,一共2000+的提交,并且看了以下两本书:《漫画算法 - 小灰的算法之旅》和《剑指Offer》。

后期还准备了Java方面的知识点,主要以并发和JVM为主,还有数据库、缓存、框架等方面的准备。

接下来就是准备简历,开始面试之旅。

我非常幸运遇到了Nicky,一共就面了两家。先面了Ebay,由于项目准备的不够充分,没过。后面Nicky又推荐我去面Paypal,先是超逸的一面,主要以Java基础为主。过了几天,进行第二轮面试,先是xiao的算法面,面了二叉树和二分查找,还有两道SQL题,然后是黄老板,主要问了Java多线程和JVM相关的内容,最后是hongfang的终面,主要是介绍项目,还有一些Java基础和设计模式。整体面下来都比较顺,后面谈薪资,也达到了我的预期,虽然是以AWF的形式加入Paypal,但是我已经非常满意了。

我曾经看过好多文章,说面试时要自信,后面我仔细地想了想,自信是怎么产生的呢?

对于我来说,自信来自那堆高约15cm的草稿纸,是我那2000+的代码提交,是我每天的点点滴滴。

现在的我非常感激那三个月的自己,谢谢你的那份坚持和执着。

披荆斩棘

2020年9月21日,正式入职Paypal。

同样叙述一下工作时间、环境和内容,与交通银行做个直观的对比。

工作时间非常弹性,一般都是早10晚6,但是没有强制的要求,只要完成分配的任务即可。并且,由于疫情原因,我们可以在在家办公至2021年第三季度,下面简单介绍下我在家办公的一天安排:

首先,我会在前一天晚上列出明天的日计划,包括工作内容、学习内容、会议等,并且预估需要花费的时间。

然后,一般7点起床,洗漱吃早餐,然后跟读一个小时左右的美剧(This is us)。

接着,泡杯茶,9点左右上线开始工作,上午一般有效的工作时间为2小时,然后准备吃午饭,散步,睡半个小时午觉。大约在下午1点半左右继续开始工作,下午的有效工作时间约为3小时,然后吃晚饭,继续散步。

晚上的话,有的时候会去附近的健身房锻炼,有时会继续学习一些技术,有时会阅读其他方面的书籍。

再来说下工作环境。

我非常幸运,入职就配了16寸顶配的Mac Pro!办公桌也很宽敞,而且是升降桌,同时座椅也非常非常好,不仅有丰富的调节功能,而且背靠和坐垫都非常舒服。唯一的遗憾就是没有自己的显示器,不过也还好,由于好多同事都是在家办公,所以前两个月我都直接借用了他们的显示器,后期的话我主要以在家办公为主。

再来谈下网络,由于是外企,所以可以直接连到外网,查询资料非常便利。

然后,说下工作内容。

我所在的Team做的是Data Catalog,负责展示Paypal内部各种抽象的数据集。

在公司中,我们被称为Engineer,而不是网上称为的码农,我认为Soft Engineer所做的事情,并不仅仅是在原有系统上进行修修补补,而是对业务需求进行合理的抽象,并经过良好的系统设计,然后编写出高质量、可复用、易于扩展的代码,最后还要编写有效的单元测试来保证你的代码质量。

非常幸运,我正在做这样的事。

书单

技术

  • 《设计模式》: 好书,先总结成博客,后续可以补充实践编程经验。
  • 《C语言程序设计:现代方法 第2版》: 好书,2021年继续深入阅读,为研究Linux源码做准备。
  • 《网络是怎样连接的》: 好书,2021年重点阅读!
  • 《TCP/IP详解 卷1:协议》: 小王子推荐,计划2021年深入阅读。
  • 《深入理解Linux内核 第3版》: 小王子推荐,计划2021年深入阅读。
  • 《深入理解Java虚拟机 第3版》: 好书,2021年可以深入研究!
  • 《程序是怎样跑起来的》: 跑起来系列,计划2021年深入阅读。
  • 《计算机是怎样跑起来的》: 跑起来系列,计划2021年深入阅读。
  • 《Vim使用技巧 第2版》: 技巧书籍,2021年可以一读。

  • 《重构 改善既有代码的设计 Java语言版》: 计划2021年阅读
  • 《Netty实战》: 计划2021年阅读
  • 《阿里巴巴Java开发手册》: 计划2021年阅读
  • 《SQL进阶教程》: 待定
  • 《程序员代码面试指南: IT名企算法与数据结构题目最优解》: 略
  • 《挑战程序设计》: 2021年学习C++练算法题时,可以做参考书
  • 《代码大全2 英文版》: 有时间可以研究,优先级不高。

其他

  • 《小狗钱钱》: 2021年重点阅读。
  • 《富爸爸穷爸爸》: 简单过了一遍,2021年可能再阅读。
  • 《股票作手回忆录》: 简单过了一遍,2021年可能再阅读。
  • 《我不要你死于一事无成: 给女儿的17封告别信》: 没有感觉。
  • 《洞穴奇案》: 不要跟风,一本书竟然被炒作了10倍!
  • 《简爱》: 没有感觉。
  • 《霍乱时期的爱情》: 没有感觉。

2021展望

技术

第一,优化iDac中搜索功能,集成Elastic Search。

第二,学习Machine Learning相关技术,尝试在iDac中进行应用。

第三,学习相关大数据技术,如: Hadoop、HBase、Spark等,了解其基本用法,应用场景等。

固定计划:

第一,加强计算机基础: 操作系统 & 计算机网络 & 数据库

第二,学习新的编程语言: C(系统层面) & C++(算法) & Go(高并发) & Python(高效)

第三,加强Java等相关技术,继续完成Kill list.

英语

能和外国人正常沟通。

学习方式:

  • 继续跟读美剧(This is us)
  • 在淘宝上买口语课

健身

别听健身教练瞎忽悠,浪费钱,自己学习基本运动、肌肉常识。

做到日常拉伸,保持良好的身体状态即可,在此基础上做到增肌5斤,配合饮食。

可深入学习相关书籍:

  • 《囚徒健身》

女朋友

这同样是一个认识自身的过程,在2021年多尝试、多接触,多总结。


一位喜欢提问、尝试的程序员

(转载本站文章请注明作者和出处 姚屹晨-yaoyichen

Post Directory