自学背景环境:

我是91年的。之前在小贷行业,混了快四年,经历过3家公司倒闭,在找工作发现没什么特技,太难。毕业都近4年了。但是我觉得必须要有所改变,要学。然后听了朋友的意见,不去培训学校自己自学。
自学过程:

自学的是java,18年三月份的时候因为大学学过2级C语言。java基础部分是在网上找到,大概都能看懂进去,一天看个7,8个小时都OK,但是比较少敲代码,主要学的是javase。java基础。看过尚学堂的百战教程



(免费的)。就是这个300集。零碎的加完整的过了大概过了有两遍。当然也看过其他网站自学的视频。开始自学时,难点一:就是不知道要学成个什么样子才叫掌握了这个技能才能。所以刚开始就是稀里糊涂的跟着视频看,跟着视频里面敲就是了,反正能跑起来就行了。


开始学习java第一步就是配置JDK环境变量:刚开始我是不懂得,觉得好烦。。。没办反你要学你就要学者配,然后开始介绍java注释,标识符,然后介绍驼峰规则(刚开始我是很觉得这个规则无用的,我自己写的东西我知道是什么就好了嘛
搞这个麻烦干什么,实际这个规则大用处)一些关键字,保留字。(开始学的时候觉得很重要,其实…知道就行了)。

然后就是真正开始学习java,先是了解面向对象,这个是在我自学的时候遇到的第二点难点:什么是面向对象,现在想想觉得这大概一种思维方式,反正多写点程序有助于加速理解。

开始就开始写一个java程序 其实就是demo,了解到底需要写什么东西,变量(局部变量,成员员变量(属性),静态变量)
变量类型,运算符,流程控制语句,了解数组,类和对象,接口与封装,字符串,日期。异常处理,IO流,集合框架,泛型,多线程,JDBC,图形界面,网络编程,大概花了我4个月的时间,花的时间太多,主要是遇到自学第三个难点,遇到问题了怎么办,这就导致我刚开始学习java的时候很多情况是:因为一个空格,一个字母打错,导致浪费了大量的时间在排错,导致学习的体验与进度都是极其糟糕的,而且因为我是自学,心态崩了就基本GG了。但是想想为什么要学
,咬牙坚持吧。所以这刚开始的四个月基本就是过一遍,过两遍。不怎么思考(因为排错,内容较多不停地学习更新)加上自学其实没太大压力的,只能靠着我已经学了这么久,放弃多可惜来坚持。。。。学了3个月然后大概其实只是能写个demo
基于javase的demo。然而我是闭门造车并不太懂我学到了一个什么程度的。。。我就开始了第一次去面试(并没有做任何面试准备学完了就去面试看看),我只是去面试了一家(培训公司,还忽悠我去培训,现在想想培训确实是有点东西的),被问了2个问题,我就放弃了找工作。当时的问题是,接口和类的区别什么,为什么要是使用接口,我说是接口没有方法体,接口被实现,类被继承。其实重点是,接口定义了一个标准,我当时是不能理解的。然后第二个问题怎么分页查询limit,当时J2ee看都没看我怎么可能会。于是回来继续学看。开始试图了解为什么要有接口等一些东西的意义。开始学习J2ee,Tomcat
服务器,jsp,mysql数据库,了解框架,Hibernate,struts2,springIOC容器,会抄个demo。大概花了1个月时间到了18年6月底,在家自学不上班这么久压力也是蛮大的,于是我开始了自学的第2次找工作(依然无准备的去面试),一共面试了4家公司,都没有到技术岗面试,正儿八经有料技术的时候是2家公司,一家是中兴面试的时候,做了一份试卷,被问到jsp的9大内置对象的时候乱七八糟的说了7个时候自己心态就崩了。另一家是技术管理跟我聊了聊,问我会不会前端,当然不会,然后问我能不能搭建SSH框架ssm框架,当时没看过ssm,强行说自己能搭建ssh,mybatis就看过。后来聊到mvc模式时候(当时我就知道MVC是模型视图控制器),被问到什么是M模型层时候。我说就是实体类,那个技术就问我DAO,和业务层呢。我当时觉得就像是控制层和模型之间的东西。其实我当时根据自己demo就是这么理解的。后来面试我的大姐聊了聊,说我这个情况自己自学没做过项目。最好找个项目做做。在家心态又接近崩溃毕竟学了尼玛4个月多,啥都好像不会。就会个一手demo那哪成。前端也不懂。想想看自己学了这么久了。。。。不管到底是不是尽了最大努力。毕竟自己花了很多心思就放弃了么,我抱着了解整个java前后端,了解一个网站到底是怎么运行的的心态。开始了第三期学习:开始了解前端:从HTML,CSS,javaScript,JQuery,Ajax.学完跟着找的一网站上面的项目撸了一遍
天猫整站(不访问数据库的)
然后开始用正常servlert+jsp撸一遍。然后正经用SSH框架撸一遍,然后用SSM框架撸一遍。每个框架都是先单独学习是什么,然后再整合到一起。前边第一个servlet+jsp访问模拟天猫整站大概花了又花了一个月。大概学习是唯一坚持总会有能看到效果的东西吧。写着写着就发现能MVC模式的意义。虽然jsp的9内置对象一个都没直接用到。然后框架一个个学习,使用,再同一个web项目下,为什么要使用框架。使用与不使用的区别。真正在练习写3个相同的web项目的过程,是一个提速的过程。真正的原因不是因为有很多的代码相同,而是通过实际的场景,让你知道为什么你需要那么做,就如同去一个地方,你可以走过去,也可以坐车过去。
现在已经了解完了整个web网站的流程 ,也感觉总算知道学了点啥,准备开启第三次自学java找工作之旅。。。。。。