新手如何自学编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手如何自学编程相关的知识,希望对你有一定的参考价值。

要熟悉编程范式,尤其是面向过程及面向对象这两种;要广泛阅读,多用编译器及IDE(网上有许多免费的)练习编程。
选择一种编程语言。初学者一定要从主流语言开始学习,比如中级语言C和C++。这两种语言是任何一名合格、专业的程序员都必须掌握的,因为它们称得上是软件开发界的主流。
但是最好不要从高级语言开始学,如Java,因为这些语言对于初学者来说难度未免太高(高级语言可以以后再学,但是C语言和C++应该作为你的基础)。
然而对于完完全全的门外汉的来说,可能C和C++都有点困难,那么你也可以从Python开始学,这种语言被大家广泛认为是适合初学者的。
参考技术A

新手如何自学编程:

工具/原料:一本基础类的编程语言书、一台可以上网的电脑(相应的编程软件)。

1、选择一本相对基础的编程语言书,学习的的同时记得对基础的语法进行标记和注释,加强自己的理解。像JAVA入门到精通,编程思想,JAVA核心技术。

2、通过编程软件,将书上的基础知识逐一进行试验。编程是一门应用的课程,知识看书本内容浅薄,应用过程会发现很多问题。

3、通过网上的公开的教学视频进行学习,像慕课网,小甲鱼,腾讯视频等一些基础视频就非常不错。

4、如果你已经能熟练的掌握一些JAVA语法,你可以在网上找一些经典问题和方法进行训练,如汉罗塔问题,约瑟夫环问题,排序问题等等。

5、接着你可以尝试一些小的实例,试着编一下小的实例,像我们经典的小游戏,贪吃蛇,俄罗斯方块。

6、在编程过程中,出现的问题应该要及时做笔记,记忆是有期限的,经过不断的强化记忆,打好扎实的基础才可以不断提高。

万字长文分享,新手小白如何自学Java(方法+步骤)

我准备从思想方法和具体的学习步骤上给大家聊一下我的做法,希望对大家有所帮助!

看完本篇文章你会得到如下收获:

  1. 学习Java的方法
  2. 学习Java的具体步骤
  3. 大学四年如何高质量度过
  4. 如何把我大学时光自学编程
  5. 对培训的正确认识

大家存在的问题

「为什么说自学编程很难?」 因为编程,一直都是一件有门槛的事情,不然你以为为啥别人拿20K,你只能拿5K啊……

先看大家在自学编程中遇到的一些典型问题:

「1、学了就忘,知识记不住,学了等于白学」

「2、越学越感觉自己啥也不会」

「3、越学越觉得知识太多,而且杂乱」

「4、觉得自己付出很多,貌似没啥收获」

「5、一旦遇到问题,无从下手」

「6、陷入深深焦虑」

「7、无限循环」

以上都是大家在自学编程中会遇到的一些非常典型的共性问题,为什么会这样,除了上面说的编程本身就是一件有门槛的事情之外,另外一个重要的原因就是,这个行业啊,本身就是一个知识密度大且问题繁多,而且技术发展更新迭代非常快,再加上现在卷的厉害,你稍不留神,你就落后了!

之所以出现上述种种问题,一句话就是「你没有属于自己的方法」


为什么我觉得方法很重要

「我一直觉得自己是个普通人,所以一些共性问题我基本都会遇到」

我不觉得自己有什么过人的天赋可以让我轻轻松松去解决工作学习和生活中遇到的某些问题,就比如编程自学这块,我也是遇到好多的问题,其「过程真的是无比痛苦」,想必一定有感同身受之人!

那面对这个情况,我从很早就产生一个想法,「在我学习当中,我必须给自己找一个方向,定一个路线,而且是一个正确有效的路线,然后我可以按照这个方向,尽管去努力就好了」

在我是个不怎么聪明且没有天赋的情况下,我必须有一个可以践行的准则以及指导我前进的方向,否则,我觉得我的人生会很乱,会浪费很多时间也不会有些什么明显的进步!

这就是我在学习编程中一直很重视学习方法的原因「我觉得有了学习方法之后,学习会更加的明确,也会对未来更加的充满希望」

尽管我的学习方法可能并不是很正确或者存在不少的瑕疵,但是这些都不重要,只要有了,我觉得就有了方向,我就可以在这个方向上只管努力就行了,

而且随着自己的认知不断升级,「我的这个方法也会不断的更新迭代」,但是如果没有这个方法作为根基,那我想,我的学习会是一团糟,就好比那无头苍蝇一般……


你相信人和人是有智商差别的吗?

慢慢的我相信了,而且有的人真的让你感觉像神一样,我们学习Java的都应该认识一个神级人物,就是这位:大名鼎鼎的“Doug Lea”,就是他,写了Java中的并发包,你要是仔细了解他之后,你真的会发出一声感叹:

