首先我用我的切身体会给大家予以足够的信心:我最近呆的都是一些不小的公司,虽然在招聘时有上述的门槛,但事实上,在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方面自学的途径和时间点。
表 第1个月的学习进度
学习时间 | 要学的技术 | 应该达到的水准 |
第1周 | 搭建Java环境,熟悉基本语法 | 安装好JDK,Eclipse或MyEclipse开发环境。能运行出第一个Java程序。最好还能熟悉int之类的基本数据类型和一些加减乘除等基本运算。了解Math等常用的类,了解if分支语句,了解while,for等循环语句,能用开发出诸如计算闰年或累加和之类的小程序。 |
第2周 | 基本的面向对象语法 | 了解封装继承多态等的语法,知道面向对象的基本概念,但此时不必深入。这部分内容对应本书第2章。 |
第3周 | Java集合部分的内容 | 知道List,Set和Map等对象的用法,知道泛型的用法,而且知道诸如hashCode等的常用知识带你。这部分内容对应本书第3章。 |
第4周 | 异常处理流程和基本的IO处理流程 | 知道try…catch…finally的工作流程,知道基本的IO读写操作。会结合异常处理流程开发一些读写文件读写内存等的程序。这部分内容对应本书第4章。 |
在第2个月里,大家可以在掌握上述知识的基础上深入了解Java Core的高级知识点,并可以进入Java Web初级阶段的学习,这个时间段的学习进度如下表所示。
表 第2个月的学习进度
学习时间 | 要学的技术 | 应该达到的水准 |
第5周 | 搭建数据库环境,熟悉JDBC编程 | 安装好MySQL等数据库环境,会通过JDBC编写诸如读写数据库的操作,而且能掌握批处理和预处理等操作。最好能会和事务相关的操作。这部分内容对应本书第5章。 |
第6,7周 | 多线程编程 | 能用多线程协作完成一件事情,掌握至少一种控制多线程并发的技巧(比如Lock),最好能掌握线程池。这部分内容对应本书第7章。 |
第8周 | 基本的Web技术 | 能开发并运行基于Jsp+Servlet+JavaBean+DB架构的简单项目,并了解其中的一些重要技术。 |
在第3个月里,大家可以深入了解Java Web里比较资深的框架技术,比如Spring MVC和ORM等,这个阶段的学习计划如下表1.4所示。
表 第3个月的学习进度
学习时间 | 要学的技术 | 应该达到的水准 |
第9周 | Spring的诸如IOC和AOP等基本概念 | 能运行通IOC和AOP部分的代码,并能结合代码知道诸如AutoWire等的重要知识点。 |
第10周 | Spring MVC框架及其基本流程 | 能通过一个简单的Spring MVC程序了解它的组成结构,并了解其中各部分的开发要点 |
第11周 | ORM技术 | 了解Hibernate或ibatis的基本开发模式,知道如何通过ORM和数据库交互。 |
第12周 | Spring MVC+ORM框架 | 能运行通一个简单的Spring MVC+ORM框架的案例,并大致了解这种框架里各部分的开发要点。 |
本人一直在上海上一个为期3个月的政府补贴的Java培训班(具体名字就不说了,有打广告嫌疑),就按上述时间点要求学生(不少还是零基础的),经实践下来,不少同学上完后至少能出去面试初级程序员了。
换句话说,只要你肯了,大概也就3个月的时间(基础稍微差的同学最多5个月,如果上心点的,估计也就2个月),即能达到初级开发的水平。
我之前听过一种说法,说Java培训学校量产初级开发,根据我所见所闻,不无道理,而且量产对象,学历甚至可以是高中,读过计算机大专的,也寥寥无几。相比之下,学校一般的同学基础要好得多,更应该有能力和信心快速提升自己。
4 看下程序员的基本功,其实自己也能在工作后弥补
这个大家可能有个认识误区,好学校高学历的毕生生在工作后有优势,并不是他们多学了几门课多会了几个知识点,而是在这些学校里,项目实践的机会比较多,实习机会也好找。换句话说,基本功比较强。
什么叫基本功(俗称内功)?分两块,第一是知识类的。 大学里学的课不少,但实际对5年内程序员工作有帮助的,可能也就以下的内容。
1 数据结构知识,而且仅限于数组,链表,堆栈,队列,Hash表和树等知识,图的知识不怎么用得到。
2 算法,用得最多的也就是排序,遍历(树链表等)。
3 编译原理中的状态机思想。
4 网络通讯里的网络协议知识点和通讯包的发送流程。
5 操作系统里的一些知识点和算法。
6 Java等编程语言,学校里一般会更多地偏重知识点,而实际公司里,要求更多的是动手开发能力。
大家可以看下,这些其实不怎么难学,这也是为什么非软件专业的同学能转行,以及培训学校能量产程序员的原因。至于说,基础理论知识阻碍了程序员升级,比如某程序员由于不熟悉Hash表数据结构从而导致缺乏优化能力,这不是程序员没经过大学里基础课的培训,而是在工作后,没有主动弥补这方面的知识点。
基本功另外一类是关于技能的,分为如下几个层次。
1 调试代码的能力,比如边上没有人,你能自己通过debug把代码调通。
2 能山寨别人代码的能力,比如你要实现一个JDBC连数据库的功能,自己不熟悉JDBC的操作,但你可以从网上找段相似的然后改改实现。
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-vwcCVD6o-1714225498499)]
[外链图片转存中…(img-OGo31RS2-1714225498499)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!