今天给大家分享一个话题,如何有效的学习编程,大家都知道,我是计算机专业毕业的,2008年开始学习编程,2014年研究生毕业后一直从事软件开发工作,先后在京东、爱奇艺、完美世界从事过软件开发工程师工作,具有十多年编程经验积累,所以我来讲这个话题,我是有发言权的,也具有一定的权威性。
好的,先说一下为什么学习编程。因为编程很重要啊,我认为编程是人生中最重要的技能之一,与驾车、英语同样重要。任何人都能学习编程,只要你能付出时间和热情,都能够学会。而且编程能让你获取更多收入的可能性,根据最近十年全球收入排名统计,软件开发一直排名前列/需求量大。所以,编程就是就是能打开更多人生机会的钥匙。
好的,那如何学习编程呢,我认为学习编程,做到四点就足够了。 第一点:实践 第二点:阅读 第三点:做项目 第四点:问题解决能力
对于初学者来说,第一点是最重要的,通常大家是怎么开始学编程的,无非是找一门编程语言(无论是c语言、java、php、python等等),然后买本教程,或者,买个视频教程,跟着看,跟着学,然后实践,这个阶段是正确的,非常正确的,然而初学者最容易忽略的一点是实践,就像学习英语学习韩语一样,其实学编程并不像学习外语那样,学习外语其实比学习编程难多了,外语的语法复杂,单词巨多,而编程语言就不同了,大多数的编程语言,一共才几十种关键词,public static void int string ,很容易记住。所以还是要多实践。还有就是真正的编程高手是不区分编程语言的,任何语言都能上手,关键是实践。所以从现在开始拿起键盘,开始敲代码,别只学习不动手!学习编程最重要的就是实践。写些简单的代码,试试运行,看看结果。
第二点就是阅读。阅读对于编程者来说同样重要,程序员也要有阅读的习惯,阅读分为3个部分,分别是: 阅读基础理论+阅读框架技巧+阅读经典图书 (1)阅读基础理论,包括计算机基础知识、操作系统、计算机网络、数据库、数据结构。阅读基础能提高对计算机的认识,因为计算机的架构都依赖于基础数据结构和算法和网络,因此懂基础会让我们更好地理解计算机。 而且 无论你用哪门语言编程,其实操作系统知识、数据库知识、计算机网络知识、数据结构、算法这些基础是一样的。 所以基础知识需要长期学习 (2)再就是阅读框架技巧,如果你的基础知识已经学好了,那么可以学习了一部分编程框架了,比如java的框架springboot,php的thingkphp,python的django,javascript的vue。学习了框架之后,可以阅读一些框架的书籍,让你对于这个框架的整体结构有更深入的了解,遇到一些牛逼的设计,往往会感到惊叹。哇塞,这个框架设计的太强悍了,太吊了。会有一种惊叹的感觉。 (3)再就是阅读经典图书,阅读经典图书,网上有很多经典图书,比如图灵、豆瓣,按照自己的兴趣去读,有的图书或许不是讲编程的,或许是讲设计模式,或许是讲网络,作为一种技术沉淀。通过阅读经典图书可以扩宽知识面,提升内功(就像武侠里面的内功)。经典的编程图书不仅仅是技术性的,它们通常也具有很高的可读性(有些图书作者是国外的,写的书也很有意思,很有趣,比如设计模式/tcpip)。通过阅读这些图书,既可以享受阅读带来的乐趣,同时也会激发你的创造力。了解到一些创新性的项目和想法,激发自己的创造力和想象力。而且,这些经典图书还会提到一些其它的优秀书籍,让我们可以顺藤摸瓜,进一步探索相关领域。
第三点就是做项目,学习一段时间后,就可以做一些项目,先从小型项目开始,比如编写一个博客,编写一个计算器,编写一个留言板,编写一个学生信息系统。一个一个不断的做项目,其实做项目就像是练习射击,当你拥有了一把手枪后,只有不断的喂子弹,才会成为一个真正的射击高手。对于编程来说同样如此。
最后一点就是问题解决能力的提升,在编程过程中会遇到很多很多的问题,比如编译问题、运行问题、部署问题、安装问题。在学习编程过程中会遇到很多很多的问题。对于这种情况,我的应对方案是:先自己解决,通过看日志、断点调试来解决,如果是实在解决不了,那么就求助搜索引擎,第一选择是google,第二选择是bing,然后是baidu,我感觉google给出的解决办法会更准确,如果你的网络登不上google,那么可以尝试bing,最后是百度。如果你英文水平好的话,还可以去stackoverflow或github上去寻找答案。(等到1年或2年变成中级工程师之后 你会发现github的作用,简直就是一个宝藏)或者询问chat ai。
最后还有一点需要补充就是作为一名程序员,需要坐的住,需要一天能坐在电脑屏幕前10小时的能力,不是说坐一会,玩一会,刷一会视频。而是一直坐着的能力。我个人认为这种能力是合格程序员的必要技能。
无论IT的就业环境变的多差,程序员永远不会下岗,我认为IT行业依然是非常好的就业行业。
参考资料:
- www.bilibili.com/video/BV1QV…
- www.freecodecamp.org/news/how-to…