写给没有基础却想干JAVA的学弟学妹

如题。。 先分享三句话。 “《Java编程思想》这本书很好,但还不适合你们现在去读,在合适的时候做合适的事,OK?”一心想速成的我并没有把教学视频中的这句小插曲放在心上,只是依稀记住了这本书。。然后快乐地学着速成JAVA。 “你学这些框架,做这种项目有什么用?你知道大连软件园(外包公司居多)里有多少人写得比你还要溜,结果他们只能拿那么点工资。”面试我的百度的架构师愤怒地说道。我当时不知该怎么回答,只是震惊然后开始后悔。。。或许,我真的错了。或许我该踏踏实实地学一点东西,而不是就学个花架子。。 然后我开始认真看这本书。。。 “这个实习生基础真心不错,一定是下过功夫的”。我终于找到了工作,实习时带我的那个老员工向部门领导夸耀我。然后我明白我走对了。 以上是真实的故事。 先撇开第三句不说。。第一和第二句足以说明问题。 其实第一句说的没错,我当时听完第二句是就去找学校图书馆的这本书了,然后我发现,这本书基本上只有前200页有人翻动过,有人似乎还很用心得偷偷用铅笔标了各种问题,200页之后就几乎没有动过的痕迹了。。。原因其实很简单,很多没有足够编程基础(或者称为代码量)的同学,直接开始看这本书。。然后他们学得很痛苦,每看一句话,每读一小段,他们都很痛苦,好比浮沙上建高台,他们找不到实际的根基,然后每放上一块木头时都为了高台新的平衡而十分痛苦。我相信这种人是很普遍的,甚至还有人直接读英文版,结果更是如此。。。其实我感觉我们学校学习氛围相当不错。一个学期每一天图书馆都很难找到空位、各种埋头读书。。但是他们真的在合适的时期干了合适的事吗?他们很多人只是听了厉害的学长或者教授的介绍直接就过来用惊人的毅力啃这本书了,然后大抵连200页都没有翻到毅力就消磨殆尽。。。 我只想说,在合适的时机做合适的事,编程基础(代码量)比较低,尤其是,总编写的代码量连5000行都不到的孩子,别尝试这本书,因为这很痛苦,而且没有意义。这本书站的立场比较高,虽然特别好,但请在适当的时候读它。 第二句,当时那个面试官真的怒了,而且无奈,一个码了一堆代码的人他真的很好吗?只有数量没有质量,或许当时我只是个计算机的本科生,似乎要求有点过了。但如果你开始觉得自己需要一些编程内功了,这本书就开始管用了,作为一本练习内功的基础书籍。把心静下来,老老实实打好内功根基,你会发现自己将会不一样,当然最直接的体现就是工资待遇上的。。从这本书开始,无论是走向架构,多线程或者虚拟机,路都会变得平坦很多。。 顺便讲一下算法以及操作系统,讲这两个是因为这两个经常在面试笔试中考,尤其是年薪10W+的校招职位。本人当时也曾好奇在POJ上玩过一个月。实际上对于当时JAVA不被认可的我来说,这一个月的尝试反而成了救命稻草,让我搭上了末班车。。。操作系统,同样很有用的。。。当然,只要算法、操作系统或者Java一个学精了,学得真的懂了,找个好工作不是问题。。。而且,学通一个,你即使没有工作经验,其实也可以在职场有立足之本。。。哦,对了特地提一下、个人感觉ACM算法中其实最有用的是动态规划(DP)。 我今年本科毕业,在此与当初像曾近的我一样啥都不知道一头扎进Java的学弟学妹互勉。 第一句话是马士兵视频上说的,马老师在电驴上的资料(现在没有了),曾经帮助过我,带我走进Java大门虽然彼此不认识,但表示感谢。。
==============2021-03-10修改 这不是广告
如果现在自学的话,综合我将近7年的经验和技术,建议去找网络上的培训班视频(尚硅谷:https://space.bilibili.com/302417610),
萌新自学就是java开头,python选学,然后前端高阶的话就是html+css+js+jquery+vue(react...),大数据高阶就是java+hadoop(spark)+hive+hdfs+(flink/kafka/sqoop/flume),中间需要补充linux基础, git/maven, mysql, nginx之类的。
其他比如jvm, 数据结构与算法, 机器学习也可选学,基本在这个b站up主这里搜一搜就有了,好些实战项目也是与时俱进,都是企业级的开发,跟着老师学,跟着老师敲代码,搭环境。。。我现在偶尔也会来看看,补一补基础,终生学习嘛,共勉。