身处小公司,如何在2年内快速突破,拿到大厂offer?|掘金技术征文

本文是我一个朋友的经历,谨以此文告诉那些向往更好的将来发展而一直努力奋斗的朋友们。无论你如今身处什么小公司,都不要气馁,机会仍是有的,只要你勇于拼搏奋斗,我相信你必定能够成功的。html

首先介绍一个个人朋友:个人朋友小王,从小就能吃苦。他是一个不知名的大专毕业的,学历不算很高,学的计算机专业。从学从来看,他是没有优点的,不是985,也不是211,又不是本科。先行条件他都不具有。那么究竟它是如何进入阿里的呢?请看下文详细描述:前端

我这里就大概归纳了几点成功秘诀,仅供参考学习:vue

一、知己知彼百战百胜

作技术和打仗是差很少的,你时时刻刻准备着开发,就为了上线(上战场)。首先你要对本身有个明确的认知,你会那些技术,哪些还不理解的。建议多去看看大公司的面试题和面试要求,看看他们主要技术方向有哪些方面,而后做为参考去巩固学习。html5

技术测评这个建议每月作一次。这个能够由你本人自评,也能够小组内部评价。若是大家公司有明确的kpi考评的话,那么你能够把测评结果做为kpi的辅助工具。java

通常来说,首先有一张很详细的测评表,测评表主要包括技术分类,每个技术概要,评分,而后是将来发展方向等方面。经过这个表主要把你的当月所学到的技术,用到的技术点都罗列出来,而后根据掌握程度细分进行评价,而后下一步须要努力的方向,以及技术在项目中的运用等。虽然小公司不具有条件公司给你作技术测评,也多是独立开发,没有小组测评,建议仍是作一个我的测评,对你本身的技术有一个更好的了解,方便下阶段的技术提升和扩展。python

二、学而时习之,温故而知新

技术更新很快,可能你今天学了,一段时间没有用到,明天就忘了。因此我建议不光要学习,更重要的是要多复习,把你学过的东西不断的去巩固温习。react

(1)关于作笔记工具选择:程序员

为了之后能够更好地复习,要养成作笔记的好习惯,若是没有纸质的日记本,能够用有道云笔记或者印象笔记之类的记忆工具,辅助你作笔记。面试

(2)关于思惟导图:编程

每一次作笔记以后,咱们要作一个思惟导图去把笔记整理成目录,经过它一目了然的能够看清楚整个笔记的结构,能够清晰地看到你要复习的关键点。思惟导图工具推荐:xmind、ProcessOn在线网站等。

(3)关于作笔记的方式:

关于作笔记不要仅仅是copy源码,也不要仅仅是copy别人的博客,必定要抓住要点去作笔记。好比你查找一个刘海屏适配,你把别人的博客全文复制进来,收藏起来之后再去看,这种作笔记的方式是不可取的。你只须要抓住核心关键点就能够了,好比它是用的什么样的适配,根据什么适配的,核心代码有哪些等等。而后就是以前收藏过哪些相似博客,作一个综合分析等,这既是作笔记,也是一种总结和思考。

三、懂得不耻下问,切勿趾高气扬

技术虽然重要,可是态度更重要。端正态度也许你距离成功也不远了。

不耻下问这是一种态度,是一种很难的的精神。看到网友的面试经历提到过:有些大厂出来的人动不动嘴上就挂着我是哪一个大厂出来的怎么怎么样,常常炫耀,显得本身很6的样子。其实你要问他问题,他还一副高高在上的样子,爱理不理的。其实能够看出来,虽然这些人身处大厂,可是这种人的态度不是很友好。人都是生来平等的,没有谁高谁低。今天你在大厂春光得意,明天就被人搞下台。忘乎所以对你本身没有一点好处,还落得一个很差的名声。你会的别人不必定会,你不会的可是别人可能会,你要懂得不耻下问,你会发现,经过提问,你竟然能够学到更多东西。

除不耻下问以外,一样的还有一个很好的品质,那就是:谦虚。懂得尊重人,不耻下问的人基本都很谦虚。我那个朋友小王性格就很随和,很谦虚,一点架子都没有,戴着个眼镜,看起来像是读书人,其实他是一个技术大佬。

四、凡事预则立不预则废

这里讲的是凡事都要有一个良好的规划,无论是对工做任务的安排,学习的安排,仍是对将来前途的规划,都须要首先有个规划。 古话说:“凡事预则立不预则废”,说的不是没道理的。你如今身处小公司也不要紧,不要心灰意冷,也不要长吁短叹,工做很忙很累也不要抱怨。

你首先要明确一点就是你的目标是什么?

若是是混日子,那你基本就没有什么好的发展了,程序员吃的青春饭你们都理解的,正是学习的好时机你不努力,你对将来没有规划,那么你就算离开了那家公司仍是没有什么好的发展的(创业或者家里有矿除外)。

