做 Android 开发摸鱼是要付出代价的,被主管劝退,我后悔了
协议的使用场景:DNS 协议,ARP 协议,SSH 命令的使用场景以及原理。
不同协议的区别:TCP 与 UDP 的区别,HTTP 与 HTTPS 的区别。
协议具体功能实现:TCP 三次握手原理,TCP 慢启动以及滑动窗口的原理与实现方式。
4. 操作系统
操作系统基础概念:进程,线程,虚拟内存,文件权限,信号量等概念考察。
Shell 的基础使用:ls, find, top, ps 等命令的应用与原理。
常见功能的实现:进程调度,用户态与内核态的切换,各类系统调用的实现方式,epoll 的实现。
常用函数的实现:memcpy,strcpy,strstr 等常用库函数的实现方式与优化。
3. 积累项目经验
项目经验
项目经验这块因人而异,把觉得做的有亮点的东西挑出来,从四个方面来准备:
功能模块的实现
达到了什么效果
遇到了什么问题,是如何解决的
涉及到的相关知识点
项目经验和知识点 其实是一个双向的过程,要 试图去找到它们之间的联系:
谈到项目经验的时候,可以说:做完 xx 之后,我还去了解了一下 yy 背后的原理,xxx,这里体现的是 你是否有求知欲 。
谈到知识点的时候,可以说:yy 的原理是这样的,在 xx 项目中我是如何应用它来解决问题的,这里体现的是 你是否具备把知识付诸实践的能力。
开源项目 开源项目可以让你和世界上顶级的工程师一起工作,学习软件设计以及语言的高级使用方法。同时能让你理解软件是如何运行 / 设计的。
参与较底层/偏向算法或研究的项目 如果求职者未来想从开发转向研究的岗位,那么就可以阅读一些相关学术论文,写相关的文章分析与工具。
造轮子,实用工具 从学习的角度来说,造轮子可以说是最好的方法,不过要给自己一个期限,不能无止境地把时间花费在程序的细节与优化中。知道原理,能够实现就足够了。
写论文,分享文章 如何宣传你的开源项目或者业余项目?写一篇优秀的文章介绍它。同理,要证明你有喜欢计算机,有研究的能力,最好的方法也是写一些优秀的文章以及论文。
4. 模拟面试
如果你准备去面试一家非常喜欢的公司,那么面试之前,你应该先进行模拟面试,模拟面试的意思是让另外一名工程师充当面试官,按照该公司的题库以及流程对你进行面试,然后再把面试过程中的优点和缺点反馈给你。模拟面试既可以让你的朋友当面试官来面试你,也可以去找几家有类似岗位的公司。因为当你本来就没有一定要进该公司的想法,那么心态自然就能放轻松,带着轻松的心态去面试的话更能发挥好,给自己信心,同时也可以问问面试官自己哪里不足,可以加强的。经过总结后,锻炼自己面试的技巧,包括技术的基础,以及如何问问题。当你面试得多了,会发现问题其实都差不多,下次遇到也知道怎么回答了。你可以选择 Resumejob 或者以英文为沟通语言的 Pramp 来训练。
5. 选择公司
前几家公司的选择对你的职业规划会有很大的影响,大公司还是小公司,和你个人的性格或者职业规划有直接的关系:
大公司
优势
入职薪酬较高,每年固定调薪,员工福利例如下午茶,文娱活动,年假都有保证。
通常都有大牛,而且工程师比较多,总能遇到一些志同道合的朋友。
跳槽到小公司比较容易,岗位也能得到提升。
劣势
刚进去的时候接手的可能都是比较枯燥的小项目。
可能需要维护几年前的没有文档没有测试的项目。(其实也能学习到很多)
比较容易安逸,缺乏学习的动力。
小公司
优势
相对来说,条条框框没那么多,偶尔迟到请假没什么关系。
什么都能学到,从开发到运维到测试。
项目可以加上自己的建议和想法,比较有成就感。
能直接向老板汇报,升职速度比较快。
万一上市了呢?(中国每天有一万家公司注册,上市的嘛…)
劣势
入职薪酬比较低,员工福利嘛,不能保证。
有大牛的可能比较少,除非你事先知道(所以面试问问题非常重要)。
加班压力通常比较大,而且公司不一定会根据你的加班时间就涨薪。
跳槽到大公司比较难,除非你有非常好的简历与能力。
在国内来说,除了一些很 geek 的小公司,一般的小公司并没有那么自由,加班也可能很多。所有我觉得一开始选择大公司往往是不错的选择,之后跳槽的选择范围也更多。
[](
)面试阶段
一. 整体流程
腾讯的部门很多,岗位类型有别,职级差异较大,因此,每个面试者的面试流程肯定不尽相同,然而,很多流程基本通用,故值得一看。
面试流程如下:
一图胜千言,要进腾讯并不那么容易。跟游戏升级一样,只有通过前一关,才有机会进入下一关。
微信部门的面试,要求更高,基本是 2 轮面委面,还有可能是 3 轮。当然,微信部门的钱也更多。
有的朋友问:组长是啥岗位?总监和总经理又是啥岗位?我们来简单介绍一下公开信息中的腾讯管理层级(副级别不单独列出):
看似层级不多,但要从下一层跨越到上一层,通常是五年十年之功,并不容易。可以算算,接近小马哥要多少年?
有的朋友还会问:面委是什么?面委就是面试委员会,会对面试者的能力进行再次考核,以便进行定岗定级。
通常来说,面试 9 级或 9 级以上的岗位,才需要面委。这里的 9 级是什么意思呢?且看公开信息中的腾讯技术通道职级体系(左旧右新):
一般来说,应届毕业生级别最低,组内骨干至少是 9 级工程师,组长至少是 10、11 级工程师,总监至少是 12、13 级工程师,依此类推。
接下来,我们来具体聊聊面试流程中的每个环节,仍以郭靖的社招面试流程为例,岗位是后台开发。
二. 简历筛选流程
第一步是要投递简历。筛选简历的是 hr 和业务部门。如果 hr 觉得简历不错,就会把简历给到业务部门。当然,业务部门也可以去人才库中找匹配的简历。
总之,简历的最终评判会落在业务部门身上。如果简历不通过,就没有下文了。如果简历通过,就有希望了。
三. 电话面流程
简历通过后,业务部门的组员或组长,会打电话给求职者,简要了解基本情况,也可能初步问一下技术和岗位方面的问题。
极端情况下,如果电话中发现求职者技术确实太水,啥都不会,尽是扯淡
,那么就会让应聘人员等后续通知,然后就没有然后了。
然而,通常情况下,既然简历通过筛选,那么还是值得给予面试机会,这个电话的主要目的,是了解基本情况,并约=到腾讯面试。
四. 组员面流程
组员面试,不是 100%必须的环节,然而有时候组长太忙,就会让组员先面试,探探路。
这个组员,一般是组内的骨干员工,职级通常是 9 级,很可能就是之前电话约面试的那个人。
五. 组长面流程
前面说了,组员面不是 100%存在的环节,如果没有组员面,那么组员面的内容会在组长面时体现。
组长拿着的笔试试卷,就笔试题目进行发问,问完之后,还会问了别的技术问题。这个过程大致 30 分钟左右。
如果技术不行,就不会去浪费总监的时间了。然后,会告诉求职者回家等消息,那么,这种情况基本就表明面试不通过。
如果水平不错,组长就会让求职者稍微等一下,去请总监来面试。通常来说,组长会提前跟总监打招呼,说今天有人的来面试,让总监预留一些时间。
六. 总监面流程
总监对求职者继续进行深度发问,聊了很多技术和项目问题。
无论是否通过总监面,当天的面试通常都会结束。不会进行总经理面,因为总经理时间很难约。
七. 总经理面流程
总经理面,是最重要的一轮面试,在很大程度上,决定了求职者能否拿到最终的 offer。
评论