研二与2017总结
这篇文章主要是对我在2017年生活/研二学年
的一个小结。
主线
主线剧情大多是比较正经的事情,按照时间线理一下研二开学(2016年9月)到2018年1月底这一年多做的主要事情:
- 实现一个城市大规模动态出租车调度仿真系统,目的是做指派算法的Test-bed(2016年11月中旬~2016年12月底)
- 研究生学位论文开题(2017年1月初~2017年1月中旬)
- 完成课题组一个科研项目Cloud Power Price的算法验证(2017年2月底~2017年3月中旬)
- 参加CodeCraft2017华为软件精英挑战赛(2017年3月上旬~2017年5月中旬,参赛队12000+支,入围全国总决赛,如何评价2017华为软件精英挑战赛赛题, 参加2017华为软件精英挑战赛是怎样一种体验)
- 完成并投出自己的第一篇学术论文(2017年7月中旬~2017年8月中旬,17年12月被录用)
- 参加校招(2017年8月中旬~2017年10月初)
- 完善第二篇论文(2017年10月底至今)
- 参与课题组一个科研项目CoUAV的算法验证和论文协作(2017年12月中旬~2018年初)
- 参与课题组一个计算机视觉项目,需要实现特定场景下的实时目标检测、跟踪和识别(2018年1月上旬至今)
支线
其他方面的支线较多,主要提一下阅读吧,能想到的如下:
- 《Algorithms (4th Edition)》:算法基础书籍,目前读过的最好的讲解算法的著作。
- 《Discrete Optimization》Coursera上的一门课,以82/100的成绩顺利完成。主要是讲解组合优化理论和算法,起点较高,不适合新手,适合有一定编程基础和数学基础的同学。每次的编程作业都是经典的NP-hard问题,比如Knapsack, TSP, FL, VRP等等,用例的规模从小到大都有,会充分考察你所设计的算法的性能,还是很有挑战性的。在机器学习热火朝天的今天,在大家都在追逐凸优化、梯度下降等算法时,还有多少人会花上几天的时间来设计并编写组合优化算法呢,Branch and Bound, Local Search, Meta-Heuristic…另外老师风趣幽默,肢体语言丰富,极力想勾起大家的听课兴趣。
- 《C语言的科学和艺术》:C语言基础书籍,目前读过的最适合推荐给想以正确优雅的姿势入门C语言的朋友。
- 《C语言的接口与实现》:里面包含着面向过程与接口设计的精髓。
- 《
C++
沉思录》:看完了前三章。「C++
是在混合环境中发展壮大起来的,是生存在现实世界中的。」 - 《
C++ Primer
》(第五版):很经典的著作,书非常厚,基本上CPP的方方面面都涵盖全了,感觉更适合作为工具书用。 - 接上:虽然看了不少C/CPP的技术书,由于技术方向是数据科学,所以工作以后主要语言会是Java, Scala和Python。
- 《三体》:一个恢弘的科幻故事,若你能理解段落中蹦出来的专业术语,何不会心一笑?
- 《东京一年》:一部独特的日记本/游记。蒋方舟以写实、真诚、大方的文字记述自己在异国他乡一年生活的所见所闻所思,读来亲切,文笔俱佳,穿插在散文当中的议论也很有深度。这种窥探某位才女点滴生活的体验,不可谓不棒。
这一年读的书确实少
动画和游戏,作为我平时主要的娱乐活动,放在这里了。
另外,在知乎上回答了几个问题,不知不觉破了千赞,有了330+的关注者,分享见解,然后获得别人的肯定、或者帮助了一些人,多少是件让人高兴的事情嘛。
心路拾掇
选择
研一结束的时候,决定选择工业界。做选择难也不难,大意就是要直面问题和矛盾,结合自己实际情况综合考虑,想通以下几个问题:我喜欢什么样的生活方式?我倾向于解决什么样的问题?我的家庭条件允许吗?
从做事情的角度看,做学术与做工程都是解决问题,只不过关注的问题位于不同的层次——前者解决基础科学中的问题,强调探索、创新、尝试和发现;后者解决生产生活中的问题,强调快速迭代、高效稳定、有效实用以及流程化和规模化。两者没有孰优孰劣之分,当然,也有互相重叠的地方,因为解决问题的方法论往往都是类似的。
求解
回顾这一年的经历,我发现自己在解决问题时的许多思考、决策和行动都更像是低级的条件反射,而不是「本可以拿得出的」经过训练的能力。比如拿到一个问题,总是指望有一个通用的方法可以完美地解决它(虽然并不是不可能)。
在参加2017年的CodeCraft比赛时,队长(后锦)做问题的方式给了我很大的启发。比如,对于组合优化类的问题,条件可能的话,他总是喜欢先拿到最优解(可以通过线下用整数规划暴力解出来),然后观察最优解,寻找一些基本的规律,为启发式搜索设计一些有针对性的规则,然后继续不断地观察和尝试,不断地总结出一些新的规则和策略,而且每一步的行动都非常有效,最终这些许许多多简单的规则组合在一起就构成了一个强大、稳定的搜索算法。对于组合优化,许多人拿到问题总是习惯于套一些现成的框架,比如遗传算法、模拟退火、蚁群算法…诸如此类,但是对于其中最核心的一些操作却做不到和具体的问题高度整合起来,导致不同的实现其性能却有天壤之别。曾经有一位OIer/ACMer说,最强的优化要根据问题本身的性质和结构来做,对于这点我是非常赞同的。
因而,我无比敬佩那些不疲于深入观察问题细节,依靠一点一滴的尝试和汗水在实践中有效地解决问题的人,所谓知行合一,都体现在这种行为方式上;所谓思维方式,也并不是空中楼阁,一定都是在解决一个个具体的问题中获得的。上帝赋予人类智能,就是为了更好地定义并解决问题,我们不能荒废思考的能力。
CodeCraft2017结束之后,阳姐问我们这些参赛选手要一些比赛感想之类的,简单写了一些,放在这里了。
求职
秋招是2017年一段令人难忘的经历,我加入了茫茫的求职大军,力求在职业的道路上争得一个良好的起点。暑假实验室的大家一起讨论问题、刷题、投简历、参加各个公司笔试/面试的过程还历历在目。可喜的是,最后的结果也令人满意——大家拿到的offer,几乎涵盖了互联网/IT等领域的各个知名企业。
我最终拿到了五家企业的offer,纠结一番之后,选择了网易,职位是算法工程师,涉及的技术方向是用户画像/商品画像/Spark/Hive/Java/Scala等。
至于为什么选择杭州,选择网易,一两句话说不清楚,因为倘若跟别人只说了一两句话,大概又会被认为肤浅,总之他们不会那么容易理解罢了,语言的表达力有时就是这么弱。但若是非要高度概括出来,我给出的答案是:局部最优。
接受了那么长时间的校园教育,在步入社会前,多少会有点紧张,但是想想又有点小激动。
健康
总体上我是比较宅的那种,户外活动较少,不过并不苛求,性格使然吧。喜欢某种方式就去尝试好了,觉得不错就努力保持,不合适就放弃,这很正常。
缺乏锻炼倒是真的。好在乒乓球还在坚持打,但是频次明显降低了。秋招结束后网易搞了一个「嘿猪行动」,玩各种小游戏,类似于团建的素质拓展活动,有的比较消耗体力,活动之后,我浑身酸痛了好几天。很多东西是你拥有的时候不容易去留心的,健康尤其如此。将来做工程师,还是要有意识地去锻炼,增强身体素质,毕竟这是一切的前提。
结语
如果用一句话总结这一年多的生活的话,大概可以写成:不至于丰富多彩,但是乐在其中。一直有事情做、有问题思考、有放松时间,就是对我而言最好的生活方式了。流水账似地写完,没多少东西,却也回忆起了一些值得留念的片段。仪式而已,为的是从心理上给它画个句号,然后开启新的时间线。总之,希望在未来的日子里自己能够不断务实、不断成长,以及,
梦想还是要有的,万一实现了呢