首先这个问题曾经是真实困扰过我的问题,也希望能给有这种疑惑的人一点启示

个人建议

这几种情况你可以去转向java

  • 如果你使用php已经有一段时间,php已经限制了你的发展,可以去学习java转向java或者其他语言。
  • 如果你刚开始工作,刚做php,但是觉得php前景不那么好,并且也有经济支撑自己去学习,就去学。
  • 学习能力比较强,并且对计算机基础已经有一些了解,并且热爱编程,那我相信你一定能学好java

这几种情况你需要慎重考虑转向java

  • 非计算机出身,计算机知识比较薄弱,并且不确定自己能否坚持的下来
  • 做php已经有一段时间,但是对自己未来还没有明确的规划,php工作过程中还有很多问题困扰你

如果看到这里已经有了决定,就可以不用继续往下看了。

我是怎么想的

任何程序语言,它的逻辑差异都没有很大,但是php相对于c++,c这种编译型语言,实在是高级了太多,导致很多做php的程序员从没接触过底层知识体系,但是这却是制约你成为编程高手的根本因素。而你转向java或者是别的语言,其实最本质的是你要有这个需求。想明白了为什么要转,有没有条件转,转过去以后到底有多大概率能做的比php好。

为什么要转?

可能是因为php已经制约了你继续发展,或者是你觉得php将来会制约你的发展。比如说你已经做到了高级php工程师的时候,再进一步你会发现,大厂招聘php的相当少。而且技术圈的鄙视链并不只是一个笑话,如果你没有做到一定的知名度,一听说你做的是php,可能面试官直接就给你pass掉了(因为人家用的是java,另外候选人多得很,没有必要花时间去了解你到底是不是高手)。

有没有条件转?

这其实要分几方面:

  • 经济和教育等条件

如果你刚毕业,大学学的不是java,那你再去培训机构学习java,出来以后找到工作,也未尝不可。但是如果你已经开始从事php工作了,那你有没有足够的经济条件来支持你去再教育。

  • 个人本身条件

你对自己是否自信,觉得自己一定可以做好java。这里就是看自己是否有充足的计算机知识储备或者良好的学习能力。不要盲目的自信,但也不用妄自菲薄。

  • 社会因素

社会因素也是你必须考虑的,因为php初级的,只要你要的工资不高,大概率还是可以找到工作的。但是java圈子,对初级真的不怎么友好。这是因为php更容易上手干活,java新手往往不给捅娄子就不错了。这方面也是因为java的上手的确是比php难一些。

我是怎么做的

说一下我自己的个人经历,供大家参考。

教育经历

我个人的情况跟大家说一下仅供参考,我是大学学的计算机科学与技术,是一个万金油的学科,主要学习的语言是c++和java,其他就是计算机理论知识。但是我们大学学的东西,即使你认真学了,也真的不够用,他的主要作用就是让你耳濡目染,开拓眼界。其他的大学我就不知道了,毕竟咱没去过。

大学我自认为自己学的在同学中还算不错,毕业也是从事计算机行业,当时不少同学都去培训,我没去,一个是觉得上大学了还去培训找工作,都不好意思和爸妈说出口。另外就是对自己还有一点点自信。

工作经历

刚开始从事php是因为那些年php真的特别火,另外也是因为当时网络教学视频匮乏,php是能找到的最多的,也很容易入手。

在从事php的过程中,我在工作两年左右的时候开始觉得php我不能做一辈子,于是开始有意识的去接触各种技术知识。这时候一个偶然的机会有朋友去创业,少一个做技术的,我又是自己人,就被拉去做了技术合伙人。这次经历对我的改变是巨大的,不仅仅是技术层面,让我开始真的独立负责。另一方面因为创业团队,并不是你做技术你就只管技术,也需要负责一些接洽和沟通的事务,乃至后来的组建团队。这也打开了我另一扇大门,就是沟通和管理技巧。

这里就是技术人员大部分都面临的两种抉择,继续技术深挖,还是转管理。

因为技术人员的沟通相对来说比较直接,比起来出去和其他人接洽,简直容易了太多。不易的是处理团队中的人,还有技术任务安排。这个我之前有一个文章浅谈管理写了一下,有兴趣可以去看。

这两种,我选择的是继续深挖技术,一方面是我自己也对技术有一些热爱。另一方面,我觉得管理水平是可以在做技术的时候提升的,但是做管理之后,技术水平可能会比较难提升(后来我的实践证明这不绝对,要看每个人不同的性格,这种更适合我。)。后来我从创业公司脱离出来,去了一家公司当了技术经理,还是主要编程的那种。

在这公司的两年期间,我重新学习了一遍计算机网络,汇编,c语言,python语言,计算机操作系统,软件工程,架构设计等知识,极大的充实了自己,另外在技术管理和沟通上,第一次开始带不是自己招聘进来的团队(创业公司的时候都是我自己招聘的),并开始接触多项目组并行开发管理等问题。

到目前,我又换了一家创业型公司,做技术负责人,其实更像是项目负责人。项目上全盘规划从0开始带领团队上线了某石油的项目。在技术上引入了k8s集群和jenkins,因为有了充足的知识储备,并且平时也比较注重培养自己独立思考问题的习惯,所以整体在这个公司并没有感觉很难,当然这也和创业型的公司整体没有太大的项目,也用不上过于复杂的技术有关系,比如分库分表等。

总结

其实每个人的职业发展,会受到社会,个人和家庭等因素的影响,不会很相似,但是做决定还是要看的远一些。不论是要做什么,先看一下自己手里的资源(可能是能力,知识储备,或者是人脉等),再看一下将来的前景,一般都能有个答案。我的经历希望能给还在迷茫的小伙伴们一点启示,只是抛砖引玉,与大家共勉。

更多推荐

php程序员要不要转java