在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学、多实践不吃亏。本文来是从 java web轻量级开发面试教程从摘录的。
1 哪些知识点可以延后了解
在Java Core方面,下表中的知识点你可以不学习或者到用的时候再学习。
知识点 |
学习的时机 |
界面开发方面的知识,比如Swing等 |
Java主要用在Web方面,很少有项目会用到这些UI部分的知识点。大家可以等实际用到时再学习 |
Socket编程方面 |
可以先了解概念,等有项目需求时再学习 |
Applet方面 |
很少用,等有项目需求时再学习 |
虚拟机方面 |
虚拟机很重要,因为能对性能调优产生立竿见影的效果。不过这得靠技术积累,所以建议有至少2年相关工作经验后再学习,刚开始时,可以先了解概念和相关的基本内存管理知识点 |
在Web方面,建议大家先了解一整套框架,别过早地钻入某个方面的知识点,比如大家可以先通过Spring MVC+Hibernate(甚至是JSP+Servlet+JavaBean)搭建一个包括基本的前端页面+MVC 架构+后台代码+数据的Web小项目(比如学生管理系统),先了解基于Web框架开发的一整套知识体系,随后再不断深入了解各Web组件的API等细节。
一般来说,在开始阶段,下表所示的Web知识点可以延后学习。
知识点 |
学习的时机 |
JSP内嵌对象 |
可以先大致了解概念和基本的用法,没必要刚开始就深入了解具体内嵌对象的API |
Java Scrip、CSS、DIV等前端知识 |
如果不是走前端路线,在刚开始接触Web开发时,这些前端技术可以不必过多关注 |
2 大学阶段的实习经验能帮到你
一般公司在筛选候选人的简历时,一个非常重要的考查要点是相关经验的工作年限。说一个典型案例,某公司要招高级程序员,需要有3年左右经验,三个候选人都是毕业1年半的程序员,但其中一位在大三开始有1年实习经验,结果就他获得了技术面试的资格。
这种工作经验外加实习经验凑满年限要求的案例不在少数,对于刚毕业的多数大学生来说,一般商业项目经验的工作年限都比较少,这个时候,是否有实习经验直接决定了是否能有面试机会甚至关系到是否能找到合适的工作。
目前大多数的软件公司在筛选简历时,对于工作年限小于1年或者没经验的简历,如果没有其他额外的加分项(比如海归或拿过编程大奖或英语非常好),一般会直接过滤,更何况候选人的学校还不是985或211学校。
毕竟,一个好学校的招牌确实能证明毕业生的平均能力很强,但这种证明力未必要比直接的工作经验来得更有效。
我们见过一些本科毕业生的简历,他们天真地把毕业设计项目(诸如图书馆管理系统或者学籍管理系统等)和一些实训项目(培训学校的教学项目)写到简历中。要知道商业项目(需要靠这个挣钱)和学习项目是两回事,侧重点也不同,所以公司只看重商业项目,一些学习项目的作用充其量只能证明你在这方面有过了解。
所以给大家的建议是,在不影响学习和毕业的前提下,尽早到一些公司去实习,哪怕钱很少加班多也要去。一方面可以通过实战提升自己的专业能力,另一方面,能给自己提升用钱买不到的商业项目工作年限。
3 刚开始的1到3年,找个专注的方向
这里的专注有两个含义:
第一,得专注地从事软件相关的行业。我们见过不少简历,工作经验确实有3年(甚至更多),但是在简历中堂而皇之地写明,有1年多是从事非软件行业的,比如做硬件、做维护,甚至做和计算机专业无关的销售等,而编程相关的经验相对来说很少,那么这些简历中的相关工作年限只能扣除非编程经验的年限。
第二,需要在工作的前3年内,给自己制定一个大发展方向,是数据库管理和优化方向,或前端,或后端,或测试,或大数据等,换工作也以这个方向为前提。
比如某公司要找个做Java后端工作年限5年的人,但某份简历中,虽然也有5年经验,但前2年是偏重前端,第三年做测试,后2年才是Java,那么相关后端经验也只能按2年算。
这里想请大家注意的是,你可以多充实自己,多学习各方向的知识点,但一定要在一个方面(比如最近比较流行的是大数据)钻进去,让你在这方面拥有较多的项目实践经验。否则,假设你工作年限也达到资深的标准了(3年以上),但你在换工作的时候,会发现虽然你能去参加很多类型的面试,但每个方面你都没法证明自己是资深者(面试官自有一套甄别资深者的方式,而且有些问题一定是得做了很多项目才能回答出来,所以千万别有任何蒙混过关的想法)。
4 常学习、多实践的人工资涨得快
虽然在前文里给大家列了些别人的经验,但对于任何程序员来说,弯路一定会走,本书的宗旨是让大家少走点弯路。
怎么才能少走弯路(或者说早些从弯路上回头)?答案只有学习和实践。
比如某好学者一个月额外学习时间是40小时(平均每工作日学习1小时,每周末学习5小时,一个月算4周),目前一般的学习效率是70%左右,毕竟你不能保证你看的知识点一定有用,而且也不能保证你一定能准确地理解学到的知识点,那么算下来一个月的有效学习时间只有28小时,这和在线游戏里的练级时间一样,时间越长,你的等级也就越高,工资也就越高。
给大家讲些真金白银的例子,按2017年的行情,工作经验满3年的平均工资在12000元左右,上不封顶,看能力,我们见过较高的有15000元左右。问下来这批人大概每周的学习时间在30小时(也不算多)。我们也了解过不少工资在平均线(12000元)以下的原因,虽然和公司种类(比如外企创业公司或者互联网公司)行业(比如证券金融)等其他因素有关,但学习时间少也是相对重要的因素,毕竟如果你能力强,找到一个工资高的工作的机会就大。