学习编程很容易:这是自学的方法 您所在的位置:网站首页 新手入门编程应该看哪些书 学习编程很容易:这是自学的方法

学习编程很容易:这是自学的方法

2023-03-12 02:05| 来源: 网络整理| 查看: 265

它是一种新语言,但你不应该感到气馁,编码比你想象的更容易理解。 扫码关注《Python学研大本营》,加入读者群,分享更多精彩

很少有技能能像编码一样吓跑人们。电视画面让编写计算机代码看起来像是一项天才级别的活动,奇怪的符号在屏幕上竞速,背景音乐响起。

但事实是,编码实际上非常容易。

我这样说并不是要贬低优秀程序员的工作。一项技能可以同时相当容易地掌握基础知识,同时也很难掌握。人人都学写,很少有人学得好。因此,说基本读写能力是一项“容易”获得的技能(因为我们绝大多数人都能做到),这并不矛盾,同时也不会忽视才华横溢的作家的努力。

我这样说也不是为了嘲笑那些试图学习编程并发现它令人沮丧的人。

相反,我说编码很容易,因为我相信几乎所有人,即使他们不认为自己特别聪明,也有能力学习编写简单的程序。他们不这样做主要是由于一些结构性障碍,而不是技能本身的任何内在困难。

我的编码经验

我大半辈子都在写程序。我上过几门大学课程。我什至在网上完成了 CS 学位的内容(顺便说一句,如果你想学习编码,这是完全没有必要的)。

在某些方面,我的背景似乎使我无法就编码的易用性发表声明。但是,我可以毫无疑问地说,工程、会计、物理和法律等科目比编程更难。您在高中学习的大多数数学也更难,尽管您通常在代数方面的练习比对代码的练习要多,这通常会导致对哪个更难的误解。

为什么编码感觉很难

学习编码很难有几个原因:

安装新语言非常令人沮丧。这是一个想成为程序员的人的第一个活动,也是迄今为止我最讨厌编程的事情。这可能会产生一种误解,认为编程真的很难,因为新手将设置的难度推断为之后的每一刻。有太多的语言、工具、库和插件。开始编程是超级压倒性的,因为有很多东西要学,你不知道从哪里开始。早期的课程往往是由以前自学过编程的人组成的。因此,您可能会因为不公平的比较而认为自己不够聪明,无法进行编程。(我曾经认识一位女士,她获得了土木工程硕士学位,这比入门编码要难得多,她告诉我,因为她的第一门课,她不够聪明,不会编码。这是香蕉,但人们却爱上了它因为有些书呆子在上课前已经有十年的经验了。)

编程的最初时刻是最难的。设置起来非常困难,而且通常需要在编写一行代码之前学习一种使用计算机的新方法。

考虑安装大多数语言的说明。打开终端或命令提示符。键入区分大小写的确切说明以下载和安装该语言。使用 GitHub。自制。版本也很重要。你运行的是 32 位还是 64 位?因为如果你不确定它是否会因为一个神秘的错误信息而崩溃,你会觉得自己像个白痴。

这些工具和其他东西一样是可学习的,但它们强化了电视给人的印象,即编码主要使用深奥的工具,用户界面怪异、不友好。当人们看到编码时,他们会想象解析矩阵的绿色流式字母,而事实更像是一步一步地遵循食谱。

你如何克服最初的困难?

有几种方法可以做到这一点。我最喜欢买一本书,它会告诉你如何一步一步地设置语言。书店里的大多数都会教你安装过程,如果你能一丝不苟地跟着他们,你通常会成功的。

或者,您可以深入研究互联网教程,但要认识到有时它们针对的是已经精通的程序员,他们知道 Homebrew 和 GitHub 是什么,并且能够流利地将命令写入终端。如果你得到其中之一,你可以尝试跟随它,但如果你搞砸了也不要难过。这很令人沮丧,但这并不意味着所有的编码都是这样的。

另一种选择是完全避免设置。只需使用一些无需安装即可教您编码的编码教程网站。我也喜欢这个,但有时您实际上无法使用这些应用程序构建您想要构建的东西。但是,如果您讨厌设置,那就是我要开始的地方。

然而,最重要的是要记住我告诉过你这些。当您尝试学习编码时,设置起来会令人沮丧,并接受这是一个很小的代价。很快它就会变得更容易,你会做一些很酷的事情。不要因为你被困在这里而感到愚蠢,我仍然这样做并且我已经编写代码多年了。

你应该从什么语言/工具开始?

这似乎是一个很好的问题,但我认为,这实际上是思考学习编程的错误方式。

