编程入门自学指南学习软件编程

简单地说,只要具备正常的思维能力,就可以学习编程。

让我们从一个实际的梗来理解这一点:如何把大象装进冰箱里?

你也许知道这个搞笑问题的搞笑答案:

这就是编程所需要的最基本的思维能力:把一个大的问题分解为若干个小的问题,解决了小的问题,大的问题就解决了,这种分而治之的思考方法是一种相当工程化的思维,也是科学技术在过去的两百年里的统治性思维。

回忆一下,你在生活中难道不就是这么做的吗?编程实际上就是把生活中常见的思维活动用编程语言表达出来的一个过程。

如果把计算机看成一个人,编程语言就是你和计算机对话的语言,你需要用计算机能听懂的语言才能和计算机对话,就像你需要用当地的语言才能和老外沟通一个道理。

不过由于发明一种新的编程语言的成本相当低,而成就感相当高,因此目前已经出现了太多的编程语言。即有针对娃娃的图形化编程语言,也有中文的编程语言,更有针对不同计算平台的编程语言,试图学习所有的编程语言是不明智的,也是毫无必要的,因为编程最重要的是思维,语言只是向计算机表达你的思维的一个手段而言。

123openFrigDoorputElephantIntoFrigcloseFrigDoor基本上就是我们的操作步骤的翻译,对吧?

虽然编程语言不重要,但是初学者选择合适的编程语言却非常重要,因为它会影响你的学习效果和成就感的达成,而且,你终归需要选择一种编程语言才能开始学习编程。

不过贸然地从众选择并不适合所有的情况,每种编程语言都有它特定的优势领域和优势生态,我尝试根据你学编程的目的以及特定领域从业企业的主流选择给出适合初学者的几种选择,但更细化地分析远远超出了本文的范围:

在机器学习成为显学之前,传统的编程思维只有一条主线,就是逻辑的表达:把你解决问题的思维,用特定的编程语言表达出来,整理出程序让计算机去执行。这需要你把目标问题分解成一个一个的已经解决的小问题,然后再把这些小问题的解决方案整合成最终的完整解决方案。

理论上只需要三种整合手段就可以实现任何计算任务:顺序、条件判断和跳转:

第一种就是我们解决大象问题时用到的,顺序整合逻辑,依次执行分解后的解决方案就可以得到最终的解决方案。顺序执行是最基本的整合逻辑,它为程序的编写奠定了基础。

第三种整合手段是跳转,这使得程序可以改变执行的先后流程,从而改变程序的运行效果。实际上条件判断之后执行的就是一种规范化的跳转,例如跳过方案A的片段或者跳过方案B的片段。

循环则是另一种常见的规范化跳转,它可以让我们将一个方案重复执行若干次,而不是在程序中将这个方案复制若干次。例如,当需要我们编写程序实现猴子吃香蕉的任务时,可以看到使用朴素的顺序整合与循环整合的区别:

因此,在传统意义上的编程,其核心思维就是目标任务的分解与解决方案的整合,将目标任务分解细化到你已有的解决方案层面,再使用以上三种手段进行整合。

在机器学习兴盛之前,几乎所有的软件都是规则逻辑的表达,开发者需要对任务进行分解,理清每一个细节的解决方案,然后再整合到一起。虽然技术不断地更迭,也不断出现新的开发语言和领域模型,但是这一基本的思路是从来没有变化过的。

在传统的编程中,开发者是规则的制定者,这些规则以程序的形式存在,而计算机则仅仅负责执行,也许由于开发者的某个疏忽可能会导致程序的运行出人意料,但整体上来讲开发者是程序的强力操控者,所有的执行逻辑是开发者的思维的展示。

但是在软件2.0中,开发者只是实现一个基准的程序,而大量具体化的处理规则是这个基准程序通过对大量数据的处理而得出的,也就是说,程序执行的规则一部分由开发者设定(被称为模型的超参数),而另一部分规则却是由程序自己通过与数据的磨合优化出来的。

例如,人脸识别已经从早期的手工设计用于识别的特征进化到由深度神经网络自动从大量标注数据中提取特征:

在软件2.0中的基准程序需要更高层级的抽象,而不局限在一事一议的具体问题解决的逻辑表述上。在目前这一层主要是利用人工神经网络来实现的,程序自主学习的规则体现在神经元的连接权重调整上。因此软件2.0的开发范式,其核心思维就是设计适合问题领域的模型,然后用数据来优化出模型的参数。

