校招时节,各大互联网公司再次上映「夺人大战」,其中的程序员招聘,是绝对的「必争之地」。这两天BLUES找了有腾讯、今日头条、迅雷、猎豹等互联网公司履历的程序员朋友,准备了一系列访谈,让他们聊聊对职场新人的从自我提升、选offer、面试等等方面的建议,为毕业生们参加校招、选择第一份工作时提供参考。这是该系列的第一篇,希望同学们能喜欢。

 

一、企业看中的:应届生必备要素

 

第一份工作,企业不一定会要求你们掌握多么高深的技术问题,其实,技术老司机们更看中基本功和成长性软素质。

 

  • 技术基本功

 

原腾讯高级架构师,梅沙科技技术合伙人Martin针对4种常见的技术职位总结了以下计算机基础知识,相信对大家会有所帮助。

 

A. 协议、算法等基础功底

 

1.有扎实的计算机基础——加分项。如进程与线程知识,TCP/IP协议,数据与结构等。很多人认为计算机基础知识只是做后端,做服务器开发的人才需要,像前端开发根本不需要,这是绝对错误的。对于只应付日常业务编码的普通工程师来说,扎实的计算机基础知识,是锦上添花的东西,但对于优秀的前端工程师来说,是必不可少的。操作系统的基础知识,能更好的掌控代码, 避免性能上不必要的开销, 或者对其有所警觉, 同时也能避开一些逻辑上的问题。

 

2.数据结构和基本算法  清楚特定的基础数据结构的可以处理的问题, 如果已经知道这些算法,那可以跳过很多耗时的技术选型阶段,这就是知识的广度带来的优势。

 

3.网络协议知识  TCP/IP等网络协议知识,到应用层的HTTP/HTTPS等,对这些协议的深入理解,可以解决web页面在移动网络下的访问耗时长等疑难杂症,提出优化方案。

 

B.后端程序员

 

1. 操作系统基础知识  文件系统、任务调度、内存管理,进程与线程、进程间通信以及同步,锁等知识必须要有。

 

2. 基础语言  一般要求有CC++基础,精通如但不限于C/C++/PHP/Java/Go等至少其中一种后端语言

 

3. 扎实的网络协议知识  TCP/UDPHTTPHTTPS协议,Linux网络编程

 

4. 存储数据库知识  包含数据库原理,sql语句的使用、优化。积累搭建mysql和运维mysql的经验。

 

5. 数据结构知识  不要求能写出RB树的算法,但对常用的排序要熟悉。熟悉常用软件设计模式

 

6. 熟识常用的框架与组件nginx,mysql,redis

 

7. 实际的项目经验  能分析出系统各个模块的关系,为什么这样设计。系统瓶颈在哪里,如何优化性能

 

C.前端程序员

 

主要分为两大部分:前端代码技能部分(htmlcssjavascript),前端架构部分(构建工具,新生框架,优化以及安全性)。

如果把一张网页比喻为一栋楼房,那么html相当于搭建一个主体结构,css相当于来做粉刷,javascript发挥的作用就是类似于水泥的粘合剂。其中任何一个环节出现问题,都会可能导致房屋出现问题。

 

1.html基础,如各种Element的含义和用法。

 

2.dom结构与事件模型。

 

3.css样式部分 熟悉最基础的布局方式、常用定位的作用和区别、css的一些常用的选择器以及选择器的权重。另外就是css的浮动部分,掌握浮动的应用场景和消除浮动的常用方法。是否熟悉响应式布局这块,对最新的css3的知识掌握熟练程度以及移动端的经验,属于面试之中比较看重的一块。css3**现了很多的新的浏览器特性和效果,使用熟练程度之余还要知道它的兼容性。

 

4.javascript基础  理解闭包的概念和用途,原型链和继承的概念。网络基本知识像HTTP协议,Get/Post的区别与联系。

 

5.前端与后端交互的数据格式Xml/Json  进阶部分包括得熟悉使用javascript的流行mvvm框架(vue,angular,avalon等等)其中的一种到两种,构建工具(webpack,fis,gulp等等),以及系统后期的一个优化过程(包括静态资源压缩,合并,按需加载,分流)前端安全这块的知识,如跨域机制,CSRF/XSS 漏洞等知识以及如何防范。

 

D.客户端程序员

 

首先要对系统如何启动AppApp如何运行有一个整体的了解,这里就包含App启动过程,沙盒机制的目的,实现原理等。

 

1.  操作系统中进程与线程的知识点App怎样处理图片与外部网络资源,也要有一个整体的认识。

 

2.  App界面布局和交互的知识。

 

3.  语言基础包含OCSwift,至少精通其中一种。对象的生命周期,面向对象思想。

 

4.  App界面知识点,自动布局, 自开发组件。

 

5.  UIView,  UIControl,  UIScrollView,  UIViewController 等核心类型的概念和关系。

 