人和神是不同的,有的时候不得不承认自己的普通

在编程学习这件事情上,有些人真的是特别的强,你不服都不行,我就知道很多比我年龄还小的,人家就是架构师,资深专家,被誉为天才少年什么的,不服?不行啊!

在你还在为知识学不会发愁的时候,人家已经是精通各种底层原理了,你怎么比,我曾经咨询过一位这样的大佬:

“请问你是如何解决知识遗忘的问题呢?记笔记吗?”

“不,我从不记笔记,忘了就再看看,用的多了就记住了,用的不多的记它干嘛”

说的对吗?我觉得很有道理,但是,我知道自己达不到这样的层次,或者说很难去这样做,所以,我还是习惯去记笔记,

「把一些知识学习之后经过自己的思考重新整理梳理,再用自己的话叙述出来,记录下来,我觉得这对我非常有帮助,而且可以帮我解决知识遗忘的问题!」

在理解了人和人始终存在差别之后,我发现,选择适合自己的才是最重要的!


五个步骤学习Java

那接下来我就重点介绍那么久以来我总结的学习步骤,希望能帮助大家更好的自学编程(Java)!

有些人是不太相信有什么学习方法可言的,觉得只是唯手熟尔,而且认为方法论的东西是一件很虚的东西,这个我不反对,我一直觉得,任何一件事情,都会存在反对与支持,这个太正常了,我甚至觉得这是一件好事!

所以,接下来的分享可能更加适合那些对“方法”二字没什么偏见或者抵触的人!


以下是我整理总结的自学编程的步骤,无论你是学习Java还是python,你都可以按照下面的步骤去操作

第一阶段:揽全局

默认你是完全零基础,新手小白,找本书,或者一套视频教程,或者一套Java自学手册,

比如庆哥写的《写给新手小白的Java自学手册》,开始学起来,跟着学就对了,先学完一本书,看完一套视频教程再说,其他的都是在浪费时间!

同时学的时候一定要进行教程式笔记记录,否则你的学习将毫无用处,

不懂教程式笔记的一定找庆哥请教,对你们太重要了!(教程式笔记后面会说)

以上就是你作为一个完全零基础的新手小白,啥也不懂的操作步骤,

别想太多,直接开干,喜欢阅读。那就买本书,喜欢看视频就找套教程,别管三七二十一,先学一遍再讲其他的,很多人都是思想上的巨人,行动上的侏儒,行动起来才最重要~

第二阶段:重实战

我在初期自学Java的时候就陷入了这样的问题,就是只学理论,实战几乎没有,导致学习效果很差,在进行完第一阶段之后,记得,直接怼项目,查漏补缺,发现知识盲点,然后去攻克,这样进步才快!

第三阶段:读源码

这一阶段是专题深入式的学习,就是把一些高频重点知识点单独拿出来进行专题式攻克学习,要做到的就是不仅知其然还要知其所以然

说白了就是,之前学习就是简单知道是个啥,怎么用,但是现在这个阶段要增加难度了,需要知道个为什么了,比如之前咱们学习集合,就是只是到是什么如何使用,但是现在你要去分析源码,弄懂原理了~

第四阶段:补内功

这一阶段就是学习计算机基础知识了,这个知识的重要性不需要多说,学就对了,万丈高楼平地起,勿在浮沙筑高台!

主要是如下知识:
1、数据结构
2、算法
3、设计模式
4、计算机组成原理
5、操作系统
6、计算机网络

第五阶段:成面霸

相信我,面试这一关值得你花心思去学习!这一阶段就是主要去花时间学习面试相关技巧和经验,如何在面试中发挥自己最大的优势,可以说这里面是有很多技巧的,如果你不知道的话,很多时候你去面试是要吃亏的~


好了以上就是学习Java的具体步骤了,当然,限于篇幅,我只说了精华,其中有不了解的,可以找庆哥详细探讨!

再次强调一下,以上说的是总的学习步骤,但是我发现还是有很多人看了不知道怎么做,这里简单解释一下,

「以上五个具体步骤是告诉你该学习哪些内容,但是需要你自己去找学习资料的」,比如第一阶段揽全局,你得去买一本书或者找一套视频教程来学习,第二阶段需要你自己去找相应的实战项目去学习,

懂了吧,告诉你怎么学习了,你得自己找资源去学习啊!

现在这网络时代,最不缺的就是学习资源了,「千万不要想着别人什么都给你准备好,除非你愿意付费!」


系统化学习和教程式笔记

那接下来我将重点解读下我所践行的学习方法,总结起来就一句话:

系统化学习和教程式笔记

看起来很简单,理念需要仔细理解,否则你是get不到真正的点的!

