这篇文章是专门写给和我一样毫无基础学习编程的,每个人都是不同的,酌情参考吧。
刚开始自学编程时(虽然我经历过类似培训,但不是专门的培训老师,讲的也是非常不利于新手入门的,有基础的话还好),上网查了些相关建议,有些人说的靠谱,但是看着不高大上,反正我是一眼看上了高大上的了,蛮浪费时间的。
明确目的
自学以前,必须先明确自己是为什么学编程,如果是为了学术、简化工作、个人兴趣,那就学学python,随便看看教程,入门非常简单,绝大部分需要都满足。
如果想要靠编程恰饭,后面的内容就都是为了恰饭的说了,例如做web开发,可以先学一周python,熟悉下基本的逻辑控制、文件处理和网络,有个基础的印象后,转而看java相关的内容。
为什么建议先看python呢,因为使用起来简单明了,可以迅速建立宏观印象。我们写代码,实际上就是在做逻辑处理和输入输出,python对此的封装很贴近自然语言,有利于打破新手对编程的恐怖印象。
资料获取
这个上网搜就好,还有大好人专门列出来分享。
还有一点就是建议真没基础的看视频学习。之前我信了一些人的话,说看视频效率太低了,还是看书效率高等等,真是浪费了好多时间。不是不建议看书,是不建议新手盲目的看书,为什么建议看视频?理由如下:
- 视频更生动,因为学习、工作本就精力有限的人,看视频省脑细胞,相比于看书更能看进去。
- 视频里的演示步骤能直接运行,可以直接看到一段代码从写、到运行、到调试、到输出是什么样的,完全可以照搬,看书的话搭建好环境就是个问题(多数书都有点老),各种版本问题、系统问题、开发工具问题等等很常见,很容易直接卡死。
- 视频里的老师会讲一些"题外话",有基础的会嫌这些题外话很浪费时间,但是对没基础的很重要,单纯的看书,是需要看很多书、做很多实验才能总结出来的,因为大多数书都是倾向于专一,有些更是明确提出看此书前,要有什么基础。
说了这些可千万不要想不需要看书了,这只是刚开始的快捷方式,如果想对某个方面深入学习,还是需要看书的,当然,如果有视频教程也是很好的。无论视频还是书,都只是传达信息的形式,学习的侧重点不该在视频和书,应该在其中的内容和查阅的效率。书可以轻易扫一遍,找出想看的内容,相比而言,很多分P描述不清晰的视频就不易筛选了,所以有基础后又追求效率,那就看书去吧,如果视频分的很细致闲话少,那看视频也很好啊。
视频网站我比较建议B站,其他慕课等平台也都好,想学啥就搜啥,想学JAVA就直接搜,一堆视频,看过一个视频就知道了其他概念,再搜Spring等等,如是而已,学的快的也可以按照有人总结的JAVA学习路线图(自己搜图吧)针对的搜索,总有你能看对眼的视频。
横纵线路
上面谈的是纵深学习,另外还要横向学习,随便看看编程都能做什么、都用在哪里,看看计算机和上个世纪有什么区别,看看一些论坛程序员的吐槽等等,这样慢慢看下去,就知道自己缺什么、适合什么、该干什么。
这里想到孙悟空学七十二变时和菩提祖师的对话了:
祖师道:“那山唤名烂桃山。你既吃七次,想是七年了。你今要从我学些什么道?”悟空道:“但凭尊师教诲,只是有些道气儿,弟子便就学了。”
祖师又道:“教你’流’字门中之道如何?”悟空又问:“流字门中是甚义理?”祖师道:“流字门中,乃是儒家、释家、道家、阴阳家、墨家、医家,或看经,或念佛,并朝真降圣之类。”悟空道:“似这般可得长生么?”祖师道:“若要长生,也似壁里安柱。”悟空道:“师父,我是个老实人,不晓得打市语。怎么谓之’壁里安柱’?”祖师道:“人家盖房欲图坚固,将墙壁之间立一顶柱,有日大厦将颓,他必朽矣。”悟空道:“据此说,也不长久。不学,不学!”
祖师道:“教你’静’字门中之道如何?”悟空道:“静字门中是甚正果?”祖师道:“此是休粮守谷,清静无为,参禅打坐,戒语持斋,或睡功,或立功,并入定坐关之类。”悟空道:“这般也能长生么?”祖师道:“也似窑头土坯。”悟空笑道:“师父果有些滴。一行说我不会打市语。怎么谓之’窑头土坯’?”祖师道:“就如那窑头上,造成砖瓦之坯,虽已成形,尚未经水火锻炼,一朝大雨滂沱,他必滥矣。”悟空道:“也不长远。不学,不学!”
祖师道:“教你’动’字门中之道如何?”悟空道:“动门之道却又怎么?”祖师道:“此是有为有作,采阴补阳,攀弓踏弩,摩脐过气,用方炮制,烧茅打鼎,进红铅,炼秋石,并服妇乳之类。”悟空道:“似这等也得长生么?”祖师道:“此欲长生,亦如水中捞月。”悟空道:“师父又来了。怎么叫做’水中捞月’?”祖师道:“月在长空,水中有影,虽然看见,只是无捞摸处,到底只成空耳。”悟空道:“也不学,不学!”
会某个能恰饭的工具就不学了,不再横向拓展,那就是壁里安柱,一日框架迭代掉,就随大厦倾覆了。咱都是凡人,学不会七十二变,就只能在多个大厦里安柱,在更坚固的大厦里安柱。当然了,壁里安柱到头来逃不过镜花水月,希望大家能找到自己的七十二变和机会。
如何练习
如果看视频,应该就没这个问题了,跟着做呗,做完了再改,改完了再按照自己想法做。
按我现在的粗浅想法,初学时都要练习什么呢?找几个简单的算法题练练逻辑,找一些文档练练文本处理,搭建个网站练练基础的web开发,多练练如何封装等。
目前基本上都是用框架了,享受框架的便利的同时,有精力的一点点看看基础、研究研究这玩意怎么实现,别等大厦倾覆慌了神。
现在的感受是编程只是一小部分工具,我也想练些什么,然而也是不知道该做点什么,顶多重复造造轮子用于学习,但也不是长久之计。
为什么会产生不知道做什么这个问题?应该是自己把思维局限住了,自己被眼界局限住了,一是缺少对现实世界的丰富认识,二是不能完全把握计算机的能力。
回顾过去干瘪的二十多载,大概这就是茫然无知的根源,写的程序有多丰富,取决于写的人有多丰富。编程只是工具,真正让编程有意义的是人,发明编程这个工具的也是人,充实自己丰富生命才是主线啊,哈哈,这里给自己打打气~~。