如何避免高不成低不就? 疫情当下Java学习路线分享
本文经过作者授权,于2020年4月19日被《中国图像图形学报》收录,
收录链接 https://mp.weixin.qq.com/s/W5__lzHSzta934sj87c40A
在此非常感谢《中国图像图形学报》!
说明:笔者重新规划了博客方向,想更详细的讲解微信小程序的所有技术内容,本文于2020年5月24日已做修改。
欢迎一起合作共赢,作者愿意写杂志,写书,贡献自己的一份微薄之力!
没有什么“高不成低不就”的专业,只有“高不成低不就”的人。
就在前几天,一次偶然的机会,跟我朋友见了一次面,和他聊了聊就业的问题。
他是我曾经的高中同学,他偏文,我偏理,从而形成了互补。就这样,我们互帮互助,愉快的走完了高中那三年。
可如今,我和他同样是计算机相关专业,只不过我就读于某个不知名的省内三本,而我朋友就读杭州的某个专科院校。
当我跟他谈起了就业问题,他显得很自卑。他跟我说了好多人生哲理,归纳起来就是六个字 —— 高不成低不就。
这话读起来,我不太懂,我也不太好评价这个敏感的热题。我不站立场,我只站事实,事实只有一句话,就业门槛只会越来越高。几十年前的本科学历,和当今的本科学历,含金量已经是不一样了,我就当理解为:专科毕业的同等计算机学生就业,相对于本科,会更加困难。
于是我对他说:高不成低不就,往往是对自己和IT行业没有一个完善的认知,可以先去找一个企业实习一段时间,也算是学习一段时间,然后很快就懂得自己的水平了。
可是话说回来,三本就很有优越感吗?不。有大把的985、211和研究生在抢你饭碗呢,他们出身比我们是好多了,更有可能的是,人家学的更扎实,技术更厉害,一个专科生有什么资格低不就?
如今疫情当下,广大学生叫苦不迭。高三初三学生,非但家里马不停蹄上网课,高考延期一个月,顶着前所未有的自学式高考压力,同理随着高考的推迟,高考后假期也少了半个月;本大四专大三毕业生,不但顶着就业难的压力,而且没法实习,没法写毕设;但凡还有点上进心的大学生也会感受到,网课和实际课堂还是有所差距的,网上教学更考验一个人自我学习的能力。我们将心比心,如果你是一位大一学生,对大学充满了憧憬,读了半年书,过了一个假期,就大二了?如果你是一位大二学生,转眼间读了半年书,过了一个假期,就大三了?
时间过得非常快,尤其是疫情的这段宅家时间。我们应当如何抓住这个时机,充实自己,反超自己的竞争对手?
本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/105198163 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本段内容,尤其是脚本之家、码神岛等平台,谢谢配合。
一:笔者个人经历
首先,先来谈谈我的经历,关于学习方法这个问题,也有好多朋友问过我,为什么在同样的学校,同样的老师,同样的教学环境,你能成为大佬被老师看重呢?
其实我也不是什么大佬,作为一名计算机专业普普通通的学生,我在高中甚至没有选技术、物理,而为了刷高高考分数,选了化学、生物、政治,对于高中学的VB也是一言难尽,那时候只是简单复制一下代码,if语句都不一定自己会写。就这样,笔者迷一样的进了某本科的计算机专业。
这个专业的名称叫做“电子信息类”,到了大二可以自主选择分流到 计算机科学与技术 、 电子信息工程 、 网络工程 这三个专业。大一刚开学,我们只有两门专业课——《C语言程序设计》、《软件技术基础》(也就是办公自动化 + PS)。那时候听从了老师学长的建议,参加了ACM社团和MCU社团,ACM也可以理解为编程中的算法领域,MCU可以理解为AI人工智能、单片机领域。其实当时我也很迷茫,我就想试一试,在我的理解中,ACM象征着计算机科学与技术,MCU象征着电子信息工程,而网络工程听学长学姐们介绍,口碑比较差,所以没则么考虑。
在开学初,有幸也找到了几个志同道合的朋友,因为教室离寝室比较远(单向大概1500m+),课间回寝室不太方便(当时也没小电驴),所以在课间就组队去机房刷ACM的算法题,什么if、while、for语法,都是在那时候生根发芽的。现在回想起来,如果只是编程的话,其实多做题就好了,没有一定的量,都是假的。量变才有质变,有一定的量之后,我们才可以谈方法、谈思维、谈规律。
接着,我被两位学长带着参加了ACM市赛,躺了一个二等奖,比赛的时候我负责翻译英文,提供解题思路,那个时候,我就有了意向,那就是深入发展ACM,加入ACM实验室。下图是我珍藏多年的老照片(原相机):
几个礼拜下来,在ACM社团的期中比赛中,拿了个小奖,也算是小有成就吧,接着就是实验室选拔赛,面试,最后如愿以偿成功加入;而在MCU社团中就比较尴尬,动手实践能力比较弱,参加的MCU智能车比赛,比赛前最后几个小时,车轮子还反着转,只好和队友一起遗憾退场。加入ACM实验室之后,在确保文化课正常的情况下,对ACM的那些基础算法,进行了系统的学习,比如快速幂、01背包、GCD、二分、最短路等等。所以大一的那个时候,好好学习对我来说,就是学算法,在OJ上做题。在大一结束,HDU已经AC了200题左右。
大二对笔者来说,跟大一相比,没很大的变化,还是以刷题学算法为主,只是接触的东西更加多了。
比如参加了各种各样的竞赛,比如ACM程序设计竞赛(省、市、院),物理竞赛,数学竞赛,CTF,羽毛球竞赛等等,不过我还是觉得,如果不是特别需要能力分,要尽量参加和专业正相关的竞赛,比如ACM、服务外包。
比如学习数据结构,了解了队列、栈、二叉树、图,以及学会分析程序的时间复杂度和空间复杂度(这对于ACM非常重要),另外听从老师的推荐,参加了2018年12月的PAT考试(证书见下图),还突发奇想地参加了二级C语言考试,虽然没什么含金量,也算是一种经历吧。
比如考驾照,从科一到科四,整整六个月,夏天的汗流浃背,冬天的瑟瑟发抖,是大学四年,乃至人生的难忘回忆。
比如接触了Java,摸索JDK是什么,eclipse则么使用调试,如何实现HelloWorld 和 a+b,以及开始使用Java来打ACM,即Java和C++的等价转换。其实那个时候也不知道Java是什么,就是感觉很牛逼的样子。后面随着课堂的教学,结合MOOC和博客,对Java进行了系统的学习。
还有开始去图书馆借书,学习基础网页制作,微信公众号,mysql数据库,Android开发,模电数电焊电路板,台式电脑的拆机组装,配置局域网网络等等,不求有多精通,只求一定要会。
如今大三了,则开始接触一些主流语言,以及这些编程语言所配套的框架。比如前端JavaScript,以及对应的Vue、Ext,后端Java所对应的SSM、SpringBoot,以及额外的微信小程序、Linux等等,然后自己动手做几个开源小项目。上课时老师所讲的是Ext框架,期末也是交一个Ext作品。我做的Ext作品界面如下图所示:
二:学习方法分享
不少读者问我,Java要则么学?学到什么程度?有没有思维导图?
我的回答就是:没有那么绝对,适合自己的才是最好的。
至于学习方法,我的大概就是 MOOC听课 + 菜鸟教程补充 + 动手实操 + 博客答疑 。
MOOC听课,指的是参与老师的课堂,我们可以百度搜索MOOC,即可以找到MOOC主页。当然不局限于MOOC,比如网易云课堂也是可以。
菜鸟教程,里面几乎包括了所有我们需要学会的知识点,对于上课没有讲到的内容,可以进行查漏补缺。当然不局限于菜鸟,还有 w3cschool 等其他,也都是不错的。
动手实操,指的是学完之后,要加以实践。还记得高中哲学的知识点:实践是检验认识真理性的唯一标准,看懂了不一定就是会写了,对于教学中的每一个demo,要自己跑一跑,并且稍加改动,理解代码。
博客答疑,指的是争对编程过程中遇到的疑难问题,可以借助搜索引擎,进行面向搜索引擎式的编程。
三:笔者个人建议
(1)如果你是真的想有所成就,就必须要下几点决心:
- 卸载手机和电脑上的游戏,和不必要的游戏(开黑)好友保持距离。
- 早睡早起,晚10早7,建议定个闹钟。(7点02分刚可以收蚂蚁森林的能量)
- 每天保证至少3小时的自我学习时间,日均至少50行的代码量。
- 每天睡之前,计划好明天学习什么,并且争取保质保量完成。
(2)至于Java的学习路线
- java的基本语法、封装、继承、多态等
- java的IO、多线程、集合、反射自定义异常
- mysql 建表、删表、改表、查询数据、修改数据、删除数据、增加数据
- java和数据库联系起来 , java的 jdbc操作(增删改查)
- html+css能够做一些最简单的样式
- 接触javaWeb,配置tomcat
- 学习掌握servlet、jquery、jsp、ajax,自己搭配值mysql+tomcat+servlet+jdbc+jsp+ajax自己去做一些小页面
- 开始去了解maven
- 试着了解mybatis
- 集成Mybatis\Spring\SpringMVC
- 学习SpringBoot
- Dubbo\springcloud\netty\zookeeper\redis\jpa\shiro等等技术
目前笔者进行到第 11 步,并时不时的去温故前面的知识,希望对大家有所帮助。
如果有什么好的建议,欢迎在下方浏览,我们一起探讨,共同提高!