6.  App屏幕旋转及屏幕适配,触摸、手势、加速计的使用。

 

7.网络协议HTTP/TCP等基础知识,Socket/CFNetwork/NSURLConnection等类的使用

 

8.代码管理如Git/Svn的使用,开发测试流程,Bug管理,打包上架到苹果审核发布等知识。

 

9.常用类库框架UIKit/Foundation/MapKit

 

10.热门技术如微信支付/友盟分享/第三方统计等的使用和注意事项。

 

11.性能调优方面,内存泄漏、网络流量、耗电量方面的优化知识,Analyze的使用。

  

  • 成长性软素质

 

除了技术知识等硬素质,能驱动带来可持续成长的软素质同样重要。今日头条资深架构师夏绪宏提到,对候选人更看重:

 

1. 技术面与职位匹配     建议对照应聘的职位描述,做有针对性的准备,也让企业了解到你的用心;

 

2. 技术热情    对技术热爱,善于使用技术解决问题,有「技术思维」;

 

3. 学习能力    技术不可能一开始全部具备,更新迭代快的环境下需要保持不间断学习;

 

4. 沟通能力    团队协作需要能沟通顺畅、高效;真正在做项目时,如何正确、高效的与战友沟通非常重要,与学校中不同,在职场上更多是并肩作战;

 

5. 项目经验    实习、生活中自己有项目尝试。最好是有更多的实践,不一定是实习,可以是自己日常去多做小项目尝试,让我们看到你对技术的热情,这一点很重要,已经有相关经验的同学会更有竞争力。

 

此外,夏绪宏还认为应届生要做到基础和工程并重,不要只偏重一方,这样有助于扩展整体的技术视野,在思考问题的角度上更广、更全面。在塑造自己的职场初印象时,大家可以参考以上这几条,给外界一个完美的亮相。

 

二、应届生「要」看重的:如何选择第一家供职企业——选择大公司OR中小公司OR超级独角兽?

 

校招进行到10月中旬,估计很多优秀的同学都已经拿到了一个甚至多个offer。其中不乏大公司和超级独角兽公司递来的橄榄枝。究竟该怎么选择呢?结合腾讯高级工程师招茂锴、今日头条客户端技术总监李秋良等技术大牛的建议,得出以下判定标准:

 

1.  行业和公司层面,计算机专业主导行业有哪些?这些行业中top3的公司是哪些?这些公司的商业模式和竞争的护城河是什么?这些问题答案很大程度决定了公司未来的发展空间。通常建议只选快速发展行业中第一、二位的公司。

 

2.  岗位和兴趣匹配,要多问自己内心喜欢的是做什么样的工作,兴趣是最好的老师,兴趣也在后来的职业生涯中帮助更好地找准发展方向,即使在计算机专业领域,也是有很多细分的方向(例如安全领域,后台领域,移动领域,算法领域等)可以发展的,把它给明确下来。明确了自身的兴趣和发展方向后,就要对应地去匹配行业中有发展空间的top3公司的合适岗位,仔细看下这些岗位的Job Description的技能和知识要求,查漏补缺,把自身的能力短板补充好,做好充分准备。

 

3.  考虑团队、导师和个人成长   团队的技术氛围、mentor的水平直接影响到了你在该公司该岗位上的上升天花板的高度。选择业界顶尖某项技术的大牛追随,是对个人成长绝对有利的。

 

4.  公司产品、公司文化及CEO的认同   比较成体系的优秀公司,无论是成熟大公司BAT还是超级独角兽们,都有拳头产品。在去公司之前你要体验、了解、认可公司的产品,从内心热爱一个产品将成为攻坚的动力。另外,特色鲜明的公司都有自己独特的公司文化,这些文化反应了公司更看重的核心能力是什么,当你有了公司文化认同时,你未来的工作将会非常顺手,并快速容如公司环境。通常这些价值观也是通过CEO的发言传递出来。

 

5.  福利待遇  建议应届毕业生不要在薪水上有太硬性的门槛标准,面对很好的平台和职位,薪资在短时间内相比于成长空间是可以做取舍的。不过目前无论是大公司还是超级独角兽们,为了吸引优秀人才进入,福利水准已经非常接近了,大家可以多去知乎等社区搜索或向前辈询问了解。

 

综合来看,无论是国内大公司还是超级独角兽,对于这些应届生来说,再去思考如何选择OFFER已经非常简单。从2016年整体互联网行业来看,发展最快并稳步攀升的就是内容资讯行业,而这其中能让BAT都无法小觑的只有今日头条,如此背景下加入今日头条就是上上之选。

 

下面就结合上述几个要点分析一下具体原因:

 

从前景来看,今日头条稳坐第一梯队,张一鸣不只一次说过,今日头条的目标是成为全球最大的内容创作平台。今日头条依靠技术优势,通过人工智能算法颠覆了以往的信息分发模式。

 

