最近经常在知乎收到类似『没基础,java 如何自学』、『怎么才能掌握编程』等等问题,再加上发现高中同学也在自学。有感而发,讲讲我的自学之路。

1.1. 大学

高考没正常发挥,考入一所二流的学校,当时分数也只高出录取分数线一两分,只能选择机械专业,当时分数如果高个两三分,或许可以上计算机专业,或许现在基础知识水平可能不一样,可是谁说的准那?

说回正题,大学前两年,跟大多数同学一样,基本在混,该打游戏打游戏,该逃课的逃课。但是期末的时候会去临时努力一把,最后也能取个好成绩。这里说一点,后来才发现有些同学原来期末的时候也不去准备一把,没办法这样也就只能挂科了。所以这里想说个观点,其实你只要稍微努力一点,其实就已经超过了很多人。

说说我们专业,跟计算机有关联可能就是『机』了吧。所幸,大一的时候还有一门 C 语言必修课。那时候其实对于编程存在懵懂的兴趣,曾想过学完 C 语言,然后成为一个黑客。可是学的时候才发现,才发现这门课是如此枯燥,而且你根本不知道学完你能干什么。书本只有练习题,老师也只是照本宣科。于是那时候也失去对这门课的兴趣。

1.2. 大三

大三那年对于我人生是有意义的一年。

那个学期,穷的没办法,出去兼职,赚到人生第一笔工资。并且用这部分钱,报考驾校。也是这笔钱,让我意识到原来赚钱是如此不容易。

大三那年,因为面临毕业的压力,不得不去思考将来从事什么。静下心来思考分析未来到底应该干什么。我想过从事本专业的工作,但是本专业无非就去工厂工作或者在研究院从事制图工作,我根本没兴趣。真的,我那时候真的十分厌恶 CAD 制图。

这里真的感谢我女朋友,是她给我提了个思路,让我去尝试学习下 Java。哈哈,感谢某度,搜索 Java 的时候弹出满屏广告,一点进去就看了 XXX 在某培训班毕业,成功进入大公司,拿到很高工资。的确,这个真的很有吸引力。于是踏上自学之路。还记得是大三寒假的时候,在家敲下第一行代码。

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

说说那时候怎么自学的。我在某自学网站上找到 Java 基础的视频课程,真的很老的课程,录制于 2012 年。给你们看看当时的课程目录。

接下去每天的生活基本上就很枯燥,除了上课,就是学习,偶尔还出去兼职一下。那时候基本就在学校图书馆学习,没事就往我们学校四楼去借 Java 相关的书籍。那时候也不知道那些 Java 书籍比较经典,所以就根据标题挑书,于是就挑了『Java 入门到精通』,『21天带你学会 Java』这类书。当时看到这类书就觉得标题十分吸引人,那时候就觉得看完这些书就能速成 Java。但是现在回想,这些书真的十分坑爹,基本上就是网上资源抄抄改改,误人子弟。各位读者如果想买书的话,千万别买这类书籍。

时间来到大三那个暑假,基本上学完了 Java 基础,最后还跟着视频教程完成一个贪吃蛇的小游戏,那时候真的感觉很有成就感。

学完 Java 基础,接下去就面临着学那个方向的问题。那时候其实也没多考虑,就直接选择 Web 后台开发这个方向。在淘宝上买了一套某培训班的培训课程后,就跟着其进度学习。这个阶段,已经感觉到不像 Java 基础那时候简单了。学的东西不仅难,而且多,基本上各个方面都需要学会。还记得这个课程,刚开始先教 Html、CSS、JavaScript,后来就开始教 SQL 语法,最后开始 Java 的 Servlet 等。那时候基本上每天白天仔细看课程视频,然后晚上一行行去输入练习,尽量保证当天把课程都练习一遍,不拖到明天。但是有时候就是学完这个,又忘了上面或者说就是想不到这种解决办法。这时候我就会再看下之前课程,看下到底哪个点卡住,然后思考下为什么没想到。

1.3. 实习

大概在 11 月的时候,基本把课程学完了。学校里又没有什么课程了,呆着学校又没什么事,也就想着出看看能不能知道实习。

那时候由于刚自学完,对于自己的技能根本没有信心,也不知道企业开发到底需要掌握什么技能。这就导致了那时候我心想只要找到实习工作就好,能开给我一些工资,然后能让进入学习就好了。

兜兜转转,不断在 58 赶集上找工作,找了一圈最终找到了一家公司招聘 Java 开发。面试官问了几个简单 Java 的基础问题后,然后就发 offer 了。

