当今社会,互联网发展迅速,衍生出了很多普惠于民的互联网产品,因此也诞生了一大批“猿类生物”,并且每年也会有一大批萌新“猿人”进入社会,这些“猿类生物”也就是大家所谓的“程序猿”。程序员们是一个非常单纯可爱的群体,每一位萌新迈入社会之后,作为青铜选手都需要一路披荆斩棘才能进化为最强王者。但是对于即将进入职场的萌新来说,拿到职场的入场券则是晋级最强王者的第一步,今天串一串作为过来人,分享一些个人经验。
技术理论基础
作为程序员,基本的技术基础是必备技能,不管你是计算机专业科班出身,还是半路出家,刚进入职场时都是一张白纸,如果一开始不把基础夯实,将会极大的影响以后的进阶之路。但是在夯实基础的过程中,不要乱买书,也不要乱追新技术新名词,基础的东西是需要经过日积月累的,并且基础的内容可以牢固个人编程思想,所以理论基础很重要。
给大家分享一个案例。应届生小串去一家公司面试,在面试过程中,小串对面试官问的一些问题都回答的不是很好,最后,小串问面试官觉得自己是否符合用人要求,面试官却说挺好的。
小串很疑惑,明明自己问题回答的都不怎么好,为什么对面的大佬却说挺好的呢?在他入职一个月之后,和熟络的同事聊起这件事,没想到同事的一番话解决了他的困惑。原来在面试的时候,面试官让小串聊一聊对JVM了解,他回答说:JVM我不是很了解,还没有研究过,但是我觉得从Java语言的write once,run anywhere的特点来分析的话,它应该是起到了一个中间适配器的作用,如果让我设计的话,我会将JVM分为两层,上层对Application,底层对操作系统,通过不同版本的JVM来适应不同的操作系统,而不同的JVM中,对Application的这一层保持不变,仅仅变化对操作系统的那一层,以此来实现我们写的Java代码可以不用考虑运行在什么操作系统上,因为JVM底层已经帮我们做了适配,我们只需要关注应用层代码编写即可,大致图示应该是这样的:
原来小串大学里学过计算机组成原理和操作系统,然后用这两块的知识去推导出该结论,面试官听到他的这个回答后觉得他基础知识很扎实,所以让他通过了面试。
这个真实案例告诉我们基础知识的重要性。可能会有些同学会对基础有些疑惑:基础到底包括了哪些领域的基础?以Java工程师来说,主要包括:JDK基础、操作系统、数据结构、计算机组成原理、数据库原理、基本开发框架、编译原理、网络工程、专业英语等,扎扎实实走好第一步,基础打牢了,以后的路才会更好走。
编码工具使用
对于职场萌新来说,除了需要扎实的基础知识,还需要掌握日常工作中所需要使用到的工具,比如开发Java使用的IDEA、数据库操作使用的DataGrip、前端开发使用的WebStorm等等等等,熟练使用开发工具能极大的提升工作效率。
开发常用工具如下:
基本项目经验
大多数应届生都没有相应的项目经验,并且面试官更看重的是候选人的可塑性,如果求职者基础牢固、积极沟通,公司就会愿意花时间、花精力去培养。如果你在学校的时候跟着导师做过项目,有过少许的项目经验,那么在面试之前一定要做好项目总结,介绍项目主要包括项目背景、主要功能、项目中所使用的技术栈、在项目中负责的模块、解决的技术难点、项目所带来的成果等。
那么对于没有项目经验的同学,该怎么办呢?那就没办法了,把基础再夯实一点吧,毕竟在战场上,要有一技之能来补全短板。
基本产品感
产品感就是有产品的思维感觉,就像我们打篮球的时候说手感好是一个概念,那么对于萌新,面试官会从哪些方面考察候选人是否有产品感呢?
- 是否有基本的理解能力和功能需求分析能力
- 逻辑思维是否条理清晰,能否通过需求分析出核心需求
- 是否有基本的交互设计能力,对于萌新,能够在介绍项目的时候提到交互设计方面的内容,会是一个加分项喔。
说到这里,可能会有部分人感觉到很疑惑:作为开发,为什么要有产品感呢?
其实开发不仅仅是写代码,程序员写出的代码(尤其是前端程序员),程序员是天生的产品经理,因为程序员掌握数据结构和数据库原理,知道业务如何转换成最优的数据模型,且程序员也知道产品端和开发端的交互逻辑和步骤,并且程序员介入并主导产品设计是大势所趋,不懂技术的产品经理将会逐渐消失。
行业前瞻性
作为一名想要不断提升自我能力的程序员,需要具有独到的行业前瞻性,能够实时的掌握行业发展动态,尤其是热门编程语言排行榜,这里并不是说我们需要根据排行榜来改变自己的技术栈,而是要了解自己的技术栈在当前行业中的发展前景。但是为什么说具有行业前瞻性对于拿到入场券很重要呢?一个能够利用业余时间关注行业动态的猿人,在面试官眼中会是一个积极向上且有独立思考能力的人,当然在面试的时候,一定不要滔滔不绝的夸夸其谈,因为言多必失,对于新人来说,面试官更喜欢脑子灵活且能踏实干活和学习的人,甚至更有一些领导喜欢听话的新人。