速来围观!非科班Android程序员,是怎么3年成为大厂P7?

一、前言

我自己第一份工作并没有在大公司,是第四份工作才真正接触万人规模以上的公司。对我来说,这份工作经历弥足珍贵,真正输入了不少组织运作、团队管理的经验(哪怕学得还远远不够)。也在思考,第一份工作没有去大厂,是否是不够好的选择。

最近跟朋友闲聊中,又想到这个话题,他们是这样说:

1

毕业拿到百度的SP Offer但放弃,这个决定在若干年后看来是对的,虽然百度曾经有PM的黄埔军校之称,但是14年那会儿的百度已经不太利于年轻人成长。

随后应届身份社招进入当时如日中天的e代驾,这个决定在现在看来,好坏参半。好的是当时的e代驾确实快速发展,有很多项目可以练手,俗称试错吧。坏的是,公司的阶段还是创业阶段,疲于项目,轻于总结,导致近1年的时间没有沉淀出属于自己的工作方法。没有正确的方法论指导工作,试10次能错9次。

后迅速止损,选了一个自己感兴趣的方向,进入阿里,现在再看这个选择无比正确(虽然因为时间差的原因,日后购置房产多花了200w)。首先阿里提供了一个相对公平的竞争环境、其次在行业内也是top2的业务足够去试手、更重要的是当时的bu非常注重解题方法论的培养及应用,在集团内晋升属于必备硬条件、再加上厂子大了身边的高手也多可以倒逼着你快速成长,避免浑浑噩噩度日。

2

虽然百度今天没落了,但是在那三年多时间里,建立起来的对工程师技术驱动的信仰、理性的工作方法论以及大牛榜样的力量,10年后的今天依然是自己的底色。

3

好,整体技术扎实,工程师普遍的基本能力强,从初级开始就要求有全局的设计思维。当年的百度还是纯粹的工程师文化,40%时间可以用在技术拓展和创新研究上,不光疲于完成项目。后期直接参与了一些重大的管理变革和收购项目,是蛮难得的经验。其实还有很多,都是中小公司和后来的互联网公司无法获得的经验,受益良多。

我不知道你们是怎么敢有这种想法的,自己能不能进大厂没有点13数的哦?

我曾经就没有机会选择过…

先介绍一下我自己

我不是什么一流大学的一流专业毕业,我大学专业是土木工程,建房子的那种,大三决定转行,开始学习编程,学的是Android,算是在程序员的道路上一条道走到黑了。

工作这几年来也算是有点心得,分享下,希望对大家有用。

二、科班和非科班

百度百科对于「计算机相关专业」的定义是:包括计算机、电子、通信、信息、数字、自动化、生物医学工程相关的学科。

据统计,计算机相关专业的程序员,即「科班程序员」,占程序员总比例81%,而非计算机相关专业的程序员,即「非科班程序员」,仅占总比例的19%。

结合自己的亲身体验,侧面证实了这一比例的合理性。

我们公司的程序员差不多也是这样的分布。虽然网上有很多非计算机相关专业的程序员自学成为大牛的传说,但是相比计算机相关专业的程序员,这样的概率远远偏低。毕竟四年的计算机专业学习,决定了一个程序员的起点甚至最终能够达到的高度。

虽然越来越多的企业在程序员招聘时不再将「计算机相关专业」作为门槛,但是在实际招聘中却无一例外地更青睐科班人才。

除非你有大厂背景,有很强大的项目经验,否则你很难说服面试官你没有四年的专业学习,照样比那些科班毕业生更强。

作为公司技术招聘面试官的老章说,相对于社招的综合考量,很多企业的校招更倾向简单粗暴。

非计算机相关的程序员在社招时还有工作经历来证明自己,但是对于应届毕业生,企业更愿意在计算机相关院系中挑选种子选手。

随着互联网的高速发展,转行学编程并不是个例,而是一种趋势。

