盛京棋牌 > 程序人生 > 谈谈在校程序员技能培养
2016
06-03

谈谈在校程序员技能培养

趁年初跳槽人数多,公司想多捞一些员工进来, 一直激励员工内部推荐, 我也尝试着收集一些简历内推之, 但是没什么收获。 沮丧之余,越来越感觉到当前互联网行业人才的青黄不接。

一方面是社招太难, 特别是对于当前火热的移动开发和Web开发, 稍微有一年经验以上的熟练工都是供不应求的情况。 各个企业简直就是"跪求候选人给企业一个面试他(她)的机会"。

另一方面又是大学生校招找工作难(本文说的是互联网相关专业的大学生), 个人认为原因主要有两个: 一个是很多大学生在校期间沉迷游戏,荒废学习,导致自己技能点不强,找工作难。 另一个则是因为学习上走了一些误区,很努力但是最后才发现当前社会形势所需的不相符。 在此主要谈谈后者。 主要是个人一路走来的一些经验之谈, 希望能帮到一些人。

【大学生不一定要好好上课】

因为是个人经验之谈,所以先交代一下本人自身情况, 我本科是北邮通信工程专业, 我从大二起基本上就没有去上过课。 很多课程都是期末考试的时候才知道老师长什么样子。 但是我也和其他认真学习的学生一样,保送了研究生。 原因并不是我有多聪明,只是我个人发现, 大学的考试和高中不同,大学的考试内容有限, 而且历年考试内容相差不大, 所以使得大学生考试想要拿高分的话, 必须格外重视考试前的复习,也称抱佛脚时期,大概是考前一个月之内。 与此同时,好好上课的同学也许也会发现, 大学时候的老师和高中时候的老师不一样, 讲课水准也差别很大,经常是你花10分钟看书就能明白的事情, 却讲了两个小时都没讲明白。

就是因为我的考前一个月实习的拼命学习,预习和复习一起搞定, 使得我在期末考在各个科目经常都会名列前茅,甚至考第一。 这样就让我尝到了甜头, 从此我想通的一个事情,既然我能只花考前一个月的时间就把所以考试搞定。 那我整个学期的其他三四个月的时间(包括上课时间), 就都可以用在自己感兴趣的地方上。 虽然我没有好好上课,但是实际上我比谁都好好学习。 在大学里面,上课和学习经常不能划等号。 我就是因此比别人多出了大量的时间可以做自己感兴趣的事, 可以写自己想写的代码,所以在编程等技能上面得到的实践更多, 在之后的找实习和找工作中都有很大的优势。

上面说的是本科上课的事情,其实研究生也是同理, 包括对待实验室里面的项目也是同理。 这个可能每个上过研究生的人都懂的。 比如下图:

【适度刷题,慎重选择实习】

几乎在北邮里面谈到互联网程序员校招的时候, 都会提到一个词叫"刷题", 因为这个词都使得校招成了一场攻略。 特别是想去谷歌之类公司的人来说,亲测有效且屡试不爽。 这个详情不多说,无数成功先例摆在北邮人每年的校招里面。

就拿我个人来说,其实我算是刷题比较早的(相对那些等到找工作才开始刷的人来说), 虽然错过了大一开始的ACM校集训队,从大二才开始接触刷题, 但是个人觉得也不算晚,当时刷题最吸引我的主要是一些很巧妙的思维题, 会让我感觉算法的美妙之处,虽然他们其实在工作上很少能派得上用场。

虽然不是校ACM集训队的,也没有去参加过ACM区域赛。 但是也拿过校赛的金奖,也算刷题刷出一点点手的熟练度, 至少能让我在之后的找实习和找工作中,遇到算法题的时候还算能够得心应手。

但是我要说的是"适度"刷题, 其实现在也经?;嵊姓衅傅娜送虏壅械揭恍┲换崴⑻獾娜?, 做起工程的时候总是掉链子。 比如刷题刷得很顺手的人都在自己简历上写着熟练使用 C/C++ , 却在工作中使用 stl 的 vector 都不知道 vector 扩容时内存会重分配, 导致的一些坑。 甚至连线程安全如何加锁都不清楚,就动不动就扯什么异步编程和无锁编程。 刷题这种锻炼算法基础的事要做,但是工程基础也要重视。

这些观点其实是当我在阿里实习的时候明白的, 当时我记得身边有一批刚入职的正式员工, 其中有个员工在工程实力上脱颖而出,简称他为A, 屡次受到一个资深员工的当众夸奖。 后来的发展很显然A就深受重用了。

在一次吃饭的时候,我向A讨教经验的, 他才提醒我要注重工程项目的锻炼,而不是只顾着埋头刷题。 借此开始下一个话题。

【选择实习时不要过分看重名企光环】