首先,尽管程序员经常吹嘘他们知道多少种语言,但要认识到大多数语言只是表面上的不同。是的,我对语言设计了如指掌,所以不要告诉我脚本与编译的重要性,或者语言是强类型还是弱类型。这些事情很重要,但它们是细节。

几乎所有语言和工具的基础都是相同的。变量。循环。功能。指针。堆。树木。散列。递归。这些概念存在于大多数语言中。如果你选择一门主流语言,你会以几乎相同的方式学习这些,所以无论你选择 Ruby、Python、C++、Java 还是 PHP 都没关系。

语言真正重要的地方是你想用它们做什么。想要编写 iPhone 应用程序?Swift 或 Objective C 是首选语言。需要创建网页?JavaScript 将派上用场。是的,如果您修改它并获得正确的插件,您几乎可以将任何语言用于任何任务。但是,某些语言比其他语言更容易开始使用某些类型的项目。

因此,首先要问的问题不是:我应该学习哪种语言,而是,我应该从哪个项目开始?

你的第一个项目应该是什么?

我建议您甚至在编写一行代码之前就开始您的编程冒险,并决定您要创建的具体编程项目。

这有几个目的:

它大大缩小了语言/工具的选择范围。一旦您知道您正在构建一个网站,您就已经倾向于使用为实现该目标而设计的工具。你所学的一切都与目的地有关。正如我在书中大量记录的那样,学习迁移是出了名的困难。直接学习比学习一些东西更有效,只是希望它以后会对你有所帮助。你可以做一些你认为很酷的事情。如果您认为制作交互式网站会很酷,那就去做吧。如果你更喜欢游戏,那就去做吧。如果您希望自动化您的会计工作,这样您的工作时间是您同事的一半,请改为这样做。做你觉得很酷的事,你就会有动力坚持下去。

一般来说,在项目方面,越小越好。决定开始制作下一个谷歌是雄心勃勃的,但可能会让你在取得很大进展之前陷入困境。

如果你真正的野心很大,通常最好先做一个玩具项目。许多有经验的程序员在进入新的编程领域时仍然会这样做。玩具项目采用了编程的基本思想,但将其转化为您可以在几天或几周内完成的事情,而不是几年。

好项目的例子包括:

一款基本的文字冒险游戏。没有图形,但仍然需要学习循环、变量、输入输出处理等概念。一个简单的网站。从仅显示静态页面开始。当您了解更多信息时,可能会添加评论、用户、照片或互动元素。一个简单的应用程序。你想在手机上放什么简单的东西?开始可能很愚蠢,别担心。用于自动化繁琐任务的脚本。

一般来说,程序在不涉及多媒体内容时会更容易(网站有点例外),因此,例如,如果您正在制作游戏,那么文字游戏往往比带有图形的游戏更容易,这仅仅是因为制作所有的图形都需要时间。

同样,不同的核心活动有不同的困难。反复进行的算术和简单计算是最容易的。处理精确模式的文本有点困难。处理模糊模式的文本更加困难。处理、语音、照片和视频更加困难。

如果你最终选择了一个非常困难的初始项目,那么缩减规模是可以的。“制作一个计算我的抵押贷款支付的应用程序”比“制作一个可以从照片中告诉你某人的发型的应用程序”要容易得多。刚开始的情况通常并不明显,所以如果您不小心选择了一个“难”的问题开始,请不要担心,您可以稍后将其调整为更容易的事情。

您应该使用哪些资源?

一旦你选择了一个项目,下一步就是获得一些资源来提供帮助。这是许多人无休止地担心的一步,但就像语言选择一样,它远没有你想象的那么重要(并且更多地取决于你的目标)。

我不会列出具体的资源,因为好的资源太多了,我的建议会遗漏一些最好的资源。相反,这里有三种寻找优质资源的策略:

获取一本书,教您所需的语言 + 项目。您当地的书店或图书馆应该有一个计算机部分,您可以选择其中任何一个。我喜欢O'Reilly,但也有很多不错的。(如果您还没有弄清楚哪种语言,只需谷歌您的项目类型并寻找建议。)参加 MOOC。Coursera、edX、MIT、Harvard、Stanford等都在网上教授计算机编程。再一次,最重要的不是确切的课程,而是它是否教授您关心的语言/项目领域。参加一个教程程序/网站。同样,有很多这样的。我第一次想学习 Python 时使用了Google 的Python。

强调要选择哪本书或课程是错误的事情。要做的主要事情是使用这本书或课程来学习足够的知识来开始修补您的项目,而不是自己掌握编程。在你准备好之前开始你的项目绝对是你应该感受的方式。

做真正的程序员做的事,问谷歌

一旦你真正开始编写代码,你会遇到很多很多情况,你要么不知道如何做某事,要么你以前学会了如何去做,但你已经忘记了。

