2015年毕业到现在已经3年了,而我转型开发已经有一年的时间了。写这篇文章除了记录,主要还是想分享一些经历给想要转型开发的同学们,不要走那些我走过的弯路。

2015年入职了第一家公司,当时是做的分销系统的维护,以及OA系统的维护。说白了就是软件系统的管理员,学会了怎么操作那个系统之后,教别人如何使用。每天的工作都是处理一些系统使用上的一些问题。刚开始我还是激情满满,差不多过了一年之后,我开始意识到了我的未来没有什么发展,我不知道我还能学到什么,对于一个处理人际关系不行的人,也很难走上管理的岗位。当然了这个工作也有好处,就是不加班。所以在下班了的很长的休息时间里,我开始了学习。我当时鼓励自己的理由是:如果这一年下班了我天天看电视,那一年后我什么都不会,如果这一年我每天学一点知识,那一年下来我可以积累很多知识。

还记得我第一个学习的网站是我要自学网,第一个学习的视频是sqlserver,当时什么也不懂,反正点开网站看到数据库,想起来好像公司用到过数据库,就开始学了,学完了之后,鬼使神差的接触到了java。大概是因为那个网站里面java视频最多把。然后开始了学基础视频,进阶视频,项目实战视频。这里我进入了第一个误区。那就是用javaSe做客户端系统,做界面,做游戏。跟着那个视频做那个象棋游戏,那个做的啊,简直是感觉太难了。照着打都会报错,更别说自己开发一个。我大概花费了半年的时间都在学那个。后来视频看完了就去图书馆借书看,借了一些项目实战的书,都是一些飞机大战之类的游戏开发的老项目。吐槽一下用java做游戏和界面简直太麻烦了。差不多第二年的时候才我开始学习到了javaWeb,当时从网上搜的学习路线,javase-->javaee,都推荐要先把javase学好才能学javaee,我就是理解错了。没学到该学的基础。对于初学者而言,我个人建议把java简单的语法学会,就可以学习javaWeb的部分了。学习javaWeb我是在一个培训机构的视频网站上学习的。他里面的学习路线规划的很好,我就按照他的路线来一个一个的看视频,很多人有疑问,看视频和看书哪个更好。个人认为初学者看视频更好一些,因为更简单,更通俗。比如你想入门一个东西,你先看视频入门了之后,慢慢了用了一段时间,你就可以看书来补全你的知识面,然后看网上的一些博客来深入你的知识。毕竟书上的内容相对还是比较老的。当时基本上每天都看视频,视频不长,一般都是10分钟,二十分钟左右,大概看了三百多个视频左右。然后开始自己模仿着做了一个项目,就是一个记账的,有增删改查,用的是strus2的框架和jsp做的。转眼第二年也快过完了,鉴于当时公司公司涨的工资太低,并且自己也想到软件公司去继续学习。就提出了辞职,当时自己也想去培训机构培训一下,但是就在我犹豫的时候,我竟然被录取了。现在可能很多人不知道培训机构靠不靠谱,我想说如果你想入行,但是自己实在自学不了你可以去花钱培训。首先,培训机构讲的东西很多,看了他们的目录我不认为有天才能够在几个月内从零掌握这么多技术。大概就是每个都了解一下最基本的使用而已,并且很快就会忘的。当然肯定能撑到面试。培训和自学都只是入门的两个不同的方法而已,走的多远还是要看进了公司之后的每个人的发展。如果进了公司就开始混,毕竟你进了一般的公司,一年的时间你就能进行正常的开发,实在解决不了的也会有老员工去处理。

  但是我们不能这样,我们要规划好我们的学习路线,必学的内容我认为没有两三年是学不完的。下面我贴一下我大致的学习路线,这个是我在进入软件公司之后的路线,不包含入门部分:

这个路线是我的学习的路线,其中重构和设计模式这两本书我看完感觉就忘了,但是好像又没忘,总之看完之后你的代码风格会更加的规范,更有想法。其次就是一个java的源码,这个可能比较难,建议先看看集合,IO流这些简单的类的实现源码。然后就应该关注java的版本发展了。现在已经出道java10了,如果还不会java8的lamda表达式,就比较low了。学完这些还需要的就是学习git和maven。刚开始我觉得这些是不重要的,后来发现我错了,大多的开源项目都是通过git加maven的,没有在一个个的下载jar包,然后想看源码还要去下载到处找,用了git和maven,直接把别人项目的maven的配置复制粘贴就可以直接用了。这个必学的两个东西。然后就是linux,linux是作为java开发的必备技能,如果还不会,那你进了公司就比较尴尬了。最后你就该好好学习一些框架了,因为这些是应聘时必要的条件。