系统化学习

我相信现在你一定感觉到,我们日常生活中的碎片化时间越来越多了,我不知道你是怎么利用这些碎片化时间的,首先说明一点,我认为,碎片化时间是不适合学习的!

为了让大家有个更清晰的认识,我还是举几个碎片化时间的例子吧:

1、吃饭的时候,尤其在外面吃饭的时候

2、等车,坐车,排队等

3、上厕所……

4、睡前

5、放空

6、……

OK,有这个场景概念了吧,那这些时间我认为是不适合学习的,对于这些时间,我通常这样利用:

「1、刷抖音」

「2、看文章(技术文章一定看自己学过写过的,其他的不看)」

咋样,我的利用方式和你一样吗?有的人会说,这样的时间,我一般会用来刷剧,其实我之前也会这样,但是慢慢的我发现刷剧这件事情也是需要系统化时间来进行的,否则,幸福感太低!

那说了这么多,啥是系统化学习呢? 其实对于系统化学习这个概念,网上也有不同解读,可能我这个是最普通的了,要说系统化学习,需要先说说什么是系统化?

对比之前说的碎片化时间,这里的系统化我指的是就是那些系统化的时间来说的,「所谓系统化的时间就是指的你有可自由利用的一整块的时间,

我通常将其限定为最低一小时,也就是说在这一小时里你可以想干什么就干什么,你是可以完全自由支配,不会有人来打断,可以持续利用完这一小时。」

那以上是针对时间而言的系统化,那系统化的学习是怎样的呢?这个要拿碎片化的学习来对比,**什么是碎片化的学习呢?**比如,突然看到一篇讲解CopyOnWriteArrayList,然后你就去看看,然后过了一会又看到讲解IOC的文章,好,再去看看,过了一个小时又在B站看jvm内存模型,晚上的时候又在学习分布式锁,我把这样的学习称为碎片化的学习

看似这一天你又是学习多线程,又是学习虚拟机,还有框架什么的,但是在我看来,没什么用,除了自我满足以外,你的学习并没有什么效果!「这种碎片化学习是我不提倡的!」

而且,如果上述碎片化学习过程中你没有任何产出,我觉得就是存粹在消磨时间而已!

❝⚠️想一下,为什么你会觉得知识学不完,知识多,学了就忘,学了很多感觉还是不怎么会?get到了吗?❞

「怎么办?你需要的是系统化学习!」

上面解释了什么是系统化时间,而这个系统化的学习指得就是「在系统化时间内去集中学习一个专题知识,直到你将其80%的常见知识点都学完!」

举例来说,就是在你可自由支配的这一个小时的系统化时间内集中去学习多线程的知识,当然,可能这一个小时你并不会学完多线程,你也不可能学完,但是你要记住,你的下一个系统化时间一定还是学习这个多线程!

另外,知识都是可以深入挖掘的, 很多都不是你一时间内可以完全掌握的,所以不要想着把所有的都全部弄懂学会,不可能也不现实,只需要掌握80%即可,就是常见的你得学会,怎么把握这个常见,看看面试题会问哪些,面试题上出现的你得搞懂!

总的来说,「什么是系统化学习?主要就是“系统化”二字,就是尽量整体,而不是被分散,时间要尽可能是一整块大时间,学习要是集中学习某一块知识,整体,整体,整体,get到了吗?

教程式笔记

脱离了“教程式笔记”的“系统化学习”啥也不是!

我这里介绍的系统化学习和教程式笔记必须是相辅相成的,少了谁都不行,这是一个完整的学习方法,那什么是“教程式笔记”?

说到底还是笔记,但是绝不是最低级的那种笔记,什么是最低级的笔记:

❝从书中摘抄或者视频中截屏然后粘贴到文档保存❞

我把这种笔记称作最低级的笔记,我发现有大量的人是这样记笔记的,不能说没用,只能说作用微乎其微,其实最好的一种笔记方式就是写博客,这里面有个很重要的点就是,博客一定是这样的:

1、对应的知识自己学过一遍

2、有自己的理解和思考

3、相关代码示例自己实操过

4、用自己的话叙述整理

5、写出文章,不仅自己能看,别人也可以看

这才是一篇好的笔记,也是一篇合格的博客,那我这里的教程式笔记就是这样的很多个博客组成的教程,还记得之前说的系统化学习吧,

在你进行系统化学习的时候,针对每一个知识点都要写一篇这样的博客,然后整理在一起,分本别类,形成非常系统化完整的一份笔记教程,就比如我学习Java写的这份30万字的教程式笔记:

还不懂什么是教程式笔记的就可以参考我这个来,你就看我这个笔记,是不是不仅仅是笔记啦,马上可以称为一本书了,非常的完整系统!