A告诉我说当时他在校的时候参加实习, 第一家实习的公司是百度,实习打杂了几个月, 一直在一个大的系统周围修修补补, 觉得对自己能力的提升非常有限。 就果断跳出来,去参加了创新工程的一家创业公司, 这家创业公司就是后来的创业明星–豌豆荚。

在豌豆荚早期的时候,因为员工有限, 实习生也被当成正式员工来用, 当时的某个项目,就只有一个正式员工和他两个人共同负责。 也是因为该项目,从零开始写,最后完整搭建起一个成型的项目。 让他受到的锻炼非常大。 也借此打下了C++扎实的基本功。

现在看来豌豆荚已经是明星公司,但是在当时, 豌豆荚只是一家名不见经传的创业屌丝公司。 他从百度出来之后,去参加一家毫无名气的公司, 在别人看来是非常不理解的。 因为找实习的很多人都一味的追求名气光环, 恨不得把BAT三家公司都遍历实习一遍。 其实如果一直都在名气实习,但是却一直都是在里面打杂。 那其实得不偿失。

A给我的启发非常的大, 当我从阿里跳槽出来之后, 我也有选择的去面试了几家创业公司的实习, 并选择了其中一家自己看中的岗位。 当时对自然语言处理和搜索引擎很有兴趣。 刚好该创业公司缺一个这个方向的实习生, 来接任之前一个阿里高工遗留下来的代码。 然后和A一样,我的因此获得在大公司得不到的严重锻炼, 至今仍然庆幸有这么一段经历。 大大增强了C++开发的技能点并为自己之后的技术方向打下基础。 并借此开发了自己的开源项目。 这个让我印象最深的是,自从自己的工程能力显著提升之后, 在后来找实习和找工作都异常的顺利,甚至经常让我很享受面试。 记得去小米面试的时候,我和另一个人一起参加面试, 当时小米的面试环境很简陋,两个人两张桌子在同一个角落里面。 从一面开始面试官看看简历,聊聊我之前做的项目,聊聊我的开源项目之后, 二面和三面都一起快速面完,三面后部门Leader就带我去熟悉办公环境, 并答应第二天就叫HR发offer。 而当我收拾好书包要离开的时候, 才看到刚才和我一起参加面试的那个同学, 还在和一面面试官讨论面试算法题。 让我受到了很大的鼓舞。 而且我所认识的工程牛人学长们, 校招的时候基本上面试都是走个过场而已。 offer都是信手拈来。

因此个人建议,对于在校生来说,实习是一个最锻炼自己工程能力的机会, 找实习时应该多精挑细选,不要一味的拿名气说事。 适合自己的才是最好的。 而且关于本科几年级应该出去实习的观点,个人建议越早越好。 最好从大二就开始,最晚大三也得开始实习。 byvoid 大神是从大一就开始实习,仔细看看他博客的人都知道。 他拿到阿里星顶级Offer是当之无愧的。

【多关注行业动态以调整自身发展】

几乎是从事互联网行业的人都知道,北邮人找互联网的工作特别拿手。 甚至被说成如蝗虫过境一般。事实却是也是如此。

而这在我看来,80%的原因是因为 北邮人论坛 的功劳。 北邮人论坛上关于互联网的信息非常之多。 经?;嵊泄赜谛幸狄恍┣魇坪椭耙笛≡竦奶致?。

但是在关注的同时,也需要有自己明辨是非的能力。 比如当09年安卓刚火起来的时候, 我记得北邮人论坛上就有关于嵌入式开发和安卓开发两者的对比。 我记得论坛的一些ID很得意的鄙视安卓开发, 觉得安卓开发非常Low,门槛低,连培训学校出来的人都会做。 而嵌入式开发门槛高,逼格高。 导致当时的学校风气就是很不屑安卓开发。 但是他们是错的。

人再努力也不可能打败趋势,就像运营商注定会没落, 互联网注定要往移动互联网转变一样,这些都是大势所趋。 事实上也是如此,当时做嵌入式的人也大部分都转行搞安卓开发了, 而当时一直搞安卓开发的人现在应该差不多都已经是独当一面的 Leader 了。 这就是行业趋势,并不为个人喜好而改变。 不过技术还是非技术,都应该顺势而为。

【最后】

下班回去的路上脑海里面千言万语, 觉得都是肺腑之言有感而发,但是真的打开电脑开始写的时候, 却发现很多东西不太容易表达清楚。 毕竟我研究生也没有念完就退学参加创业公司了, 直接参加的是社招也没有参加过校招。 对很多事情的理解也都是比较久远了, 不一定准确,毕竟行业形势每年都在变。

每个人的技术成长路线都不一样。 没有绝对的褒贬,本文只是个人观点,仅供参考。

原文: 谈谈在校程序员技能培养

扫码芷若 获取免费视频学习资料

编程学习

查 看2019高级编程视频教程免费获取