最近群里有些同学问我,为什么我觉得我精通C++了还是写不出来程序?
这其实是学习程序挺普遍的状态。我自己也遇到过。
首先,这个精通的意义不是特别明确。
我认为主要分为三种。
第一种:精通语法
这种最常见,学半年左右精通一门语言的语法一般没问题。
但是只是精通了语法写不出好程序。就好比你把字典整本记下来也写不出好文章。
学会语法不等于能写出好程序。
写程序和写文章差不多,你首先要明白写程序的目的。然后分解为问题,再一步一步解决。这是做程序的常规流程。
所以单独记忆语法不行。你需要去解决问题。
我开始学C语言时看的一本书CPrimerplus,开篇强调了写程序的七个步骤,对我影响非常大。
在这把这七个步骤和大家分享一下。
(1)定义程序目标
在动手写程序之前,脑中要有清晰的思路。想要程序去做什么首先明确自己想做什么,思考程序需要哪些信息,要进行哪些计算和控制,以及程序应该要报告什么信息。在这一步骤中,应该用大白话描述问题。
(2)设计程序
对程序应该完成什么任务有概念性的认识后,就应该考虑如何用程序完成它。例如,用户界面应该是怎样的?如何组织程序?目标用户是谁?准备花多长时间来完成这个程序?
还要决定在程序中如何表示数据,以及用什么方法处理数据。
应该用大白话描述问题,而不是具体的代码。
(3)编写代码
(4)编译
(5)运行程序
(6)测试和调试程序
(7)维护和修改代码
其中定义和设计程序非常重要,而且一般是在纸上写好。直到第三步开始写具体代码。
图片来源:Pixabay第二种精通:功能实现很熟练就是想不起来用。
这种也比较普遍,主要集中在碎片化学习上。
道理很简单,你看视频一个功能怎么写?它是直接给你答案了。不需要你去一步一步分析。问题就出在这个解决问题的过程上。
你直接把答案记下了,那么除非遇到非常相似的功能,你会求解。功能稍微变化一下可能就想不到了。
本质上还是分析问题的过程。
写程序是解决一个问题,那么分析问题的能力自然就很重要。我个人觉得甚至比语法都重要。
而这种能力是碎片化学习最欠缺的部分。
第三个精通:需求模糊
这种问题我在工作中也经常遇到。
主要是因为需求不明确,这种时候考验的是对某个行业的理解程度,这种情况就是业务不熟练,导致你没办法做出最适合的解决方案。
那么这个就主要靠深耕某个行业来解决了。