在这些情况下,你应该像真正的程序员那样做:问问谷歌。这不是可耻的活动,而是真正编程的一部分。我已经编码多年了,但我总是忘记一些愚蠢的语法问题,所以我发现自己一遍又一遍地在谷歌上搜索正则表达式。这并不坏,这只是过程的一部分。

安装完成后,您已经通过书本了解了一些基础知识并开始着手您的第一个项目,您将通过谷歌搜索并添加到您的编程知识库中来学习其余部分。计算机科学理论、对您正在使用的语言的详细理解或高级设计模式可以等到您完成一些实际项目并感觉自己可以编写一些东西。

警告 #1:不要复制和粘贴

关于这一步的第一条建议是永远不要复制和粘贴。复制和粘贴是不好的,因为您不会尝试理解您正在复制的代码。相反,如果您必须转录,您自然会问自己:“为什么要这样?为什么不是别的?” 即使您没有立即得到很好的答案,为自己输入内容也会让您对答案敞开心扉,而复制和粘贴则会关闭思考。

警告#2:在寻找解决方案之前自己尝试一下

第二条建议是总是先尝试自己解决问题,然后再查看其他人是如何解决的。大多数问题都有很多很多可以解决的方法。挑战在于,专业程序员通常知道一种特别简洁、聪明的方法,但这通常不是“显而易见”的方法。这可能会导致一个陷阱,您会看到一个巧妙的解决方案使用了复杂的语法,认为您无法猜到该解决方案,并认为您无法自己解决它。这通常不是真的,但是在尝试找到自己的解决方案之前查找解决方案是一个不幸的副作用。

你应该费心学习计算机科学吗?

计算机科学往往等同于编程,但在实践中,两者往往截然不同。Comp sci 往往是更离散的数学、复杂的算法和计算的基本问题。编程更加实用和动手。

例如,很多计算机科学教授都不是伟大的程序员。这听起来像是一个专业的失败,除非你意识到他们的工作主要是用铅笔和纸用数学证明事情,而不是编写可用的代码。

我做了一个完整的项目来学习计算机科学,所以我碰巧真的很喜欢它。但是,如果您的目标主要是实用的,我不会在一开始就花太多时间。如果你已经做了一段时间的编程,并完成了一些真正的项目,那么深入研究高级算法、计算理论和离散数学主题会非常有趣。但如果你从这些开始,很容易不知所措。

建议总结

这是一篇较长的文章,所以让我在走之前重申最后几点:

学习编码比大多数非编码人员想象的要容易得多,至少要制作简单的东西。看起来很难的主要原因是: 设置令人沮丧。有太多的选择要开始。 3.早期的课程充满了自学成才的神童,他们让你感到愚蠢。要自学,您应该: 首先决定你想要制作什么样的东西(网站、应用程序、游戏、脚本等),选择最适合你想要制作的语言。立即从一个具体项目开始构建一些小东西。书籍、课程和教程应该可以帮助您达到这一点。当你遇到困难时,做其他人都做的事,然后问谷歌 但不要复制粘贴答案。并尝试先自己解决。只有在自己做了一些事情之后才能学习计算机科学课程。

如果你能克服最初的挫败感并建立一点信心,那么任何人都可以学习编码。更重要的是,即使您从未成为一名全职程序员,它也是一种可以终生使用的技能。

参考文章: https://getpocket.com/explore/item/learning-to-code-is-easy-here-s-how-to-teach-yourself

推荐书单 《Python从入门到精通》

https://item.jd.com/13284890.html

《Python从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分23章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、异常处理及程序调试、文件及目录操作、操作数据库、GUI界面编程、Pygame游戏编程、网络爬虫开发、使用进程和线程、网络编程、Web编程、Flask框架、e起去旅行网站、AI图像识别工具等内容。所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。除此之外,该书还附配了243集高清教学微视频及PPT电子教案。

《Python从入门到精通(第2版)》可作为软件开发入门者的学习用书,也可作为高等院校相关专业的教学参考用书,还可供开发人员查阅、参考使用。

这本书有如下特色:

循序渐进,实战讲述 243集教学微课视频,39小时知识点精讲,可听可看,随时随地扫码学 趣味解读,易教易学 赠送Python实战训练背记手册 在线解答,高效学习 企业QQ、QQ群在线答疑,明日学院社区答疑。 每周清大文森学堂在线直播答疑。 精彩回顾 Python是如何跑起来的?从字节码说起 【案例】如何使用Flask构建天气预报 手把手教你创建简单的Python Flask

扫码关注《Python学研大本营》,加入读者群,分享更多精彩



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有