非好学校科班出身的程序员,该如何快速提升自己?

0

目前一般的大点的公司,往往会在招聘时(尤其在招聘3年以下工作经验的程序员时)会设置学校的门槛,比如需要211或985相关专业毕业。这里我无意贬低不在这个范围的程序员,相反在本文里还将根据我所见和我所闻,为这些同学给出发展的建议。

首先我用一些实际的案例给大家予以足够的信心:虽然在招聘时有上述的门槛,但事实上,在3年左右的正式员工里,大约30%是一般学校,或非科班出身,在外派的员工里,这个比例会高到70%左右,而且,每个组平均每年有3个左右转正的名额。所以,出身一般的程序员,只要有足够的勤奋度,而且方法得当,绝非就一定低人一等。

恕我直言,在学校和学历方面稍微欠缺的同学里,我有见过能力很强的,但平均综合能力确实不如好学校。(这里如果我说高于好学校,说出来也没人信)。 不过对于勤奋的同学来说,并非是能力不行,而是努力的方法和方向不对。对于这批敬业勤奋的同学,我非常敬佩,所以在这篇文章里,我将专门分享些相关的提升技巧。

1 战术上要重视,分析为什么大公司要设置学历和学校的门槛

平心而论,为什么有这样的设置呢?

第一,能进好学校的同学在之前的学习过程中已经证实了自己“综合能力强“这个特质,

第二,好学校毕业的同学,一般基础能力比较扎实,比如数据结构算法操作系统编译原理等,不仅理论经验,不少还有实训经验。

在前进的过程中,我们必须认清自己,所谓知己知彼百战不殆,但认识自己绝非是让我们妄自菲薄,而是明白自己的短板,归纳一下,在招聘时,一般会对这批程序员重点考核如下的要点(这其实就是目前普遍存在的短板):

1 是否有实际的商业项目经验?

2 基本功是否能达标?比如是否熟悉链表Hash表的基本数据结构,是否熟悉排序等基本的算法。

3 学习能力,团队协作能力以及责任心等是否达标?

其实归根到底就一点:如果程序员在大学毕业前,有过实际的项目经验,比如做过兼职,或在学校里帮老师干过商业项目经验,这能一定程度上弥补学历学校和专业方面的劣势,而且,如果做项目的时间足够长(一般1年左右),而且项目里用到的技术和公司职位需求比较匹配,而且候选人动手能力强,一些规模不大的公司甚至会忽视学校等方面的因素。

2 如何通过第一份工作,让自己有个不差的起点

程序员在踏上社会后前两年的发展,会比较重要。这里给出的建议是,如果你感觉学校和学历会成为障碍,可以找个规模一般但干的活和你的职业发展相关的工作,如果万不得已,不得不干销售等之类的工作,但一定得让自己干点和编程相关的事情。

下面给出些我见到过的案例。

案例1:小A本科毕业后,学校一般,能力属于中下。不过他找了个外派公司,外派进了一个规模比较大的公司,在其中发展了2年,用项目经验冲淡了学校的因素,后来就跳槽进了一个大公司,从初级开发做起,平时也经常学些知识,目前在升级到高级开发的路上顺风顺水。

案例2:小B学校一般,也大专学历,但在大三期间已经在软件公司实习,积累了一些基本的开发能力,毕业后就凭此顺利进入到一个中型公司做开发,至少能在社会上站稳脚跟。

案例3:小C大专学习,专业是理科,但和软件关系不大,后来参加一个软件培训,积累了些技能,目前至少也能在公司里做软件开发的活。

在这个案例中,我绝非说一定得通过培训学校,其实在培训机构是用钱买时间买学习方法买项目经验,如果你自己毅力足够,靠自己看视频运行项目,也能达到类似的效果。

案例4:我在面试时就看到不少简历,候选人学校学历都一般,3年后,绝对有能力挑战大公司的职位,而且公司更看重这些同学靠前3年工作积累的项目和技能经验。

总结一下,如果学校学历都一般,那么该采取哪些措施呢?

1 最好在毕业前,进入软件公司实习。这可以靠学校推荐,更得自己去找。学校里的一些老师,会和外面公司合作,大家就可以找这些老师干活。或者就到处投简历,工资看着要,以积累项目经验为主。

2 平时可以适当放松娱乐,但就更得自己了解项目经验。比如,通过视频等方式,自己搭建一个框架,或者用python搭建一个数据分析平台,这种案例多多益善。

3 准备简历时,一定得增加商业项目的经验,同时靠刷面试题积累面试经验。

这里也给大家举例,上海软件公司数量多不胜数,往往一个楼里就有5,6家,而且,小型或中型的公司,出于节省成本的考虑,往往只会看项目技能和基本功,不怎么看学校和学历。其实每个城市都一样,所以要找工作,或者是不差的工作,绝对没问题。

3 只要勤奋了,任何时间点都不算晚:论时间的安排

在龟兔赛跑里,最让人痛心的不是兔子在中途睡觉,而是乌龟自暴自弃。天道酬勤,但如果自己都失去信心或贪图玩乐,那真就没人能帮你了。

在上文里提到,在学校里,就该去积累项目经验,或自己通过运行代码熟悉框架技能。不过如果已经不慎错过学校里的时间,但现在想迎头赶上,只要努力了,什么时候都不晚。

这里给出些关于Java方面自学的途径和时间点。

第一个月的学习进度

在第2个月里,大家可以在掌握上述知识的基础上深入了解Java Core的高级知识点,并可以进入Java Web初级阶段的学习,这个时间段的学习进度如下表所示。

第二个月的学习进度

在第3个月里,大家可以深入了解Java Web里比较资深的框架技术,比如Spring MVC和ORM等,这个阶段的学习计划如下表1.4所示。

第二个月的学习进度

换句话说,只要你肯了,大概也就3个月的时间(基础稍微差的同学最多5个月,如果上心点的,估计也就2个月),即能达到初级开发的水平。

我之前听过一种说法,说培训机构量产初级开发,根据我所见所闻,不无道理,而且量产对象,学历甚至可以是高中,读过计算机大专的,也寥寥无几。相比之下,学校一般的同学基础要好得多,更应该有能力和信心快速提升自己。

3 总结

总结下,如果要迎头赶上,第一得靠信心,不妄自菲薄,第二得靠勤奋,笨鸟先飞,第三得靠方法,所谓事半功倍。

最后,如果你跟我一样都喜欢java,想成为一名优秀的程序员,也在学习java的道路上奔跑,欢迎你加入java学习群:72030155 群内每天都会分享java最新业内资料,分享java免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

你可能感兴趣的:(非好学校科班出身的程序员,该如何快速提升自己?)