当前位置: 首页 > news >正文

想学编程,但不知道从哪里学起,应该怎么办?

怎样学习任何一种编程语言

我将教你怎样学习任何一种你将来可能要学习的编程语言。本书的章节是基于我和很多程序员学习编程的经历组织的,下面是我通常遵循的流程。

1.找到关于这种编程语言的书或介绍性读物。

2.通读这本书,把里边的代码都录入一遍并使其运行起来。

3.一边读书一边写代码,同时做好笔记。

4.使用这种编程语言实现一些你用另一种熟悉的编程语言做过的程序组件。

5.阅读别人用这种编程语言编写的代码,试着仿照他们的方式编写代码。

在本书里,我强制要求你慢慢地一点一点地完成了这个过程。别的书不是用这种方法写的,那就需要你把我教你的方法套用在这些书上。最好的办法是先快速过一下书中的内容,将里边的主要代码片段列出来,将这份列表变成一系列基于习题的章节,然后按照次序一一完成。

以上流程对学习新技术也适用,只要你有一本相关的书,就能把它转换成这种练习模式。对于没有书的学习内容来说,你可以使用网上的教程或者源代码作为你的入门资料。

每学一种新的编程语言,你就会成长为一个更好的程序员。你学的编程语言越多,它们就会变得越容易学习。当你学到第三种或者第四种编程语言的时候,你就应该能够在一周内学会一门类似的编程语言了,不过对于一些特别的编程语言来说你可能还是要花较长的时间。你现在学了Python,接下来学习Ruby和JavaScript就应该比较快了。这是因为很多编程语言有着共同的理念,你只要学了其中一种,就能用在别的编程语言上。

关于学习新编程语言的最后一件要记住的事情就是:别当一个“蠢游客”。“蠢游客”就是那种去了一个国家旅游,然后回来抱怨那儿的饭不好吃的人。“为什么这个白痴国家连汉堡都买不到?”当你学习一种新编程语言时,不要假设它的工作方式太蠢,它只是不同而已,只有接受它你才能学会它。

不过,在学完一种编程语言后,不要成为这种编程语言工作方式的奴隶。有时你能看到有人使用一种编程语言做一些很白痴的事情,没有别的理由,只不过是“我以前一直就是这样做的”。如果你喜欢一种风格,而你又知道大家的做法和你不同,如果你看到后者能带来好处,那就毫不犹豫地打破自己的习惯吧。

我个人是很喜欢学习新编程语言的。我把自己当成一个“程序员人类学家”,我认为一种编程语言反映了一群使用它的程序员的一些独到见解。我学习的是他们用计算机互相交流时使用的语言,这对我来说非常有趣。不过话说回来,我这个人还是有点儿古怪的,所以对于新编程语言,你只要想学就学就行了。

从Python开始学编程

Python编程快速上手 让繁琐工作自动化 第2版

本书的第一部分介绍Python的基本编程概念;第二部分介绍一些不同的任务,你可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供你学习。

本书是一本面向初学者的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且通过案例实践教读者如何使用这些知识和技能。本书的第一部分介绍了基本的Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。

下面简单介绍一下每章的内容。

第一部分:Python编程基础

“第 1 章 Python基础”介绍表达式、Python指令的最基本类型,以及如何使用Python交互式环境来尝试运行代码。

“第 2 章 控制流”解释如何让程序决定执行哪些指令,以便代码能够智能地响应不同的情况。

“第 3 章 函数”介绍如何定义自己的函数,以便将代码组织成可管理的部分。

“第4章 列表”介绍列表数据类型,解释如何组织数据。

“第 5 章 字典和结构化数据”介绍字典数据类型,展示更强大的数据组织方法。

“第6章 字符串操作”介绍处理文本数据(在Python中称为“字符串”)的方法。

第二部分:自动化任务

“第7章 模式匹配与正则表达式”介绍Python如何用正则表达式处理字符串,以及查找文本模式。

“第 8 章 输入验证”解释程序如何验证用户提供的信息,确保用户数据到达时的格式不会在程序的其余部分引起错误。

“第 9 章 读写文件”解释程序如何读取文本文件的内容,并将信息保存到硬盘的文件中。

“第10 章 组织文件”展示Python如何用比手动操作快得多的速度复制、移动、重命名和删除大量的文件,也解释如何用Python压缩和解压缩文件。

“第11章 调试”展示如何使用Python的bug查找和bug修复工具。

“第 12 章 从Web抓取信息”展示如何通过编程来自动下载网页,并解析它们,获取信息。

“第 13 章 处理Excel电子表格”介绍通过编程处理Excel电子表格的方法。如果你分析的文档很少,那么你不必阅读本章。如果你必须分析成百上千的文档,这章知识是很有帮助的。

