本人是西安一所985院校09级毕业生,大学应用数学系。大1时学习较好,那时学C语言的基础很不错。但大2、3、4都是在网吧里度过的,招聘会就去了那么两次,(那时,太天真了)。
毕业后,再找来找工作,找不到技术类(啥都不会啊),别人看我学校不错,在一培训机构教书2000,干到了现在(去年10月到今年5月了)
工作期间,每天都要5个小时的WOW。但现在,我真的想改变命运!
从4月20号到现在,每天能抽出6个小时看JAVA,而且有双休。所以最近将JAVA基础的视频看的差不多了,买了本本网上推荐的Think in java,并开始读了200页了。
一个比较好同学在北京做软件,一直叫我过去,说他来教我,只要我能每天看书12小时以上,保证我3个月学通JAVA,并找到好工作。但我担心自己现在实力太差了,北京消费又那么高,怕过去也难过日子。
想待在西安自学,各位高手指点下该看到啥程度。
首先既然你选择了java就要知道最核心要学习的是一个叫做面向对象的思想
对于计算机编程尤其是面向对象思想来说,属于一个典型的领悟性知识,不是你看书多长时间就可以的,从这个层面来说这个和佛教看经书一样,你觉得没悟性的人每天看12小时金刚经就能领悟么?
多的不说,捞干的讲,所谓CS和BS结构是在互联网飞速发展以后出现的,CS就是传统的客户端服务器应用,而BS是浏览器服务器应用,都需要有服务器,严格说单机版的软件(完全不上网)不属于这两种,那么就要知道java究竟适合做什么
如果要做CS结构软件这个是比较麻烦的,因为多数用户使用windows系统,如果要做CS结构的软件需要让客户在本机上安装java的运行环境(jre或者jdk)才可以运行软件,虽然很多优秀软件比如Eclipse都是java开发的,但是要做到和C,C++,C#媲美的桌面应用图形界面要做的工作非常艰巨
而BS结构就是java的优势了,对于微软来说他们的BS程序只能跑在IIS服务器上而IIS服务器又只能在windows上安装,但是java就不同了,java的特点是跨平台无论你是Linux,Unix,MacOS还是windows都可以安装java应用服务器(最著名的tomcat,JBoss,WebSphere,WebLogic),由于浏览器服务器的软件结构,用户是完全感受不到你服务器端使用的是什么系统,但是由于java如此灵活在服务器端就可以实现一次编写处处运行
两种软件结构说完了,再说说现在java的趋势,java发明之初是用在洗衣机上的,由此java起初是一款嵌入式编程语言,而现在很多手机依然使用java来编程,这里就涉及到java类库的三个版本java SE,java EE,java ME,其中ME就是专门给手机之类移动设备使用的,而如今Google推出了android以后让java更上一层楼,android其实是一款使用java语言的Linux手机系统
另外java最新版本javaFX,正在挑战RIA行业两个老大flash/flex和Silverlight,另外这个版本的后续应该会非常容易移植到android上,这样就造成一次编写在BS结构服务器端可以跑放在android手机上也可以跑
另外一楼说的SSH已成昨日黄花,struts正在逐步被淘汰,取而代之是struts2,虽然名字只相差1个数字,两个框架是完全不同的struts2其实是围绕着xwork来开发的比struts1.x强的不是一星半点现在还有人用struts完全就是历史遗留项目而言
至于spring,尤其内容很庞大而大家通常使用的组件又很少造成很大程度的冗余,Google guice就是一款非常不错的AOP组件可以代替spring的AOP组件(spring最常用的组件)
另外你朋友在北京应该做的是BS javaEE或者手机,这两块javaEE要赚大钱难,你需要有团队而你只是个棋子,团队赚钱,你分残羹而言,对于手机来说如果你开发android完全可以做个freelancer,可以赚很多,不过建议是少看书,每天12小时写代买加思考,书这种东西尤其是字典一样厚的技术书要当做工具书来翻,通读是浪费时间而且你根本记不住,只要知道有问题哪里找即可
此外推荐一本杂志《程序员》每期都要看,比看12小时书有意义的多
学习Java编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理。没有付出就没有回报,在整个学习Java编程技术的过程中,你需要付出时间、精力、金钱。废话不多说直接上干货。
第一:需要达到什么样的技术水平才能就业?
既然是为了就业,你就要知道学习Java编程技术需要达到什么样的技术水平,才能获得一份Java开发的工作。就好比高考的一个分数线,你是否能被大学录取,要看你能不能过分数线。软件公司录用你,也是有一个标准,所以首先你要知道学习Java编程技术应该能达到什么样的水平才能就业。
目前行业就业标准:需要有项目开发的经验,一年经验Java开发项目经验以上,进公司一周后可以参加项目模块的开发。
IT行业技术更新的比较快,所以我们肯定是学现在企业需要的技术,而不是一些已经淘汰的技术。所以作为一个零基础开始学习Java的人,你应该了解你现在需要学哪些技术,这些将是你要攻克的内容。
第三:合理的学习周期计划
合理的学习计划周期,你要学一个专业很强的技术,你肯定不能盲目的学,肯定是要把所有的内容进行分块来学。每天的内容都是固定的。学习编程有一个词语叫做“循序渐进”。不能急也不能拖。每天学习的量要差不多,然后完成每天的知识,并且把它掌握,每天做多少练习,完成什么作业,都要明确。
这要根据你的学习能力接受能力以及每天付出多少时间来学习制定的合理周期。
举例:如果一天8个小时,建议总时长5个月。
第四:有一个指导你的技术大佬
如果决心想学好Java编程技术,就需要在前期有一个技术好的人指导你。全程靠自己自学Java编程技术的人其实心里是并不想学好的。大部分都是不想付出就想得到回报的。因为Java编程技术专业性很强,前期是必须有人带的。主要是因为遇到问题无法解决,解决起来效率非常低,也会越学越迷茫,最后导致浪费时间。缺少跟专业的人交流的过程,毕竟高薪不是随便拿着,如果每个人都可以靠自己自学会Java,那你应该是985、211这种学习能力很强的人。由于不是这个行业的人,对于编程学习的方法一无所知,所以一定会造成走很多弯路的结果,最后导致放弃。
第五:意志坚定形成每天的学习习惯
以上4点都解决之后,剩下的就是半年如一日的每天学习了。根据我接触的人来看,大部分的人都会在中途放弃,主要原因就是渴望值很低,你想要得到一个东西,你必须非常渴望,并且付出很多东西,大部分人都不是这样的,所以坚定自己学习Java编程技术的决心很重要。
如果大家对于学习Java有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,这是我的Java交流学习扣扣qun:前面是六一五,中间是七四一,后面是六三六。 多多交流问题,互帮互助,群里有不错的学习教程和开发工具。
小白学习Java最常见的几个问题和误区:
1. 无脑盲目的刷视频去看,但是很少去练习。正常的状态应该是在整个学习的过程中,四分之三的时间都是在练习。视频只是让你了解学习什么内容,看一遍就行了。有很多人都是无脑的刷视频看,最后浪费几个月的时间,也找不到工作。
2. 小白开始学习的时候,看书是一种非常严重的误区。所以新手禁忌看书学习编程。至于原因是什么,在这里我不做太多解释。
3. 很多人都是遇到一个问题,就是能看懂代码,但是不会写,这是比较常见的问题。
4. 还有一个最现实的问题,就是学了后面的忘了前面,这是由于学习方法和方式存在这很大的错误。
5. 整个学习流程混乱,没有系统的安排,学的不系统不专业,技术掌握的不好,浪费几个月甚至半年的时间。
6. 缺乏和专业人士交流的过程,作为一个小白,在初期学习的时候,所学的最多的东西一定是从别人那里学到的,闭门造车。