毕业三年了我开始明白为什么说三年是一个坎

51次阅读

共计 4024 个字符,预计需要花费 11 分钟才能阅读完成。

话题开始之前,请先容我哀悼一分钟。

1,2,3……………..60,好了,一分钟过了,我又凑多了几个字。

毕业三年了


哈哈,开个玩笑。

之所以写这篇文章,也是最近才觉察到本人曾经毕业三年了,从 2017 年 6 月 30 号算起,整整三年多的时光。工夫人不知; 鬼不觉地飞逝,转眼之间,我也从一个青春少年转变成了一个老油条,额。。。说老油条如同早了点,那就叫中油条吧。

记得当初校招找到工作之后,我激情满满的对本人的将来做了具体的布局,像什么三年升高级,五年做架构师。现在看来,这所有也只不过是一个老成持重的小白的如醉如痴而已。当然,每个人都会有年老的时候,毕竟刚出校园嘛,对将来有空想是失常的,可空想过后究竟还是要面对现实,不得不承受本人就是一个菜鸟的设定,承受本人就是一个普通人的设定。

学历个别,能力个别,一个没有天才的农村小伙能跟他人竞争的最大劣势可能就只有奋斗了。毕竟,再差的菜鸟也有成为老鸟的一天,这三年的工夫里,我兴许没有做过什么特地有价值的事,最大的价值也惟一算得上价值的可能就是我这三年以来的从业教训了,三年的工夫说长不长,说短不短,但我能够山盟海誓的说,比起刚毕业的时候,我对本人所在岗位和行业的认知都回升了一个高度,也正是从业了三年的起因,让我开始明确为什么现在很多公司的社招岗位广泛要求要三年以上的工作教训。

为什么是三年


为什么是三年这个时间段呢?不是一两年或者是五年?

我集体认为,三年是一个小坎,对于工作流程的相熟度和岗位须要的协调能力都有肯定的积攒,简略来说,就是能够间接上手做事,不必花太多工夫去调教。

比起一两年的求职者,三年工作教训的人对工作的熟练度更甚,跟其余共事合作的能力也曾经具备,同时还能承当局部重要的职责,主导局部重要的工作,比方带新人做我的项目之类的,这样的一个门槛限度,能够过滤掉很多不适合的求职者,给企业招聘省下很多的人力。

比起五年左右的求职者,尽管能力和教训稍逊一筹,但贵在便宜啊,而且岗位的能力不是特地高的话三年的教训足够胜任了,所以,很多岗位的要求也就三年以上,最多也就 3 - 5 年,五年以上的绝对不是很多。

三年教训的程序员


后面说到,我是 2017 年 6 月底毕业的,但其实,过后 4 月份的时候我就开始工作了,我的第一份工作做的是 Java 开发,直到现在仍然是做 Java 方面的我的项目,这么算起来,我也有三年多的 Java 开发教训了,想起当初大学时候跟同学调侃,简历上写精通 Java 肯定有很多面试机会,同学戏谑地反驳我,呵,年老,没有三年以上的教训还敢说本人精通 Java。当初想想,即便过了三年我也不敢说本人精通 Java,这条路还长着呢,真的是太年老了。

当然,尽管没有做到精通,但我对这个职业也算有肯定的认知吧,从我集体的角度来看,一个合格的三年教训的程序员,他应该具备以下的几种特质:

1、扎实的根底。

根底的重要性显而易见,在我看来,根底方面是否扎实是掂量一个程序员是否合格的入门门槛,也是简直所有的互联网公司都会考量的重要常识体系。

什么是根底呢?就拿 Java 的常识体系来说,根底包含但不限于:

Java 根本语法,Java 汇合,多线程开发,JVM,数据库,计算机原理,计算机网络,根本的算法和数据结构,web 端相干技术,罕用框架的应用和原理等等。

千万不要感觉很多,也不要感觉根底不重要,有时候,你的基础知识不扎实,你写的代码可能会造出你本人都了解不了的 bug,比方上面这段代码,