所以,系统化学习和教程式笔记是相辅相成的,必须在一起才能发挥作用!

在你进行了系统化学习和教程式笔记之后,你就可以更好的去利用碎片化时间了,怎么办,就是我之前说的看文章,而且是看那些你系统化学习过的知识点,为啥,一句话说明白 “「温故而知新,可以为师矣」”,咋样,get到了吧?

好啦,到了这里,本文的分享就结束啦,以上就是我这四年以来自学编程所有经验的精华总结了,不知道你读懂了多少!建议反复阅读!直到理解!


以上基本给大家介绍了自学Java要掌握的方法以及具体的学习步骤,接下来我给大家聊聊关于我的一些大学的事情,感兴趣的可以阅读一下,会对你的自学有所启发!

我虽是科班出身,但是也几乎都是自学,我的经历其实很平淡,但是也更加的真实,现在回想起来,我当初其实可以做的更好,于是分享出来希望对后者有所帮助!


我的高考

当初自己选择的这个计算机专业,那现在的你后悔了嘛?

至少我是“不”,我时常感叹啊,要不是当初自己选择了计算机科学与技术专业,我也许过不上现在这样喜欢的生活, 如果当初选择了车辆工程,如果当初选择了电子科学与技术…… 那现在似乎一切都不一样了……


我记得啥时候听过这么一句话,也不知道在哪看的,也不知道谁说的,大概意思就是;

编程这个行业最容易让人逆袭

也不知道对不对,反正现在的我是觉得的确给了我很多机会,熟悉我的老读者朋友们都知道,我就是那个需要逆袭的人,可是实际情况总是理想很美好,现实很骨干,我的确发现,逆袭不是一件那么容易的事情,不过,我一直在努力着……

我心底一直认为,计算机这个行业主要还是靠自学,靠自己,技术能力说话


我嘞,由于一些原因,导致上了高中后,成就就一直下滑,最后高考成绩自然就没啥可吹的了,而且我还复读了,唉,想起来,都是泪啊……

小时候,我的梦想是当个律师,就感觉穿上一身西装,那叫一个帅啊,后来觉得做个医生也不错,但是发现自己竟然看不了那种场面,甚至还有点晕血……后来电视上看到了黑客,觉得这个更加酷炫啊,ok,至此,我的目标似乎就清晰了……等LZ长大了,我要做个IT精英!

但是,埋藏在我心底了还有另外一件只有我知道的事情,那就是,我这个人很喜欢“车”!


所以后来我填报志愿的时候,我选择了“车辆工程”,哈哈,不过后来跟我爸说了,我爸说,这工作以后我估计干不了,想想的确没有计算机那种做办公室的爽啊,风吹不着,雨淋不着的……当时其实就是这么想的,很简单,所以决定还是改成计算机专业吧!

但是当时对计算机专业也不了解啊,而我身边真的也没有可以问的人,当时决定选择计算机专业,就去学习的相关专业介绍去看,当时就看到计算机科学与技术,心想没跑了,其他的看着也不想我想象中的计算机专业啊!

那就这个了,然后我就加了当时的招生老师,跟他们聊,后来就选择了这个,这里有个很滑稽的事情,就是当初还有个专业叫做“电子科学与技术”我当初对啥计算机专业真实一窍不通,所以当时对这两个专业真是分不清啊,不过从名字上看,觉得计算机科学与技术更加靠谱……

后来我就选择了“计算机科学与技术”!


我的大学

为什么说一个好的大学很重要呢? 我觉得吧,主要还是环境问题,真的,我当初上大学,几乎发现什么都没有怎么学习的人,什么在宿舍刷题,在实验室做项目,自学,这些,根本不可能,偶尔去图书馆,也是听说图书馆又好看的妹子……

所以,我一直强调,这是一个比例问题,好的大学出来的人更加容易找到好的工作,因为他们老早就知道自己该要什么,该怎么去做,而身边也有很多这样的人!

所以,我当初,大一大二那时候根本就没有什么去提升自己技术基础的想法,完全没这概念啊,那我大学刚开始都在干啥呢?

其实我觉得也不赖!

直接瞄准社团

我当时选好学校之后就直接去学校的贴吧去看了,那个时候我觉得,贴吧里应该能比较真实的反应学校里的一些情况,就是现在,我也推荐大家可以按照这个套路来,那个时候,贴吧都会有社团的招新,我就在那看啊,后来就看到了几个社团很感兴趣:

  1. 国旗护卫队
  2. 市场营销协会
  1. 模拟公司

尤其是国旗护卫队,那个时候看见贴吧他们的宣传照片,除了升国旗那医生装束很帅之外,另外他们每天训练传的作训服也很帅,那种军绿色的作训服,我很喜欢,可能我骨子里对军人这个比较向往吧!