对于程序员的「专业出身」,网上一直存在两种论调。

  • 一种认为是否为计算机相关专业对于程序员的影响不大,毕竟编码是一个实践性很强的工作,用的技术与语言需要在实际工作中不断积累,学校里学的都是偏理论性的知识,对于实际工作意义不大。

  • 另一种认为科班程序员和非科班程序员即使看似code水平差不多,在初级阶段也看不出太大差距。但是一旦进阶到中高级,差距就日渐显现。非科班的程序员缺乏底层知识和原理,根基不稳导致他们很难到达程序员行业的金字塔尖。

老章也表达的了同样的观点。他列举了工作中的一些细节来说明科班与非科班程序员的差别。比如对于一些技术常用语的掌握,非科班的程序员很容易按字面翻译而闹笑话。比如将portable理解成便携的,PDF误读为便携式文档格式,将class library直译为班级图书馆。

除此之外,很多非科班的程序员经常把C/C++写成C\C++。「这些看似都是一些小细节,但是却恰恰反映出一个程序员的专业素养。很多自学与转行的程序员最大的问题就是急功近利,只注重死记硬背,面试都能够应付,但是在实际工作中却很难独挡一面。

不过,并不是科班程序员一定比非科班的程序员吃香。如果大学四年全程都在混,即使从计算机相关专业毕业也无济于事。但是相比那些扎实学了四年专业基础的科班程序员,非科班的程序员想要追赶上他们,必须要付出双倍的努力。这才是大部分非科班程序员所缺乏的。

三、人人皆可程序员?

有人曾预言未来编程将和英语一样,成为大众普及的技能,人人皆可做程序员。

我认为这种观点混淆了「职业」与「业余」的区别。「编程作为兴趣可以广泛,但是作为职业一定要经过系统持久的学习和训练。这也是初级和中高级程序员的差别。

**那么如何在IT界站稳脚跟呢?**以下几点建议可供参考:

1.闭门造车要不得

编程时的闭门造车会带来几方面问题:

**1)没有人给你答疑。**编程时你会面临许多疑问,但却无法找到人给你答疑解惑。解决这类问题的过程通常需要求助于高级程序员,或是将自己的代码与别人的去对比。

**2)软件评审。**大型软件公司都会设置软件评审环节,即让同事之间互相评审对方的代码。无论是国外还是国内,数据显示,代码评审能多发现60%的错误和漏洞。即使你自己干,也需要找人去评阅自己的代码。

3)与他人一同工作有助于拓展人脉,在职业生涯初期尤其如此。

2.多练习,多做项目

对新人来说,多参与项目能帮助积累更多经验,有利于未来的职业发展。

而如果想要单干,那么所做的项目将成为简历上的主要经历,是对能力的证明。

个人从事项目最好的选择是开发移动应用。相对于大型软件项目,例如系统软件或企业级应用,移动应用的开发相对简单,很容易出成果,而也会有许多用户提供反馈,相当于免费帮你做测试。

3.职业发展的选择

非科班出身程序员在找工作时可能会受到局限,因为大公司的招聘中学历是个门槛。

许多知名科技公司用大学学历作为条件去过滤求职者。

例如,谷歌在招聘初级工程师时就是这样。相对来说,一些创业公司更看重个人能力,而非学历。

对于需要什么样的程序员,什么样的程序员是够格的,它们有自己的标准。

那么,非科班出身,如何成为程序员?

  • 兴趣是关键,编程要趁早

有兴趣和没兴趣学习一门平时接触不多的东西来说,两者的差距将会很大。如果你是带着兴趣去学一功夫,那么你将能在很短的时间就学会,而如果你并不喜欢这门功夫而一心想要去学的话,可能你需要花费比常人更多是时间和精力。

所以,兴趣是最好的老师,有了兴趣再去学习编程,往往会事半功倍。

同时,一般来说程序员的巅峰会在30-35岁左右出现,所以转型要尽量趁早,转型越晚代价越大。

30岁以上还想再转行学编程的要深思熟虑,不然容易错过巅峰期。

虽然编程要趁早,但是世事无绝对,也有不乏4、50岁才开始学习编程的人后期还会有很大的成就的。

  • 孤独是常态,信念要坚持

编程不像是平面设计,你稍微用心学个1个来月,做出来的东西对于外行人来说,就很厉害了。

