最近很多粉丝朋友私信问我,零基础怎么入行?自学编程学什么语言?要不要参加培训?等等问题,今天我们就针对这些问题,和大家一起探讨一下,理清学习路线和学习方法,希望能让大家有所收获。首先说明,我自己是计算机科班出身,毕业多年,写过代码,带过团队,其实自身并没有零基础自学入行的经验,我只能从自己真实的成长经历,以及从周围朋友和同事的经验,去给大家提供参考意见和学习方法。最主要还需要自学者自身努力,毕竟没有人能代替你去学习成长。文章内容较长,请耐心阅读。
1)学编程选什么语言好?
这个问题需要初学者提前思考清楚自己的学习目的。
如果是希望深入技术领域发展,那么建议先学习C语言,C语言作为计算机专业的第一门语言,是非常具有代表性的一门开发语言。学C语言可以让你的知识结构更加贴近计算机的底层,与计算机核心的几个学科,如计算机组成原理,数据结构,计算机网络,操作系统等内容直接相关。而且很多其他语言的算法都是从C语言的底层语言来实现,再封装成算法库,C语言程序要考虑性能,内存,指针等问题,不是简单的io消耗,需要考虑内存拷贝消耗、堆栈开关的消耗、CPU调度的消耗。而且C语言已经形成了非常庞大的基础库,内核,开源软件等,这都是其他软件不能代替的。但是C语言的缺点也很明显,越贴近底层系统,意味着更加枯燥,学习内容也很多,很难让初学者获得成就感,远不如html,css这些界面元素那样直观和精美。像指针,内存这些概念,对初学者不是很友好,很多科班出身的程序员也不是很理解。但是如果真的想在计算机领域深入发展,C语言真的是绕不过去的,而且很多中高级程序员也会因为基础知识不扎实导致职业的发展受限。
如果希望快速在IT行业入行,那可以学习后端JAVA,Python,Go等语言或者前端Vue,React等,有了一定的经济基础,在入行以后,还是需要花时间把基础能力补齐,形成自己的编程思维(可以看我的另外一篇文章《编程思维究竟是什么?》)。这里有个雷区需要注意下,针对Python开发,很多人推荐学习人工智能,数据挖掘等方向,入职后能年薪几十万,但事实并非如此,事实上很公司有/的学历要求。
2)编程学习资料在哪找?
很多初学者不清楚自己应该去哪找需要的学习资料,下面我就推荐一些免费的课程学习,刷题,训练,学习资源,项目实践的网站供大家学习和参考。
第一个菜鸟教程,菜鸟教程是一个文档型的网站,包含了目前大部分主流编程语言学习教程,除了知识点的梳理,还有代码实例,可以动手实践,非常适合初学者学习。
第二个W3cSchool,W3cSchool是一个专业的编程入门学习及技术文档查询的网站,和菜鸟教程类似,但是内容更加的丰富,学习起来比较有意思。
第三个是慕课和b站,这两个是都很知名的课程学习网站了,上面有很多高校老师和机构老师精心制作的教学视频,有很多都是非常经典的。b站的视频一般是编程实践和操作结合;慕课课程基本都是国内高校制作,更适合操作系统,数据结构一类的理论专业课学习,把这两个网站将理论和实践结合起来一起学习的话,可以事半功倍的学习。
第四个书栈网,这个网站中含有非常丰富的电子书和技术文档资源,内容涵盖计算机领域绝大部分主流语言和技术。而且都是MarkDown的文档,比起一般的纸质书和电子书都容易的多。
第五个是力扣和洛谷,它们都是不错的刷题平台,相对而言,洛谷更适合新手训练,题量非常丰富,而且界面是中文的,容易上手,一些基础题目对初学者的基础知识巩固和熟练有很大帮助。而力扣更适合有一定的基础的学者,现在有很多资深的工程师也会在力扣上刷题,可提高自己的思维和编程水平。
第六个GitHub和Gitee,GitHub是全世界的开源代码托管平台,可以说全世界的程序员都再用,而且上面有很多科技巨头公司和编程大神贡献的开源代码,非常值得学习。当然由于一些原因,可能有些人无法访问,那也可以去使用Gitee,类似于GitHub的国内版本,通过一些关键字可以很容易去找到自己感兴趣的项目。
第七个知乎,博客,CSDN和StackOverflow,很多初学者遇到解决不了的程序问题或者实现方法就容易手忙脚乱,这时候就可以在这些网站上寻找答案,因此一般的初级问题都已经有解决方案了,很多资深的工程师也会写博客去记录自己的经验,你需要做的就是找到它们。
第八个牛客网,这个网站中含有大量的大厂面试和笔试题,包含程序员水平检测,面试经验,面试题,招聘信息,内推信息等等,当你想要找工作时,这些经验都能很好的帮助你提高面试通过的机率,早日拿到心仪的Offer。
3)快速学习的方法?
首先一定要多写多实践。在学习视频和资料的时候,一定要动手去按照学习的Demo亲手操作一下,这不仅锻炼的自己的编程能力,还加深了对知识的理解。甚至可以找一些开源的项目去下载,运行试试手。
其次选择较新的工具,有些视频资料比较老旧了,推荐的一些开发工具已经过时了,现在很多最新的开发工具可以提示语法错误,运行错误,编码错误等,什么大小写错误,字母拼写错误,少了括号,断点调试,编码转换问题,都是属于编程中的基础错误,有一个好的开发工具,真的会事半功倍!
第三建立刷题的习惯,对程序员来说,算法能力是非常重要的,尤其是一些大厂,如果算法不过关,根本没有面试的机会。像贪心,回溯,分治和动态规划,都是学习编程需要掌握的关键算法,这和开发语言无关,更多的是思维和编程水平。因此,不管是学习什么开发语言,你都可以在平台上刷刷算法题。
第四勤学多问,初学者很容易碰到自己解决不了的问题,这个时候一定要学会多与人交流,不管是学习群,社区,论坛,贴吧,都可以把你的问题抛出来,要知道编程高手就是在编程时把所有的错误全部都犯过的人。厚着脸皮多去请教,多去交流,是能够让我们少走弯路。而且别人如果感觉你水平不错,可能还会内推你进入公司面试,他能得到推荐费,你也能获得一份不错的工作,公司能找到合适的人才,实现三赢。
第五学会整合信息,古典老师在《跃迁》一书中,提到“学习的目标是调用信息,解决问题。四步法:存储-整合-提取-运用。思考方式从独自思考转为联机独立思考,想到什么事情,能够上网搜索,与他人沟通。一个人能用机器学习和处理信息,用大脑整合和创新思想,用系统思维思考问题,会是未来最具竞争力的。”。对于程序员来说,整合信息也是一个关键能力,快速学习新知识新技术并且运用在实际项目中,这是非常重要的。因为计算机技术更新换代本身就快,需要我们不断的学习新的知识和经验。因此谷歌,百度,b站,知乎,慕课等等平台,都需要我们能熟练掌握使用,我们想要的资源和问题的答案一般都能找到。
第六制定计划。初学者需要将一个大的学习目标逐渐分解为具体的学习计划,然后逐渐的实施和落地,具体到每个月,每个星期具体的学习内容,一定要通过计划驱动自己往前走。
4)学习编程需要注意什么问题?
第一掉入知识海洋。有些人一上来就想着把各种开发语言和开发技术都学习一遍,以为这样才能把编程学好。其实不然,编程的学习一定是在于精而不在于多,在于深而不在于广。而且真正重要的并不是你会多少语言,会多少技术,而是能不能对于你们语言或者一个方向有深入的了解,所谓的语言特性到底是什么?比如C语言为什么运行效率高,JAVA为什么能跨平台?等等。只有深入了解后,你才能更快的利用掌握的技术去实现业务需求。
第二不专注。打开视频的时候是要学习的,结果从学习区,到动漫区到直播区,一不小心就看到晚上十点了,然后发给朋友圈,今天又是努力学习的一天。然后一段时间之后,发现自己什么都没学会,开始各种给自己找理由。没天赋或者不适合。
第三不实践。为什么我们懂得很多道理,却依然无法过好这一生,原因就是不付出时间。很多教程视频和书都看了不少,但就是什么都写不出来,甚至后面的东西还没学会,前面的学习的已经忘记的差不多了,这里最大的问题就是不去实践了。编程是需要不断的实践的,一些基础的语法,函数,概念和方法等,都需要在实践中去巩固。作为初学者,只有通过勤学苦练才能够夯实计算机知识,到用的时候才能信手拈来,挥洒自如。
总结
以上就是我针对一些零基础学编程的一些问题做出的分析,整理和回答,希望能帮助初学者,不管你是想学点编程技术还是想靠编程谋生,这些经验应该都能帮助你快速的入行。与其担心未来,不如现在好好努力。在编程的路上,只有学习和奋斗奋斗才能给你安全感。不要轻易把梦想寄托在某个人身上,也不要太在乎身旁的耳语,因为未来是你自己的,只有你自己能给自己最大的安全感。别忘了答应自己要做的事,别忘记自己想去的地方,不管那有多难,有多远。希望所有的IT人都不负光阴,不负自己,用编程改变人生,改变世界!
(原创不易,如果喜欢请随手