2018年度回顾 | 掘金技术征文

476 阅读11分钟

概要

2018 是个神奇的一年,这一年,不管是学习、技术、工作还是生活上,都经历很多难忘的事情。之所以说难忘,可能是因为有好有坏吧。不知道如果再过10年,我会记住多少。总而言之,要虚怀若谷,严于律己,宽以待人,前方还有太大的天空等你去探索,放开眼界,方知世界之广阔。

学习

18年,大二,在x国野鸡大学学习软件工程。课内,学习到了从内到外各种有趣的课程,对内容还是挺满意的,遗憾是没有更加投入地去学:

  • 计算机视觉:学会了CV的传统算法,在课程作业(选的MIT bolei zhou布置的miniplace challenge)里租用AWS的K80尝试了真正的深度学习,不断地试参数,不断地换模型。算是小试牛刀了一把,也有幸阅读了一些周博磊以及一些大佬的论文,给大佬开源的注意力工具提了个PR被接受了,很开心。感觉这个领域有很多有意思的东西,也有很多令人惊艳的东西,是个很迷人的领域。
  • 数据科学+数据清洗:两门偏理论的课程,接触到了pandas一类数据相关的工具和一些清洗的思想。也是很遗憾没有认真学吧,这里面除了ETL的过程还是有很多东西的,尤其是现在借实习接触到了更多大数据方面的东西以后,才对数据的力量有了更深层的认知。数据的力量,凡人们真的一无所知(狗头)。NLP也好,数据挖掘也好,能对原来的产品有着质的提升,尝试做的就是给人以“上帝视角”。
  • 操作系统:同样很有意思,在看内核代码的时候对C语音有了全新的认识,Linux内核的设计思路也很有意思,以前很多不理解的东西都明白了。不管是线程进程,还是文件系统,亦或是内存管理,都是很迷人的东西,操作系统方面的设计应该算是一个永远都有可学之处的作品了。自己在作业里尝试实现了一个简单的文件系统,感觉对文件本身的意义(绕不开的inode和directory cache)有了新的认知。里面有很多很tricky的东西,是值得从工程角度学习的,因为真正应用的系统的实现很难是干净而巧妙的,往往有一些比较dirty却有用的技巧在里面。
  • 软件工程:这个课看起来没用,当了产品经理以后发现每天做的都是这些,甚至国内的PM因为往往不懂技术,所以只需要学很小的一部分,其实导致的就是和工程师的交流有很大的障碍和矛盾。这本来是一个PM应该会的基本素养才对。
  • 算法:很尴尬,基本没上课,感觉没什么意思加上也忙(疯狂找理由),就划水划过去了。

除去了课内,课外其实学了更多的知识(吗?)。

  • 信息安全:也是小试牛刀,满足了一直以来的黑客情节,当然技术肯定只是刚刚入门而已,但对逆向,渗透,分析都有了一定的认识。跟一票新人一起参加了Cysca,一个当地的高校比赛,拿了50名左右,自我感觉还行。也加入了看雪这个社区,有很多有意思的文章和大牛,受益匪浅,只恨自己经历有限。
  • Web开发:前端Vue+小程序,后端Django有了更深入的了解,结合自己的创业,对整个web系统的运行有了更好的理解,但希望更加深入的去理解吧。在用cdn+cache做到一定的加速以后,发现多线程或者异步编程是注定要做的。同时,Django虽然是同步架构,但它非常适合新手和小公司,开发代价很小,迭代速度很快。另一方面,RDS数据库实际上往往是整体应用速度的最大瓶颈,数据库的连接,表的查询优化,都是很大的问题。一些不重要的东西可以通过Redis等NoSQL数据库来优化,内存总是要比硬盘读写快很多的。最后,静态服务器(我用的Apache)的不同配置会有天差地别的性能差异。
  • IIoT:即工业IoT,关注了很久,也准备以后做这方面的研究,这个领域有很大的市场,大鳄们都在布局,但落地其实反而很慢或者不符合实际,反而小公司做的更快更多。这个领域更适合华为这种工程类公司,互联网公司只能做平台+赋能来维持高利润,但工业对稳定性和隐私性的关注使得公有云天然难以进入市场。技术上目前还没有大的突破,更多是做一些简单的应用,AI和大数据的落地难度依旧很大,所以想象空间还很大。这个领域可以单开一篇文章说了,就不写在这里了。
  • 强化学习:一直很感兴趣,但可惜只读了一些入门类的概述论文,满脸的公式砸的我晕啦吧唧的,可能入门姿势还不对吧。

创业

