建议选择一个技术方向,比如安卓开发,后台开发之类的,然后在这个方向上去用搜索引擎去搜索博客。因为视频的更新速度远落后于博客。
如果不是零基础不要看视频了,还是比较浪费时间的……如果是零基础,选好方向,慕课网入门即可。然后看书看博客,自己去敲。有条件买付费课程,质量很高的。
#自己学编程的心路历程#
哇,想学编程的好多……不知道题主是是基于什么样的目的,是听说薪资高?还是听说门槛低?
这里先先波一波冷水吧,编程行业与其说门槛低不去说入门简单。不过入了门以后就会发现,为什么自己什么都不会?为什么要学的东西这么多?需求为什么这么多?设计怎么总觉得差1像素?这代码昨天还好好的?不生气,杀人犯法……
我是一个普通双非本科大四狗,(今年互联网寒冬,被离职,然后去了头条……)目前在一家创业公司做安卓,拿过小米,链家的offer,最后选择在现在这家创业公司转正。为什么?从大三暑假出来实习,就在这家公司。公司企业文化,团队氛围,那种凝聚力的感觉非常好……换句话说…………人家给的多,还有双休……笑哭.png
扯了些题外话,接下来就是关于我自己在大学生涯,如何一步步走上编程这条路的心路历程。如果不想看这些瞎逼逼的过程,可以直接翻到后面,有关于学编程的建议。
因为大学生涯,自学编程的这一路都是自己一个坑一个坑从零基础踩过来的,所以对想入门编程的这种话题特别有感触。有时总在感慨如果当年有人指导,没有走弯路会是什么样子。
自己当年因为家里的原因选择了和计算机相关的专业。不过当时的自己真的零基础,没有任何编程的概念。唯一可能扯上点小关系的是自己曾经高中的时候在war3地图编辑器上做过地图……做游戏,我猜是每个男生都有过的想法吧,笑哭.png。
进入大学,第一门语言如果不出所料都是c语言。学习的过程中发现自己着实有点兴趣。寒假的时候开始入坑java至于为什么选java只是因为下学期开java课,算是提前了解。那时候差不多15年初,是安卓手机特别火的阶段,而且当时的自己也还非单身……也是突然的决定想给自己的女朋友写个app,然后安卓这个大坑,我就义无反顾的跳了进入……之后……就没女朋友了。编程这么好玩,要什么女朋友!要什么对象?new不就行了?new不出来就反射……真正开始全身心的学习编程,就是在入坑安卓的时候,说起来真是一系列的巧合。
因为自己的学校实在不怎么样,学校整体学习氛围很差,也没有大神……有时我们这届搞编程的,私下吹逼时,都在感慨:我们这一届算是为我们学院,我们专业踩出了第一条路。(圈子里有腾讯,网易大佬)
当时的自己最开始是在慕课网上看基础视频,那个时候还是eclipse的年代,照着视频敲。苦逼的经历了:妈的,代码一样怎么跑不起来?报的什么错?编译怎么还过不了?……后来错犯多了,也就习惯了;习惯久了,也就放弃了(开玩笑的)……大概一到俩个月的时候,当时边学安卓边补java基础。俩个月的时间算是彻底入了门,说实话中间浪费了很多时间。
入门之后,就会发现看视频真的很慢,接受东西很费时间……这个时候自己开始看书,看博客。因为什么都不会,所以这个时候是进步最快的时候。当自己自信爆棚感觉学会安卓的时候,就想着自己写个app。这个时候遇到了卡住我许久的问题,那就是:app的数据从哪来,怎么存?现在看来多么幼稚的问题,当然是放 后台 里……然而当时的自己被这个问题困住了许久,直到自己学习了皮毛的后台技术,才豁然开朗原来是这么回事……有了这个基础,自己真的开始去写属于自己的app。
从那之后自己便进入了一个写代码熟练程度突飞猛进的阶段。不过问题也逐步展现出来,那就是基本功不扎实。很多框架并不能看懂,设计模式?反射注解?动态代理?也正是这些疑问,接下来的时光里,我进入了自己看书最频繁的时期。大概一年的时间,看了不下四十本书,其中包括一些经典书籍《java编程思想》《数据结构》《计算机组成原理》《图解http》《计算机科学导论》等等……其实看的最多的还是一些闲书,因为那个阶段经历了失败的恋爱。然后觉得有必要去反思自身的问题,所以闲书里有不少关于两性心理的书。笑哭.png……
这段时间的大量阅读,我觉得对我后期的影响还是比较大,无论是逻辑上还是理解上。
后来大三结束的时候,自己只身来到了北京实习。当时这家公司面试官(也就是我现在的leader)在面我的时候,给我唯一的印象就是,卧槽我怎么什么都不会?……后来入职才知道,他是原360的资深开发,360浏览器就是他一手带人写出来的。
入职到现在差不多小半年的时间,期间也很迷茫。但每次都能被leader发现。先无情的diss一波,说我怎么成长这么慢……然后再仔细的给我分析应该怎么怎么样。庆幸自己的选择,遇到了这么负责的头。
这差不多就是我大学生涯,入坑编程的故事。接下来的回答便是关于如何自学编程。
#认真回答问题#
首先来说关于入门教程随便百度,教程太多了,所以不要考虑什么怕没人教。这年头,不是没人教而是教的太多了。这可能也是编程给人门槛低的原因。
但是记住,天下教程一般抄,教程教的是语法,而语言的核心是思想。一旦理解了思想,你会发现这一切都tm是套路,所有东西抽象出来都是tm是套路。
事实单纯去学习一门语言是很枯燥的,为什么?因为你根本不知道它能干什么。所以题主应该明确自己学编程为了做什么?是想写web前端,还是安卓/ios;还是后台,亦或者其他。比如最近很火的人工智能,区块链等等。
说这些的意思是,题主要先知道,学什么方向。不知道没关系,搜索引擎呐!因此学习编程之前先了解,自己学编程去做什么,不然纯粹为了学而学真的很枯燥。
当自己选择了一项自己喜欢的东西,比如我,机缘巧合选择了安卓。
那么这里就出现了学习路线上的技巧或者说差异,是夯实语言基础再去学习具体业务,还是同步去学习。
个人的建议是同步学习,然后再根据业务上的问题回来补基础。因为编程需要持续的兴趣,但是无论我们开始堆积了多大量的兴趣,都会随时间的推移去消耗殆尽,再殆尽之前找到兴趣的补充点才能持续保持自学的热情。(当然你如果有强大的自制力,怎么学都无所谓……摊手)
因此我推荐先学习语言的语法,比如java语言。这一步,随便百度教程书籍。在学语法的基础同时去理解面向对象思想,理解不了思想也无所谓,多写就会豁然开朗。当你觉得基础语法都掌握了的时候,可以尝试去开始具体你喜欢的东西。比如:安卓或者后台去写业务。遇到不了解的东西外回过头继续补基础。
至于怎么评判语言的掌握程度。我个人的评判标准是,当你去看别人代码时,虽然你不知道这些clas s,api是做什么的,但是你能看懂整体的脉络就行。都这一步你便可以驶上快速学习编程的高速路。
不要以为上了高速路就可以无所欲为。别忘了还有收费站,记得要花时间去看经典书籍,他们之所以经典是因为拥有潜移默化的影响力!
just do it.祝你在编程里找到快乐。