我相信你们都不想混日子的,都想有个更好的发展。那么你就要从你进公司开始,作了计划。你如今应该怎么样朝着目标前进。你的将来还缺乏什么?有哪些要求是大厂须要的,你须要之后去跟进的?而后你就要制定一个短时间计划,短时间内你要实现什么突破,攻破什么技术方案,有什么成果,怎么运用到项目中。这些你都要作一个计划表,安排出来,天天抽取一两个小时去按照计划学习。

有人会问:“我一个小公司的,我作功能的时间那么忙?哪有时间安排这安排那的?”其实这是一个误区。时间是挤出来的,咱们天天能够抽取一两个小时学习吧,上班途中看公众号,下班途中看书学习,这都是充分利用时间的示例。你去看看一些成功的大佬,他们的工做事情安排都是有计划的,他们通常不会作无计划的事。其实你能够在网上发现王健林的做息时间,几点起床,几点看书,几点开会都有明确的安排。虽然咱们是通常人,可是咱们也能够给本身作一些小目标,从一个个的小目标开始着手去学习。王健林说:“给本身一个目标,赚他一个亿试试。”咱们固然不可能那么作,咱们能够这么作:“先努力写100W行代码试试。”

好比你准备学习自定义控件。短时间一个月以内你能够制定一个目标,研究自定义View的全部有关的API使用。若是没有学完,那就继续排期学习。后续当你熟悉以后,你就能够继续安排一两个月甚至更长的时间去看View里面的源码,好比绘制流程,渲染机制,事件分发机制等,看看它们是如何进展的。再而后就是怎么灵活的运用到项目中。

五、不积跬步,无以致千里

技术的发展太快,开发中的需求多样,你如何快速把你所学的技术用来去开发一个需求,这是一大难题。每每有时候你看到一个需求,可是以你如今的能力还作不了,可是随着你不断的学习和积累,之后遇到一样的需求,你就能够驾轻就熟去作了。这就是一个技术的积累的问题。

另外技术的积累对于解决问题的能力的提高也很重要。当你的技术有了必定的积累的时候,你看到一个bug,你就会不自觉地大断点调试,看Debug日志,看上下文信息,看各个参数赋值信息,看代码有没有低级错误等多方面去检查。再好比内存泄漏问题,当你使用工具检测发现有内存泄漏时,你正常是不容易发现的,可当你平时学习了内存泄漏检测方式和排查方案,你就会按照一些方案去解决内存泄漏,可能方案并非惟一的,可是经过逐步排查,总会找到问题的根源。这就须要技术的不断积累和实践才能够作到。像小公司每天写业务代码,只要上线推广便可,通常是不太会注重App质量的。可是做为一个程序猿来说,对本身严格要求一点,App质量方面也尽量的去把控一下,就算公司没要求,你也要本身去尝试着作这件事,由于这对于一个大型应用是相当重要的,因此你能够从小应用开始着手去锻炼积累你的技术。说不定某一天当你的用户量增加到了几百万甚至几千万的时候,你有了前面的积累,再去作的话,就会有一些经验可循了。

好比大厂的App基本上都会用到插件化你技术。那么建议首先你去用一下热门的插件化框架,拿来以后封装一下用到项目中。而后就是深刻框架的源码,结合一些大佬的博客和相关书籍,试着去分析源码,本身作总结,研究实现原理,研究插件化框架跟java虚拟机有什么联系,AMS,PMS,Binder机制这些是如何运用的,hook是如何作的。这是一个漫长的过程,看安卓framework源码是很痛苦的,须要长久的目标才能够作到。

六、燕雀安知鸿鹄之志

身处小公司也不要灰心,相信本身是能够的。不要由于别人的嘲笑就中止追逐的脚步,别人进了大厂只是比你快了一步而已,有啥可担忧的?你要有足够强大的心里支撑,你才能够抵挡住外界的质疑。俗话说:“燕雀安知鸿鹄之志?”只要你树立信心,坚决不移的去作,哪怕项目再小,只要你作的可以体现出必定的水平,那也是很是可取的。毕竟面试第一步基本都是拿技术说话,无论是基础的,仍是底层的,都不要怕,只要你掌握的足够多,而且有实战经验,下一步就好办了。

七、见风使舵、顺势而为

技术的发展太快,咱们是应该根据时代的发展选择技术,仍是应该循序渐进用之前的旧方案,这是一个难题。这个问题应该辩证的去看待。

首先要把基本功练扎实,先从深度上去学习,就像前面所说的要制定计划,要在技术上有积累。而后咱们要在广度上去横向拓展,不断的扩展其余的语言技术栈,好比脚本语言groovy、python;好比js、react、vue等前端技术。

如今的Android开发不像之前的开发那么简单了,如今纯原生的少,混合开发多,跨平台框架和工具层出不穷。可是无论怎么变化,咱们必定首先要了解怎么使用,而后咱们要理解核心机制,至于用不用到项目中须要结合项目实际作决定。好比rn前两年很热门,里面无非就是react语法,核心是js桥接。好比Cordova也是用的js开发。因此咱们适当的掌握一些前端语言也是有好处的,好比js、html5这些建议学一下,就算不是很精通,可以写就能够了。还有react、vue这些框架建议了解一下。近两年小程序也火了一波,熟悉前端技术栈,对于小程序开发是很快上手的,特别是react、vue等前端框架的使用能帮助更好的开发出质量高,好维护的小程序项目,也是值得推荐的。