后来入学报道,军训完结束就开始报社团了,我就报了上述三个社团,当时是每个社团报名费用20元,这个还是有很多可以聊的,比如这个钱最后是要上交学生处的,而且还有社联查账,这其中啊……

为啥我知道这些,那是因为我后来做了市场营销协会的会长……

记忆比较深的就是每天早晨国旗护卫队的训练了,每天早晨六点图书馆门前集合,然后开始跑操,然后开始上下蹲,继续抬腿跳,接着很痛苦的蛙跳,这个真的难受……记得刚开始每次训练完,都给我整的想吐……

基本上大一我都是在社团度过的,觉得生活蛮丰富多彩的,那就我现在来看,对于社团我是这样认为的:

要冲着下一届的会长去,真的只有当上会长以后,你才会收获更多,比如很多你不知道的事情,包括一些福利以及人脉等等,另外,加社团找对象真是一个很不错的选择哦!

其实,我更加建议,学计算机的咱们,别参加什么社团了,大一这一年,搞搞计算机基础它不香吗?关键当时咱就没这概念!

大学那点事

除去大一社团度过哪一年,大二开始,我就进了我们系实验室开始自学了,不过现在看来当时的确是浪费时间,好像也没学到什么,进入实验室以后,主要就开始跟着老师参加各种各样的比赛,回想了一下,大概得过这些个奖(说几个我笔记有意义的):

  1. 省二等奖,还上过报纸
  2. 全国二等奖,上过中国教育电视台(哈哈,虽然只有3秒的镜头)
  1. 全国优秀奖,第一次住四星级酒店

当然,还有一些杂七杂八的,主要是我上大学那会特别爱折腾,当时有段时间那是头脑发热,净想着创业,那个时候决定就学安卓的原因也是因为自己想做一款app,然后创业,现在想想……哈哈……

不过虽然都是瞎折腾,但是上述这些东西也为自己多多少少带来了一些福利和特权以及一些小小的知名度吧算是,反正我觉得自己大学过的很充实的,基本都是各种比赛,各种玩!

但是我现在看来,很多时候都是浪费了时间,这么多比赛对自己本身专业有帮助的几乎没有,所以我现在就经常对自己说,如果觉得现在自己的生活比较安逸,那就是在虚度光阴了,没有痛苦,很难有进步啊!

后来大三下学期的时候我就开始静下心来学习Java了,可是自己的学习效果并不是很好,也是没有自己的学习方法,也是浪费了不少时间!

最后还是以一个普通人的身份普普通通的毕业了,不过靠着当初那时候的一点自学,自己也是顺利从事了Java相关的开发工作……

但是自己依然存在巨大的不足……正如前面所说,我一直在努力着!任何时候都不要看不起一个努力的人!


大学四年最大的收获

熟悉我的应该也知道,我之前曾说过,我当初就差点选择不上大学,但是我也很庆幸,最后还是选择了上,也感谢我父母对我的支持,毕竟上大学的费用对我这样的家庭不是一笔小数目!

大学四年的时间,我觉得是转瞬即逝,时间过的真的是太快了,还记得当初上大学的时候和一些人聊天,总是听到他们说,还是大学时光好啊,要珍惜啊……真的,现在真的深有感触啊……还在读大学的一定要珍惜啊!

说实在的,大学四年带给我最大的收获就是思想上的改变,真正的技术学习倒也没那么重要的,反而是我对待很多事情的一些看法上,也可以说,大学四年,真的让我成长了,有了更多的想法,有了自己的目标,知道了自己该为了什么而努力,以及为什么努力了,明确了自己未来的方向……

我觉得这个是最重要的了,因为我发现,很多身边的人,上大学之前是什么样,毕业之后几乎还是什么样,那一份四年的打磨,毫无体现……当初迷迷糊糊的选择了计算机科学与技术,上了两年了还不知道计算机科学技术是干啥的,毕业了也不知道自己该何去何从……

四年的时间,你真的不该如此!

但是,我觉得我大学不应该这样过,我最终还是选择了普通的过法,我应该可以做的更好,最起码不会像是现在这个样子,应该会更好吧!


大学里按照这个套路学编程

大学四年,我应该这样度过

当然,我也建议你这样选择,同样,这也只能是我个人的看法,只希望对你有参考价值!

首先说之前,我现在在慢慢强制自己养成的一个习惯,或则说是在修心吧,就是尽量不要让自己与别人产生纠缠以及争论!

所以,我敢于分享我觉得任何有价值的东西!

对于大学,还是要说一个好大学真的很重要,因为有的时候一个好的环境里,即使你不怎么去规划自己,你可能也没有那么差,因为身边有很多你可以看到的正向的东西,但是金字塔尖的毕竟还是少数,

