原链接:https://www.zhihu.com/question/297309123/answer/568366310
这个问题我只能说,照着别人代码敲一遍除了让你看得仔细点,练了打字外其它并没有任何帮助——和自己盯着代码仔细看是一样的,这样的学习效率是不高的。
首先得为什么会有这个问题,因为刚刚学习编程会走很多弯路,想找一个合适的方法学习。有这样想法是值得鼓励的,至少是知道怎么学习更好。我本人有些参考经验,可以吸取适用自己的地方。
平时写代码都是很屌的那种,就是别人说要用什么库,什么库才能做好,自己用原生代码,几个方法就实现好了,也经常觉得公司里面代码写得就跟垃圾一样,看了都拉低智商,也不觉得有什么挑战(好在现在出来自由职业也不用顾忌说坏话), 说实话上班一天脑力劳动强度完全达不到ACM 比赛强度的1/3。
计算机重点在于用已有的知识搭构建功能,而构建功能的步骤是固定的,只是需要掌握牢基础知识,并且提升自己的思考能力。思考能力也算是程序员的核心了(不是看,不是写,而是思考,如果照着别人代码写同时带上了思考,那么也是有效果的)。
学习基础知识:
1. 数据结构,经典算法。可以根据学到的算法和数据结构解决书本习题后面的算法问题(注意不是看了解答过程再重复写一遍,而是在自己不知道情况下写一遍,代码量可能是只有十几行,写花不了多少时间,只是思考得花些时间——一定要坚持,我曾经思考了几天就为了解一道算法题,当然根据自己的情况,不用一下选这么难的。这里培养的是解决问题的思考能力)。
这里还是要推荐下小编的web前端学习群:867726593,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括 小编自己整理的一份最新的web前端资料和0基础入门教程,欢迎初学和进 阶中的小伙伴。在不忙的时间我会给大家解惑。
2. 学会写递归,同时把递归变为循环实现相同的功能。(此处是完善思考能力,再提升一步)
当你学会前面2条的时候,即使你是第一次接触计算机,经过努力和学习掌握后水平已经超过了入门的同学,达到了中级的概念。这是内功,不是说你对某个语言运用自如了。武林高手比武比拼的是内功,外面掌握语言学习用法只是熟悉程度是外在的招式(这个非常容易掌握,多写几次就会)。
为什么开始就进入内功的修炼,因为万法归一,万变不离其宗,无论你以后学习什么语言,学了多少语言,刚进入的水平就是中级,一劳永逸。
后面只需要花点时间掌握语言的用法,方法调用,框架的使用,那么恭喜你,你的能力已经可以胜任大部分互联网公司的职位了。(这里得注意顺序,是先掌握了核心的算法和思想后才是熟悉语言本身)
下面是通往高手的进阶篇,只有在你掌握上面的东西后,才能开启下面的技能,不然容易走火入魔,我也帮不了你。
1. 开发过程中多思考,多尝试新东西,思考是通往编程高手应该具备的基本素质。
这里还是思考,和上面还有不同。思考不是瞎思考,而是有深度思考,出色的程序员写代码的时间非常少,大部分都是在思考。给你一个功能,需要根据自己有的基础知识在脑海中想怎么实现合理,高效,想清楚后再写,而不是边写边改边想,那么水平永远都是止步不前的抑或进步和蜗牛一样。
当思考同一类问题,用的时间越来越少,那么侧面反映出水平提高了,可以试着思考更复杂的问题。思考需要循序渐进,不能一开始拿一个非常复杂的问题思考,而是在自己跳一下就能够到的高度。
对于在公司上班,你会发现思考时间越来越少,完全是需求到了就马上知道怎么写了。然后就是无聊听着公司领导介绍,开会讨论。但是不要忘了,自己得给自己找事做,停止思考或者习惯了某种思考模式后进步就会减慢,要进步就要不断尝试新东西,多思考。
2. 在脑海中提前构建程序,不要过分依赖调试工具和最后的结果。
很多程序员有一个通病,就是写一点,停下来运行看看效果,如果不对再接着改,再看效果,有不对的再接着改,如果中间遇到修改出来的bug,又得跳到去找问题排查bug。这种写法不仅浪费时间,而且水平提升很有限,当然初学者可以这样写,当自己熟悉起来后就不能一味重复用这样方法了。
比如产品经理给了一个ui图,给了一个后台功能,那么你就一口气写到底,在写的过程中不要进行任何的运行查看效果,而是在写的时候再脑海里面构建出程序的样子。写完后再运行,看问题和结果,此时会遇见bug,界面布局不对。第一步先别急着去改,而是思考自己写的时候哪里有问题,思考完以后再一步步改,当然此步可以放宽,可以边看边改。
刚开始用这种方法会很不适应,写出来的东西也有很多错误,只要坚持下去。不需要多久,你的能力就会得到质的提升。最理性的状态是写一遍,运行起来,完全是预期的样子,那么给你鼓鼓掌,你已经是顶尖程序员了。这样不仅能力提升了,还有另外一个好处,别人用4个小时时间才能写好功能,你可能一个小时不到就能写完,总之会比别人快很多倍。
剩下的时间,你可以听英语,看电影,想干嘛干嘛,升值加薪,老板听你的,即使老板吝啬不加,那么大可拍拍屁股走人,去给你开高工资的地方,此时你有的是底气不怕没人要。这里不是吹牛,等你试过了再来说是不是吹牛。
如果到了这一级,在互联网行业你会很吃香,工资最低也得1.5w每月起步(这还是非常非常保守了,在效益不好的企业),会被当做佛恭恭敬敬供养起来。
这个路是自己的一些经验之谈,我指出了一条通往顶尖程序员的路,中间需要多久才能到最后这一级,就看个人努力程度和天赋了。不过我个人更看重努力,勤能补拙,天道酬勤。