从去年跟着别人一起学习,入门python,从flask到Django,从前端到后端,从小兵到技术负责人到最后成为团队的领头人,有辛酸有不满也有知足和幸福以及成就感。奉劝那些第一次创业的人,有创业想法的时候,先洗个澡,睡一觉,再回来想想。创业不易,择人要慎重。我想从几个方面来总结吧,因为做的也是互联网方面的东西,感触颇多,若各位前辈觉得幼稚,就请一笑而过吧:

  • 人:人在我看来是个很重要的东西,或者说团队。创业的成功因素,团队,资金,行业,眼光等等缺一不可。有一个靠谱的上司,或者靠谱的下属,都是一件很难得的事情,千万不要小看团队的重要性。来自血的教训,我之前只做技术,老大并不懂技术更不懂产品,更多是人脉和口碑的积累,双方对技术价值的估计有着极大的分歧。导致了两个问题,老大本身学生气很重,所以会有莫名奇妙的决策,对产品的理解也有问题,导致浪费了太多的经历,和很多人员的流失。一步一步,直到最后的决裂,现在看来只是早晚发生的事情。然而我不知道么?我当然知道,只是想要赌一把,可惜,指望一个人的改变还不如去买个彩票。最后呢,我近两年的时间贡献了几万行的代码(应该是将近五万的前后端,还不算服务器方面的运维),退出时一分不得,老大还觉得他亏了。可笑不。再之后,靠着自己的人脉借域名挂靠公司,又拉起来了一只队伍,发现领头人真的不容易做,但我会去尽量的信任自己的人,让他们发挥自己的专业能力而不去干预。更多的时候,保住团队的进度,统一思想,获取资源支撑团队才是一个领头人应该去做的事情,而不是处处插手。做了这些,依旧如履薄冰,不知道哪里犯了错误,担心自己的决策有问题,担心自己的领导能力有问题,担心很多问题没有获得反馈,担心太多太多。
  • 资源:创业最好是对某个领域熟悉,才能做出来最正确的选择。而一个创业领头人最强力的能力之一,就应该是对资源的整合能力。
  • 钱:很重要也很不重要,很多时候不一定要赚钱,很多时候也不一定要亏钱,这是一件case by case的事情。成本、效率、目的要想清楚再去花钱,钱往往是手段而非目的。简而言之,有的钱去挣,有的钱可以不去挣,明确目标一直前行才可能让公司生存下来。
  • 心态:请保持警惕,你的下属可能明天就会离开,你的老板明天可能就会跑掉,你的公司可能明天就要倒闭,要做好所有最坏的考虑。但作为领头人,心里做着最坏的打算,但要告诉你的下属最好的前景(简称画饼)。饼不要老画不兑现,但关键时刻不画也是不行的。
  • 法律与财务:你的必修课,要么你有懂这方面的家人,要么自己懂至少基础的,否则早晚早晚吃亏。一定会的。
  • 技术:因为创业偏业务性的,技术上目前做的难度不高,只是尽力地保住高可用性,和好的用户体验。作为服务器部署在国外,但用户群体分布国内外的业务来说,通过cache+CDN的简单搭配实际上能够解决大多数的问题(可能业务简单,也没碰到太多的问题)。首屏的速度体验从7s甚至经常加载不动,到1s多的加载速度,整个提升过程还是蛮有意思的。同时,在业务升级中我们也通过不断的优化业务逻辑来加速各个页面的响应速度。在后端数据上,我们也开始了NLP模型的训练,旨在不改变用户习惯(消息发布者)的同时,提升其它用户(消息接收者)的体验。
  • 产品:随着实习的进行,我的产品思维得到了很大的提升。个人认为,偶尔听一些产品的方法论还是有用的,但不可以之为圣经,更多的是需要实战。融会贯通才是最重要的,产品思维的本质是抓住要点:抓住产品的核心能力,用户的核心需求,市场的重点变化。往往产品经理会被浮于表面,追求小的细节,小的用户体验,这实际是初期产品所忌讳的。个人认为,初期产品一定要抓住核心,确定好方向和目的,再去做细节。更激进一点的说,UI或者一些小功能的设置,不如交给A/B test去看,无需过于纠结(此处一定有争议)。
  • 数据:即使是小的产品,数据一样很有用处。小程序的后台提供了还不错的数据分析,能满足初期的需要,但更精细化的还是需要自己埋点。用户的留存率和用户路径以及用户的浏览时间都是能说明很多事情的点,有利于PM对产品有针对性的提升。同时,对于投放广告的产品来说,用户画像对于转化率的提升是毋庸置疑的。

实习

很幸运的进了百度做B端的产品实习,有时候会很累,但收获很多,重点是养成了产品方面的思考模式。组里的人都很好,感觉百度整体来说还是很缺人的。在实习里,有机会负责了一个产品线里很大一个板块的升级需求,一个PRD改来改去竟然改出了1万字。
还是一句话,很幸运。有幸去更全面的了解百度,了解互联网,以产品的思维思考世界。大公司的角度和小公司的角度也有很大的区别,这一点我认为是很多学生要去大公司实习的原因。不知不觉间,我们习以为常的流程实际上是其他公司往往所缺乏的,而大公司的所有制度都是曾经的血泪史,只不过它一路走了过来。
另:百度B端的产品岗位不一定会很忙,至少不会一直加班到9点。C端压力会很大。研发的同学emmmmmm

总而言之,还有很多可以前行之处,愿19年有更多的努力与收获。