我相信,还是有很多和我一样,上的是一所普通的大学!

那么,大学四年,该怎么高质量的度过呢?我这里没有长篇大论,我尽量说一些简单的接地气的实在话!

今天之所以想说这些,还是因为,我当时上大学的时候根本就没有这些概念,如果有的话,我的大学四年会更加有价值!

首先我们要搞清楚一个问题,我们上大学是为了干啥? 去玩的吗?去找对象的吗?当然,现实中真的有这样的,但是,对于一个普通人来说,上大学的最终目的还是希望毕业之后能找一份好工作,挣钱,生活……对吧,这应该是大部分人的需求吧!

那找工作不是嘴上说说而已的,需要你有实力,所以无论你是选择什么专业的,请记住,你的大学首要目标就是提升自己的能力,那对于我们这些选择计算机专业的,以后要从事编程工作的,那就是要提升自己的技术能力了!

我这里也是以计算机专业为主去讲具体的操作步骤!记住,我们唯一的目标就是技术能力!其他的都是次要的!技术永远是第一生产力,需要我们第一个关注的!

想必很多人都会吐糟目前大学的教育,也就是上课讲授的那些知识,比如我,上大学那会就会经常吐糟,学校学习环境不好,老师讲的不行,很多知识学着没啥用,没意思,不想学,知识比较落后等等!

我这里必须给大家说,千万不要觉得大学学的那些东西没用,要知道,大学教育面对的是大众教育,不是精英教育,也不是针对哪一个人的,所以教学内容上一定是兼顾大部分人的,因此,很多都是你需要掌握的底子,也就是基础!

比如常见的计算机基础知识,主要有:

  1. 操作系统
  2. 计算机网络
  1. 计算机组成原理

等等,很多人觉得这些东西没啥用,还很枯燥乏味,殊不知,这些东西是编程的基础,是你修炼内功的的必备之路,

除此之外,还有很重要的数据结构与算法,也是很多人当初根本就没有认识到这些知识的重要性,再加上这些知识,本身就有一定的难度,所以导致很多人基本不当回事!

因此,很多人快到毕业了,这些知识掌握的也还是一塌糊涂,要知道,这些知识是你毕业之后,是你作为一个应届生,是你作为一名计算机专业的学生的核心竞争力啊,

而且,这些本该是在大学就把他们熟练掌握的知识,有多少人是需要靠毕业之后去“补”的,有的时候为什么别人那么强,总感觉自己很弱,其实你只要想一想,就知道自己问题出现在哪里了!

另外,你要非常的清楚,一个强大的计算机基础知识底子+一个学生的身份,这是你距离大厂offer最近也是最轻松的一次了,所以,我强烈建议大家一定要重视这些基础知识的学习,一定要!

在你掌握了基础知识之后,接下来你可以全力去做一件事情或者是保持这样的一个习惯,那就是刷题,主要就是刷数据结构与算法,比如去力扣,比如牛客网

保持着自己刷题的习惯,一直保持到,保持到毕业,闲着没事就刷两道,一定要多刷,然后可以买相关的书看,比如《剑指offer》这种!

总的来说就是,大学里,把自己的数据结构与算法给夯实了,这对你日后大有裨益,尤其是找到一份好工作甚至是大厂!

以上可以说是作为一名计算机专业的内功知识,把内功修炼好了,我们就可以去学习一门招式了,也就选择一门编程语言去深钻,这个尽量选择市面上比较热门的,

主要就是为了日好好找工作以及其一个完整强大的生态圈子,比如Java,python,或者搞前端,其实都挺不错的,像PHP,C#这些啊,我个人是觉得真不如Java这些,当然,纯属个人意见哈!

选择了一门语言之后,就可以全面系统化的去学习了,怎么学呢?刚开始,我建议,直接找一套完整的视频跟着学习就是,先把Java给完整的学习一遍再说

这里的完全可不是说全部的知识点啊,那也不现实,而是把主要的知识学习一遍,也就是Java基础语法,Javaweb以及主流的几个框架,也即是Spring那一套!

搞定上述这些,再把MySQL给学学吧,学习MySQL之后,也要像跟数据结构和算法那样,经常刷刷提,保持住这个手感,这个很重要的,大家一定要记住,数据结构和算法别忘了要一直刷题哈!

其实上面这些学完,基本就可以开展下一个大方向的学习了,那就是做项目了,当然,我还是要告诉你,上述这些知识,其实还是很少的一部分,

你没见过的以及没学习但是要学习的还有很多呢?不过不要害怕,剩下的,就让我们去通过做项目去接触,去学习吧,就像你刚搬进新家,很多东西需要后面慢慢去置办!

