关于学习和实践
知识是死的,如何学会运用知识解决问题才是能力。所以希望读者学东西不要学死了,尽信书不如无书,
时代在变化,知识在更新,不能固定在旧知识点上。
要学会学习新知识,动脑分析问题,动手解决问题,
这是忠告,希望读者牢记。
新手常犯的毛病就是一遇到问题就说“我不会”,懒得想如何动脑动手解决问题,到处瞎问,这么混是没法锻炼能力的。
不可能所有东西都是现成的,等着你来抄。遇到事情要先想想有没有可能的方法去尝试,而不是傻等别人来解决。
一定要锻炼独立运用知识解决问题的能力,否则永远只是个混混。
遇到编程问题,常见的解决方法这里罗列一下,以供借鉴:
- 查阅帮助文档,测试可能的类或函数:
比如要改变一个控件的前景/背景颜色,如果不知道用什么函数,那可以去打开帮助文档(Qt Assistant工具可以查阅 Qt 文档),找到该控件对应的类文档,搜索关键词,比如颜色对应的单词是 color,前景是 foreground,背景是 background,如果这些词都查不到,那么是不是有别的单词呢,比如皮肤风格 skin、style 之类的,试一试总会有收获的,起码能多学几个函数。这种代码尝试是零成本的,编错了电脑也不会爆炸,没什么好害怕的,
学习就是不断地尝试,然后找到一条正确的道路。如果大多数情况下都能进行尝试并找到正确的路,那就形成能力了。
- 常备几本教材、参考书,积攒示例代码:
Qt 的书虽然不多,但还有几本的,买几本备用,通过回顾知识点、示例代码是可以温故而知新的,
不要看一遍就扔,书上知识一般都比较多,除非是过目不忘,否则都应该常翻阅温习的好。
书上和网上的例子代码要形成分类保存的习惯,示例代码积攒多了就是财富,
以后遇到问题都可能用得到。
- 利用搜索引擎查找可能的在线文档、博客、维基、帖子等:
通常初学者遇到的问题,别人学习时也会有类似的问题,他们很可能早几年就问过了,过了几年通常都会解决了,
可能有相关的帖子、博客、文档之类的,这时候一定不要懒,去网上多搜搜,关键词不要限于中文,
往往英文单词检索可能更有效,因为类名、函数名都是英文的。除了百度,还有必应、谷歌等,
学会用搜索引擎查找解决方案也是可行的。
- 去专业的论坛、社区咨询前辈:
Qt 在国内有 QTCN 开发网论坛:
http://www.qtcn.org/bbs/ ,还可以去 Qt 官网社区论坛:
http://qt-project.org/forums ,再不行百度贴吧还有 Qt 吧。
这些社区论坛也是学习的好去处,但提问也是一门智慧,必须把问题讲清楚:
①讲清楚开发环境,操作系统是什么,Qt库版本是什么,用什么工具做开发的等等。
②把项目代码打包完整,放到附件或网盘共享里,让别人可以得到完整代码帮你调试修改,
不要随便贴两句代码就说出错,瞎嚷嚷半天,那解决不了任何问题。
③讲清楚你想要实现什么东西,有些初学者不懂类或函数,会盯着代码死胡同折腾好几天,
实际上很可能有别的简单方法实现。所以初学者提问时不要执着于错误代码,而是要讲清楚目标。
重要的是实现目标,而不是纠结于错误的代码。世界上错误的路太多,你应该先寻找一条正确的路。
④尊重论坛前辈,可能他暂时也不知道怎么弄,别人帮你回个贴可能有不好使的的代码,
这时候没必要怪别人不懂,因为你自己也不懂才来问的,不要五十步笑百步。
- 学习 Qt 库的源代码:
有些问题可能死活找不到相关的解决方法,问别人,别人也不知道。那还有一种靠谱的方法,
就是查看 Qt 类库的源代码。所有代码都是人写出来的,别人能写出来,你也能学会看懂源码。
必要的时候就修改类库的源码或者继承新类自己尝试解决问题。这是开源软件学习的升华过程,
开源软件的好处就是你能得到源代码,并且可以自己修改,升华到这层次就可以算神功大成了,
那是真正的学会了。别人是人,你也是人,别人能做到,你也是可以的。不要片面迷信大神,
因为通过努力你也可以当大神,一定不要拘束自己的潜力!
|
练习 |
最后说明一下本教程章节里的练习实践,学习编程绝对不能懒,
一定要动手敲键盘输入代码或者用笔抄写代码,这样加深印象。
用 CV 大法(Ctrl+C 和 Ctrl+V)是学不到知识的,必须亲自动手才行。
因为不可能所有知识点都讲,而且知识点也会更新变化,重要的是锻炼学习能力。
本教程章节末尾专门留了动脑动手的练习,这些练习里面通常也是很重要的知识点,
希望读者自己动手去摸索学习,最好全部的练习都动手操练一遍。
不动脑不动手那是你自己的损失,自欺欺人不如不学。
最后是关于练习的一点提示:独立解决,方法不限,结果不限,只要能找到一条正确的路实现目标即可。