女性在技术人员中本来就是少数,更何况是青春貌美、聪慧可人的技术范儿女大学生,再加上人家还没毕业就被校招进入阿里这样的知名IT企业,简直是羡煞旁人。目前在中国科学技术大学计算机专业读研三的王建敏,就是这样一个让人羡慕的大学生“程序媛”。)
王建敏的研究方向是网络安全,主要做个性化推荐系统和云计算平台下的网络流量分析。她生活上的爱好是看电影、闲读非技术书、爬山还有骑行。今年7月份,王建敏参加了CSDN组织的“ 开源夏令营”,从而有了一段难忘的暑期经历。
热爱开源,结缘CSDN开源夏令营
在参加CSDN开源夏令营之前,王建敏就已经是一个“开源积极分子”。她表示,自己真正开始加入和倡导开源是从去年开始的,《大教堂与市集》是她的开源启蒙书,该书通过分析Linux的成功引出了开源世界的诞生与蓬勃发展,让王建敏从中一窥开源的世界。
王建敏心目中的开源包含着几个关键词:开放、平等与责任。她说:“开放让我们每个人都有机会欣赏优秀软件背后的设计思想、设计方案和代码规范,并从中学习来不断提升自己。平等能让我们每个人不区分背景和环境一起参与同一件事,在这里欢迎你暴出新的Bug、炫出更好的设计思路、添加新的功能。一旦你参与进来,就多了一份责任,我觉得这是最重要的一点,比如你给某个开源项目添加了某个功能,你就应该为这个功能负责,要能经受住大家的讨论与评价并作积极反馈”。
去年,王建敏开设了自己的GitHub个人主页,贡献了她觉得拿得出手的个人项目,也获得了别人的Fork。她平时很关注开源活动,虽然今年没有机会参加CSDN举办的“开源技术大会2014”,但她说活动截止后看了大会上分享的几乎所有开源技术视频,开阔了视野也坚定了要为开源持续贡献的决心。
有了这些经历做基础,王建敏参加CSDN开源夏令营似乎就是顺理成章的事了。她选择的项目是“ Tair LDB基于Prefixkey的范围查找性能优化”,听起来小有技术难度的一个项目。王建敏说选择这一项目主要基于两个方面的因素:一是该项目是分布式K/V缓存系统相关的,自己之前有使用过缓存系统Memcached ,对该领域有一定的了解,另外自己有云计算平台的项目经验,对分布式系统也相当感兴趣,觉得这个项目很适合自己;二是当时小论文刚弄完,有一定的闲暇时间加上自己本身就是个开源积极分子,觉得此次的开源夏令营是个不可多得的锻炼机会。
尽管对项目已经有一定了解,在提交方案的时候王建敏仍然小心谨慎。她说,整个方案花了好几天才写好,当把将方案发给导师Review时,心里还有点不自信和不安,怕方案不可行或某个地方理解有误,当终于获得导师的认可和赞赏时则十分欣喜,觉得自己以后一定要自信。
在开源夏令营中学到的项目经验
开源夏令营的项目持续了暑期两个月,王建敏说这是一段非常难忘的经历,也是自己个人能力提升较快的两个月。虽然在项目进程中也遇到过几个瓶颈问题,但在导师宗岱的耐心指导下,也都顺利解决了。
“都说通过实际项目学习东西是最快的也是最高效的,这的确不假”,王建敏说。她把通过这次夏令营的项目学到的一些做开发方面比较重要的或应该遵循的一些东西,总结分享如下:
(1)项目开始前要先做好实施计划和进度预估。以前自己做项目从来不列计划,想到哪做到哪,既不能预估项目完成期限也不能确保项目进度和阶段性的成果,而此次项目的导师没有让我立即开展项目而是让我先根据之前的简单调研初列一份项目实施计划表,需要确定每个阶段的预期成果和预估完成时间,开始不是很理解,后来才发现这份计划表在整个项目实施过程中起了非常关键的指导作用。
(2)先设计方案后代码。对于一个大的项目系统,即使你有一些好的想法也不要急于马上付诸实现,最好先把你的想法写下来进行细化形成一个合理的设计方案,然后让经验人士Review并不断完善最后形成一份可行的项目设计书,据此方案再写代码既高效又轻松。
(3)遵循低耦合的代码设计原则。之前写过一篇文章“ 程序员该有的艺术气质—SOLID原则”讲述几个比较重要的软件设计原则,这些原则本身很容易理解,关键是如何正确的运用到实际项目开发中,这方面的经验我还尚缺,不过这些原则的根本目的其实就是为了降低耦合这么简单,因为只有低耦合才能更好的适应变化,更好的重用和扩展。因此我在写代码时也时刻遵循这样一个简单的设计原则。
(4)时刻注意沟通。不明白就多问,不要浪费过多时间一直死磕一个想不通的问题,导师的一句话可能就消除了你困扰好几天的疑虑与不解,交流的确是必不可少的。”
谈起参加这次开源夏令营的体会,王建敏认为,这次夏令营让包括她在内的60多位在校学子有了一次宝贵的开源活动经历,相当于有了真正进入开源社区的通行证。此外,她还建议夏令营结束之后选择某个合适的时间举办一个线下交流活动,愿意参加的人可以互相交流经验、拍照留恋,也能为下次的夏令营起到小小的鼓动宣传作用。
校招入阿里,分享面试经验
参加CSDN开源夏令营后不久,在一次阿里的校园招聘活动中,王建敏顺利拿到阿里的Offer,成为同学们眼中羡慕的“幸运儿”。王建敏表示,初次找工作,只投了5家感兴趣的公司也只面了5家,与那些身经百战的面霸们相比,她认为自己经验方面还略显不足。但幸运的是,她面的几家公司都成功拿到Offer,也算是初战告捷。
善于总结的王建敏又总结分享了她每次都顺利通过的小技巧:
(1)找机会展示自己的亮点。不管是在自我介绍还是在后面的闲聊中,如果有机会一定要说出自己的一些亮点或闪光点,比如有些ACMer大牛、XX大赛获奖啥的,不要低调一定要说出来好为自己加分。其实这些牛的经历我都没有,不过我也会说我自己平时十分热衷于写技术博客、翻译过多篇优秀的国外技术文章、热爱开源并参加了CSDN开源夏令营项目……
(2)简历上的项目一定要知根知底,非常熟悉。需要到什么程度呢?至少你能画出项目的框架图、能清晰阐述项目采用的算法或技术(有啥新颖点、有啥技术难点等),如果涉及到了一些具体的数据,还要知道数据的存储格式、程序中是如何处理的、采用了什么数据结构等。如果对有的项目把握不大,那还是别写上去了。我当时阿里二面时就问了这些问题。
(3)画图和举例子是两个很好的技巧。如果你的表述能力不是很强,可以借助画图和举例子来表达你的观点,边说边画,既能帮你整理思路也能显示你的专业性。
(4)HR面时,一定要条理清楚,一些经常问的问题要提前做好准备。当面试官问的问题一时不好回答的时候,千万不要面露紧张、抓耳挠腮、沉默不语等,如果真的不能立马解答可以先说“让我想一会”以示礼貌,然后理清思路,有条理的回答即可,有时候答案本身不重要,只要条理清楚不混乱就行。
在被问及参与CSDN开源夏令营的经历是否对找工作有帮助时,王建敏回答道:“肯定有的。我当时在简历的实习经历和项目经验里写上了夏令营的精彩经历, 有好几个面试官都对我的这段经历或所做项目十分感兴趣。特别在阿里面试过程中有个面试官还认识我的导师,相谈甚欢。可以说,这次夏令营经历在我面试过程中起了很大的帮助”。
职场初战告捷的王建敏对未来发展有何规划?王建敏坦言,之前也认为做IT技术是个吃力不讨好的活儿,想过先做技术,后面找机会转行业或转管理。但经过这几年在技术上和阅历上的磨练,发现自己以前的想法太过幼稚和单纯,在重新思考过后,她决定:结合自身的能力与兴趣,希望能够在IT这个行业道路上一直走下去。
“因为我喜欢操弄电脑、对各种新的技术都十分感兴趣,通过我的博客也可以发现我涉猎的技术比较泛,没有对某个领域做太深入的理解与剖析,我想这既是优点也是缺点,优点是眼界广、全栈化机会多,不会束缚在某个狭小的领域一旦脱离这个领域就不知所措;缺点是泛而不专,每个领域都只学皮毛谁也追不上,最终只会被淘汰。因此,我给自己设定的职业规划是:在以后的工作与学习中,选择某一个或某几个必要的和感兴趣的领域深入专研,争取成为某个领域的专家,并不断分享自己的技术研究成果”。
这就是王建敏,一个善于思考,勇于吃苦,勤于实践的女大学生。看完了她的故事,你有什么想说的?