这次曾哥来和大家聊一聊最近几年非常火热的少儿编程。很多人问我scratch图形化编程算不算是真正的编程。是不是孩子学习编程以后就是为了去从事写程序的行业?其实两者的区别是非常大的,这么说吧,程序员职业是一个极度综合的学科,他们需要去知道和熟悉不同的行业,然后才可以把不同行业遇到的管理问题,或者技术问题用计算机的方式把它们解决。就是说除了编程本身还需要去了解其他不同行业的行业知识,而这些知识是不可以自己去琢磨的,不在其中就不可能知道那个行业真正的痛点,说到底,程序最终解决的都是用户在开展业务的过程中遇到的繁琐无聊的工作量,这些业务都是可以量化的,他们具有非常明确的规则。这对解决问题是必须的。
程序员掌握的技术知识也要远远地超过少儿编程的范畴,数据库,服务端,UI设计,前端工程师,后端工程师。还有不同的开发语言,只要有几年工作经验的程序员他们的技能知识是非常丰富的。他们通常都是对一个业务作出软件的设计,然后进行编码实现。而在少儿编程中非常重视的算法只是其中非常小的一块。通常只要能解决业务上的问题就可以了,不会特地去设计一些复杂的算法。其实算法都是越简单越好,太复杂的算法意味着需要太多的计算语句,这在效率上就会大大降低,对业务的开展是非常不友好的。
我们可以发现少儿编程一开始都是一些图形化的拖拽,算法什么的基本上是没有涉及到的,当然,并不是说小孩子用图形化的就不能去做算法。实际上曾哥自己就用scartch写过很多经典的算法,比如排序算法也有许多,自己就曾在scratch环境下实现了冒泡排序,插入排序,快速排序。没有问题的,这些完全都可以实现。当然图形化的编程除了简单本身也有一些缺陷是不如其他语言的。代码积木太多了代码的运行就可能出现卡死了的情况。这个是为什么呢?就是因为我们是图形化的编程。图形化就意味着对显卡内存的需求。我们有的时候会发现卡死就是因为太多的图形电脑已经渲染不过来了。
再说到Python,其实都是用的一些很基础的东西,也就是数学上的,因为少儿编程注重的是算法。所以图形化的开发python也是偏重于算法的。那c++也是如此,数学不好的同学去学习算法还是比较难受的。当然了这也不是说数学不好的人不能学习编程。学好了c++算法的人不一定是一个编程高手,它只能说明你的算法功底的功力。一个好的程序员它的算法并不一定是非常强的。只要他们做事情的逻辑清晰,对事情的综合总结能力较强,那么他们也是可以做到变成一个好的编程高手的。
我们可以看见算法其实是非常依赖于数学的,少儿编程和信奥这些学习基本上都是比较偏向算法的。所以少儿编程和编程真的不是同样的一个事情,他们的区别非常的大。未来必定是人工智能的时代,而会编写代码发送指令将会变成我们的基本技能,就像现在的大多数人都会使用智能手机一样,现在不会使用手机跟微信的人要出一下门都是非常困难的,他们不知道怎么展示行程码。怎么用手机给别人支付。那以后也会出现类似的情况,不会一点代码的人就只能请别人来帮助他们了。未来的工作和就业很多都是跟大数据有关系的,处理大数据本身也需要依赖算法。越是要处理更大的数据分析,对算法和硬件的要求就会更多。好了,这次先分享到这里,我们下次继续。