编程究竟需要付出怎样的努力?
毋庸置疑,编程的学习过程充满挑战,其难度不容小觑。
仅仅是掌握一门编程语言的基础知识,就已经让相当一部分学习者感到吃力,他们常常感到困惑不解,难以理解编程的逻辑,更难以将所学知识灵活运用。
更何况,在基础语言之上,还有更为复杂和深奥的算法、数据结构、计算机组成原理等高级知识需要深入学习和理解。
许多人在大学里学习了四年的计算机专业,但对编程的理解仍然十分有限,毕业后进入职场四年,情况也并没有得到显著改善,依旧感到迷茫和困惑,你说编程的难度大吗?
自主学习的挑战究竟有多大?
同样困难,同样具有挑战性,甚至可以说更加困难!
然而,最大的挑战并非知识的掌握,而是个人自律性的培养,是能否合理安排学习时间,是能否持续自我激励和保持学习热情。
坦白地说,随着互联网技术的飞速发展,网络上的学习资源已经变得异常丰富且质量极高,在这种情况下,获取学习资源对于自学者和非自学者来说已经不再构成明显的界限。
你甚至可能会发现,一些培训机构的讲师在讲解知识时,还不如B站上一些免费课程的质量高。
自学与非自学的唯一区别,就在于是否有人能够督促你、逼迫你、监督你。
而如果你需要他人来督促自己学习编程,那么情况可能并不乐观,一旦你从培训机构毕业,你的整个职业生涯可能会因此受到限制,而且很可能会陷入停滞不前的境地。
因此,如果你缺乏自我管理的能力,自学编程将会变得异常艰难,甚至可以说是难上加难,编程本身的难度与自学的难度叠加在一起,会形成更大的挑战。
我就直接告诉你吧,在这种情况下,我建议你放弃。
所以,除了勇敢面对挑战,坚持自学之外,你并没有其他的选择,即使暂时通过报班来逃避困难,最终你仍然需要面对这些挑战。
如何提高学习效率?
你可能会认为,报班学习是因为自己无法自学,因为报班可以随时向老师请教问题,避免因为单个知识点而卡住,从而提高学习效率。
我想告诉你的是,这既不是必要的,也是不可能的。
首先,从必要性上来说,你的80%的编程问题可以通过百度或谷歌获得详细的解答,这些解答往往比你的老师更加详细和全面。
其次,剩下的20%中的10%可以通过加入技术交流群来解决问题。而最后的10%,我相信,即使是你的编程老师也无法解决,否则他不会选择成为一名编程老师。
最好的解决办法是,通过私聊GitHub或公众号上的编程专家,向他们发送红包,并询问你已经整理好的问题。
接下来,我想分享一些我的经验。
在我近十年的工作、学习和与人交流的过程中,我得出一个结论:无论你多么优秀,一个程序员的成长中,有60%都是依靠自己,而且你越优秀,这个比例就越大。
至于为什么,也很好理解。
你越优秀,比你更厉害的人就越少,无人可问无人可教,你不靠自学靠什么?
这也是为什么我说,即使你暂时逃过了困难,最终你仍然需要面对。
在程序员这个行业,如果你不能与时俱进,就一定会被淘汰,要么是随着工作经验的增加,你感觉自己从事的工作越来越像体力劳动,单纯的代码搬运;要么是还没等到35岁,你就因为能力无法满足企业的发展需求而被裁员。
我一直强调,程序员是否会有35岁危机我不知道,但我知道程序员一定是依靠技术来吃饭的,而想要持续提升自己的技术水平,只有依靠自学。
除此之外,我一直有一个观点:程序员不是教出来的,而是培养出来的。对于程序员来说,最重要的是,不是你会什么,而是你能会什么。
知识是固定的,但学习能力是动态的。
与其思考如何便捷地获取知识,不如培养自己获取知识的能力。
因此,我给你推荐一篇关于培养基础能力的文章: