知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

Java 是否适合非科班者自学入行?

发表时间:2022-03-23来源:网络

// 要是不适合非科班,我估计程序员就不会内卷了!不光是 Java,其他编程语言也一样。这些年,我认识很多大佬,他们中有不少都是非科班出身的。

比如说《程序员进阶心法》的作者胡峰老师,他就是非科班。由于高考发挥失常,落到了第二志愿的东北大学,并且调剂到了机械工程专业,学了一年后,很苦闷,因为他不喜欢这个专业,也看不清未来的职业前景。

于是在读大三的时候义无反顾的转了专业,一开始学的 C语言。有了一定的基础后,开始专攻 Java,因为 Java 一直在编程语言排行榜上位居榜首,别的编程语言又很难撼动它的王位,关键是就业岗位非常得多。胡峰老师在书中感慨,Java 真的是一门展现出蓬勃生命力的语言,十多年过去了,依然没有出现丝毫的衰退现象!

很巧。因为高考前一夜失眠,导致语文发挥失常,所以我只考上了三本,离二本线差了一分,无奈家里付不起三本高昂的学费,就选择了大专,不知道怎么滴就被学校安排了 Java 语言。十多年过去了,仍然在靠 Java 吃饭。

我虽然算是科班,但其实大部分时间都是靠自学,真的,因为老师也不怎么会 Java,他也是刚学,能教会我们什么呢?

大家都是小白鼠,自然学起来就很痛苦,一度以为毕业意味着失业,对未来很迷茫!老师根本就不知道怎么教我们,光是“hello world”都上机敲了两周,先是装 JDK,然后用记事本敲下面这几行代码:

class Demo { public static void main(String[] args) { System.out.println("Hello world"); } }

再然后在命令行运行。失败了无数次,同学们都搞得相当崩溃!明明这么简单,偏偏就是不懂为什么屏幕上不能输出“hello world”。环境变量都配了很多次!

那是我第一次感觉到,学习原来这么难!时隔多年,再回想起当年那个怂样,真的是羞愧难当。

第一,那时候互联网还特别不发达,诺基亚和摩托罗拉盛行的年代,关键是我还没有钱买,用的是那种黑白屏的、带按键的 LG 手机,200 多块钱一只,电池特别耐用,上的那种手机网页屏的 QQ,只能看文字那种。PC 端连 CSDN、博客园这些网站都不知道,真的是感觉相当的欠发达。

第二,老师也是小白鼠,小白鼠教小白鼠,能教出什么玩意,班里有三个同学,比老师都厉害!

第三,教材用的《Java 编程思想》和《Java 开发宝典》。麻蛋,第一本绝壁是本经典,是本圣经,但根本就不适合初学者。第二本更坑爹,书中全是代码,写五子棋,写浏览器,写通讯聊天工具的,对于我们这种级别的初学者,那不是在读天书。

为什么老是会给我们推荐这两本书,我在上面的这个回答里提到过原因,反正是本好书,读不懂可能是我们学生的问题吧

第四,网上的教学视频太少了,那时候最流行的应该魔乐科技的李兴华老师的教学视频,和一个叫什么来着的,基本上是这个同学传到那个同学电脑硬盘里,大家几乎就靠的这两套视频入的门。

如今就完全不一样了,B 站上的 Java 视频特别多,我就整理了一套,特别完整的路线。

我放在了另外一个回答里,大家可以跳转过去看一下,基本上可以说凭借这套视频,可以轻松的自学 Java,甚至都不要大学老师教,也不需要掏额外的钱去培训机构了。如果时间不是特别紧迫,可以按照这条视频路线,一路刷下去,基本上找到一份 Java 后端的工作是不成问题的。

在资源极度困乏的情况下,大家就是拼刺刀。就我们上大学那会,拼的就是谁能吃透《Java 编程思想》这本书,显然这本书不适合,尤其是对我们这群学习能力本身就很渣的人来说。于是乎,班里面能转到电力工程系的都提前转了,转不了的大学毕业后就进了工厂打工。

剩下我们不到十个人,也可能是幸运,反正就是老天眷顾吧,还在程序员这个行业待着。

造成这个局面,老师和学校显然要负很大一部分责任。但我更习惯于把责任归咎于自身,那就是我没有像题主这样,来知乎提个问题啊,很多大佬就会给出像样的答案!

除了刷视频,看书也是一条很不错的学习路线,关键是要能够找到合适的 Java 书单。

01、入门

入门看《head first Java》和《Java 核心技术卷》是最好的选择。注意跳过 Swing、AWT、Applet 这些章节。

02、进阶

《Java 编程思想》这本书确实没得说,质量很高,但需要放在 Java 入门后再去读,这样才能真正地去理解思想。很多没有足够编程基础的同学,盲目自信,直接开啃这本书,然后他们发现,啃得很痛苦,这就是因为没有根基的原因造成的,就像没有学会走就开始跑一样,摔得很痛。就像我一开始那样。

《Java 编程思想》不仅教我们怎么做,还告诉我们为什么要这样做,这才是 Java 这门编程语言的精髓。不过,《Java 编程思想》出版的时间是 2007 年,已经十多年过去了,虽然经典,但避免不了过时。但幸好,有《On Java 8》,这本书的作者就是 Bruce Eckel,即《Java 编程思想》的作者。事实上,《On Java 8》就是《Java 编程思想》的第五版,第四版用的 JDK 还是 1.5,《On Java 8》用的 JDK 已经升级到了 Java 8。

