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系列的重要性,我不用多说,我自己学习的目标就是去招聘网站上看他们的应聘的需求,然后去学习,比如我列一个出来,大家可以参考一下。

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

最新文章

  1. 深入理解 '0' "0" '\0' 0 之间的区别
  2. 监控 Linux Unix Solaris AIX, swap page in / swap page out
  3. 【转】我应该直接学Swift还是Objective-C?
  4. ready和onload
  5. delphi线程的创建、挂起、激活与终止(用绘图做实验,简单又好用)
  6. 重新认识Intent
  7. Swift - 动态添加删除TableView的单元格(以及内部元件)
  8. webdriver
  9. java历史版本下载地址
  10. Could not find artifact cn.e3mall:e3mall-parent:pom:0.0.1-SNAPSHOT
  11. java mail 接收邮件
  12. 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”
  13. TestNG 框架的运用
  14. 《linux性能及调优指南》 3.5 网络瓶颈
  15. 【UML】:时序图
  16. Restful API 设计参考原则
  17. 笨办法学Python - 习题8-10: Printing & Printing, Printing
  18. 关于EF的一点小记录
  19. Python的top-level脚本为什么在磁盘上没有对应的字节码?
  20. Azure 12 月新公布

热门文章

  1. c语言静态断言
  2. MVC过滤器实现用户登录验证
  3. 光源 材质 简析——基于《real time rendering》第三版 第五章
  4. 签名Android应用程序
  5. UVa 1615 Highway (贪心,区间选点问题)
  6. LCD相关基础知识
  7. tpshop使用中遇到的问题
  8. ORA-00054、ORA-08002
  9. 从Objective-C到Swift,你必须会的(三)init的顺序
  10. 2016-2017 《移动平台开发》实验三 敏捷开发与XP实践