进入公司之后,我才发现这个跟自己想象的完全不一样。全公司后台开发就我一个人,而面试我的面试官,不在这个公司,在另一个市的另一家公司,在这公司挂牌一个开发经理职位。

那时候也不知道需求,就扔给我一套表结构设计以及一套他们以前开发好的后台代码,就让我模仿这个改改就好了。还记得那套框架由 easyui,struts2,mybatis,mysql 构成。每天的工作就是照着这块改,不会的就找搜索引擎。旁边的同事,基本上都是其他岗位,没有一个可以请教问题的。那时候也没有什么需求文档,基本都是某某经理拍拍脑袋想出来。在那个公司呆了两三个月,基本上没有什么收获,就像公司辞了职。

那个时候已经到了三月份,还有三个月就毕业了。那时候也很慌张,自己学校招聘会也去逛了下,但是根本没有看到 Java 相关的工作。偶然间在网上看到恒生,网易的春招的机会,抱着试试的想法,就选择报名。报名之后,了解到其笔试内容,发现很多内容自己很多根本没学过,比如操作系统,linux 知识。可是没办法啊,只能疯狂在牛客网刷题,疯狂补充这些知识。最后,两家公司笔试还是都挂了。。。。

等网易笔试完,已经到了四月。本地工作岗位,也已经基本找了遍,不是不要实习生,就是基本工资太低,低到什么程度那,有家公司实习每月就给 800 工资。

后来曾有个大公司来学校宣讲,听到最后意外得知他们还招聘 Java 开发,马上报名参加。接下来的笔试与面试都是跑到那个公司所在城市,最后拿到了这家公司的 offer。不过最后没有选择去,一是因为其毕业之后开的工资真的太低,才 3500,二是因为他们公司所在地方实在太偏僻了。

本地没办法找到工作之后,不得不去杭州找找机会。在拉勾了搜了一圈工作机会,终于找到几家公司还在招收实习生,广投简历,收到几家公司的面试机会。那一天去面试的时候,正好也是网易春招面试,看到一个个坐着网易大巴去面试,真的十分羡慕。那一天,面了两家公司,最后一家公司发了实习 offer。说说那时候实习工资吧,一天 160,那时候真觉得好高,真觉得应该早点来杭州。

进入公司之后,分配了个师兄带我。这个师兄虽然话很少,但是在他身上学习到了很多,第一次感觉到那种技术开发的范围。在公司实习大概一个多月,基本上用到也是之前学习到东西,可以说复习巩固以前学的知识。5 月份就回学校报到,然后毕业答辩,顺利就毕业。后来在这家公司也顺利入职,真正进入开发这一行。

1.4. 总结与想法

看到这里想必你们也看完我的自学之路,下面也谈谈我这一路的想法。

  1. 看到很多朋友问,我现在学编程来的及吗?我想说的是,你什么时候学编程都来的及,但是你自己需要评估你自己到底能不能静下心来花下时间来学习
  2. 学习编程需要什么基础?学习编程最好是理工科,但是你如果不是,也没关系,只要你能坚持下来,也能学好。我认识好几位同事,也是文科专业转行过来,有一些大牛,甚至高中没毕业。但是你如果对这个没兴趣,最好尽早放弃。兴趣是很好的导师。
  3. 学习编程,需不需要去去培训班?如果你自己没有自制力,或者想快点出师,可以选择培训班。因为在培训班,你会感受到这种学习的范围,培训班最后也会叫你一些面试技巧什么的。但是建议你报班之前,之前尝试先把 Java 基础学完。如果 Java 基础都学不下去,那你最后报班学习效果也不好。但是不要片面看了培训班的广告,或者被一些销售以毕业后高薪洗脑后,就糊里糊涂就报班了。自己千万要考虑好没,再去选择报班
  4. 现在我应该学习 Java 后台,安卓,Python ?其实到底该学习那个真的不好给建议。但是我可以教你们一个方法,从事情的价值出发,列一分优缺清单。把安卓,Java后台开发,Python 这几个优缺点列一个表格,然后 -10 到 10 打一个分数,最后把每一列相加,得出一个最终分,选择那个分数最高的。
  5. 学完结束之后,找工作一定要去一线城市,北上广深杭。为什么这些城市那?因为这些大城市,机会多,薪资也较高。虽然相对而言,生活压力也大一点。但是相信我,在一线城市你生活工作几年,你的视野格局会提高很多。但是如果你前几天在一些二线城市,然后由于薪资水平,再想去一线城市,这样就难很多。
  6. 对那些还在校正在自学同学们讲讲,你们在校如果时间很好多,一定不要只学 Java 相关知识,算法数据结构等也不能丢,这个真的很重要。
  7. 如果你现在已经自学好,正在要找工作。请充满信心,不要妄自菲薄。一次两次失败并不代表什么,总结前几次的失败,这也能更好认识自己。