头条还专门成立了头条实验室来研究人工智能领域的前沿科技。这个实验室有多牛,有两个小例子足矣证明:实验室的负责人李磊带领团队先后2次在国际级人工智能大会——IJCAIACL大会上发表paper;此外,在里约奥运期间,他们研发的写稿机器人的写稿技术在多项技术超越了同期《华尔街日报》写稿机器人的表现,并获得美国媒体Quartz赞赏。

 

在成长速度上,自2012年成立起,仅4年时间估值即达到百亿美金,头条的团队自然也迅速扩张,据说现在已经快要3000人了。而这一切,其实仅仅是开始。对程序员来说,加入发展速度最快、技术最前沿的公司本身就是可遇而不可求的。


除了成长空间之外,今日头条CEO张一鸣对人才极其渴求,他不止一次表露过对人才的看法。尊重人才要做到三个方面:「一是回报,包含短期回报长期回报;第二是成长,他在这个公司能得到成长,第三,他在这个公司精神生活很愉快,他干起事来觉得有趣。」正是如此,头条在薪资待遇上一直与BAT看齐。因此,拿到头条OFFER的同学们是非常幸运的。

 

三、职场冲刺攻略:每个程序员都有可能成为架构师

 

程序员一般在三年,五年,七年都分别面临自身发展的一个坎,根据HR的统计,这几年一般是程序员跳槽换工作最频繁的年限。对于工作前三年的程序员,TA一般都是能比较好地完成好手头上的工作,会开始觉得现在做的工作没有什么困难和挑战了,很多东西都会了,对工作的**可能逐渐开始消退。初涉职场,如何要求自己,快速成长,BLUES的朋友们都很积极地给了很多建议:

 

1. 尽快完成身份转换,从学生过渡到公司员工。更好的平衡实际产出和学习提高的精力,这方面有问题不妨多和直线经理沟通

 

2.兴趣驱动自我成长,能做技术源于我对技术的热爱,找到你的兴趣点;

 

3. 有优秀的mentor指导;

 

4. 在某个领域需要有特长,需要去深钻;

 

5. 学会合作 不同于学校里接触的项目,工作上有大项目才能获得锻炼,你会发现原来需要考虑这么多问题,看起来一个简单的产品需要那么多人协同。

 

6.  辅助技能也是必备,不光是技术上的成长,需要了解用户、推动产品落地,这涉及到用户洞察、执行力、沟通能力等等一系列技术人员必备的技能。

 

7.  和业界保持更新,不要闭门造车,需要跟更多的业内人士交流、学习。

 

所以,那么多计算机专业的小鲜肉,有老司机在前面带路,就大胆的去追逐程序员的梦想吧,第一份工作的选择也是一个磨练的过程,或许这个过程有诸多坎坷,但也不用蓝廋香菇,学会自我总结反思,相信会找到一个适合自己的发展平台。

 

==========

感谢参与本次系列访谈的程序员,根据投票结果,大家既需要小结文章,也需要程序员前辈们的个人文章,那就陆续把原文发出来给大家参考。

大麦,飞笛资讯技术负责人,原腾讯高级工程师,工作7年;

XQ,腾讯高级工程师;工作8年;

招茂锴,腾讯高级工程师,工作7年;

Martin,梅沙科技技术合伙人,原腾讯高级工程师;工作6年;

阮威,原腾讯、YY语音资深程序员,现任某公司技术副总裁;工作8年;

刘智聪,原迅雷首席工程师,目前创业;工作11年;

敬宓,迅雷首席工程师,工作9年;

蔡超凡,迅雷技术经理;工作6

曹欢欢,今日头条算法架构师,机器学习领域博士;实习2年,正式工作7年;

李秋良,今日头条移动端技术总监;工作9年;

夏绪宏,今日头条资深架构师;工作6年;

夏文勇,100教育首席架构师,原YY语音首席高级架构师;工作20年;

PT:原腾讯、YY语音高级工程师,目前创业;工作10年;

刘凡:猎豹移动工程师;工作2.5年;

 

参与回答问题的还有梅沙科技的程序员小伙伴:Mask, Johnson, Lemon, Daniel, Mandy, Jan等。

 

==========

公众号作者BLUES(兰军)梅沙科技(www.meishakeji.com)创始人公众号IDbluemidou;原创3年自媒体,原迅雷产品总监,腾讯、YY语音高级产品经理,欢迎留言交流。


点击关键词阅读相关文章:


产品经理能力体系    面试     校园招聘    程序员

运营体系       数据分析     大数据体系   


 数据运营       留存率

产品可用性测试(上)     (中)    (下)

30岁的焦虑       产品经理的黑魔法  


欢迎扫描二维码关注BLUES公众号:


梅沙科技招聘前端开发、后端开发,点击阅读原文看详情:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。