2017年 Google I/O 大会上,谷歌介绍了Flutter,自此以后众多Android开发者对此很感兴趣,表示上手很容易,学习成本低,性能也不错,其实也是一个不错的跨平台技术,能够尝试用一下,毕竟它是新出来的,社区还不完善,目前正式版还没出来,用在项目中会有什么意想不到的坑没法得知,不过能够本身写一些小项目玩玩,体验一下这个技术带来的便捷和体验。

八、思想有多远,就能走多远

这里面的思想主要有两种:技术和管理。

(1)技术层面来说,你想在技术上深耕,必需要对技术有足够的认知度,无论是深度仍是广度,你都要具有必定的水准。具体技术的要求能够参照大厂面试的要求去提高本身。建议必定要有着架构的思想去看待编程。

1.写代码不能懒散,必定要规范去作,严格按照Java代码规范去作,另外你能够制定一个代码准则,哪些须要约束的,哪些须要遵照的都是要有个准则,按照规则去作。
2.必定要有一个文档,无论是接口文档,仍是项目文档,或者是项目自己的需求文档之类的。小公司可能比较简单,不少都是口头说一下,扭头就变了。建议必定要有书面的文档作记录,这么作的好处:一是为了记录需求变动,有据可查;二是为了规范流程,减小没必要要的沟通、甩锅和冲突。
3.必定要注重代码质量,扩展性和稳定性都要兼顾。由于每每一个app的发展会不断的迭代延续下去,修修改改是很正常的事情,那么在写代码的时候尽量的多预留接口和开放的代码,方便之后扩展。须要熟练掌握经常使用框架MVP,而MVC和MVVM(谷歌的)通常用的少不推荐,项目中灵活封装MVP三层结构代码。若是是独立开发,那么你从项目初期就要肯定项目应该如何去组织架构,怎么分层,须要用到哪些技术?哪些开源库我能够本身去实现的?哪些须要修改源码以便项目使用的?若是是接手老项目,首先也要熟悉业务逻辑,而后就是修改让代码更严谨,逻辑更清楚,层次更分明,扩展性更好。
4.上面也讲过多多学习,学习开源库的源码,学习framework层的源码,学习jvm。熟悉底层和源码是作架构必备的技能之一,你掌握以后能够有更多的解决途径。
复制代码

(2)管理层面来说,若是你有兴趣当了小组长,管理开发组里面的人,那么你就必定要多看一些管理的书籍,专业的理论是必备的,如何合理的安排任务,确保任务按时完成,如何提升团队开发效率,如何带领团队技术提高,如何给团队带来更多好处(好比项目奖金等),如何承担该承担的责任,维护团队的利益,如何稳定开发组员的情绪,如何应对突发状况,如何应对上下级之间的关系等。这些方面都是须要是了解和熟悉的,当你真正的作过管理以后,你才会发现这里面的门路实际上是很复杂的。

九、鱼逐水草而居,鸟择良木而栖

必定要跟着比你厉害的人学习,无论来自哪里,你身边若是都是优秀的人,那么你也差不到哪里去。有句古话说得好:“鱼逐水草而居,鸟择良木而栖”若是你想去大厂挑战自我,必定要不断的去和大厂的人多沟通,哪怕是实习生。多向他们学习如何开发的,团队管理是怎么作的,他们须要用的什么技术等。

多出去走动,多参加一些论坛和技术活动,多认识牛人,多喝同行交流,开拓视野。当你的圈子愈来愈大的时候,你会发现内推其实也是很容易的。若是有常常写博客,写开源项目或者开公众号的朋友,那就更好了,能够向他们取经学习一下。这些东西既能够锻炼你的文笔,同时也是你我的实力的一个展示的平台,还能够收到一些打赏,其实也是不错的选择,当你真正参与一些有意义有价值的开源项目的时候,其实这个含金量比你写代码相对来讲是更高的,因此好好把握,前提是你有足够多的积累和技术输出,你开源的东西可以带来真正实用型的帮助。


【最后】技术不是惟一赚钱的工具。开发是吃的青春饭,当你年纪大一点,基本都会转管理路线了,或者有的本身创业了。你除了技术以外,还能够关注一下管理,万一哪天你进了大厂,恰好缺个组长,你不就有机会能够去试试吗?

另外面试是多方面因素决定的,好比你的技术、言辞、表情、衣着、以及给人的感受如何等这么多因素都有可能影响结果。既然决定要去面试,那就要作好充分的准备,该记住的技术点必定要掌握好,天然发挥就好,大厂也没有那么可怕,相信本身,你能够拿到大厂offer的。


本次征文活动的连接 juejin.im/post/5b923a…

相关文章
相关标签/搜索