所以,别着急,要学习的知识很多,我们慢慢的填补就行,一口气学完,不可能,也不现实!

那怎么做项目呢? 很多人刚开始会有这方面的困惑,我该上哪去找项目啊,我该怎么做项目啊,不会啊,咋整,别着急,我告诉你怎么操作!

对于项目,前期刚开始我依然建议是先找一些实战视频去跟着做,先做它个十来个,慢慢的你就熟练了,知道咋回事了,这其中你会遇到很多的新知识,你会顿时觉得自己知识量暴增啊,

别着急,这些知识慢慢的一个个的去搞定它,那跟着实战视频做项目,这只是第一步,这个搞定之后,你就可以去github上去找找项目了!

怎么找的,可以比如java,直接可以搜“GitHub Java项目推荐”很傻瓜式的搜索,但是管用啊,就是多去搜搜看,然后找到自己比较感兴趣的项目,就去比着模仿,自己造一个吧,

第一遍完全就是把人家的项目给模仿着坐下来,然后自己可以试着去修改一些东西,比如增删改一些功能,就是慢慢去融入自己的东西,懂吧,就这么搞,慢慢的搞它三五个!

到了最后,你自己就可以利用自己所学去自己创造一个项目出来,比如搞一个博客系统,弄一个商城系统,搞一个分布式系统,慢慢的试着自己造轮子,

然后开源到GitHub上,让别人参与进来,给你意见,就这样,让自己快速成长起来!

等你毕业之后,你就会发现,自己拥有夯实的计算机基础知识,强大的数据结构与算法基础,大部分的算法题你都不在话下,而且Java基础扎实,掌握主流框架,熟悉各个技术在项目中的应用,熟悉多个项目系统架构,自己开源项目获得多少多少的star,拥有丰富的项目经验……就问你这样,它不香吗?

对了对了,记得去写写博客,最好弄出来点成就,搞点知名度,对你那又是锦上添花!

这样的话,你告诉我,你还害怕找不到工作?直接去怼各个大厂啊,要是连拿几个大厂Offer,那你就是大家口中的offer收割机啊,加上之前自己的博客影响力,那不是更加有的吹了吗?

那小副业也不就搞起来了嘛,慢慢有了粉丝了,说不定,缘分也就来了,你说是不?

它不香吗?这才是我们计算机专业最正确的大学四年度过方式啊,但是这里庆哥必须提醒你,我们上面说着挺容易,但是做起来很难,首先,很费时间,不是立竿见影的,所以庆哥这里给你几句箴言吧!

难在坚持,贵在坚持,成也坚持,败也坚持!

不经一番寒彻骨寒,哪得梅花扑鼻香!


关于培训

其实我发现,咱们这些学习计算机行业的对于“培训”似乎一直都是绕不开的,那我这里就先跟大家聊下关于培训这件事情,另外我必须告诉你,我不反对培训,但是培训依然有很多的坑,如果你要选择培训,一定要慎重,要多了解相关信息!

本篇文章主要是告诉你,如果你真的去培训了,你该怎么不让自己的钱白花,你该怎么努力!💪


之前我曾和一个读者聊天,「他说自己被坑惨了」,什么情况呢?

说实话,我能感到这哥们的无奈,不然也不会跟我说这些,我之前谈过几次关于培训的事情,关于培训,我的态度是:

❝培训是一条可以选择的路,但是不能完全指望~只是给你提供了一次再教育的机会,更多的还是要靠自己!❞

提到培训,有一部分人那是咬牙切齿啊,不过,「也有不少人对培训是完全可以接纳的一个态度,而且,我身边有不少同学是通过培训找到工作的,最起码现在还不错!」

说几个比较现实的问题吧:

  1. 现在很卷,工作不好找
  2. 如果你技术基础不扎实,更难找
  1. 如果你学历本科以下,找工作会增加相应难度

说到底,有不少人会这样认为:

❝这个行业更看中技术能力,只要你技术够牛逼,那找工作不是事!❞

的确,这句话我完全赞同,「但是大部分人的情况是技术能力真的是一般般,这也许就是大部分人不好找工作的一个主要原因吧!」

再加上现在卷的要命,那面试问的是越来越难了,这也没办法,所以很多人抱怨工作不好找,大部分都是因为在现如今这个背景下,「你的技术能力远远跟不上现在的面试要求了!」

在越来越严格要求的面试环境下,如果你没有亮眼的学历给你加分,我们能拼的也只有技术能力这一项了,可是现实是很多人在这块也并不突出~

因此,我认为,「技术能力始终是你的第一竞争力」,不知道你对这个是否有反对意见?

你可以没有很高的学历,你也可以没有很多的工作经验,但是你只要展现出你超强的技术能力,那工作对你来说,应该是不愁的!

