不知不觉,毕业也三年多了,算上实习,工作也有四年有余了。有时候有点恍惚,感觉自己像是刚毕业一样。抽了点时间,来聊聊自己这几年的经历,也对自己有一个阶段性的总结。
聊聊经历
我是从大二开始就在实验室做Web开发,前端写写简单的JS,后端写写简单的Java,我也一直觉得我是已经走到很多人前面了,所以直到大四也没有工作的紧张感。大四秋招段时间,我和几个同学从重庆去成都,一是想去见见世面,二就是听一听各个大公司的宣讲。我当时已经在盘算着腾讯、阿里、美团我该选哪个公司,不过那几天基本也就听听宣讲会免费帮忙宣传公司抽抽奖投投简历,然后各个大学走走玩玩。后面遇到了一个我现在已经忘了名字的公司,需要当场写个笔试,我也抱着终于可以大展拳脚,参与了笔试。笔试完后,我当晚就买了回重庆的高铁,具体发生了什么,也不用我多说了。。。
去四川大学听宣讲
抽奖中了一个耳机
回来后就开始认真思考工作的事情了,开始认真复习(学习)。当时我选择了前端,理由也很简单,我不喜欢后端处理繁杂的数据这种枯燥的工作(单纯)。大概复习了一个月,面了两家公司,顺利入职了我的第一家公司。在那里我过得很愉快,工作上基本没有遇到什么困难,与我大学时用的技术栈相符,同事们也非常可爱。当时我也在疯狂学习,甚至把学到的新技术应用到了公司项目中,不过一年以后,我觉得我不能在这种安逸的环境呆下去了,我想要寻求一点突破(🐶)。所以我和当时也想寻求突破(🐶)的小伙伴@盼盼
裸辞来到了杭州。我们在滨江租了一个单间(是上下床),一个月到期,如果没有找到工作就坐火车回去。当时刚刚经历了裁员潮(19年初),面试机会并不多,虽然如此我面试最多的一天也面了三家公司,从早上天快亮了起床到晚上才回去,最后我们俩都如愿在一个月房租到期最后一天里搬离了那里。那段时间很累,但每天都像打了鸡血,现在也很怀恋那段时光。
在滨江面试期间随手拍了一张阿里照片
我入职了滚马网络有限公司,公司不大,但算得上小而美,使用的技术栈也算是比较超前,我也迅速适应了工作节奏。也是在这里,我学习到了Flutter,后面也全职投入到了公司的Flutter开发中,学习到了很多到现在也认为是很棒的开发模式。在滚马两年,我学到了很多,技术上开始思考代码结构的易用与可维护,也学着在产品侧思考业务的可行性,学会了记录,也搭建了我的个人博客开始试着记录分享。在这里,也着重感谢当时我的主管@礼恒
对我的鼓励与帮助(马里奥好玩😂)。这里团队氛围很好,很多同事们也都成为了朋友,现在没事会一起玩玩桌游(赌博)、打打篮球,很感谢这段经历。
滚马健身时间
爬雪山
今年年初,正好在滚马呆了两周年之际,我离开了滚马,入职了微店。这里相比滚马体量大了很多,工作节奏反而慢一点,简单的适应后,就参与了6、7、8月的战役。第一次参与战役这种项目模式,觉得很新颖,既能迅速对业务有所突破,还能激发每个同学的积极性。战役结束后,业务节奏有所放缓,我的主管@杰哥
非常鼓励我们自己创新,做一些对项目上的优化。我和另一个iOS大佬@杨鑫
一起开始着手将Flutter1.17版本升级到了2.5,期间遇到了无数问题,每天就像打怪一样,解决一个又一个bug。我也从项目中发现我们图标使用上的问题,推动设计师使用iconfont来替换图片模式,并开发了一套Android、iOS、Flutter使用与更新流程。我更加主动的推动事情进展,也学会用更高的视野来看待我做的每一件小事,有了更强的责任心。非常感谢事无巨细给我解释的@陈峰
大佬,也感谢给了我很多技术指导的@余伦
大佬。
和老板面对面
期间,我开始认真学习与回顾Flutter底层的一些知识,自己编译了Flutter Engine,尝试断点查看引擎的一些原理。写了Flutter Canvas系列文章,如Flutter canvas学习之基础知识,还花了很多时间写了Flutter Framework渲染更新流程系列文章,如Flutter渲染之启动与三棵树的构建。在我老板的支持下,在团队内做了一次Kraken相关的技术分享。这也让我更加笃定这是一个正确的学习方法——分享出来试图让别人懂,才能让自己更加坦然接受自己真的已经明白。
在11月底,我经历了一些波折后,入职了阿里云,到现在也就差不多一个月。阿里是我当初选择来杭州的一个原因,能进入到这里,我也感到非常幸运。今晚我们小团队内就我开发的系统功能进行了一些较为激烈的讨论,我也收获颇多,这也算是我到这里收获到的第一个成长(1.文件命名需更加规范 2.设计的任何API逻辑上都需要经得起推敲 3.大佬们确实都很强)。为了让我以后的身体还能跟上思维,我也开启了我的健身计划(为了蹭免费的健身房)。
激烈讨论的结果
开启健身计划
最后也感谢我千里之外的女朋友@sunwalker
一直以来的鼓励与支持[敬礼].
感想
毕业后这几年确实收获很多,我得到了飞速的成长,下面就硬实力和软实力做一个小小的总结。
硬实力
Web前端
虽然大学期间用了几年JS,但从没真正去了解它设计原理和一些底层概念。工作后才开始去学习它的底层知识,诸如原型、原型链、作用域与执行上下文、this等。学习了Vue框架并且去了解了它的底层原理(自己还写了一个简单版的玩具),也能熟练使用React了。去学习了很多前端工具链的使用(可能现在都早已过时)。也多次尝试用Node来搭建了各种服务。现在已经有很长时间没有学习Web前端技术了,技能点应该早已脱轨[哭]。
Flutter
这两年从接触Flutter,到全职进行Flutter开发,也在慢慢揭开它神秘的面纱。从应用层的使用到框架层再到引擎层,我像打怪一样在击破一个又一个的难点。Flutter现在也在不断进化,也还有很多盲点待我去一一破解,这种感觉很棒。Flutter是我目前主要研究方向,我也推荐一些有用的入门资料
- 官方文档
- 中文官方文档
- Flutter实战: 比较全面的Flutter知识点,入门首选
- 闲鱼技术: 闲鱼是国内最早使用Flutter应用生产的,里面有很多Flutter干货
- gityuan: 大佬,不过好久没更新了,他有很多对Flutter源码解析的文章
当然也希望大家关注我,日后能给大家分享更多干货。
网络
大学有网络相关的课程,可能是本身没意识到它的重要,也可能是老师讲的比较生涩,并没有认真去学,直到毕业后才开始补这方面的知识。我的诉求也很简单,我也没有要想去成为这方面的专家,我买了『图解HTTP』『图解TCP/IP』这两本书来看,也买了趣谈网络协议的课程来看,自己也写了简单的笔记。虽然网络在目前的日常工作中使用比较少,但是了解了这些知识后,也对我能更轻松理解日常开发中的网络场景,也能从容处理生活中遇到的一些网络问题(帮邻居重启路由器)。
算法与数据结构
算法与数据结构在编程中多重要就不用说了,应该可以说是程序员必修的知识点。算法我在leetcode上刷了100多道题,基本上也都是简单中等难度,也买了像『算法图解』『数据结构与算法JavaScript描述』书籍来看。虽然不能说研究有多深入,不过还是能手写常见的查找、排序、搜索算法,并且能灵活应用到工作中。顺道也推荐一些比较有意思的开源博客
- JavaScript 算法与数据结构: 比较全面的知识
- 小浩算法: 一些各种类型的题型解题思路
- visualgo: 通过动画来演示常见的算法,可以手动控制每一步操作
设计模式与编程范式
设计模式其实是程序员最容易忽略的一个知识点,有些人可能认为不掌握设计模式也能应付我们日常的工作,事实上对于同一件事情,熟练理解设计的人和不了解设计模式的人写出的代码一定也是天壤之别。我也对着当前经典的23种设计模式进行了学习,并且使用Dart写了简单的例子(博客地址)。学习了编程范式(笔记),让我也更了解语言之间的差别及更能快速的学习新的语言。
其它
我也还是想再啰嗦一点这几年学到的其它知识,它们也或多或少对我的工作产生了一些影响。
Linux服务器
从毕业后就一直在购买阿里云或者腾讯云最便宜那款服务器,也白嫖了一年Google免费的服务器(有VISA卡就可以白嫖),在上面折腾最多的还是Web网站搭建,什么nginx、pm2、MySql(这东西每次安装都要踩坑,不带重样的)等,域名备案、解析流程也弄过,基本上整套网站部署流程都很熟悉。也在我自己的台式电脑上装了Ubuntu双系统(在拼多多上买的100多块的固态硬盘,还是很顶),被迫学习了很多shell命令,不仅是能自如操作Linux系统,也在日常开发中提高了不少效率。
Python
学习Python有两个目的,一是当做脚本使用,提高学习或工作的效率(虽然shell也可以写脚本,但是它的语法我至今都不算适应,它也无法在我Windows上运行),二是刷LeetCode。在我理解里,Python语法简单,工具库很全,全到你可以用它做任何事情。在微店的时候,我用它来写了Iconfont自动更新系统,也用它写了我自己的笔记与博客的更新系统。学习Python,看菜鸟教程(Python3教程)。
C++
大学有C语言基础,还记得当时刚接触编程的就是C语言,每天干劲特别大,认真听课,提前预习,按时交作业。C++跟C差距还是挺大,学习C++当前最主要的目的就是能看懂Flutter Engine相关的代码,也能扩宽我工作上的思路。目前我仅仅看完了菜鸟教程,后续也会花更多时间来学习它及其相关工具链。
软实力
做事
在学校的时候,我只需要按部就班完成老师布置的作业(甚至都不是自己完成的),或者完成实验室老师安排的任务,其它的东西都不关我的事。工作后才慢慢转变心态——你需要关心任何与你相关的事情,这是责任也是义务。给你分配的业务,你需要熟悉连通上下游,先思考记录,再总体规划,然后编码。不随意承诺期限,如果承诺了,要尽力在规定的时间完成。做好每件事的细节,不随意对测试人员或者产品提出的问题感到愤怒——你们的目的都一样,都是为了做好这个产品而努力。
沟通
沟通不仅在工作上很重要,对我们一生都很重要,目前它也是我正需要提高的地方。买了『好好说话』这本书,看了一些,感觉作用不是很大,沟通还是需要我们日常经验和总结才能提升。现在我也有意识的对日常的沟通交流进行总结与反思,沟通前沟通前理清,沟通时抓住问题重点,用最短时间完成信息交流。
记笔记
在学校的时候,我总是不屑做笔记,直到工作一两年以后才认识到笔记的重要性。我们工作中或者生活中接触到的东西很多,如果不记录下来,后续再遇到再踩一次坑是完全没有必要的。现在我也养成了很好的记录的习惯,在工作中随时记录自己的想法,开发前有思考笔记,开发后有总结;学习中也随时记录学习过程以便后续复习。用了很多记录工具,最后还是选择了VSCode,感觉还是最原始的才是最好的,甚至写了个VSCode插件(note-sync)来同步笔记,大家可以看看我的这篇文章了解如何配置VSCode。
工作效率
在@礼恒
的推荐下看了『重来3』这本书,给我影响很大。当我们工作越久就越容易被其它事情打断,安静做事情的时间就越少,最后在每天繁忙中度过最后逐渐迷失,甚至每天回家后都不知道这一天都干了什么,这对我们工作生活以及自身发展都会有一定影响。所以我们要在日常工作中有意识的优化自己的工作流程,比如使用番茄工作法。
分享
对我来说,分享一是可以鞭策自己去学习更深入的知识,二是可以和更多的人交流。2021我写了大概10篇文章,其中大部分都是我花了较多时间来编写的。我的文字表达能力不算好还有待提高,也希望2022有更多产出。之前也做了两次现场分享,希望今年有更多机会参与现场分享。
展望
也就先不立flag了,希望2022祖国更加繁荣昌盛,台湾回归,也希望能吃到更多瓜🍉
最后,祝大家新年快乐。