浅谈架构

V1

2022/02/10阅读:56主题:默认主题

非科班出生转行PHP开发三年后,又转到Java开发,我都经历了什么!

一、前言

大家好,我是阿七,“浅谈架构”公众号作者,这篇文章主要聊一聊,我从零基础学编程,phper入行,又转到Java开发的一些亲身经历。希望对于正在迷茫的你,有所启发。

二、科班,还是非科班?

我14年毕业于湖北某二本学校,信息与计算科学,咋一看,这不是计算机专业吗?我填志愿的时候也是被这个名字骗了,这个专业前生叫“计算数学”,本质上是学数学的。毕业的同学有一部分当老师,一部分做销售,当然还有一部分是程序员。

但是进入大学,我对编程并热爱,那时候就只想着怎么挣钱(大学阶段开过自行车行,搞过培训机构,这是一段挺有意思的经历,有机会再和大家分享)。记得大二的时候,我们宿舍就有同学开始自学计算机,但是我发誓“以后打死也不搞编程”。所以也就没有和他们一起“钻研”。

对于我,大学基本上是没有怎么学编程课的。所以,我可以定义为“零基础,非科班”。

三、什么时候开始都不晚,晚的是你从来都不敢开始

毕业之后,我也一部分人一样,找不到合适的工作,去深圳做了一段时间销售。但是发现那并不适合,眼看那些老员工,一眼也能看到5年,10年后自己的样子,所以毅然辞职了。

迷茫,无助这些词都不足以描述我当时的处境。

还好自己有点积蓄,撑了一段时间。

后来一偶然的机会,看到一部电影里面有句台词:”什么时候开始都不晚,晚的是你从来都不敢开始“,深有感触,就感觉非常的治愈。

然后我就非常固执的开始了零基础学习编程之旅,我的初衷很简单”明年,比今年强点,5年后,可能就不一样了“。

那时候有一些好朋友,都劝我”放弃吧,编程水很深“。好吧,经过这么多年证实了,的确很深。

四、上错花轿嫁对郎

学什么呢,综合对自己的判断,我觉得自己适合搞前端,喜欢前端,可能因为所见即所得,也可能入行门槛低点,所以我就从HTML,CSS,JS课程开始。每天学习16个小时。说实话,前一个月是比较难受的,是强迫自己,但是一个月之后发现自己慢慢喜欢了这种感受,很充实。

但是,天有不测风云。后来找工作,那时候,武汉的前端岗位很少,PHP如火如荼。

就这样,阴差阳错,我走上了PHP开发的道路。起初我是很排斥的,但是随着时间的推移发现,比起前端,我更适合后端,我能每天沉下心学到凌晨1-2点。慢慢产生了兴趣,也许这就是“上错花轿嫁对郎”了吧。

所以,其实本质上起初也不知道自己”喜欢“的是什么,只是在当时认知范围内的”以为“。

如果你正处迷茫,送大家一句话:”没有什么时不可以改变的,随着量变,都会产生质变,你所需要的是找到一个方向,一头扎进去“。

从那之后,我微信备注就改成了”当你只有一个目标的时候,整个世界都会给你让路“,以此来激励自己。

五、一帆风顺的PHP开发之路

入行PHP之后,很幸运的遇上了一个好领导,非常包容,人如其名,翔哥。工作之余 ,每天回家之后也坚持学到凌晨1点。我也会去研究一些新的技术,攻破公司里面的一些技术难点,引进新的技术到生产环境。大概半年多时间左右,就成为了平台研发小组长。

2016年来到北京之后,也遇到了很多大牛,像老余,巍哥,晕姐,与他们共事,参与到核心项目中开发,技术能力也在一步步增长。同时我也会去学习一些其它语言,像Python,GO,Java,Lua等。同时也弥补之前大学没有学习的基础(用我的话来说,是在弥补曾经放荡不羁欠下的债)。我每一个阶段(大概一个月),会制定一个短期学习计划,一年一个长期计划,有目标的前行。

所以我PHP编程还是挺一帆风顺的。

六、不安分,再次出发

后来,我去了家PHP很强的公司,慢慢也感觉到自己职业发展的瓶颈,平时在看一些书,好多都是Java写的,自己也慢慢被”种草“了,感觉Java是一门艺术,萌生了想转行Java的念头。

其实,编程能力无非就由两部分组成

  1. 编程语言基础能力
  2. 业务理解能力

业务理解能力有了,只需要去攻破语言本身,这还是比较简单的。

所以我就重点花了点时间攻破1,大概花了2-3个月时间学习Java技术栈,在18年初再次出发,开启了Java之路。

七、PHP要转到Java需要做哪些准备。

大家先想想,PHP服务端开发,平常用的哪些东西。Nginx,PHP语言基础,PHP集成Mysql, Redis,MongoDB,消息队列(RabbitMQ)等等,然后就是框架。所以同理,Java也是一样的道理。

  1. Java基础,包括Java语言基础,JUC包,设计模式等。
  2. Spring,Springboot框架, 怎么去集成Mysql,Redis,MongoDB 等, 先学会用。 然后学习spring里面的一些AOP,IOC原理及思想,Springboot自动装配实现原理。
  3. 消息队列,Java里面比较常用的是RocketMQ。
  4. Elasticsearch:一个分布式、RESTful 风格的搜索和数据分析引擎。
  5. 再去看看Java里面微服务怎么搞,SpringCloud有一整套解决方案,把配置中心,注册中心,网关,负载均衡,熔断降级,监控报警,生产者,消费者这些弄个Demo实现一遍, Github上面也有很多大牛写的SpringCloud脚手架之类的,可以参考。
  6. 然后最重要的,找一个大点项目,比如商城项目,把以上1-5学习的串起来。

很多东西都是相辅相成的,可以类比PHP里面用到的东西,Java怎么实现的,自己写Demo实现一遍。

也就是,先一个点一个点去学,再把点串成线。最后线再扩展组成自己的知识面。

做到上面几点,上手干活基本上没有什么问题了。再想更加深入提升,就得多看看比较优秀的框架源码Spring源码,Netty源码(看源码要带着问题去看)等等,要知其然,并知其所以然。

八、什么样的phper适合转行

  1. 首先得在PHP编程领域技术还可以,如果连PHP都搞不好,那Java可能更有难度。
  2. 其次要非常自律,并且有求知欲,爱折腾,爱好编程,能够保持每天学习(每天至少2小时以上)。Java知识体系相对来说要学的东西更多,更复杂。其实我觉得无关乎天赋,努力比天赋更重要。
  3. 最后,不怕困难,耐得住性子,学习途中可能会遇到很多莫名其妙的问题,可能花费好几天也解决不了,自己得有办法”释怀”。

九、总结

截止目前(2022年),已经是我转Java四年了,感觉就是,有另外一片天,有更多的东西需要去学习和研究。

现在回头去看曾经奋斗的点滴,还是记忆犹新。只想说:"感谢曾经奋斗的自己,同样将来的自己,也会感谢现在奋斗的自己"。

另外,如果你有迷茫,没有方向,欢迎与我交流,但愿我的经历能够帮助到你。

file
file

分类:

后端

标签:

Java

作者介绍

浅谈架构
V1