致启程和未启程的ACMers

不可否认,毕业五年多,参加工作六年多来,对我帮助最大的就是ACM。

我记得大四那会儿,去了一家游戏公司实习。当时用仅学了二节课的SDL(一个C++的库),然后就去帮公司写应用了。当时不管是做啥游戏。因为有了深搜广搜的基础,我很快就可以把程序写好。我后来分析了一下,去掉图片和一些商业化的思路,不就是ACM集训中一道道代码量较多的题而己吗?

后来我因为个人爱好转向做互联网,自学了当时自认为最有前途的PHP。真正到社会职场以后,我发现,以前参加ACM集训养成的编程习惯:快速找到解决方案、用最小时耗的办法、用空间换时间、用时间换空间……这些都帮助我在工具有限的情况下可以找到解决问题的好方法。比如我会给同事建议使用贪心的算法来解决大量报警带来的骚扰;会建议同事在数据库里增加一个用于缓存的字段,递归地缓存上一次的结果,以便于在仅有MySQL的情况下实现评论盖楼的效果;会使用树的结构来给项目的大量数据做降级处理……

还记得有一回,我用了线段树的方式解答了面试官提出的概率论的问题,当时实在是忘记了概率的公式,还好算法帮助过了一关,后来我面试通过了。现在我也成了面试官经常要面试人,我问得最多的是算法一块。我始终认为应用开发如Android、iOs都可以很快入门,而学得深入还是要靠算法来支撑。不可否认我会有ACM情结,但是谁能说这是坏事呢。尽管目前我还没有找到比较合适的ACMer同事,因为他们大多不缺发展的机会。

很感谢吴老师在校园里组织了这么一个集训,让我有机会学习、锻炼和成长。ACM是一个拼努力拼实力的比赛,你不可以有很充足的时间做赛前的作品准备,完全只有答题时间。正因如此,我们拼尽全力获得参赛资格,本身就难能可贵,更何况你还能拿一个奖牌回家。

说几个职业规划的事情。参加过ACM的同学在大四的时候,一定要掌握一门适应时代潮流的应用语言,比如Javascript、Node.js、PHP、Python、Java等,一些数据库如MySQL、MongoDB、redis、Memcached等,一些应级开发如Android、iOs……总之,很酷的东西有很多,千万要谨慎你研究的和当前潮流是否相符合,否则以后的职业生涯之路会越走越窄。当下是移动互联网时代,围绕这个话题你可以找到相当的很多很酷的职业。

为什么是大四,因为刚才我最后列的都是比较表面的东西,更新换代很快,而且入门也很快。唯独不变的是程序设计基础和算法。希望大家在大学的时候戒骄戒躁,一定要好好努力,把基本功先学好,毕业的时候,一定可以发光!

你可能感兴趣的:(ACM)