天下每天白吃的午餐,同理也没有速成的大法。希望在学的各位同学,静下心来,好好练习代码~

聊聊我的 Java 自学之路的更多相关文章

  1. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  2. 【转】Java自学之路——by马士兵

    作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...

  3. Java自学之路(新手一定要看)

    Java自学之路(新手一定要看) 转自尚学堂 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游 ...

  4. [感悟]马士兵Java自学之路——(精华版)

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  5. 我的Java自学之路

    其实在转正之后我就想抽个时间好好的梳理一下我的 Java 上车之路 ,但是一直拖到现在 ,因为有学弟问到 ,所以也就给了我动力 .毕竟答应了人家的事要做到 . 首先要有相应的背景介绍 ,不然说个毛线啊 ...

  6. java自学之路-开篇

    开篇 想写一些java自学文章的心思起好久了,也在心里规划了一段时间,今天终于开始正式付于纸上.接下来要写的内容从java基础开始,一步步到正式工作用到的技术,整个体系适合java初学者自学.内容可能 ...

  7. Java自学之路(小白向)

    首先学习一门语言无非就受教与自学两种方式,本博文针对自学(穷逼没钱报班,大学又不是计算机专业,只能自学啊) 开个玩笑,其实有很多人是适合自学的,下面介绍. 一.要充满自信我自己就可以学好(够面试用的入 ...

  8. Java自学之路---DotCom

    引言 我从接触编程以来,一直是一个C/C++程序猿,因为我喜欢编程时,那种接地气的感觉,认为只有自己管理内存的使用,心理才踏实.但随着工作中不断增加的见闻,不断的从博客和源码中获得新的见解,我发现这个 ...

  9. Java自学成长路线(转载)

    JAVA自学之路 一:学会选择  决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等.  JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅 ...

随机推荐

  1. mongodb的几种运算符

    ①比较运算符: 等于:默认是等于判断,没有运算符 小于:$lt(less than) 小于等于:$lte(less than equal) 大于:$gt(greater than) 大于等于:$gte ...

  2. NodeJS NPM 镜像使用方法

    每次npm的时候,走国外的镜像,非常的慢,可以配置一下 通过改变默认npm镜像代理服务,以下三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候不用重新配置. 通过config命令 ...

  3. Deployment Characteristics of "The Edge" in Mobile Edge Computing

    移动边缘计算中的“边缘”部署特性 本文为SIGCOMM 2018 Workshop (Mobile Edge Communications, MECOMM)论文. 本文翻译了论文的关键内容. 摘要 移 ...

  4. hadoop基础操作

    通过hadoop上的hive完成WordCount 启动hadoop Hdfs上创建文件夹 上传文件至hdfs 启动Hive 创建原始文档表 导入文件内容到表docs并查看 用HQL进行词频统计,结果 ...

  5. Javascript高级编程学习笔记(85)—— Canvas(2)2D上下文

    2D上下文 使用2D上下文提供的方法可以绘制简单的2D图形,如矩形,弧线和路径; 2D上下文的坐标开始域<canvas>元素的左上角,原点坐标为(0,0) 后续所有操作的计算都基于原点,x ...

  6. [Swift]LeetCode338. 比特位计数 | Counting Bits

    Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the ...

  7. Kubernetes---pod--重启策略

    restartPolicy: Always: 默认 , 总是重启 OnFailure : 错误事重启 Never: 从来不重启 Default  to Always:

  8. Python面试真题第四节

    81.举例说明SQL注入和解决办法 82.s="info:xiaoZhang 33 shandong",用正则切分字符串输出['info', 'xiaoZhang', '33', ...

  9. javascript之reduce()方法的使用

    以前看到reduce方法,总是看得我头皮发麻,今天无意间又遇到他了,于是学习了下,接触之后,觉得这个方法还挺好用的,在很多地方都可以派上用场,比如,数组中元素求和.数组去重.求数组中的最大值或最小值等 ...

  10. 用了 HTTPS 还不安全,问题就出在低版本 TLS 上

    HTTPS 加密时代已经来临,近两年,Google.Baidu.Facebook 等互联网巨头,不谋而合地开始大力推行 HTTPS, 2018 年 7 月 25 日,Chrome 68 上线,所有 H ...