“第14章 处理Google电子表格”介绍如何使用Python读取和更新Google表格(一种流行的基于Web的电子表格应用程序)。

“第15章 处理PDF和Word文档”介绍通过编程处理PDF和Word文档的方法。

“第16章 处理 CSV 文件和 JSON 数据”解释如何编程处理 CSV 文件和JSON数据。

“第17章 保持时间、计划任务和启动程序”解释Python程序如何处理时间和日期,如何安排计算机在特定时间内执行任务。这一章也展示Python程序如何启动非Python程序。

“第18章 发送电子邮件和短信”解释如何通过编程来发送电子邮件和短信。

“第19章 操作图像”解释如何通过编程来操作JPG或PNG等格式的图像。

“第20章 用GUI自动化控制键盘和鼠标”解释如何通过编程控制鼠标和键盘,自动化鼠标点击和按键。

“附录A 安装第三方模块”展示如何利用有用的附加模块来扩展Python。

“附录 B 运行程序”展示如何在代码编辑器之外,在Windows操作系统、macOS和Ubuntu Linux操作系统上运行Python程序。

“笨办法”学Python 3

Python入门教程升级版,Python3编程从入门到实践教程,配套视频,跟着Python导师学Python编程入门基础教程,代码基于Python3.6。

给新手的告诫

你已经完成了这个习题。根据你对计算机的熟悉程度,这个习题对你而言可能会有些难。如果你觉得有难度的话,你要自己克服困难,多花点儿时间去读书研究,因为只有你会这些基础操作,编程对你来说才不会太难学。

如果有人让你中途停止或者跳过本书的某些习题,你应该就当没听到。任何企图不让你学到某些东西的人,或者更恶劣的,企图让你通过他们而非通过自己努力获取知识的人,都是企图让你依赖他们来获取知识。别听他们的,好好做你的习题,这样你就能学会如何自学了。

总有一天你会听到有程序员建议你使用macOS或者Linux。如果他喜欢字体美观,他会告诉你弄一台Mac计算机,如果他们喜欢操控而且留了一脸大胡子,他会让你安装Linux。这里再次向你说明,只要是一台手上能用的计算机就可以了。你需要的只有3样东西:一个文本编辑器,一个命令行终端,还有Python。

最后要说的是,这个习题的准备工作的目的就是让你可以在以后的习题中顺利地做到下面几件事。

1.撰写习题的代码。

2.运行你写的习题代码。

3.代码被破坏的时候修正代码。

4.重复上述步骤。

其他的事情只会让你更困惑,所以还是坚持按计划进行吧。

本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。

本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。

相关文章:

  • TCP对数据的拆分
  • 软件设计模式原则(四)里氏替换原则
  • 本地如何使用PHP搭建简单Imagewheel云图床,结合内网穿透实现在外远程访问?
  • SpringCloud | Dubbo 微服务实战——注册中心详解
  • 48.0/图片和多媒体文件的使用(详细版)
  • 2023年【G1工业锅炉司炉】考试及G1工业锅炉司炉作业考试题库
  • docker-ubuntu中基于keepalived+niginx模拟主从热备完整过程
  • k8s的Pod常见的几种调度形式
  • LeetCode56. Merge Intervals
  • 【办公软件】Outlook启动一直显示“正在启动”的解决方法
  • JVM 运行时参数
  • 科技提升安全,基于YOLOv4开发构建商超扶梯场景下行人安全行为姿态检测识别系统
  • docker基本管理和概念
  • XML映射文件(第二种方式执行SQL语句)
  • AI PC行业深度研究报告:AI PC革新端侧AI交互体验
  • JS 中的深拷贝与浅拷贝
  • Cumulo 的 ClojureScript 模块已经成型
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript函数式编程(一)
  • Java精华积累:初学者都应该搞懂的问题
  • js数组之filter
  • Linux快速复制或删除大量小文件
  • MySQL QA
  • Octave 入门
  • rc-form之最单纯情况
  • vue-loader 源码解析系列之 selector
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 搭建gitbook 和 访问权限认证
  • 关于extract.autodesk.io的一些说明
  • 你真的知道 == 和 equals 的区别吗?
  • ​第20课 在Android Native开发中加入新的C++类
  • ​业务双活的数据切换思路设计(下)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $refs 、$nextTic、动态组件、name的使用
  • (20050108)又读《平凡的世界》
  • (7)STL算法之交换赋值
  • (LeetCode) T14. Longest Common Prefix
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (学习日记)2024.01.09
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ./和../以及/和~之间的区别
  • .chm格式文件如何阅读
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 托管代码与非托管代码
  • .net分布式压力测试工具(Beetle.DT)
  • .Net接口调试与案例
  • .NET开发人员必知的八个网站
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Responsebody与@RequestBody
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [c#基础]DataTable的Select方法
  • [C++]模板与STL简介