而做开发,你可能学半年,做出来的东西,自己觉得很厉害了,对于普通用户来说,就觉得这东西简简直辣眼睛。

在跨界进入这个行业之前,我们都是以普通用户的角度来看待这个问题,我们在渴望自己做出一个怎样的东西时候,都低估了它背后的技术难度。

所以自己一定要确定这股热情燃烧地足够强烈,因为如果抗压能力不强,你学了一段时间,发现难度远比预期的难,周期远比预期的长,效果远比预期的差,你就该怀疑人生了

我是谁?我在哪?我在干什么?

  • 一开始就学习像程序员一样去思考和工作

模块化思维

首先是模块化的思维。非科班出身面对的可能是一行行代码以及一个一个的单词,不管是写代码还是看代码效率都十分低,但是高效的程序员却有条不紊地能够把代码流畅地轻松写出来,这其实是训练之后对代码进行模块化的效果。

在程序员看来,他们所注意到的其实不是一个一个的变量,函数,他们看到的是一个一个的模块,经过长期的训练,科班出身的程序员已经不用去思考列表是什么,如何在一个循环中统计满足条件的变量数量,这些都已经算是作为默认的模块了。

所以一开始非科班出身的学习者,一定不要贪快跳过基础知识的整合,一定要把基础知识和背景知识都掌握透了,变成自身头脑当中的模块,才能够快速调用和实现代码。

提高代码的实现效率

其次就是提高自己的写代码的速度。如果你问程序员最鲜明的特征是什么?

我会说噼里啪啦快速敲代码的本领。

程序员有一样很重要的能力就是把思考的结果快速用代码实现出来的能力,所以当然敲代码的速度和熟练程度很关键。

而且当你把敲键盘的速度练到家之后,你会发现自己的学习速度越来越快,而且越来越轻松,你会情不自禁的收获到巨大的成就感,以及热爱编程的感受。

再者就是熟悉各种工具和开发环境

在开始学习之前,你可以以列清单的方式来列出要完成的每个子项目

然后将其分解到每个可执行的行动,完成一项勾选掉一项,这样就可以避免掉一直看不到进步的焦虑当中,

利用清单进行 GTD 的管理可以明确自己的目标,也有助于切实落实自己的行动,积攒信心。

总之,不要把编程变成一个苦逼的过程,任何你觉得是苦差事都没法坚持到最后。

结语

现在为工作流的泪,都是当初选专业脑子进的水。

这句话成为很多职场人表达选错专业误终生的调侃

也就有了网上劝人学医,天打雷劈;劝人学法,千刀万剐;上辈子杀猪,这辈子教书的段子。

但是历数每个专业,似乎都难逃吐槽之音,就连热门的计算机专业,不也被打上了秃顶码农等标签吗?

从长期职业生涯来看,专业是否对口只决定了工作前两年是否得心应手,之后的发展完全取决于个人的持续学习与努力。

很多非科班程序员在工作中落后于科班程序员,纵然有专业不对口的原因,但是更多的是由于个人后期学习不够扎实,缺乏持之以恒的韧劲

如果你已经落后,唯一的选择就是在别人走的时候选择跑。

这是一位23岁转行的非科班程序员说过的话。

他用了不到3年的时间成了大厂P7,成了别人口中的传奇

当然,我不会告诉你们这位别人口中的传奇正在电脑前码下这篇让你醍醐灌顶的文章。

与其中途追赶,不如在起跑前就做好准备。毕竟大学生活,如果不谈恋爱不打游戏,无聊得该只剩下学习了。

假如我年少有为不自卑,妹妹肯定一大堆(坏笑)。

一朝成为Android程序员,就注定终身学习。

如果想要成为一个优秀的Android工程师,就要做好随时学习的准备,并持之以恒,这样才能跟上互联网日新月异的发展节奏。

在这里我也分享一份大佬们收录整理的Android学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

如果你有需要的话,可以私信我【资料】领取,欢迎大家来白嫖~

你是什么专业的程序员?不妨留言,写下你的「专业」与「职业」体会。



猜你喜欢

转载自blog.csdn.net/ajsliu1233/article/details/107270247