搜索
写经验 领红包
 > 动物

编程那么难,为什么不弄一个大众一学就会的计算机语言呢?

问:编程那么难,为什么不弄一个大众一学就会的计算机语言呢?

其实除了比较底层语言(例如汇编、C等),几乎所有上层语言本身都不难,语法、关键字就那么几个,几小时还记不下来?逻辑、循环语法即使非程序员也不难看懂。然而还是有人觉得编程难学,难在哪?我个人觉得难点可能包含以下几点:

解决问题的方法不清晰,无法分解成程序语言不懂数据结构,不知道如何用数据结构来描述一个事物对于运行环境不熟悉,不知如何与用户、系统交互

对于第一点和第二点,不少图形化编程通过封装成解决方案,以 UI 或组件的形式提供给开发者,似乎是一个非常不错的解决方案,比如 RGB 变量的分离与合并操作:

编程那么难,为什么不弄一个大众一学就会的计算机语言呢?

Blender 中的分离RGB与合并RGB

然而,对于开发者来说,如果不知道 RGB 是什么,其实还是无从下手。

其实大多数程序员在编程的过程中,打交道最多的,并不是语言本身,遇到的难题大半也不是语言本身,而是各种数据结构、接口、运行环境和事务逻辑问题。

其中数据结构 这是个无法绕开的基础知识,不论解决什么问题,基本上都是运用数据结构+逻辑代码来解决的。上层语言的数据结构比较简单,最起码也要把几个常用的结构入门吧?

后面三个问题道是可以使用封 API、组件等方式提供给开发者,但仍要学习 API、组件文档,好知道怎么调用吧?

而有些难点呢,其实就是解决问题的思路上了,我打个比方:经典的老鼠试毒药问题1000 个小瓶,其中一瓶装着毒,其它瓶子全是水,可以在 24 小时内毒死一只小老鼠问1:用什么方法找出有毒的那瓶药水?问2:如果只给24 小时间找到毒药,最少用多少只老鼠?

解1,看起来很好办,循环一千次,每循环一次拿一瓶药水喂老鼠,等 24 小时看老鼠死活不就得了?

这是没有深入研究就能得出的解决方案,好在不需要动脑子;缺点是循环一次就要等24小时,最差的情况下几乎要等三年才会有结果。谁能接受?老鼠都要老死了……

解2,看起来也好办吧?给我一千只老鼠,每只干一瓶,24 小时内就会出结果,那答案就是 1000 只老鼠喽?好家伙,挨瓶喂完这一千只老鼠,要多少人?要多少时间?

而问题2的最佳答案:24小时内最少用10只老鼠就能找出毒药。解题思路略长,我这就不发了,有兴趣就自己找找看吧,简单说就是巧妙地使用二进制原理来解题。

而这种思路,其实和语言本身也没关系,而是对于开发者自身的基础知识、逻辑能力、算法能力的要求,而这些确实不是短时间内能建立起来的。

所以语言本身并不是编程的门槛。上面说的这些才是,有些问题目前并不能通过工具来极简化,还是得学的。

就像链接蓝牙那样,一看就会的,一做就懂的那种。相当于一种模板,你往里面装东西就行的那种。