public class ThreadSafety implements Runnable{  
 // 共享数据  
 public static int i = 0;  
​  
 public  void increase(){for (int j= 0;j<10; j++){i++;}  
 }  
 @Override  
 public void run() {increase();  
 }  
 public static void main(String\[\] args) throws Exception{ThreadSafety demo = new ThreadSafety();  
 Thread t1 = new Thread();  
 Thread t2 = new Thread();  
 t1.start();  
 t2.start();  
 t1.join();  
 t2.join();  
 System.out.println(i);  
 }  


咱们晓得运行后的后果必定不是 20,因为没有对共享变量做线程平安的操作,如果你的多线程根底不扎实的话,这样的代码你可能不经意间就写进去,最初程序跑的时候数据就不统一了。

当然,个别人不会这么蠢,即便是我刚学 Java 的时候都晓得这种代码有问题,但根底的确是很重要。

如果你是一个行将毕业的大学生,置信我,学好这些根底的常识将是你跟同龄人拉开差距的最大劣势,因为少数的大学生没有经验残缺的企业我的项目开发,在理论我的项目方面即便不是一张白纸,也不会有多丰盛的教训。这个时候,企业招聘考查的最好形式就是你们对基础知识方面的把握水平,扎实的根底将帮忙你在强烈的同龄竞争中怀才不遇。

2、良好的编码能力。

除了能失常实现性能外,还须要有优化代码的意识和习惯,最根本的习惯就是 正文要分明明了

一个我的项目往往须要多人的合作,你的代码并不只是给本人看的,很可能会通过很多人的接手,如果正文不分明的话,他人光看你的逻辑就要认真的琢磨半天,而且可能还偏离方向。

我看过很多人写的代码,一个办法的业务流程正文很不清晰,有些人一个办法 100 多行就一两句正文,齐全让接手者摸不着头脑,像我本人的话,个别写业务代码会依照步骤来写正文,这样看上去每一步的逻辑都比较清楚,

public GardenUserFruitDetailDesp userFruitDetail(GardenBaseReq req, Long userId) {  
​  
 // 1、查看有没有正在参加流动的用户果树,没有的话返回 "未抉择水果" 状态  
 .......................  
​  
 // 2、水果还是未抉择状态,证实用户未通过老手教程  
 .......................  
​  
 // 3、果树成熟,返回可采摘状态  
 .......................  
   
 // 4、获取用户果树的相干数据  
 .......................

不过,正文清晰也只是根本的要求,即便是老手也能很容易的做到,但说到代码的优化方面就另当别论了。

一个有教训的开发者除了专一性能的实现外,代码的优化也是其比拟上心的局部。

举个例子,比如说逻辑有共通性但分类较多的状况下,很多人会写大量的 if/else 语句来示意,尽管也能实现性能,但从可读性和扩展性来说是比拟差的,如果想更上一层楼的话,能够引入一些其余的设计理念来优化一下代码,比方能够引入策略模式或是适配器模式的设计来解决代码,兼容不同分类的共通性逻辑,不仅实现性能,还让代码看上去更加的高端,便于保护。

当然,这方面的能力不是欲速不达的,除了多写之外,意识和习惯方面的造就也不能少。

3、承当一个我的项目的设计开发工作

如果是刚入行的新人,个别下级的工作是让你批改一些 bug 或者实现一些小性能,厉害点的人会让你负责单个模块的开发工作。

随着你教训的减少,你负责的工作内容会缓缓的开始扩大,从单个子模块到多个子模块,而后是重要模块的研发和保护,甚至最初可能是负责一个中小型的残缺我的项目的研发过程。

当你有三年左右的工作教训之后,咱们日常负责的将不仅仅是代码的编写工作,可能须要经验一个残缺的我的项目生命周期,从技术评审,到模块设计,以及调配工作、性能实现,还有我的项目保护这一系列的工程。除此之外,如果你能力和教训足以胜任的话,下级还会给你调配新人,让你来带他们做我的项目开发。

4、对架构方面有肯定的了解

算起来,三年教训的程序员也是有肯定教训的工作者了,从教训上看不能归为一般的初中级,但也没有达到高级程序员的高度,大略就是中级到高级程序员之间的过渡阶段吧,毕竟要成为高级程序员的话,除了根本的编码能力之外,对架构方面也要有肯定的了解,我权且称之为架构思维吧。

什么是架构思维呢?就是当你的视线和思考曾经有足够的高度,能对我的项目全局或局部做一个整体的架构方面的设计和优化。

举个例子说,当初公司有一个电商类的我的项目,因为我的项目初期没有思考到将来业务扩大疾速的起因,所以在架构设计方面有所欠缺,造成当初单表数量太多,单个工程代码量太宏大,日常 qps 过高导致页面响应过慢等问题。针对这些问题,如果让你来对我的项目的整体架构做优化的话,你会怎么思考?

在理论中,公司或者不会把我的项目架构优化这么宏大的工程量交给咱们这个阶段的开发者来设计,但工作之余的咱们也能够学习思考一下,如果让咱们来接手的话,咱们该怎么结合实际业务场景来优化架构?

又或者说公司的架构师或者是业界曾经有成熟的架构计划了,咱们能够拿他们的计划和本人思考的计划做下比照,看看有哪些地方须要改良,而后看看本人的架构技术盲点,课余时间去进一步的学习和补充。

我置信,这样的学习策略对于本人的架构方面的了解肯定会有所帮忙,长此以往的思考形式也肯定能够进步本人的架构思维能力。

总结

当然,下面所说的几点也只是我集体的见解,事实中没有哪个通用的考查规范,虽说是合格的三年开发者必备的特质,但说实话,我本人都达不到这样的要求,所以,我也不晓得本人算不算得上合格,也不晓得现阶段的我跟同龄的程序员相比是否有劣势。但有一点我是深信的,那就是,不论本人当初是什么阶段,不论本人从业了多少年,只有一生的学习,一直的精进本人的常识技能才是放弃咱们竞争力的最大劣势。

ps:尽管是吹水文,但撸了那么多字也是挺难为我的,我不晓得正在看文章的读者你看完本文后有什么想法,但我想说,如果你也感同身受的话 …………… 快给个三连吧,臣妾不容易啊!


作者:鄙人薛某,一个不拘于技术的互联网人,欢送关注我的公众号,每周不定期更新干货文章,这里不仅有技术,还有吹水~~~

正文完
 0