首页 专题资讯 少儿编程 正文

99%的家长都不知道 编程能力就是超能力

发布:2018-08-14 20:13 来源:PiPaCode在线少儿编程

编程能力体现以下两点:


1.对可预测系统的理解:理解越深,预测能力越强,自己的智慧才越好发挥。这就是为什么学习软件编程最快的方式之一是“造轮子” -- 造轮子就是为了深刻理解轮子、预测轮子的行为。

2.如何把自己的目标转化成指挥方案,这其实就是“做应用题”的能力,我们从小学就在练习这个能力。现实世界的应用题可不会告诉你用什么知识点去建模,也不会透露全部必要条件,因此增强这个能力需要深刻理解现实世界的运作方式。在软件行业,这被称作“理解垂直行业的业务逻辑”。

为什么要编程呢?就是要去高效地解决问题。然后一个更重要的问题,怎么算解决了问题?武林外传中李大嘴说说过“对于一个厨子来说,只要吃的人觉得好吃,那你就算是成功了。当我们的用户觉得我们的东西功能齐全、用起来好用,那么对于程序员来说,他不就算成功了吗?


编程能力是一种解决问题的能力


如果问题没能被很好地解决,知道再多也没用。


编程能力是一种运用机器解决问题的能力


首先是要判断问题在什么程度上可被机器解决,比如理论计算机科学会告诉我们什么可做、什么理论上不可做、什么理论上可做实践上不可做。然后是让机器更好地理解问题,比如计算机都是(图灵-冯诺依曼模型)等价,但不同的问题可能会适用不同的编程语言。再后是让机器能更高效率地解决问题,比如同样的问题可能会有效率差别巨大的算法。


编程能力是一种抽象问题的能力


借用轮子是很好的办法,省力省时间。今天任何软件工程师都会有意无意地使用很多轮子,从操作系统编译器数据库网络到算法数据结构。想高效地借用轮子,就需要将问题分解再分解,抽象再抽象。任何一个实用的系统(不包括教科书上的示例程序和简单的脚本程序)都需要进行大量的分拆和组合。所以系统设计是编程能力里的高级技能,加合理的假设简化问题尤其有难度,此处不展开讨论。


高手和新手的区别在于新手往往不知道轮子的适用范围,而高手的手上轮子数量多且熟知各种轮子的差异,所以对不同的问题可以轻松地找到合适的轮子,当实在找不到合适的轮子时可以自己动手改造现有的轮子。平时有时间拆装和改造已有的轮子会对水平提升有较大帮助。当然能知道怎样快速在搜索引擎里搜出轮子也是一种能力。


编程能力是一种需要考虑扩展性的能力


算法竞赛中的很多算法考虑的是单机的内存算法,计算模型经过高度抽象,在实践中机器的模型更为复杂。比如单机的多级结构带来的各种时间空间复杂度的取舍平衡,多机网络中如何能在提高单机性能外进一步优化整体性能。除了在机器端的扩展,在程序员一端的扩展也很重要。


复杂的问题和工程往往意味着团队协同以及更长时间的开发维护,团队分工和设计沟通这里暂且不论。举个容易被忽视的例子,程序中的注释。高手会更在意完整且表达清楚的注释,因为这是写给现在和未来的团队(包括自己和其他成员)看的,直接影响到长期的整体开发维护效率。


编程能力是一种取舍的能力


局部的最优解未必是全局的最优解。如果一个美妙的解决方案需要将完工时间向后推迟一两个月,需要考虑是否先使用平凡方案解决问题,之后再进行优化。当你的工作延后会阻碍别人的工作时尤其如此。发现一个绝妙的优化方案时先想想这个优化是否真的有价值,如果只是系统中很小的部分,那么不要为了追求心理满足而花很多时间放一个漂亮的轮子上去(参考Amdahl定律)。


编程能力是一种预见未来的能力


目前的方案有哪些假设和局限性,在何种情形下会遇到问题甚至崩溃。在未来出现问题时问题是否需要重新定义,系统是否需要重新设计,代码是否需要重构或优化等等都需要未雨绸缪。


编程能力是一种工程能力,无它,唯手熟尔。


如何去提升编程能力?最有效的是直接在实战中挑战极限--自己的极限和行业的极限(如果可以的话)。算法,架构,理论,think in hardware,开发流程,产品意识都需要良好的结合到一起才会不停的突破,解决实际的问题带来的快感给你源源不断动力。


编程能力就是一种高效地解决问题的能力,找出解决方法的能力,把现实问题转化为代码逻辑的能力。但是,如果问题没有被很好地解决,知道再多也没有用。

一周排行
PiPaCode

PiPaCode,专注6-15岁少儿编程教育,是广州首家拥有少儿编程自主知识产权的科技教育公司,坚持走科技创新之路,秉承南粤羊城低调务实的精神,扎根广佛,砥砺前行,潜心研发适合中国学生的少儿编程软件和系列课程。已推出的课程包括:PiPa积木编程课,CodeMonkey闯关编程课,3D打印,Arduino,C++,Python人工智能,电子电路等科技课程。旗下有PiPaCode在线少儿编程和PiPaCode科技创客中心两大品牌,为推动中国孩子的兴趣培养、创新创造以及实践精神贡献力量。

联系我们

广东种子力量教育科技有限公司
官方网址:www.pipacode.com
服务电话:(020) 8925-5356
服务QQ:281753448
邮件地址:service@pipacode.com
总部地址:广州天河区天汇创意园314-315

扫一扫
官方服务号
课程购买
Copyright © 2018  让一部分孩子先看到未来   粤ICP备18025193号-2