谢邀。
从前有条狗,大家都叫他双标狗。
这条狗对锻造技术很有造诣。他能把别人家的金子锻造的又轻又薄,像是细沙一样罩在自己脸上,故而大家都称呼他这第一招叫“总往自己脸上贴金”。他又能用火炉打生铁锅,打出来的铁锅不仅能做饭能炒菜,甚至还能当作暗器使用,故而大家又称呼他这第二招叫“净往别人头上甩锅”。
双标狗凭借这一手贴金,一手甩锅;端的是快意江湖,风生水起。
双标狗先是管理农场。
农场里大家忙碌,兔子挖坑,绵羊植草,就连屎壳郎也在搬运肥料,好一片热火朝天的景象!
双标狗却给自己搭了个窝棚,在里面呼呼睡大觉。
到了秋天,粮食大丰收。仓库里的胡萝卜堆的像小山一样高。
只见双标狗慢悠悠爬出自己的窝棚,伸了个懒腰,疾呼一声:“金来!”
啪嗒一声,天上就掉下来一个一吨重的大奖章,正好挂在双标狗胸前。
“今年粮食大丰收,都是我的领导好!”
说罢,双标狗便扭着屁股得意的走了,留下围观的动物们欢呼喝彩。
双标狗后又管理林场。
林场里一片安静,鸟儿筑巢,松鼠打洞,时不时有风声吹过。
双标狗又给自己搭了个窝棚,在里面继续睡觉。
到了春天,林场突然起了大火!那火先是小,而后变大,再后疯狂的吞噬着森林的一切。鸟儿尖叫飞走,松鼠惊慌失措。
只见双标狗又慢悠悠爬出自己的窝棚,揉了揉眼睛,瞬间被唬的魂不附体。双标狗疾呼一声:“锅去!”
呼悠一下,天上飞过去一口硕大的铁锅,稳稳的扣在一只青蛙头上。
“今年林场闹火灾,都是这只青蛙点燃的!”
说罢,双标狗便夹着尾巴一溜烟跑了,又留下围观的动物们义愤填膺。
林场大火燃个不停。山猫伐木,猴子运水,甚至有棕熊们舍生忘死,拼命冲入林场抢救动物们。
双标狗干瞪着眼。不是他不想救火,是他除了贴金和甩锅,就只会搭自己的小窝棚了。
你让他救火,他不会啊。
大火连着烧了七天七夜,动物死伤不计其数。万幸天空一道闪电划过,而后哗啦啦下起暴雨来。
眼见着林场大火渐渐熄灭,双标狗的心里乐开了花,又疾呼一声:“金来!”
啪嗒一声,天上又掉下来一个一吨重的大奖章,又挂在了双标狗的胸前。
“林场的火灾被扑灭,主要是我的功劳。”双标狗说完,发现其他动物看他的眼神儿有点儿不对,又扭捏的说,“啊,当然,也有棕熊们的功劳。他们是英雄,给英雄鼓掌!”
说罢,双标狗给领队的棕熊掰了一小块儿奖章,围观的动物们热泪盈眶,疯狂欢呼。
双标狗的名气极大,甚至连桃花源中的答主都略有耳闻。于是答主即刻动身,去采访双标狗那贴金和甩锅两招绝学。
“你咋领导那么多动物呢?”答主问道。
“因为我牛逼。”狗答道。
“你咋那么牛逼呢?”答主又问道。
“因为我领导那么多动物。”狗又答道。
答主哦了一声,回去想了三天三夜;最后一拍大腿,发出绝了的声音。
于是答主再度动身,又去采访双标狗。
“你咋那么厉害呢?”答主问道。
“因为我非常先进。”狗答道。
“你的确很先进。”答主点了点头。
“你看,你都承认我先进。”狗叫了一声,天上又掉下来个大奖章。
“但我感觉你不厉害。”答主话锋一转。
“这话纯属放屁。”狗也突然话锋一转。
“你凭什么说我这话是放屁?”答主有些疑惑。
“废物说的话都是放屁。”狗答道。
“你凭什么说我是废物?”答主有些恼火。
“你都不敢揍我,难道你不是废物?”没想到这条狗比我凶的还厉害。
“你信不信我揍你?”答主怒了。
“你揍我就是大坏蛋,我就叫黑猫警长来抓你。”狗摆出一副无赖的表情。
答主哈了一声,回去又想了三天三夜;最后一拍脑门,再度发出绝了的声音。
于是答主第三次动身,又去采访双标狗。
没想到双标狗居然死了。连那身狗皮都被扒下来了,挂在墙上煞是可怜。
“这狗怎么死了?”答主问旁边的猫。
“双标狗能不死吗?”旁边的猫答道。
“双标狗不是厉害吗?”答主疑惑的问道。
“吹出来的厉害,你也信啊?”旁边的猫用看傻逼一样的眼神看着答主。
“可是是谁杀了双标狗呢?”答主又疑惑的问道。
“双标狗杀了双标狗。”旁边的猫,说出了一句让答主倍感奇怪的话。
“我不太明白。”
“双标狗为什么贴金?不是因为他喜欢抢别人功劳,所以总往自己脸上贴金;而是因为他本来就觉得这功劳就理所应当属于他自己,所以自然就往自己脸上贴金。双标狗为什么甩锅?不是因为他喜欢推卸责任,所以净往别人头上甩锅;而是他本来就觉得这责任就理所应当不是他自己的,所以自然就往别人头上甩锅。
“人和双标狗的区别是什么?人会成长进步。想要成长进步,最基本的前提就是要承认自己需要成长进步。反过来说,你不承认自己不足,你可能成长吗?你不承认自己落后,你可能进步吗?双标狗除了贴金和甩锅两大绝技,其余的什么也不会;而贴金和甩锅这两大绝技,又断绝了双标狗任何成长进步的可能性。不成长进步,就是固步自封,坐吃山空;你说他可能不被历史潮流所淘汰吗?”旁边的猫冷冷的道。
“因为他蠢,所以他坏。”答主若有若思的道。
“因为他双标,所以他蠢。”旁边的猫补充道。
“不识双标真面目,”答主道。
“只因自己就双标。”旁边的猫道。
答主扔给旁边的猫一只香烟。片刻后,两道烟圈缓缓的升了起来。
“哎,我这儿还有五本书,你要不要?”旁边的猫突然扭过头来,一脸坏笑的盯着我道。
——《是谁杀了双标狗》
主语缺失。
你出问题了,为什么我要反思自己不够好?
题主说的太好了.
身为程序猿我必须全力支持:你们这些测试和用户,出问题了以后不想着怎样变好,却开喷.
如果你觉得有bug,那你就自己修bug.
如果你觉得产品设计不好,那你就自己设计并且实现它.
如果你觉得系统少了什么功能,那你就自己去增加这个功能.
你所使用的地方,正是你的产品;你怎么样,产品便怎么样;你是什么,产品便是什么;你若光明,产品便不黑暗。
“开喷”意味着意见和监督,虽然在重重压力之下也无非是开一个孔。
但是嘲笑别人敲键盘的人,除了多糊几层污泥之外还干了什么?
此外,有些事情“你行你上”是能堵嘴的,但有些问题,你行不行他都不让你上,甚至让你说两句的机会都没有,那所谓的“喷”就是解决问题了。
人类的大脑实在太神奇了。
我出生以来,它24小时不间断工作,但却偏偏在考试的时候,大脑会猛的开始循环播放各类沙雕歌曲。
不会的题越多,想起的歌词越多。
题目越难,想起的歌词越沙雕。
从大学到现在,我使用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中有哪些知识已经过时,不需要再学习了?
回答的多了,就感觉这是一个普遍的问题,因此统一整理了下,作为这篇文章的补充,希望对你有用。