编程是需要熟练的掌握一些基本技能的,因为需要用这些基本技能来组合出来针对特定问题的解决方案。当你还是一张白纸的时候,即使了解了顺序、条件判断或者跳转、循环之类的思维也解决不了具体问题,因为分解到最后还是找不到可用的武器。

编程语言是你的第一个武器,要用好这个武器,就需要尽可能多的了解一个编程语言的能力。可以参考下面的问题探索编程语言的能力:

1、这个编程语言怎么定义变量、函数或者类?

变量是让同一段程序能够适应各种执行环境的必备品,在程序中顺利地使用变量意味着你有了初步的抽象能力。几乎所有的编程语言都支持变量,那么先了解一个编程语言如何定义变量、如何给变量赋初值是理所应当的。

例如,你要编写的程序可能有很多个注册用户,而你的程序核心逻辑并不需要根据用户的不同而区别对待,那么将注册用户抽象成一个变量来编写你的程序逻辑就是合理的选择:

函数(或者过程)是组织可复用代码的一种常用手段。如果有一个功能你会在多个地方使用,那么把这个功能封装到一个函数里是常见的代码复用手段,这样就避免了同样的实现代码在程序的不同地方重复出现,优化了代码,也更容易维护。

如果说函数是对计算机原生的顺序过程化思维的一种优化组合方法,那么类则是面向对象的软件设计思维的优化组合方式,不妨简单地把面向对象视为对现实世界中的实体对象以及相互关系的模拟,例如可以把所有的用户视为一个类,因为在我们的程序中这些用户有一些共同的特性和方法。

2、这个编程语言怎么表达顺序、条件判断、跳转或循环逻辑?

就像前面说到的,这些组合手段用来把程序的各部分拼装在一起,因此是必须掌握的。

3、这个编程语言提供了哪些基准解决方案?

所谓基准解决方案就是可以解决某个单一问题的方案,例如:怎么输出一句话、显示一个图片或者访问服务器上的数据库。通常一个编程语言都会提供一些内置的基准解决方案,以函数或者类的形式提供给开发者,这些函数或者类,就是我们常说的API——应用开发接口。

因此在了解了编程语言的基础语法之后,需要学习的就是编程语言提供的API的使用方法。虽然不需要逐个验证每个API的功能,但是强烈建议你设定一些问题,然后带着这些问题找出可以解决这些问题的API进行练习——这些API是你解决具体问题的基础。

4、这个编程语言有哪些优秀的第三方开发包?

大多数的编程语言都采用开发包的形式支持第三方提供扩展解决方案,以便开发者可以根据自己的领域需求进行选择。了解你选择的编程语言有哪些常用的开发包是非常重要的一件事,这可以避免你重新发明轮子,提高学习效率。

毋庸置疑,和学习其他知识或技能一样,学习编程也需要掌握正确的方法。

第一个学习方法就是多实践,只有思路是远远不够的。过于强调看书看视频而忽略实践的结果就是眼高手低。你看到一个问题,思路上觉得行得通,但是却怎么也实现不出来。这是因为编程需要精确地考虑并实现每一个细节,如果只是粗线条的理解,是很难达到学习目标的。

那么怎么才能多实践?应该多模拟一些实战项目吗?

不是这样的。在早期的学习中,不应该参与复杂的实战项目,而是应该尽可能多的了解编程语言的能力,比如练习它的基础API的使用方法、练习它的扩展包的API的使用方法。一个实践任务一定不要包含太多的代码,最好聚焦于一个API,尽可能地理解它的用法,以及它对应的抽象模型的内在机制。

有的时候一个API用起来很简单,但是它有对应的抽象模型存在,这个模型并不容易一下理解。例如当你学习JavaScript操作网页的时候,就会接触到文档对象模型、Flex盒模型等诸多抽象,在这种情况下,建议你先遵循黑盒法则,就是先了解这个模型的作用,掌握API的使用方法,而暂时忽略其内部运行机制,然后将这个不理解的问题暂且记到小本本上,留待日后解决。

所以,我们说的多实践,不是实战项目的实践,而是在很细粒度上的实践,理想的粒度是在单一API上完成一个实践,因为API本身就体现了编程语言或开发包的设计者的初衷。

第二个学习方法就是在学习的过程中,多问自己一些为什么,有意识地设计一些问题挑战自己,把一时解决不了的问题记录下来,带着问题继续学习。

第一种问题是在学习过程中自发产生的,比如前面提到的,现在学习的某个知识点可能涉及到了另一个之前不了解的知识点,如果那是一个比较难理解的知识点,那么还是先记录下来,不要打断当前的学习思路。

