#6 @
xuxinglin8888 试试根据自己已经学的内容给自己出一些自己感兴趣的题,然后自己实现。我好像很少先改再看结果,大部分都是想象一个结果或者输入输出的结合作为一个结果,然后自己实现。问题要尽量简单,稍微有一点挑战,自己稍微有一点不确定就行了。我感觉某些书的练习题好像比较难,这个好像很打击自信心。比如你如果刚刚学了显示字符串的函数,就先想象你要输出“Hi, World!”,然后再实现。如果学了循环再出一个循环显示多次“Hello, World!”的题自己实现。学了输入函数就可以想象出更多有意思的东西了。Scratch 的口号是“Imagine, Program, Share”。感觉跟我的这个习惯挺契合的,但是我很少分享,我知道自己几斤几两。
重点好像是在脑子里组合那些编程方面的概念,然后在脑子里模拟出一个大致的结果,然后再实际去写代码。初期学得少可以直接排列组合。或者学多了也可以选择少数概念去组合,否则概念多了排列出来的东西就太多了,很多排列可能也没什么意义。结果最好是有一定意义的,否则可能会没有成就感。
编程方面有个很重要的概念叫问题分解,不知道你学的电气自动化专业有没有这个概念。如果没有应该会有模块化的概念吧,问题分解跟模块化有点类似的地方。不过我怀疑电气自动化中一般不会有太多的模块,但是编写大型软件需要手动组合的模块是极多的。问题分解应该是很难通过语言传授的,应该属于程序性知识,想要获得应该只能通过练习。但是了解一下问题分解方面的陈述性知识应该也是有价值的。让我说的话就是先对一些小的模块的输入、输出以及输入输出之间的关系熟悉起来,然后在解决特定问题的时候用各种模块在脑子里排列组合最终形成解决方案。其实也不是彻底的排列组合,大多数时候其实应该都是靠直觉。通过大量练习构建起的一种直觉。这里面还有框架的概念。大多数时候有现成的框架可以节省很多时间。所谓框架就是一种解决某类问题的特定的套路,它会把问题分解成一些特定的模块。比如一个电商网站可能会将网站分解为订单、购物车、商品等模块。另外问题分解是可以一层一层地分解。最后都要分解成已知的可以直接使用地模块上。另外在分解之前需要对问题有透彻的理解,否则应该是难以分解的。注意我前面说的框架跟编程框架是有点区别的,如果你学多了应该肯定会用编程框架的,希望别把你带歪了。知乎上应该会有很多关于问题分解的讨论,感兴趣的话可以搜一下。我上面写的应该算是比较烂的了,我主要就是想练习一下表达能力。
或者你在改之前自己想象一下结果,如果结果跟自己想象的一样应该就会有成就感了。这样应该就有动力持续干下去了。顺便推荐个 B 站 UP 主“马林思维”,这个人分享的东西里有学习方法方面的。这个人自己也说他说的东西不要全信,反正我觉得还是挺有价值的。某些人看了他的视频好像出现了一些不是很严重的副作用,在意的话不要看。
还有一个也许值得尝试的东西是画图。人是视觉动物嘛,可能用程序画出复杂的图像会让人有一种本能的酷的感觉。还有就是图像可能玩腻的可能性更小一些。Python 肯定有画图的库,你可以自己找一下。我最早接触 GVBIASIC 的时候大部分都是再用它画动画,当时感觉非常有趣。当然现在还是感觉编译器之类的更厉害。你要是对这个特别感兴趣,对 Python 又特别没兴趣的话也许可以尝试一下 LOGO 语言。
我的经验不一定有用,毕竟我只是个技术不太行的野生程序员。但是我一直都对编程很喜欢,不过这好像也不是什么特别稀少的品质,可能绝大多数程序员都是喜欢编程的。但俗话说兴趣是最好的老师,也许有了兴趣就好入门了。