LingCoder/OnJava8

《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。


《阿里巴巴 Java 开发手册》这本小册子虽然只有几十页,但讲的主要是一些典型的开发规约、编程规范、以及最佳实践,已经成为业界普遍遵循的开发规范。最新版是嵩山版,封面就有一个扫地僧,唉,这就厉害了呀!

对于程序来说,如果具有并发的能力,效率就能够大幅度地提升。对于程序员来说,如果精通 Java 并发编程的话,挣钱能力就会大幅提升,这话真的不是调侃,而是良心话啊。


Spring 是 Java 平台的一个开源框架,为基于 Java 构建的 Web 应用程序提供了大量的拓展支持,推荐《spring三剑客:微服务实战 Spring实战(第五版)第5版 Spring Boot实战》

1、Spring 能帮我们根据配置文件创建以及组装对象之间的依赖关系。
2、Spring 面向切面编程能帮助我们无耦合的实现日志记录、性能统计、安全控制。
3、Spring 能非常简单地帮我们管理数据库事务。
4、Spring 能与第三方数据访问框架(如 MyBatis、JPA)无缝集成。
5、Spring 能方便的与 Java EE(如 Java Mail、任务调度)整合。 ——摘自图书介绍


作为一名 Java 程序员,MySQL 必知必会啊,推荐《高性能MySQL》

然后是 MyBatis,可以直接看官网。

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 ——摘自 MyBatis 的中文网

03、深入

《深入理解 Java 虚拟机》这本书牛逼到什么程度,几乎所有写 Java 虚拟机方面的文章,没有一个不在文章最后注明:本文参考字周志明老师的《深入理解 Java 虚拟机》。假如这篇文章最后没有注明的话,那保不准是不尊重版权。


大家都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。


强烈推荐大家购买纸质版书籍哈。当然了自学比较苦逼,钱不是那么多,可以在 GitHub 上搜一些开源的电子书读一读。我给你推荐两个去处:

视频和书籍这两条路线我觉得就足够清晰了。我这里提醒大家一点,自学的过程切忌眼高手低,一定要大量的练习,把书中、视频中的代码完整的敲一遍,运行一遍,在练的过程中编程能力会大幅度提高。

这就像我们手头有一本武功秘籍,能不能练好的关键,不是看,而是练,一套亢龙有悔练它十年,一招就可以打败绝大多数的高手。

如果不练习的话,不去主动思考的话,书本的知识,视频中的知识,永远都是作者和讲师的,不是我们自己的。

自学能力强的,或者学历本身很好的,是会有优势的,自学多年后仍然能到大厂工作。大厂不会看你是不是科班还是非科班。学历不好的,自学能力一般的,像我这种,也不要自怨自艾,去不了大厂,去外企,去国企,去小厂,我觉得也是不错的选择。

总之,我认为是有出路的,不是没有出路。任何一门编程语言学起来都会有难度的,并不会一帆风顺,即便是有老师带,有同学一起学,仍然会遇到很多问题,关键就看谁能坚持得住。

每天早起看书,然后上机练习,然后晚上刷视频,入了门后,找点项目练练手,比如说我一直推荐的 vhr 和 mall。坚持个一年半载,就会看到显著的效果。

像胡峰老师,大三才开始学编程,似乎已经算是晚的了,但依然取得了耀眼的成绩,拿了不少大厂的 offer,还出版了书籍。

学习从来不会主动的选择人群,Java 也不会主动地选择科班或者非科班,它没有明文规定,非科班的不允许学。主动权还是掌握在我们自己手中。

当然了,学习 Java 之前,按照我现在的想法来看,不建议一上来就学习 Java,像我当初那样,会有一些吃力,可以像胡峰老师那样,学一下 C 语言,打下一点基础。

不知道 C 语言怎么学的话,可以看我上面的回答,很详细的列了学习计划。

重点!

重点!

重点!

Java 学到一定程度后,在找工作之前,一定要刷一刷面试题!我 2014 年从苏州回洛阳的时候,投了几份简历,我以为去面试的话,肯定轻松拿下,结果吃了好几个闭门羹,因为我从来没有刷过面试题,虽然工作经验带上实习那年已经有了三年,但对一些面试题真的是完全不会。

强烈推荐大家看一下《Java 面试突击》第四版,我的好朋友 JavaGuide 整理的,光看目录就能感受到,囊括几乎所有的 Java 面试题,内容还特别详实。GitHub 上星标有 98k 了

有志者事竟成,破釜沉舟,百二秦关终属楚

苦心人天不负,卧薪尝胆,三千越甲可吞吴。

这句励志的对联背会吧不要犹豫,既然在我这拿到了答案,就放下心中的疑惑,不要去想自己是不是科班出身,没关系的,只要按照这条学习路线执行下去,你一定会脱胎换骨!

加油,祝大家好运!

留个小尾巴,如果觉得内容对你有所帮助,请给点个赞吧!也可以顺带关注下我 @沉默王二,学习路上我们一路相伴!

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