无论是大一大二的实习过程,还是大三大四的找工作历程,大厂OR小厂都是童鞋们要面临的选择。
可以说现在找份养家糊口的工作很简单,但是想要找份体面的很难。而大多数的人都想去大厂上班,当初不经世事的少年还不懂为何,现在知道了还不晚!
话糙理不糙,很多小公司,扁平化管理,流程也不像大公司那么复杂,短期看起来是很轻巧,能者多劳能学习的也很多。
但相比起大厂而且还是缺乏流程和规范,也欠缺系统的工作方法,可能导致未来难以扛起单独负责项目的重任。
而大厂则意味着,更系统、更专业、更完善的培训晋升体系,专注的是长线的发展培育,在细分领域塑造出顶尖的精英,对于个人的职业规划也是理想选择。
换个思路,大厂到底意味着什么?
最直观的来讲就是白花花的银子,年关已至,又到了“有钱没钱回家过年的时候”。而进了大厂,让你保准有钱过年,看看这些大厂的年终奖,才会明白为什么那么多精英为了大厂挤破头了。
这些才是年终奖界的清流,比起那些花200万办年会,不发年终奖的“妖艳贱货”,货真价实的RMB才是最拉拢员工黏性的。
那么既然大厂这么好,跃跃欲试的“准程序员”们要问了:大厂到底需要什么样的前端?
大厂究竟要什么样的人呢?
要进BAT等一线大厂前端开发岗位,万变不离其宗的关键点还是:
A、硬实力:技术能力
B、软实力:视野、逻辑、表达。
首先大公司和小公司最大的区别就是体量,因为体量巨大,一切工作都有一套标准的模式和流程,所以:
不同于小公司的工作模式,大公司从入职,到培训,再到项目的管理流程,以及日常团队运作等等都有其独有的流程化模式。大公司在每一个环节都会考虑可控因素,比如控制风险,提高运作效率。所以一个个流程应运而生,这对于企业管理真的很有帮助。
在个人工作中,你有没有一套自己做事的方法论?能否做出果断地选择:什么事情值得做,什么事情马上做?制定科学的步骤,合理安排精力和时间,建议先从每天的工作总结开始。
回顾一天工作成果,思考决策过程分析,未来的计划安排,都列出来,时间长了不但能提高效率还能提升质量。
很多程序员做技术没问题,但一到需要沟通的环节就犯愁,且不说每年的汇报涉及到晋升奖励,就是平常和产品经理的沟通都关乎于“生命安全”。
这时,就可以先从平时多做分享做起,给自己录制视频给自己讲,然后团队内部分享、逐渐团队外部分享。养成这种无论是个人工作还是团队合作,甚至未来部门协调都必须的习惯。
这种流程化规范划的管理,对个人视野乃至以后自己组建团队,都提供了一份很有价值的参考。而其中培养的逻辑感对日后的编程思维是至关重要的。
写代码需要逻辑思维,解决复杂问题更需要理解分析,而写代码只是结局问题比较靠后的步骤。所以不要着急写代码。先试着理解问题本身,而不是下意识地想把问题套进已知的,熟悉或不熟悉的工具,那样是本末倒置的。
比如遇到一个不那么简单的问题,不急着找模型,也不急着编程,想一想一个问题情景有几种状态,不同情景的问题有几种状态,把具体的例子列出来,你大概会有一个概念,对程序的本质和目的有了雏形。
这个时候还没有得到适合编程的抽象,但你已经积累了对输入和输出的认识,接下来可以写一点简单代码或者伪代码,把各种case的逻辑都单独实现一遍,把各种状态之间的转换的条件和过程勾勒出来。
从这里观察他们在数据和流程上有没有共性,有没有可以优化的余地,这样你就慢慢地找到你要的抽象,然后看看你熟悉的工具(比如编程语言)提供了什么样的数据结构和编程范式最适合去实现这样的抽象。
把问题具体化,寻找具体的输入和输出,具体的状态变化。具体化了的问题更容易分解,分解以后的问题更容易分析;先分析再归纳比不分析直接归纳更有操作性,“逻辑思维”在各处都能派上用场。
所以应在就职前对于这种模式有心理准备,在日常工作时时刻把模式、流程放在心中,作为一盏标杆。
无论是外企,比如ibm,accenture,hp,还是互联网巨头,比如bat等等,他们对于行业的敏感度极高,处于这样的环境,开阔自己的视野,以及提升自己思考的纬度都是至关重要的。
尤其外企,跟老外开会,邮件,电话方面的沟通是一方面,目光的狭隘、认知的不足,都会降低你的评分。所以英文好,视野宽,是一个必杀技。
英文是沟通的工具,这是在大公司最基本的要求,大公司难免会有英文邮件,电话会议,不要求你流利,也不要求你四六级,只要能说出自己的想法,看懂,即可。
大厂对具体主流技术栈要求趋严。比如《JavaScript高级程序设计》有没有吃透?原型,继承,闭包等等。
基础算法、设计模式等扎实不扎实?计算机网络原理、http协议掌握到什么程度?如何做性能优化,有没有一套完整解决思路?
常见一些框架除了会使用,有没有进一步思考?比如底层原理,适用场景、特性、优缺点等。通过技术博客、技术文章,多阅读大厂代码绝对是技术总结最好的一种手段。
大厂更看重技术广度,兼具跨终端和后端开发能力。简单的说,大公司需要能独挡一面的人。
能简单设计,能写静态页面,懂js,能完成业务逻辑,可以angular,同样vue,react也不差,深知node,express,koa,也懂java,Python。
前端懂点后端,后端懂点前端。不仅要对前端基础知识要熟练甚至是精通,关键是对数据结构、算法都要熟悉。
由于前端技术栈的不断更新,效率提高,同样的前端人数,能完成比以前更多的职责范围。
在不少企业,一个优秀的前端工程师就能搞定Web和移动端的开发,甚至负责一部分后端。还是那句话:在激烈竞争下,经受住考验的永远是那批更优秀的人。
虽然每年都在说裁员潮,但直到现今中高端技术人才的缺口依旧巨大,议价能力越来越强,以至于拉高了整个市场的平均薪资水平。
因此,基础薄弱的新人和没有及时构建竞争力的“老程序员”,都要注意积累扎实的基本功、技术广度与深度,以及职业素养,才能抓紧时间“游回岸上”。
至于深造之路,完全看自己努力程度。千万不要拿没时间当借口,方法总比问题多。编程给你带来的不仅是一个工作,一份薪水;还有看待事物的方式,思考问题的角度。这种训练会深入到生活中的每个细节。
客观的说,现今的互联网行业内并不平静。一边是互联网红利期过后,市场回归理性,裁员、找工作艰难的抱怨声四起。但一边却是前端技术也异常活跃,薪水和地位继续见长。
看似矛盾的两种情景并存,但还是那句老话:在激烈竞争下,经受住考验的永远是那批更优秀的人,更应不断提升个人能力和素质,站稳技术C位。
虽说条条大路通罗马,但不得不说BAT等一线大厂道路稍微宽阔一些,你和大厂还差在哪,自我审视一下,然后向着目标努力前行吧!