为什么说敲代码就像练琴?
练琴过程的几个部分:乐理知识,看琴谱,手指记忆,耳朵听到效果
形成的几个记忆映射: 琴谱<->手指 手指<->音效 琴谱<->音效 乐理<->作曲
读谱 记谱、练琴、听着练,然后就是多练 直到手指对键盘形成记忆,看着新谱子可以上手弹出来,看新谱子能了解曲子,
想弹什么曲子就能用手在键盘上弹出来,作了曲可以用琴谱写下来。
对于普通的学琴者,乐理知识并不需要太多,乐理知识对于看谱子和音乐创作有指导作用,
但是对于目标是要演奏的人来说:看谱子,练琴,直到手熟眼熟这个过程最花时间。
练琴与编程的类比: CS基础知识帮助你理解代码和以后设计自己的程序,但它毕竟还没有实现为可以运行应用的程序。
就像乐理知识可以帮助你初步识谱,但不会熟练你识谱,乐理知识可以帮助你作曲,但却不会熟练你的演奏;
看谱子就像看文档说明和源代码,弹琴就是把代码敲到编译器里调试运行,
听声音就是你知道代码实现的功能是什么。
想想只知道乐理知识却看不懂琴谱, 只看琴谱却不动手弹, 看了琴谱也会弹却从来听不到声音 人如此学琴是不是很滑稽 ?
你学琴的时候每天在练琴,两个周练一首曲子,由此真正收获了乐理知识,会识了琴谱,练习了指法,听到了音乐;
那你学编程,是不是也在几个周做项目的过程周, 学习了CS知识,能读源代码,练习了语句的应用,编译器的使用,调试程序的办法,框架的使用,并且实现了程序功能效果?
所以你现在得学会把琴谱弹出来,然后几个周的时间,练习几首曲子。
初学者不要求精湛的指法与情感演奏,就像实现语句精简、算法完美的程序;
怎么能试图不会弹琴就要去作曲了,有再多设想,可是却敲不出能有运行效果的程序?
现在你就只是一个练琴的学生,一个学习练习编程的学生,像你以前每天练琴,每周学琴那样。
并且刚开始先弹简单的曲子,想想一个和弦都按不准的人要演奏李斯特,想想五线谱还没看懂就要演奏德彪西(谱子都不能流畅的看明白弹下去,哪来的表达情感和意境?),
想想一个老是按错键的演奏家,能弹出什么曲子?在编程里,连个声音都听不到了,程序会erro,然后退出。
想想一个人连钢琴的琴盖都不会打开,怎么练琴?连电子琴的电源开关,音色选择,节奏选择都不会操作的学生,怎么弹一首编曲?
不过这一切也很有趣,想想你没有老师规定,没有爸爸看着或检查,自己空余时间玩琴的时候,你是怎么探索电子琴的操作的?
想想你在妈妈单位如何在食堂大厅开饭前跑到钢琴前面,掀开琴盖,脚踩踏板,手抚摸着放谱子用的小木横板的?
不过你还是要有能弹的曲子,你也还是要按照老师教的知识和基本功一步步来练习。
不过你现在长大了,你有一个新的乐器了,你现在要学习去使用它。
一步一步来,并且要动手练习,别忘找老师求问指导,找同学交流反馈,
从简单的曲子开始,一首一首练手,外加乐理学习,基本功练习,电子琴操作掌握,就是这样。
对编程只想着琴谱和音效,却不动手弹,何时能会弹琴?我只学习理解乐理,像做饭的人没有米也没有锅,做出什么饭菜来?
所以你现在得学会把琴谱弹出来,然后几个周的时间,练习几首曲子。
从简单的曲子开始,一首一首练手,基本功练习,电子琴操作掌握,乐理练习。
先学会走路吧,再去你想去的地方!