所以面对那些参加培训的同学,我想你们在进去培训之前就要清楚的认识到,「提升技术能力」是你唯一的目标!

但是现实中,据我一些了解,很多人进入培训班之后依然是我行我素,只是按部就班的每天上课,自律什么的完全没有……那对于这样的,我觉得 「等待你的依然是培训毕业之后,找工作时的焦虑,无可奈何和懊悔了……」

所以,我今天想谈谈进入培训班,你应该怎么做的问题,其实更多的是 「方法上的一些建议分享,当然,即使你不是正在参加培训的,那对你的日后学习也是有帮助的!」

能一直帮你的那个人

是谁?答案就是你自己,我想大家要记住这一点,无论到了任何时候,你始终都要相信,那个能一直帮助你的人只有你自己……

所以说一句话很俗的话,很多时候,「你能依靠的只有自己」

所以,不要认为,自己花了钱,上了培训班,就万事大吉了,以后就能找工作了,你看这位读者说的情况:

难道说你交了钱,培训班就一定能保证你找到工作吗?敢这样说的,我觉得都不靠谱~

那这种情况,其实我更想对这位读者说的是,「你可以对比这5个人和其他人的一些表现,也就是在培训班的学习情况,人家是怎么学习的,为什么人家能找到工作你不能,到底差在哪里?」

有些人是你说什么它死活不停,也不承认自己的错误,而又的人则是你说啥他听着,也敢于承认自己的错误,但是也就没有然后了,兄弟,这样可不行啊,「你得去改变啊,发现了问题好不去解决吗?」

那真没人帮得了你啊!

200%的严格要求

真的,如果你打算去参加培训了,我希望你日后要200%的去严格要求自己,因为据我了解,很多人最后去参加培训基本上都是选择赌一把,背水一战了,也即是这次培训必须成功,必须顺利就业。

「为什么?因为时间,因为精力,因为钱,或许还有藏在内心深处的自尊和期许吧……」

不知道你是否后能懂?

所以,真正开始培训的时候,你就要让自己时刻紧张起来,要让自己苦起来,有些人去培训反而过的很潇洒,除非这样的人是天才,不然日后毕业也是堪忧!

要记住,在培训班的日子,你一定要把一个小时当作两个小时去用,一定要有时间就去学习,你要记住只靠课上老师讲的那些,你根本吸收不了多少,你需要课下自己多花时间多去主动学习!

你一定要学会自己主动去消化知识,你看这位读者的情况:

这其实是非常正常的一件事情,Java的知识体系是非常庞大的,很多内容学习起来,理解起来真的没有那么容易,那 「培训班要在短时间内把这么多的知识全部灌输给你,那结果肯定可想而知~」

「跟不上啊~」

所以才需要你自己一定要私底下多花时间主动去学习吸收知识,另外还有个重点就是,「你一定要利用好助教老师,也就是,自己多学习,不懂就问,啥都行,别怕问题低级,这是你的权利」

而且你知道吗?培训期间和那些讲师和助教混好关系,对你日后就业很有帮助的!

所以,千万别只依靠课上那一点时间,远远不够的!

讲点方法

这个我觉得是最重要的,就是你去培训,鉴于之前说的那些问题,总结起来就是 「时间短,任务重,面试难,到处卷」

因此你的学习要讲点方法,很多人都表示,自己培训完感觉自己什么也没学到,好多东西都不会啊,这样的话,你找工作能不焦虑吗,说白点,你肚子里没货啊!

大家得明白,「知识那么多,你能全部学完?不现实啊,还有就是,就算你都学习了,你能都记住吗?也不现实吧~」

我想很多人都会被「学了就忘」深深困扰吧

所以,你得讲究点方法,那经过我这么久的自学,我个人总结出了一套学习方法,我把它叫做「系统化学习,教程式笔记」前面详细介绍了!

那文章的最后,再说一下关于面试的问题吧,就是很多人说,面试难,不好找工作,那我个人觉得,如果你正在找工作,你需要做的就是在短时间内获得「面试机会」,围绕这个点去做些努力,比如简历优化~

「but,如果你啥也不会,那就难搞了~你们有什么招吗?」


本篇文章主要是通过一个读者的真实案例,希望大家对培训这件事情较为全面的去看待,也要清楚如果自己真的走到了这一步该怎么去操作~

以上是关于新手如何自学编程的主要内容,如果未能解决你的问题,请参考以下文章

万字长文分享,新手小白如何自学Java(方法+步骤)

如何自学java编程

程序员入门:如何自学编程

30万字的Java自学笔记免费分享啦,并谈谈我的编程自学心得体会

30万字的Java自学笔记免费分享啦,并谈谈我的编程自学心得体会

我想自学C++编程,请问需要给电脑安装啥软件?