如何与大厂程序员 PK?你需要具备这些能力

前俩天发布了 Android 高级开发面试题以及答案整理 收到了很多同学的反馈,希望整理一些初中级的文章,经过再三思考我觉得对于初中级工程师来说面试的时候考察的不仅仅在于技术上的掌握程度,而更为重要的是一种思维方式,所以我想通过这篇文章来分享下我认为对于初中级来说最合理的思维方式,

另外我想强调当下大环境确实对于初中级工程师不那么利好,但是大家没有必要过于悲观,对于初中级同学在用人单位看来更重要的是看大家的潜力,我经常听见面试官这样说:我们要的员工是思维开阔,基础知识牢固,善于思考的人,即使工作经验少但是可培养性强,我们坚决不要那些只有工作年限但是只有一年工作经验的人!可见用人单位要的是匹配工作年限的能力。

我之前在月薪一万的时候写过这样一篇文章:我是如何从零开始自学Android到一万月薪的 详细总结了我是如何一步一步到达一万月薪的,到现在在看之前写的方法依然实用,有几个非常重要的习惯我一直坚持到现在:

坚持写博客

我从2015年开始到现在一直坚持写博客从未间断,这里也推荐大家多看 郭霖 鸿洋 的CSDN博客,其他的技术博客我看的少,但是这俩个的我看的挺多,有的文章看过不止一遍,书籍上我推荐郭神的 第一行代码 以及 任玉刚的 安卓开发艺术探索,我都看过几遍 所以我才敢推荐给大家,相比他们来说我的博客质量真的不行,我想强调的是定期总结不论是技术还是想法都非常重要,这不仅仅是技术能力的总结和提升,通过写出来无形之中提升了自己的抽象能力,对问题得表达以及总结能力,这些软实力非常重要,其实大家平时做技术研发很多时候我们做的需求并不难,大家基本都能做,难一点的通过搜索引擎搜索一下一样能实现,那么是什么区别于你做的比别人好,就是软实力!

软实力决定你能在职场到达什么样的高度,当然这里排除一些技术天才,算法大牛以及高并发大神,但是现实是哪有那么多高并发给我们去实践,我想大部分人还是在做一些需求开发,所以下意识的培养自己的软实力非常重要,它具体包括什么?高效的提问能力,高效的表达能力都非常关键,如果遇到一个问题没有经过自己的搜索和基本的分析就直接去问高工那显然是最让人不能接受的,我听到在沟通过程中最多的一句话是 现在的问题是什么? 很明显这是人家在暗示你直接说问题,别浪费时间,那么在表达能力上能用一句话说明白的千万别用第二句话,这里面有很多学问,这里不展开讲了,大家感兴趣可以留言,我会再写一篇文章专门讲这个,其实写作对于这些能力都是一种锻炼,所以推荐大家坚持写作!

必须有自己的 Github

我觉得我能进入大厂很大程度是因为我的博客和我的 github,我的 github Star 不太多,但是几百个还是有的,我想很多大厂员工没我多,很多小伙伴不知道开源什么,觉得自己没什么技术可以开源出去的,其实做一个开源项目不一定很大,可以是一个知识点,比如我开源了自己的做的自定义相机程序,自定义一个可以手势缩放单指拖动的 view,我开源了一个视频列表等等。

那么通过开源我获得了什么?一个就是我上面说的对于找工作非常有利,有大佬这样说过,我们小公司的出来面试怎么和大厂的人去比,我觉得 github 开源就算一个,如果你能搞到几百个 Star,我想面试官一定会重视,我清晰的记得我的面试经理和我说,我的 github 有几十万行代码,说实话我根本不知道我的github有多少代码,但是他却非常看重,这个不仅仅证明技术能力,更加是一种学习能力,大家应该听说过有人github有1000个Star直接不用面试就发 Offer,可想而知它的魅力。

那么除了面试还能得到什么?通过开源积累了自己的代码库,使用自己的轮子不用想有多顺手了吧,并且你的轮子还能给别人使用,通过更多人的使用必然发现更多的问题,通过不断的修复问题你的代码也会更强壮,你将学会的更多,你还会认识很多做技术的伙伴,会有人 Follow 你,认识更多的朋友之后找工作直接内推,这待遇可是没谁了,所以如果没有 Github 账号的你立即开始创建一个自己的代码库吧!

注重每一个细节

我一直强调怎么和他人做出区别,大家做的工作内容差不多,我怎么能比别人强呢,那就是做出细节感!把每一件小事做到最好本身就是一件非常不容易的事情,大家都完成了需求,但是有的人的代码就没有性能问题,并且可扩展性强,我目前在公司主要的工作就是做性能优化,在做的期间发现了很多代码逻辑问题,导致了严重的耗时操作,虽然功能完成了但是却留下了隐患,再想一个问题,为什么说有人工作了十年还是一年的经验呢?因为他们在做重复的事情,每天写业务代码,但是从未思考过为什么?也没有考虑过更多的事情,比如性能,可扩展性等等,当然做了十年还是用的一年的技术啊!

那么我们平时写程序应该注意写什么?第一就是随时考虑是否有更好的方式实现这个需求,第二就是这样做会不会带来性能问题,第三就是要考虑产品上的问题,为什么要这样做,不是说我们研发只完成需求就行了,好的研发也要考虑需求可行性,是不是真的有这样的需求场景,如果你能说服产品经理并且提供了自己的产品思路,我想以后和产品人员沟通起来也会非常顺畅,对于你和其他研发也会区别对待,这都是以后非常重要的能力。

我相信每一个牛人都不是生来就是牛人,都是吃过苦的,如果大家能够做到以上几点并且坚持下来,我想时间不用很多,只需一年,就会和现在比起来有质的变化,只要方向和目标确定好了,坚持下去,剩下的交给时间就行了,我们做技术的只需要一点点进步,急不来,只要今天的自己比昨天的你进步一点点,长此以往你就会感谢自己的坚持!

觉得我的文章分享的不错推荐大家关注公众号,还是那句话:我的公众号不分享技术,而是分享如何通过自己开发的产品赚钱。

关注我的 Google Play 独立开发公众号 通过从零到一在 Google Play 开发出下载量 300万 APP 的经历,我将把很多精彩的故事分享到公众号,扫描下方二维码和我一起开发 APP 赚美元吧!

转载于:https://juejin.im/post/5c8e7aec6fb9a070cd568ed8

你可能感兴趣的:(如何与大厂程序员 PK?你需要具备这些能力)