标红的部分是我学习了的,当然期间也看了一些各种各样的书,如计算机系统原理,还有一些忘了名字的,这些书因为基础知识不到看了一半就没看了,就不列出来了。Spring系列的重要性,我不用多说,我自己学习的目标就是去招聘网站上看他们的应聘的需求,然后去学习,比如我列一个出来,大家可以参考一下。

总之,努力学习,并找到好的学习路线和方法,持之以恒。就能实现自己的技术梦。

记一名软件实施自学转Java开发,附学习计划的更多相关文章

  1. Java开发工程师学习路线

    贴一个比较出名的Java开发工程师学习路线图 好好学习提升中 这个貌似也不是特别全,算法,设计模式,架构好像都没有

  2. 阿里java开发规范学习(附P3C IDEA插件 帮助规范的养成)

    浅析 阿里巴巴 Java 开发规约 (未完成) 更加优秀的页面展现请到浅析 阿里巴巴 Java 开发规约 contents 为什么要学 编程规约 P3C IDEA 插件 why-use 我们知道,一般 ...

  3. 阿里巴巴java开发手册学习记录,php版

    一.编程规约 (一)命名风格 1.目录使用小写+下划线 home,view,model,admin_view 2.类 UpperCamelCase PhpMailer方法 lowerCamelCase ...

  4. JUC学习笔记--从阿里Java开发手册学习线程池的正确创建方法

    前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式, 这样的处理方式让写的同学 ...

  5. 从阿里Java开发手册学习线程池的正确创建方法

    前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更 ...

  6. 【转】线程池体系介绍及从阿里Java开发手册学习线程池的正确创建方法

    jdk1.7中java.util.concurrent.Executor线程池体系介绍 java.util.concurrent.Executor : 负责线程的使用与调度的根接口  |–Execut ...

  7. java开发规范学习

    from 慕课网-明明如月-<阿里巴巴的Java开发手册> Integer缓存问题分析 1, Integer缓存[-128, 127]的数字,除此之外,将通过new创建. Long也是缓存 ...

  8. 实战java虚拟机的学习计划图(看懂java虚拟机)

    啥也不说了,实战java虚拟机,好好学习,天天向上!针对自己的软肋制定学习计划. 一部分内容看完,自己做的学习笔记和感想. 学java很简单,但懂java会有难度,如果你的工资还没超过1W,那是时候深 ...

  9. Arduino开发版学习计划

    制定学习开发版的计划,今天先大体过一下整个教程. http://www.bilibili.com/video/av6105302/ 视频中说可以自己制造亦可卫星放上天. Arduino使用C/C++编 ...

随机推荐

  1. JSONArray的初始化的形式

    1 转义字符形式 [    {        \"ID\": \"1900036295\",        \"DEPT\": \" ...

  2. CentOS错误

    centos下yum lock的解决办法 Another app is currently holding the yum lock; waiting for it to exit... 解决办法:  ...

  3. Rabbitmq的几种交换机模式

    Rabbitmq的核心概念(如下图所示):有虚拟主机.交换机.队列.绑定: 交换机可以理解成具有路由表的路由程序,仅此而已.每个消息都有一个称为路由键(routing key)的属性,就是一个简单的字 ...

  4. C#缓存-依赖 CacheHelper

    缓存依赖文件或文件夹 //创建缓存依赖项 CacheDependency dep = new CacheDependency(fileName);//Server.MapPath("&quo ...

  5. php判断一个数组是另一个数组的子集

    需求最少的时间复杂度判断$a数组是否是$b数组的子集 // 快速的判断$a数组是否是$b数组的子集$a = array(135,138);$b = array(135,138,137); 实现方法 这 ...

  6. MyEclipse文件查找技巧

    只为成功找方法,不为失败找借口! MyEclipse使用总结——MyEclipse文件查找技巧 一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字 ...

  7. docker跨主机互联

    以下内容只是命令,原理自行百度,google或者官方查阅! 方案一.overlay Consul 三台主机为例(都要安装docker): 192.168.20.20(consul服务) 192.168 ...

  8. 一起学Angular

    最近想做一款跨平台(pc\app\pad)的东西玩玩,研究了许多技术: android.ios.H5.Bootrap.angular.angular2.ApiCloud.微信小程序 除android. ...

  9. 从Objective-C到Swift 单例模式

    在Objective-C中经常会用到单例模式.最常见的就是: [UIApplication sharedApplication].delegate 这里的sharedApplication就是一个返回 ...

  10. 用shell脚本 计算两个数的加减乘除取余

    #! /bin/bash # read -p '请输入数:' a //输入 read -p '请输入数:' b echo '$a+$b=' $(( a + b )) //输出 echo '$a-$b= ...