前言
最近在网上看许多面经的文章,有拿到Offer的,也有凉凉的,这些文章中都有一个共同的特点,就是单单的只有面试题目。而没有面试过程中需要注意的细节和面试心得。导致有些面试者们在面试来临,就去盲目的去刷这些题目,而没有结合自己做过的那些项目中,遇到的一些技术问题会被面试官问道,回答不上导致面试落选或者薪资上不去。
正文
很多人对成长有误解,在他们眼中,随着工作年限的提高,成长是理所当然的事情,这其实是一个误区。两个程序员同时工作3年,难道他们两个的成长就完全一样吗?其实是不一样的。很多岗位在招聘的时候都要求3年以上工作经验,这个3年工作经验是指持续成长的三年,而不是指浑浑噩噩混日子的三年。下面举个通俗易懂的例子,大家一定能理解。
这里拿盖大楼举例,比如某大公司发布了如下一个招聘需求,招聘资深建筑工程师,提供具有行业竞争力的薪酬,要求如下:
- 5年房屋建设工作经验;
- 对房屋建设的各个阶段有深刻了解;
- 熟悉各种类型的砖头、钢筋、水泥等原材料的使用方式;
- 要求持有国家二级以上建造师证书;
- 吃苦耐劳优先。
看到这个jd后,只要是有5年经验的建造师都跃跃欲试,都觉得自己可以。
其实这个岗位是干什么的呢?这家大公司想盖一栋50层的高端商业写字楼,需要招一个资深工程师来完成整个高楼的地基、框架和外形的设计,还需要考虑容灾和抗震等级。
而来应聘的一大部分建筑工程师,他们虽然工作了5年,可是他们平时都在做什么呢?大概是这样的:
- 搬砖、和水泥、砌墙等;
- 建过的房子不超过6层;
- 从来没有考虑过地基的搭建、框架和外形的设计,因为他们不需要考虑,只要按照已有的方案来干就行。
就这样工作了5年,在自己的工作领域(搬砖、和水泥、砌墙)驾轻就熟,觉得建房子不就这么简单嘛,觉得自己已经精通了建房子。
但事实上,他们真的能够胜任50层高楼的建筑工作吗?很显然,不能!
什么样的人能够胜任这类工作呢?他们也工作了5年,他们平时所做的事情大概是这样的:
- 第一年:搬砖、和水泥、砌墙等,参与建造一些6层小楼;
- 第二年:搬砖、和水泥、砌墙等,同时研究各种砖头、水泥、钢筋等原材料的特性,知道不同原材料的适用场景,可以独立建造6层小楼了;
- 第三年:跑到另一个建筑队,建造10-20层的普通住宅,开始跟着工头一起参与地基、框架和外形的设计,业余时间阅读一些建筑书籍,了解一些国内外知名建筑的设计思想和理念,并时常在建筑论坛发表自己对建筑设计的理解;
- 第四年:开始独立负责10-20层普通住宅的建造了,在业余时间开始研究30-40层商业建筑的设计和建造,考虑设计理念、建筑容灾等问题,一心想自己设计一栋更高的大楼;
- 第五年:一个合适的契机,加入这家大公司,主导50层高端商业写字楼的设计和建造。
到这里,我想大家都明白了。搬5年砖也还只是一个搬砖的,无论如何也设计不了摩天大楼。
对于程序员来说,待在同一个岗位重复着搬砖的工作,是无法有很大成长的,只有不断地挑战自我才是正确的成长姿势。 有人就会问,到底怎么做,才能不被淘汰,不会止步不前,怎样学习呢?下面的图,是一个程序员进阶所需要学习的内容,也是一份知识图谱,我耗费3个月零13天做出来的。
总结
最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
上述【高清技术脑图】以及【配套的面试真题PDF】可以点击我的腾讯文档免费获取
本文在开源项目中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。