学编程无用
① 自学编程=做无用功
作者 | PRESSone
来源 | 怀左同学
先给你讲个故事,看看你有没有类似的经历。有一天,你去参加同学聚会,和老友们举杯畅谈,他们告诉你,不学编程就要 out 了,从全球趋势来看,编程这把火已经烧了很多年。英国早从 2014 年 9 月起,就规定 5-16 岁的学生都必须学习编程,苹果 CEO 库克表示全世界各地都应该开设编程课程。回到家中,你辗转反侧,觉得自己跟不上时代潮流,扼腕叹息:“廉颇老矣,尚能饭否?”焦虑之余,你开始疯狂搜索编程,网络、知乎、搜狗,你方唱罢我登场。一顿操作之后,你的嘴里念念有词:“Wow,会编程的人好酷,牛逼,都是大神。”感叹之余,你觉得不能纸上谈兵,临渊羡鱼,不如退而织网。
于是乎,你开始了自学编程之路。
听人说,算法是编程的核心,学好算法可以一招鲜,吃遍天。别人说在嘴里,你听在心里,马上买了一本《算法导论》,打算死磕算法。你没日没夜的攻读,‘算法基础’那一小章,你鼓捣了大半个月,还是云里来雾里去的。然而,心高气傲的你是不会屈服于‘算法基础’这只拦路虎的,你开始逛各种论坛,CSDN、博客园、简书、知乎都在你的常逛 list 上。你充分利用一切碎片时间,上地铁刷一下,吃饭时刷一下,睡前刷一下,刷得不亦乐乎,刷不完的果断收藏。
等到收藏超过100篇未读的时候,你终于发现收藏=永不再读,这让你沮丧。
更让你沮丧的是,你买的那本《算法导论》已经在书架上躺了好久。为了弄懂‘算法基础’,你把《算法导论》打入了冷宫。比这更残酷的是,从你信誓旦旦说要学编程以来,你连一行代码都没敲过,一个程序都没跑起来。你越来越焦虑,终于有一天,你彻底崩溃了,自怨自艾道:“老子骨子里就是个文科生,赶什么时髦?学什么编程?学来学去老是做无用功有意思吗?安安静静地写文章不好吗?”写文章的人不一定学不了编程,作家王小波就是中国早期程序员,曾经自己编了一套DOS下的独立输入法。真正阻止你学编程的也不是深奥的算法,而是你错误的学习方法。自学编程不等于做无用功,盲目、焦虑地自学才是。读到这里,你肯定满脸疑惑:“我到底哪里做错了?”
首先,自学的初衷不是焦虑、盲目,而是解决问题。
李小龙当年刚回香港,在《欢乐今宵》上节目,节目组请来了一名拳师,想考验他能不能推到对方。拳师也摆好架子等他来推,结果李小龙一拳打在对方脸上。李小龙想表达的是:在真实的实战中,没有人会等你摆好架势,只冲着你规定的地方打过来。学习也是同样的道理。在真实生活中,环境和知识都一直在动态变化中,你不可能像学校里一样,系统的学好、学完一门知识,然后坐在教室等着不超纲的考试。
大部分时间,生活会先给你一个考试,然后你根据问题,自己找出关键词,开始学习。所以,学习的起点不是某人在酒桌上蜻蜓点水的一句话,也不是某人在朋友圈晒的一本书、推荐的一篇微信文章、更不是这个行业的一个经典教材引发你的焦虑,而应该是你真实遇到的一个问题。遇到问题,动手写,犯错、改正,再犯错、再改正,这是学编程最重要的过程。其次,自学尤其是自学编程往往不是线性的。
我们从小到大在学校学习,都有一本教科书,往往按着预习、听讲、练习、复习的路径学习,所有的教材也如出一辙:每个章节所涉及的知识点之间,全都是线性关联,第一章学好了,才有基础学第二章。而社会的知识结构不仅不是这样的,而且几乎全都不是这样的。
工作中、生活里充满了各式各样的“提前引用”,即想要理解当前的知识点,需要依赖你未来才能理解的某个或某些知识点。如果还是按照校园时代的线性思维来学习的话,很有可能就像故事中的主人公一样,最终学不下去。拿编程来说,动不动啃《算法导论》的人,要不是有很深厚的数学基础,肯定吃不消。
生活很少教我们按部就班,它给我们的测试往往是超纲的,这就要求我们不断更新和迭代。互联网的发展给我们带来的最大启发就是迭代,从门户到搜索,从搜索到移动互联,从简单的网页交互,到如今热闹的小视频社交,技术和生态一直在更新和迭代。
同样,自学也是一个不断更新和迭代的过程。编程是一门活到老、学到老的手艺,有些很抽象的概念,一开始看不懂没关系,先脑子里有个大概的印象,然后依葫芦画瓢写几段代码,自己动手实践,写完之后再总结、归纳、整理、组织相关的知识点,实战经验多了,再回头来看最初的难点,你自然能够豁然开朗。
比如说 python 中的 return,很多初学 python 的人,对 return 疑惑不已,字面上是返回,那它到底返回什么,又返回到哪里呢?有人可能会给你解释:“return 语句就是将结果返回到调用的地方,并把程序控制权一起返回。”对于初学者来说,这个解释也不好理解。
没事,先实践起来。
拿下面这四行代码来说,你可以想象你开了一家工厂,雇佣工人来干活,这个工人(worker)在你的指导下,用a、b、 c 三个材料,装配出了 x 和 y 两个成品。但是程序里的装配和工厂不同,用过的材料不会消失。这样,这个工人手里就有了a、b、c、x、y五样物品。他怎么知道你要的是哪个呢?
所以 return 的作用就是,在这种时候告诉工人你到底想要什么东西,是一个iPhone 手机壳还是整台 iPhone。毫无疑问,return x 和 return y 是完全不一样的结果。return x 是当你让这个工人帮你干活时(调用函数),他最后会把产成品x交到你手上,而当你输入return y 的时候,干活的工人会把产成品 y 给你。
举个例子,worker(1,2,3),return x 的结果为1+2=3,return y 的结果为(1+2)*3=9。这样实践一下,你对于return是不是有了更深的理解?def worker(a, b, c): x = a + b y = x * c return y看完我的分析,蓦然回首,你是不是觉得道路明朗了许多,你肯定很想问:怎样自学才高效呢?在自学过程中,有个方法特别管用,就是用输出倒逼输入,你逛论坛、刷文章、看视频教程都没问题,关键是要有输出,光有输入可是不行的。而最好的输出就是实践,把自己听到的、看到的、读到的,转化为你独立编写的一个个程序,岂不妙哉?
文章开头故事里的主人公就陷入了盲目输入,却无输出的泥潭。他的输入表面上看上去渠道很多元化,然而这些输入并没有带来有效的输出。还有一个很多人都不知道的点,你的输入很有可能是制约你进步的紧箍咒。
输入也是有讲究的,盲目输入会带来信息超载。全世界每天有 4000 本书出版,超过 4 亿个字;纽约时报一天的文字量等于牛顿同时代的人一生的阅读量;一个专业领域,每天大概有有近4000篇文章正在产生。就算你火力全开,疯狂地输入相关知识,也还是难免有漏网之鱼。
而且,在茫茫的信息汪洋中,信息质量参差不齐,保不准你输入的就是一些边角料,反而让你裹足不前。这儿分享桥水(全球着名对冲基金)创始人瑞.达利欧在《原则》一书中阐述的观点:“正确的决策很多时候需要依赖可信度加权。”学习同样也需要可信度加权,不是所有的资料都全盘接收,而是有选择的相信,用老祖宗的话来说,要取其精华,弃其糟粕。信息爆炸时代,最重要的不是增加信息,而是筛选和删除信息。除此之外,要勇于跳出舒适区,刻意练习。
刻意练习这个概念由美国心理学家安德烈.艾莉克森博士提出,即有目的的学习,指的是把要学习的内容分成有针对性的小块,对每个小块进行重复练习。在武术训练中,非常强调分解练习。
首先你要把整套动作过一遍,看教练是怎么做的。然后把它分解为多个动作,每个动作分解为多个步骤,一个一个地练习。在这种训练中,动作一定要慢,只有慢下来才能感知动作的内部结构,注意到自己的错误。画家要采风、棋手要打谱、律师要学习案例、政客要读历史、科学家要看论文、马拉松运动员每周至少要累计150公里的跑量。
大部分的学习都不是一蹴而就的,往往是练习-反馈-练习-反馈-练习-反馈-学成。刻意练习的关键是随时获得有效的反馈。拿自学编程来说,这是一个很容易获得反馈的领域,当你写的程序跑不起来时,意味着你要 debug,你得把你写的代码分成一小段一小段,逐句检查,直到找出 bug。当然,鼓吹刻苦的鸡汤想必大家都喝腻了。事实是,很多人即使整天坐在书桌前埋头苦学,时长达到甚至远超学霸,实际效果却远远达不到学霸的水平。问题的关键在于你的思维和学习方法,在于你的学习时间是否得到了高效利用,是否能通过高效学习把知识转化为你真正的实力。
只是如果你注意力涣散,身在书桌前,神游天地间;如果你好不容易学完了,转眼又忘得一干二净;如果你写了很多代码却不会举一反三,同一个知识点换了个问法又被难住了;如果你对于你所学习的领域缺乏好奇心和探索精神,只是当一天和尚,敲一天钟,没有刻意练习。那么,花费再多的时间,又有什么成效呢?
扪心自问一下,你上一次坐下来长时间专注于学习,是什么时候呢?
似乎这件事变得越来越难以做到,因为我们的生活已经有太多的干扰:必须要点的微博、朋友圈点赞、支付宝蚂蚁森林收能量……诱惑源源不断,切割了我们在学习上的很多可能性。我们接受了太多无效输入,自然也不会产生高效的输出。读到这,你可能又要问我了:“该怎么办才好呢?”比起一味地延长学习时间,更‘刻意’地学习更重要。
学习从来都不是一个阶段的事,更不是一件轻松的事,但是我们可以优化我们的学习路径,比如给自己创造一个干扰项少的学习环境。拿自学编程来说,你需要的就是一台电脑。在学习的时候,你最好离手机远一点,并关掉电脑版微信、QQ和一些乱七八糟的应用。不过,自学之路从来都不是轻松的,这也才显得它的专业性和独特性。愿你学成归来,已然成了一名大神!
② 小孩学编程有用吗
链接:
少儿编程教学可以大致分为两类:一类是Scratch或是仿Scratch的图形化编程教学,以培养兴趣、锻炼思维为主,趣味性较强。在这里,可以创造属于自己的动画,故事,音乐和游戏,这个过程其实就像搭积木一样简单。此外,还有机器人编程,也就是搭建机器人,通过运行程序让它动起来,着重培养孩子的动手能力。另一类是基于Python、C++等高级编程语言的计算机编程教学,目标往往是参加信息学奥赛等科技品牌赛事,如信息学奥林匹克竞赛/联赛、机器人竞赛、科技创新大赛等,或为后续的专业学习和职业技能打下基础。
③ 孩子学编程的话,真的有作用吗
非常有用!少儿编程则尤其擅长训练孩子的逻辑思维能力、自主学习的能力、创新思维能力,同时还能培养自信心与成就感、毅力、专注力等品质。少儿学编程的意义并不仅仅在于学会一种技能,而是通过编程的学习,提升多方面的素质能力,这些基本素质的提升,会对孩子今后的学习能力、思维方式、乃至以后的人生都会有正面的持久的影响。 同时数字基建的时代即将到来,那些从小就经历过编程训练的人,对数字时代的思维方式了然于胸,他们将毫无障碍的融入时代,并能成为引领时代发展的主力军。从这个意义上说,每个青少年都应该进行编程的学习和训练,日本已经先行一步将编程课纳入了小学必修的课程。 国内也的专业少儿编程网站少年程序家也研发了Python线上互动课程,融合了讲授、思考、实践、提问多个环节,不仅能锻炼逻辑思维,促进孩子今后对数理化的学习,同时还训练了孩子的主动学习能力,提升孩子学习的效率,非常适合国内的少儿编程教育的普及,网络或者微信公众号搜索“少年程序家”都可领取体验课。
④ 小朋友上编程课有用吗
儿童学习计算机编程当然有用,但必须要注意一点就是:家长让孩子学习少儿编程的前提是要建立在孩子对计算机编程方面有着很大的兴趣才行。如果孩子自己根本就对计算机编程不感兴趣的话,家长即使知道计算机编程对于孩子的重要性很大,那也还是不要逼迫着孩子学习编程为好。
从小学习计算机编程不仅仅是考虑将来到底找一个什么样的工作,而更加重要的是:通过让孩子从小学习一些计算机编程,能够更好的锻炼孩子逻辑思维能力、而且更能够锻炼孩子动手解决实际问题的能力。这些锻炼对孩子将来长大后找工作等都是有非常大的好处。【学少儿编程可以提高孩子逻辑思维、专注力!】
关于少儿编程的问题,推荐咨询童程童美。童程童美独立开发的专有可视化在线少儿编程教育平台,针对6—18岁青少儿提供线上小班直播授课。依托故事化、可视化、游戏化的学习方式,采用自主研发的云平台编程环境,让学生在云端操作即可运行出结果。【童程童美少儿编程体验课,点击可免费报名试听】
⑤ 学编程到底有没有用
我在这里可以很肯定地告诉大家,学编程肯定是有用的,而且用处非常大。我自己的话学过C语言的编程、汇编语言的编程和PLC的编程,通过编程可以帮助我们培养逻辑思维能力和抽象思维能力,所以说学习编程还是挺好的,挺有用的,下面我就来具体介绍一下学习编程的用处在哪里。
编程语言是通向未来的语言
小结
总的来说,学习编程的用处真的非常大,我们要好好利用自己的课余时间把编程学会,这将会是你一笔无比宝贵的财富。
⑥ 初中生有必要学编程吗
中学生学习编程是非常有必要的。学少儿编程可以提高孩子逻辑思维、专注力
1.中学生学习编程能提高数学成绩
很多孩子在学习数学时感觉到吃力,这是因为数学是利用符号语言研究数量、结构、变化以及空间模型等概念的一门学科。它是抽象的,不仅考验了孩子们的逻辑推理能力,还考验了孩子们思维的缜密性。而编程往往可以帮助孩子形象化抽象概念,让他们将数学运用到现实世界中,让数学变得有趣和有创意。
2.中学生学习编程能够建立自信心
在编程过程中,孩子们会不断遇到问题,遇到问题时他们会通过寻求方法以及外界帮助来解决问题。孩子们不仅在此过程中提高了解决问题的能力,同时对于自信心的建立也起着极大的作用。
3.编程构建软技能,培养专注力和细心度
当孩子们需要编写更复杂的代码时,他们会自然的提高自己的注意力,防止出现错漏现象,因为编程时尽管是漏了个符号都会导致程序无法进行,因此孩子们必须保持高度的专注力,细心排查,避免马虎误事。
关于更多的编程学习问题可以到童程童美咨询一下。童程童美成立于2015年,经过近6年的发展,线下230+家直营中心,遍布50多座城市,集国内外大型赛事、国际国内游学、冬夏令营等为一体的中国青少年STEAM创客教育平台。于2018年7月18日发起公益性活动中国少儿编程节,为孩子提供免费公益编程课等系列活动,现已成为举办三届,惠及1165万+人次,间接影响1.25亿+人次。。目前童程童美有少儿编程体验课,点击可免费报名试听
⑦ 感觉学编程语言c没啥用
考二级有用。
你要说就业或者说写程序吧,那单纯的C还真是没啥存在感,java,C#,C++更合适。
学C主要是考验个人的逻辑思维能力。