第二种问题是有意识的发问。例如当你练习一个API的使用时,不妨考虑一下这几个问题:这个API可能在什么场景下能用到?为什么这个API需要这些参数?这个API和之前学的哪些API经常一起用?

能够主动地向自己提出问题是很了不起的进步,这意味着你真正进入了主动思考的状态。

在实践API的时候,我们的目标就是理解并掌握这个API的使用方法。当初步熟悉了编程语言的API之后,就可以设定下一级的目标,尝试着用已经掌握的知识去实现这个目标。不需要完成一个大程序,对于大多数情况而言,这时候试着编写一个诸如贪吃蛇这样的小游戏是合适的:

学习编程的目标是不是学习,而是开发出有价值的程序。因此完全脱产的学习终究会告一段落,你可能会投入到繁忙的编程工作中去。不过这并不意味着你不再需要学习,事实上,技术的演变是极其快速甚至剧烈的,因此别忘了:

THE END
1.学习编程的10大好处初升高重点学校也会招科技特长生,小升初也会看到一些省份也有招编程方向的孩子,孩子小升初就可以不用参加划片排位等升学方式,就能直接被重点的中学点招,六年级的家长也要重点关注收简历的学校,信奥赛的成绩写在简历上也是加分项。总之,学习编程不仅对孩现在的学习有很的帮助,也可以帮助孩更好地应对未来,让https://baijiahao.baidu.com/s?id=1747922381232357873&wfr=spider&for=pc
2.探索编程的意义:为什么学习编程对未来至关重要程序员计算机编程为什么要编程 (Why Learn to Code) 在当今这个数字化时代,编程已经成为一种基本技能。无论你是学生、职场新人,还是希望转行的专业人士,学习编程都有其独特的价值。本文将探讨学习编程的重要性以及它对个人和社会的影响。 1. 编程是一种思维方式 (Programming as a Way of Thinking) https://www.163.com/dy/article/JGHRO3MP0556A727.html
3.学习编程有什么用学习编程有什么用 编程对于很多人来说是非常陌生的,然而它却是非常重要的,尤其是对未来科技的发展,个人也是很重视编程教育的,那么编程具体有什么用呢,根据个人体会和大家分享一下,供参考。 操作方法 01 发挥想象力。编程是一门很神奇的学问,也是有很多技术的学科,无论对于孩子还是大人,学习编程能有效地提高孩子的https://www.coozhi.com/zhichanglicai/zhichangjiuye/75959.html
4.孩子学习编程有什么用吗?国内青少年面授编程课程培训 致力于教授6~18岁青少儿编程 趣乐码全国各地分校已达200多家。 福州趣乐码青少年编程学员问答 李**1891796*** 2024-11-29 03:16:43 孩子学习编程有什么用吗? 少儿编程通过语数外学科结合的教学方式,不仅帮助孩子们提升学科能力,更旨在于提升孩子们的逻辑思维、计算思维、创新与创造能力https://www.xuemanfen.cn/school/fz/5755/issue_89437.html
5.小孩子学习编程有什么用?未**评价:近编程比较火,马上就到暑假,带孩子参加了一节小码王小寨校区的试听课,不得不说,现在孩子真的很幸福,学习编程还能以这样有趣的方式,果断报名,暑假之后看看学习效果再来评论。 手机号码:176***8457 评价时间:2024-12-08 武**评价:西安小码王的Scratch编程课程特别吸引孩子,上课的时候跟着老师就这么一下一https://www.edutt.com/keyword_show_2113997/
6.学习少儿编程有什么用孩子在学习编程的过程中,通过编程语言将想法传达给计算机,使得计算机完成指令来完成孩子的想法,这个过程就是不断分析问题和解决的过程。在解决实际问题时,会利用编程思维,深入分析并分解问题,找到解决问题的方法和步骤,更好地解决问题。 学少儿编程有什么用,少儿编程有什么好处,这些您了解吗? https://www.youkee.com/wenda/2380.html
7.孩子从小学习编程到底有什么用!是为了以后让孩子升学还是做程序员!少儿编程仅仅是为了以后为孩子铺垫为"程序员"吗? (速云少儿编程) 随着人工智能的发展,少儿编程也成为了像英语、奥数一样受人追捧的课程,但是许多家长也有着相同的困惑:我的孩子将来不当程序员的话,还需要从小学习少儿编程嘛?这样学习了又有什么用呢? http://itchilds.net/news/112.html
8.学少儿编程有什么用?会不会耽误文化课的学习?家长的4个误区很多家长质疑学少儿编程有什么用,担心学习编程会占用孩子学习主课的时间,了解后您就会发现,学习编程不仅能够提升孩子解决问题的能力,还能够促进各科的学习。 编程本就是跨学科学习的典型代表,会涉及数学、英语、艺术、语文等多学科知识,是知识综合应用的检验平台。 https://www.azmcode.com/2713.html
9.什么是编程学编程有什么好处什么是编程学编程有什么好处 编程是一种创造性的工作,它可以让我们用计算机来实现自己的想法和梦想。可以说在如今数字化和智能化的时代,学习编程已经成为一种非常重要的技能。今天小编就来带大家一起了解一下编程。 什么是编程? 编程是指用计算机语言写出程序的过程,也就是按照计算机可以识别的语言来编写指令,从而让https://www.hxsd.com/content/32155/
10.派森编程软件python教程,派森编程软件python有什么用最近学习Python,网上学习资料挺多的,这篇写的不错,关于派森编程软件python教程和派森编程软件python有什么用,大家有需要也可以看看。 Python语言的概述 Python语言 Python语言的基本概念 Python是什么?Python 是一种极少数能兼具简单与功能强大的编程语言。你将惊异于发现你正在使用的这门编程语言是如此简单(简单吗,我不https://blog.51cto.com/u_15077560/3323265
11.自学编程的软件有什么APP推荐自学编程的软件有什么下载现在越来越多的人想要学习编程,那么自学编程的软件有什么2022?今天小编就给大家带来好用的自学编程软件推荐,有了这些软件,大家在工作学习之余就能利用空闲的时间来自学编程了,掌握一门编程技术对于未来的发展还是很有帮助的。 No.1 编程狮 考试学习|35.37MB https://www.wandoujia.com/bangdan/407618/
12.编程是什么?孩子学有什么好处?孩子学有什么好处? 编程是一种用计算机语言来控制计算机的行为的技能。编程可以让我们创建各种有用的软件,如游戏,应用,网站等。编程也可以帮助我们解决生活中的问题,如数据分析,自动化,人工智能等。 孩子学习编程有很多好处。首先,编程可以培养孩子的逻辑思维和创造力。编程需要孩子分析问题,设计算法,调试错误,优化代码https://m.w3cschool.cn/article/82184094.html
13.孩子学编程的好处和坏处有哪些2孩子学编程的坏处 1、影响眼睛视力 跟学习其它课程不同,孩子学编程时需要使用电脑,尤其是上编程录播课或者直播课,就是要一直对着电脑。所以少儿编程培训机构一般一周只安排1次课,1次上2小时左右,为的是孩子不要长期对着电脑。 很多家长以为对着电脑就会近视,那就解释不通有些孩子没怎么用过电脑也会近视,有些学生http://www.chusan.com/zhongkao/257845.html
14.python编程有什么作用,python编程主要干嘛的祝你学有所成,望采纳。 关于学习Python的资料分享 如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,我也为大家整理了一份【最新全套Python学习资料】一定对你有用! 对于0基础小白入门: 如果你是零基础小白,想快速入门Python是可以考虑的! https://blog.csdn.net/2301_81900494/article/details/137141280
15.少儿学习编程有什么好处伴随着技术的发展,编程学习也走向全球化,国内编程学习的热潮正在兴起。那么下面和小编来看看这篇少儿学习编程有什么好处的文章,一定会有收获的。 1.编程提高了孩子的数学成绩 很多孩子在学习数学时都会觉得吃力和无聊,因为数学是一门概念学科。数学是抽象的,考验了孩子的逻辑推理能力和他们思维的缜密性。而编程常常能帮https://www.qinxue365.com/wenda/659880.html
16.学习少儿编程对学好语文英语数学有什么好处?学习编程对数学的作用: 将复杂的数学逻辑拆解为一个个简单的小知识模块,找到共性,提升孩子的审题能力,分解思维和分析能力,从而获得举一反三能力。提高孩子的严谨性,改善粗心大意的毛病。理解抽象概念,如变量,随机知识点等。除此之外,也可以通过应用更好地理解数学概念。 https://www.xdf.cn/920/202301/12781443.html
17.铜陵三中——铜陵市第三中学信息学公益课堂开班啦为普及计算机编程基础知识,培养中小学生学习编程的兴趣,提高他们创造性地运用程序设计解决实际问题的能力,铜陵三中开设信息学公益课堂,向中小学生共享高水平机器人竞赛教学资源和信息学教育资源,满足对机器人和编程感兴趣、有特长的孩子的需要,丰富他们的课余生活。 http://www.tlsz.net/DocHtml/1/Article_20219248191.html