程序员的劫
最近,又被程序员年龄的事情刷屏了。37岁被公司优化,找工作几个月都没有很好的归属,所谓的小公司还看不上。等等类似的话题变成了程序员的吐槽固定标题,无论是程序员,还是其他行业人员,都可以就这话题聊上一二。最多的无非就是调侃,以及不解,各行各业的调侃,各行各业的不解。
程序员工作的相关行业,基本上都被理解为高收入的行业,程序员也成为了高收入的群体,相较于其他行业,有什么资格谈差异,更何况是所谓的抱怨。
揭开神秘的面纱,这个群体实则是底层的代表,程序员更成为苦逼的行业。无论是996,还是007,有谁考虑过每个程序员的感受。挣扎的同时,每天还是需要经历太多的考研,程序员仅仅是产品转化的一环,反倒是成为了有技术,有能力的代表。挣着苦逼的钱,做着苦逼的事,背着苦逼的锅。
各种神奇话题之外,35岁更成为了一个劫,渡劫的方法更奇葩,貌似只有换个行业工作成为了题解。成为了年轻人的专属行业,吃青春饭的代表。技术这种东西,是否应该越老越精通,经历的越多越熟练。其实并不是,程序员实则成为了程序的一部分。
1.如何学习准备的?
学习路线:了解市场招聘需要哪些技术?了解常用的业务指标有什么?了解常用的分析方法工具有哪些?简历上需要什么项目来证明自己?
学习的门槛在于如何入门。如果入门了,那么接下来的学习就会很容易。因为接下来的学习就是边做项目、边面试,你会发现你的能力会有很大提升。要知道,面试也是提升能力的一种手段。
面试前要刷常见的面试题,面试过程需要你能够手写算法,所以面试前多锻炼在草稿纸上手写算法的习惯。
关于项目
每个人的项目经验起点不同,有人两袖清风,想着法子无中生有;也有人左拥右抱,却也无从下手。
我认为,寻找/选择项目需要遵循以下两个原则:
- 必须包含一到两个 可扩展性 知识点
- 最好解决了明确的 需求
首先,什么是可扩展性知识点?是指一个知识点,作为一个根结点,它的延伸分支可以深入到很远。举个栗子。ListView,来大家跟我一起背,用于显示列表,需要一个adapter来对数组进行包装,通过RecycleBin进行缓存。……这就没了?不可以!请跟我继续:ListView如何对convertView复用?ListView中图片过多引起OOM如何解决?上下左右滑动冲突怎么做?ListView中可以包含大量图片,布局复杂导致卡顿怎么办?ListView如何实现下拉刷新上拉加载?用RecylerView代替ListView解决了什么问题?……
我想你大概明白什么叫可扩展性了。为什么需要这个东西?因为他能够 控场 !
因为这些延伸分支就是你的套路呀!提前准备好一两条分支上的基础知识、重难点、优化点,并在描述项目时做一些诱导,就可以非常心机地让面试官按照你早已精心准备的套路问问题~
你看,我并没有说出你们想要的答案:首选很难很剽悍的项目。因为再难再复杂的项目面试官都见过,你的难对于他们而言只是大巫见小巫,并不足以吸引他们。
当然,如果你足够自信,认为能把握住两大基本原则的同时激进发挥,把一个前无古人后无来者的项目说的精彩绝伦。那你是大佬,我甘拜下风。
对于没有项目的同学,可以在黑马、腾讯课程上跟着做一个简单的项目。在准备过程中需要融入自己的思考,化为己用。
2.简历需要避免哪些坑?
简历一定要按照招聘职位要求去写,重要的事情说三遍。很多人的简历写一堆有的没的,比如自我评价、社团、无关的课程也放上去。其实人家面试官根部不看你这些。
如果你没有相关的能力,请自己先准备一个月,做个像样的项目出来放到简历上,然后再去面试,不然就是白白浪费自己的时间。
有奖学金写奖学金,但是写一个最高级别的就可以,没必要把所有的奖学金都罗列出来。简历上最重要的部分就是你的项目经验。
很多优秀的大学生同学会有竞赛经历,但是你一个项目参加四五个比赛,然后把四五个比赛的奖项都写上去,意义在哪,想告诉面试官我很会比赛?请把比赛奖杯转换成项目经验。
对于自我评价请不要放在简历上,没有面试官会喜欢套话,下面的自我评价你细细品:
有较强的自主学习和自我管控能力;
有较强的创新能力;
细心, 善于换位思考, 易于相处;
有较强的抗压能力。
3.面试中遇到哪些问题?
我是从3月开始投递简历的,我自己的投简历方案是:海投小厂、尝试中厂、内推大厂。
对于没有面试过的小白来说,小厂的面试非常适合练手。中厂的面试难度接近大厂难度,如果中厂感觉非常顺利也意味着自己可以去大厂面试了。
大厂的面试风格很不同,有的偏向于算法,比如字节。有的偏向于实践,比如阿里。有的偏向于智力题和编程题,比如腾讯。
不过在面试前一定要查好公司的业务、部门的业务,掌握主动权。但一定要找人内推。
总结一下大家面试当中的几个极端:
一问三不知;
太飘、太嚣张;
太卑微导致太紧张;
语速过快
面试就像考试,考验的是你准备充分不充分,你说期末考考了个95分就能代表你所有的能力了吗?
不能,面试也是,面试通过了也只能代表你在这个岗位是匹配度比较高的。所以一定要准备充分,想着划水找到工作是不可能的。
以上三个极端都可以通过准备来解决,因为3个极端都是对面试考察的点不了解,无脑自行发挥导致的。
(1)一问三不知
简历问你的项目,问一下回答一下,能回答出一点东西,但是追究深层逻辑就不知道是啥了。
在面试前一定要把自己做过所有的项目都整理过一遍,深度思考、头脑风暴、逻辑自洽。
尝试找同学表达自己的项目并且让他问出多个问题,看看每个问题之间能不能用逻辑联系起来。把项目拆分成多个部分,项目准备阶段、实施阶段、解决困难问题阶段、结束复盘阶段。
判断的标准就是,是否可以在面试的任何时间点都可以穿插入项目的各个阶段,把握主动权,体现自己的专业能力。
(2)太飘、太嚣张
这个通常是在技术面或者hr面的时候会遇到。hr问你你的缺点是什么。有人说我的缺点就是太聪明(没关系,虽然不是很好)。
这时候有些面试官喜欢肯定应聘者,常常初入社会的面试者会因此飘起来,然后开始释放自我,什么话都开始说了,但是面试一定要懂得克制和发挥互相平衡。
说着说着面试官问你为什么聪明,然后就开始讲自己过去有什么经历,说着说着说自己想去创业了。
这种表达面试官听到后还敢要你? 面试是一次表现自己和岗位匹配度的机会,不是表现你个人有多么优秀的机会。
(3)太卑微导致太紧张
这个是会比较容易出现的,我的建议是主动做自我介绍,可以让自己放松下来。
(4)语速过快,急着表现
这样反而没有表现好,滴滴我唯一一次业务面试挂掉的,面试官问了一个滴滴出行在七八月有下降的原因可能有什么。
回答这类问题其实要用分析方法来结构化思维,比如思考五秒在脑海里罗列出大纲,分点回答。例如:
1.暑期来临,学生放假,旅游业火热。
2.同比、环比看看数据是否异常,加入时间维度。
3.有没有重大社会、经济事件干扰。
4.APP是否出现问题,bug导致用户体现下降。
5.是否是优惠券等活动导致。
- 疫情影响
但是我当时在回答的时候,为了体现自己的反应速度就讲了暑假这个维度,所以让面试官感觉思维没有打开,就被拒了。面试被拒不可怕,一定不要气馁,觉得自己不行。
很多人面试被拒,只会自我归因,这不一定是正确的。有时候要自信,相信自己的能力,找出自己的问题,分析客观存在的问题,这样才能持续进步下去。
面试被拒的正确操作是:
我自己在表达过程当中有什么问题?
有什么可以改善的?
面试官是不是没有深入问下去,是她的问题?
4.面试经验有哪些?
在面试完之后可以这样问面试官,请问面试官您觉得优秀的员工应该是怎么样的。这时候面试官会开始说一堆,不知不觉得把这些优点往你身上靠,成功率增加+20%。
在面试完之后可以问面试官,请问我的下一次面试时间在什么时候。这也很有用,因为如果你问我的面试结果,通常面试官是不能告诉你的,因为公司规定,或者他要综合考量。
平时多积累,比如看书或者学习过的知识,面试过程当中也可以讲出来,面试官还会觉得你好学,更欣赏你。
5.现在日常工作是做什么?
因为是实习生,我现在的日常是维护数据埋点,现在很多公司数据埋点的规范化刚刚起步。
产出报表。一些大厂会有自己的数据中台,很多取数据的工作都已经让数据开发的同学做了,数据分析的同学拿到的数据经常都是比较规范的。因为自己比较年轻所以目前也在不停地总结实习的经验。
最后想说一句很多同学在应聘的时候会在过度自信和过度自卑两边徘徊,这是很正常的情况,这也是一种难得的经历。
但是要懂得的是自己要勇敢的去尝试大厂,不要给自己设限,觉得自己大学不好,没什么经历就不敢去尝试巨头公司。
又或者觉得自己太厉害不想去尝试小公司,每一次的面试就是一次照镜子的机会,你会对自己越来越了解。
文末
初级工程师拿到需求会直接开始做,然后做着做着发现有问题了,要么技术实现不了,要么逻辑有问题。
而高级工程师拿到需求会考虑很多,技术的可行性?对现有业务有没有帮助?对现有技术架构的影响?扩展性如何?等等…之后才会再进行设计编码阶段。
而现在随着跨平台开发,混合式开发,前端开发之类的热门,Android开发者需要学习和掌握的技术也在不断的增加。
通过和一些行业里的朋友交流讨论,以及参考现在大厂面试的要求。我们花了差不多一个月时间整理出了这份Android高级工程师需要掌握的所有知识体系。你可以看下掌握了多少。
混合式开发,微信小程序。都是得学会并且熟练的
这些是Android相关技术的内核,还有Java进阶
高级进阶必备的一些技术。像移动开发架构项目实战等
Android前沿技术;包括了组件化,热升级和热修复,以及各种架构跟框架的详细技术体系
以上即是我们整理的Android高级工程师需要掌握的技术体系了。可能很多朋友觉得很多技术自己都会了
点击领取完整开源项目《安卓学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
,只是一些新的技术不清楚而已。应该没什么太大的问题。
而这恰恰是问题所在!为什么别人高级工程师能年限突破30万,而你只有十几万呢?
就因为你只需补充你自己认为需要的,但并不知道企业需要的。这个就特别容易造成差距。因为你的技术体系并不系统,是零碎的,散乱的。那么你凭什么突破30万年薪呢?
我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。
喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!
以上系统大纲里包含的所有技术资料,我这里都有的。可以免费分享给有需要的朋友!
我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。而但凡只要有人因为我的这份高级系统大纲以及这些话找到了方向,并且付出行动去提升自我,为了成功变得更加努力。那么我做的这些就都有了意义。
喜欢的话请帮忙转发点赞一下能让更多有需要的人看到吧。谢谢!
以上系统大纲里包含的所有技术资料,我这里都有的。可以免费分享给有需要的朋友!
资料领取方式:点击我的GitHub