从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用。
因为是在工作中培训,就必然有两个约束:实用、时间紧,因此就不能像大学那样,把所有的知识点都面面俱到的讲到。而只能挑基础的,实用的,难理解的讲。至于其他边边角角的知识,就一笔带过。一则没有时间,二则不常用,再则既使讲了,学生印象也不深刻。总之一句话:“好钢用在刀刃上”。
下面,就根据我的实践,具体谈下学习过程:
1.基础知识
我学习java的时候,先是通读了《Java编程思想》,然后是《Java核心技术》。当时这两本书还不像现在这么厚,而刚才我把案头的《Java核心技术》第9版翻了翻,上下两册已经1700多页了,可想而知,如果要把它通读一遍,且不说把所有的代码都调通,就是当小说读,估计也需要些时间。
但我现在教学依然首推《Java核心技术》,主要是体系完整,实例多,可操作性强。但对初学者,我一般是只讲前6章,也就是下面的内容:
就《Java核心技术》第9版来说,也就是到250页为止,加把劲,1个月拿下完全没问题。
因为你是自学,所以建议你一定要把其中的代码都调通,课后的作业尽量去做。除此之外,还有两点特别重要:
#.学习笔记
因为你是自学,不像在企业中学了就能够实践,印象自然特别深刻。而自学因为没有实践的及时反馈,所以记笔记就显得特别重要。因为记笔记就像写作一样,是整理思路的绝佳方法。同时学习笔记也是你以后开发,面试的绝好资料。
学习编程,人跟人是不一样的,别人觉得难理解的东西,对你却不一定;而你觉得难理解的东西,别人可能又会觉得特简单。而学习笔记就是自己专有的“难点手册”,有点像高考时的“错题本”,以后无论是在面试前,还是在日常工作中,随时都可以翻出来看看,自是获益匪浅。
#.分门别类保存demo
学习笔记是很好的文字资料,但编程界有句话说的特别好,所谓“no code, no text”,意思就是说:千言万语都没有一段代码来的实在。
以我的经验,在你在学习的过程中,就某个知识点,无论当时理解的多透彻,调试的多棒,只要时间一长,等到了实用的时候,肯定会碰到各种各样的问题,一些看似简单的东西,此时死活就是调不通,正所谓人到事中迷。这个时候,如果你手头恰有运行良好的demo,打开参考一下(甚至直接拷贝过来),问题自然迎刃而解。而且因为这些demo都是你亲手调试出来,印象自然特别深刻,一碰到问题,在脑子中自会立刻涌现。
所以说,在学习的过程,一定要善待你调通的demo,千万不要用完了就扔,等后来碰到困难,想要用时却找不到,追愧莫及。正确的做法就是把所有调通的demo,分门别类的保存起来,到时候查起来自是得心应手。
人都说“书到用时方恨少”,其实代码也是这样,所谓“demo用时方恨少”。
2.Spring
目前在Java EE开发中,Spring已经成为和Java核心库一样的基础设施,所以说如果想成为一个合格的Java程序员,Spring肯定绕不开。另一方面,如果掌握了Spring体系,Java基本上就算入门了,就有能力进行一些实用级的开发了。
但Spring本身也是日渐复杂,衍生项目越来越多,但最最核心的概念依旧是IOC和AOP,掌握了这两个概念,再把Spring MVC学会,再学习其他的衍生项目就会平滑很多。
同时,因为Spring本身就应用了许多优雅的设计理念,所以学习Spring的过程,也是加强Java基础知识学习的过程。因此等你掌握了Spring,原来很多你理解不透彻的Java特性,此时就会恍然大悟,包括接口、抽象类等。
我学习Spring,读的第一本书是《Spring实战》,坦率的说,书很一般,但市面上比它好的书,我却没有遇到过。还有一本《Spring源码深度解析》也不错,对Spring的设计理念讲的尤其透彻,虽然整本书读起来有些艰涩,但前几章却生动有趣,也是整本书的精华。所以建议你在学习Spring之前,先把该书的前几章通读一下,然后再回过头来学习《Spring实战》会顺利很多。
以我经验,要学透Spring,终极的方法还是阅读源码(我当时就是这么干的),待把Spring的核心源码通读了,人就真的自由了(所谓无真相不自由),不仅是对Spring,而是对整个Java体系。以后再遇到其他框架,大概一眼就能看出其中的脉络,所谓到了“看山不是山”的境界。但这都是后话,可以作为以后你努力的方向。
和学习Java基础知识一样,学习Spring也一定要记笔记,一定要分门别类保存demo。
老实说,Spring对初学者不算简单,因此最好能有个好老师带一下,不用太长时间,2个课时即可,然后就是在你遇到大的困难时,能及时的点拨下。
以我的经验,要初步掌握Spring,大概需要1到1个半月的时间。
3.其他知识
Spring是Java编程的基础设施,但真要进入到实际项目的开发,还有些东西绕不过,包括 MySql,Mybatis,Redis,Servlet等,但如果你经过Spring的洗礼,这些东西相对就简单多了,以我的经验,1个月的时间足够了。
4.实践
学习Java,光学不练肯定是不行的。但因为是自学,所以就没有实际的产品让你练手,但也没有关系,谁大学还没有做过毕业设计呢?以我的经验,大家最爱的“学生管理系统”依旧是个很好的练手系统。
别看“学生管理系统”逻辑简单,但麻雀虽小五脏俱全,其中数据库设计、Mybatis,Spring、SpringMVC,Servlet、Tomcat一个都不缺,绝对的练手好伴侣。
还有,虽然你的学习重点在Java,因为要做一个完整的demo,前端的配合肯定少不了。因此就免少不了要学一些简单的JS、HTML知识,但因为前端本就是个很大的topic,所以一定要控制好边界,千万不要顾此失彼。就“学生管理系统”来说,在前端上,只要实现一个包含table、textbox、button,能发送REST请求到server,能实现学生的“增删改查”的简单页面即可。
作为一个练手项目,目标就是把Java的主要技能点串起来,所以自不求尽善尽美(也不可能),所以1个月时间足够了。
.最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
在日常的教学中,我常把下面这句话送给学员们,今天也把它送给你:
“道路是曲折的,前途是光明的!”
祝你好运!
--- 上面是原答案 ---
我把上面的内容作了下整理,画了学习路线图,内容也有些升级,供参考。
因为有朋友,通过留言或私信方式问我:Java中有哪些知识已经过时,不需要再学习了?
回答的多了,就感觉这是一个普遍的问题,因此统一整理了下,作为这篇文章的补充,希望对你有用。
9月21日,美国总统拜登在和英国首相约翰逊的会面中,突然毫无预兆的要求记者清场,而在那段现场的视频中,似乎有一记者问了一句:“Did he shit?”(“他是不是拉了?”),而旁边的另一位记者回道:"I have no idea,hope the microphone got it。"(“我也不知道,但愿麦克录到了。”)
这段视频流出之后,全世界的舆论场都炸了锅,人们纷纷怀疑,已经是80高龄的拜登,是否在这样严肃的场合,一个不小心,拉在了裤子里,所以才会突然要求清场,而现场的记者是闻到了味道或者听到了声音,才会有此一问。
这个看似荒谬的猜测,却意外的流传极广,以至于向来标榜言论自由的外网都开始大量封杀此类帖文,而美国官方也很快出来辟谣说清场跟总统拜登的身体情况无关,只是出于政治和外交因素,两位领导人必须密谈。
但网民们可不管这么多,美国政府越是删帖和澄清,他们就越是对拜登的“脱粪”深信不疑,传言越传越是有板有眼,之前俄罗斯总统普京的那句“祝他身体健康”也被拉出来反复分析,进一步佐证了拜登的“失禁症状”。
这个曾经代表着“战无不胜,众望所归”的超级大国和世界第一强国,居然以如此不体面的方式迎来了舆论的毁灭性打击,这让许多美国的敌人和反对者都大为诧异。
然而,冷静下来思考,我们会发现,这其中疑点颇多,因为在那段广为流传的视频中,第一位记者在提出疑似脱粪的疑问之后,另一位记者给她的回复是“我希望麦克风录了下来”,如果真的是拉裤子这种事情,被麦克风录下来的可能性实在太小,还不如说希望摄像头拍到了。
即便退一万步,认定确实是拜登没有控制住大小便,但其实他作为一个80岁的老人,出现这种情况也并不稀奇,衰老并不是罪恶,也不至于为此如此残酷的嘲笑一位老人。
因此,拜登如今的被群嘲,可以说只是美国国力衰退的一个缩影,无论拜登是否真的大小便失禁,但他作为美国总统,领导着这个衰退的美国一路火花带闪电的跌下了神坛,曾经的荣耀必然会一道一道全部化作孽力反馈回他的身上。
简而言之就是,如果美国今日没有从阿富汗撤军,新冠也已经完全被控制,那么拜登就是拉的到处都是,也依然会有人跪舔说他这就像廉颇“一饭三遗矢”,是有大将之风,可当美国撤出阿富汗,新冠病死七十万之后,哪怕他这位总统日日正襟危坐,我们也总会怀疑,他屁股底下,是不是粘着什么不雅的东西。
这,就是今日的世界,就是美国从“谁也打不过”到“谁也打不过”之后,所必须要面对的残酷现实啊。
为什么半藏森林的照片,看起来就很自然?
为什么自己拍照就很死板,畏畏缩缩?
她有什么拍照秘诀吗?
她的拍照方法
有哪些是普通人也可以学习借鉴的?
镜头感,说白了就是两点
1像跟朋友互动一样,跟镜头互动
2完全无视镜头的存在
1像跟朋友互动一样,跟镜头互动
拍照太僵的很大一个原因是害怕镜头
在镜头面前很拘谨
只要能放松下来,像跟朋友互动一样
跟镜头互动
照片就不会僵
2完全无视镜头的存在
她有很多照片,根本就没看镜头
而是该干嘛干嘛
(如果不知道怎么看镜头,那干脆就不看好了)
对比了她的微博照片和几大热门自拍、修图APP
(美图秀秀、轻颜相机、facetune、snapseed)
的图片文件名后,发现:
她几乎所有的照片
都是用iPhone原相机 拍摄、修图的
翻遍微博相册,没有一张用了贴纸的自拍
原相机拍照、修图
能保证照片的清晰度、细节
从而减少了“假”感
她最出圈的照片
并不是常见的那种怼脸大头自拍照
(整个画面就一张脸/一手拿手机一手扶脸)
最火的几套图,大多数都是半身照、全身照
半身照、全身照在人和镜头之间留出了距离
有一种亲眼旁观的感觉
有很多都是坐着拍的
“坐”这个动作,更融入拍照环境
看起来也很轻松悠闲
如果感觉自己拍照很尬
不妨少拍点大头自拍,多拍点半身照、全身照
如果可以的话,多坐下来拍
她并不是随便到哪 都瞎比划动作,乱拍一通
照片背景 一般都是一个很具体的场景
(房间/楼梯/街上/花园/餐厅/车里)
拍照姿势 展示了一个具体的活动
而不是为了拍照而硬凹姿势
(画画/吃饭/走路……)
手上很少是空的,经常拿着东西互动拍照
照片有一种身临其境的体验感
就好像你在看着她的生活场景一样
所以,当你也到了一个具体的场景
当你也在做一件具体的事情的时候
不妨拿起手边的东西,拍几张照吧
她很少直挺挺地拍照
要么歪头,要么歪肩膀,要么歪身体
显得比较活泼
可以多试试在拍照的时候歪头、歪肩膀
扭转身体噢
她很少发单张自拍
基本上都是发2、4、6、9图
如果发大头自拍 一般是连拍的4-6张
表情、角度、动作不一样
如果图片较多(至少6张)
一定是半身照+全身照+大头自拍 全都有
大多数是半身照、全身照,连拍、抓拍很多
同时穿插一些风景、静物等展示生活的照片
所以,自拍不一定要拍完就发
可以囤起来凑够九宫格再发
多用连拍、抓拍
多换几个角度、动作、表情
这样你的照片会更生动
她几乎所有的照片,都是笑着的
卧蚕很明显,眼睛里有光
(没有卧蚕可以画,眼神光可以通过
拍照光线 和 美瞳 调整)
眼睛显得有神,笑容自然、有感染力
而不是职业假笑、皮笑肉不笑
拍照的时候注意找一个
能够点亮眼睛的地方
卧蚕也是必须要画滴
她拍照为什么那么好看,还有一个重要原因
——身材好
不是干瘦,脖子、四肢很长
腋下、手臂、小腿没有赘肉
下颌线明显,腰细,有胸和屁股
(体脂率应该不高)
身材好,对自己的身材自信、满意
拍照就不会遮遮掩掩,在镜头面前会更大方
(她是模特,镜头感比普通人好很正常)
推测身材要么是天生就好,要么是有健身
这两点应该都有
所以说,锻炼的好处真的太多了
◯拍照太“假”怎么办
◯拍照太“僵”怎么办