hello大家好呀,我是快乐小神仙。
今天在知乎刷到一个问题,编程新手如何提高自己的编程能力?
勾起了我的回忆。这不就是当年刚开始学编程的时候,我心中的困惑么?
记得刚开始学习编程的时候,
想写段不报错的代码吧,需要耗时十几分钟到一个小时。
刷一道Leetcode上面的算法题呀,需要一个到几个小时。
实现一个稍微复杂点的功能需求,跑通时间无比长。。。
当时的自己,好想一夜之前变成写代码的高手呀,就像现在想着基金能一夜之间变红一样哈哈==。
现在回过头来想,为什么当时的自己会觉得编程很难?
我想,学习编程的正确方式和传统教育的学习方式是不一样的,甚至是相违背的。
我们从小被教育的绝大部分知识都是通过老师传授,自己记忆,反复刷题来记住的。
而自己动手的部分极少,想想高中的实验那些化学物理实验基本都是老师在讲台上做的。
我们需要做的只是记忆知识点,以及为什么实验会出现这个结果。
我们从小被告知的成功标准就是获得考试中的高分。
可笑的是,这个标准在大学毕业之后立马变成了买车买房,结婚生子。
在我看来,语文是一个还比较有创造力的学科,因为至少还有作文这个领域你是可以自由发挥的。
其他的学科在应试教育下都失去了学科本有的魅力。
而编程,恰好是一个实践性和创造性很强的东西。
需要大量的代码实践。
只有动手写代码了才能知道输出是什么。
同样的需求可以有1-n种实现方式,实现方式上又各有自己的优缺点,根据场景的不同需要采用不同的实现方式。
这就和高考考卷只有一个正确答案有很大的区别。。。
所以初学者觉得写代码难,本质上是无法适应学习模式的改变。
好了,废话说了这么多,其实想表达的只有一个。
要提高自己的编程能力,第一步需要的是转变自己的学习模式。
思维转变之后,怎么提高自己的编程能力呢,我个人觉得需要专注于以下4个主题。
编程语言
数据结构
算法
系统理解
为了简短起见,就不给大家推荐书籍啦,只会大概讲下。
编程语言编程语言可以多学几种,切勿将自己局限于一种语言。
最好是一种面向过程,一种面向对象,一种脚本语言。
目前来看市面上主流的主要是JAVA和C++,GO语言这几年也比较火,是类C的语言,有C语言的基础学起来是很快的。
Java是综合能力很强的语言,Java的生态也非常的强大,企业一般都是基于Java生态来快速实现自己的业务需求,Java的生态也能让你有更多的大局思维。
C语言偏底层,操作系统和很多优秀的组件也都是通过C语言实现的。
学习C语言可以更好的了解计算机的底层。
C++是一门又强大又很难的语言,很多大厂用C++开发核心架构,比如腾讯、百度、谷歌等。
但是,请勿尝试在短时间内学习过多的语言。
不要只