Class 00 - 学习编程的方法&不同职业所使用的编程语言
学习编程的方法
什么是编程?
简单来说其实就是你通过一些指令告诉计算机要做什么,让计算机帮忙解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
-
其实日常生活中有可能你已经接触到了简单的编程。
-
例如,使用电子表格函数执行计算,对数据进行排序,或者使用SQL告诉计算机如何从数据库中提取数据,把两个或者多个不同的数据表连接。编程甚至更进一步。它为您提供了对数据的最高级别控制。
要编程,首先需要了解一门编程语言。我们要学习编程语言的基础知识,以及它们如何帮助您处理数据。
程序设计语言是我们用来给计算机编写指令的文字和符号。您可以将编程语言视为连接人和计算机的桥梁,并允许他们进行通信。编程语言有自己的一套规则,用于如何使用这些单词和符号,称为语法。
语法告诉你如何安排你输入的单词和符号,使它们对计算机有意义。编码就是用特定编程语言的语法给计算机写指令。就像世界上各种各样的人类语言一样,有许多不同的编程语言可用于与计算机通信。
几乎任何你想做的事情都有一种语言,从设计网站到开发电子游戏,再到处理数据。例如,Python是一种通用语言,可以用于各种各样的事情,从使用人工智能到创建虚拟现实体验。
一旦你学会了第一语言,你就会发现学习其他语言更容易了。后面的教程中,我们将探索R的许多功能。
在此之前,让我们讨论一下使用任何编程语言处理数据的一些好处。我觉得编程有三个好处:
-
编程可以帮你明确分析的步骤:
- 编程语言向计算机发出指令有特定的规则和语法。
- 当你告诉计算机做什么时,你的指令必须非常清晰。
- 你所编写代码的方式不能有任何不一致的地方,如果有,代码将会出错无法工作。
- 将你的想法转换为代码会迫使你准确地找出如何编写分析的每个步骤以及如何将所有步骤组合在一起。它给你的分析提供了一定程度的精确度。
-
编程可以帮你节省时间
- 使用编程语言进行数据分析也可以节省大量时间。
- 例如,以清理和转换数据的过程为例。只需一行代码,您就可以创建一个单独的数据集,而不会丢失任何数据。
- 在另一行代码中,你可以对数据应用多个过滤器。这使你可以花费更少的时间准备数据,而将更多的时间用于分析本身。
-
编程可以帮你轻松地复制和共享您的工作。
- 编程语言使重现分析变得容易。
- 当你遇到可重复性工作,或者需要与其他人共享时,尤其在数据分析的工作中。他们可以仔细检查并帮助你解决问题。
- 代码会自动存储分析的所有步骤,这样您就可以在未来的任何时间(几周、几个月甚至几年后)重现和共享你的的工作。
- 举个例子:假设你正在做一个项目。你已经收集并清理了数据,并开始了分析,但结果却不一致。你怀疑是在处理过程中出现了错误。你想和同事交流请教这个问题,他们可以通过检查你的代码文件来找出问题所在。如果你使用电子表格,则可能需要重新进行整个分析财能现错误。在电子表格中记录和复制你的分析步骤还是比较困难的,但如果你使用一种编程语言,你所有的工作都可以在代码中重现和共享,从加载数据,到创建可视化,再到报告结果。另外你还可以通过更改代码来更新你的分析并修复出现的错误。
我希望这能让你更好地理解编程语言是什么。
下面将介绍一下不同职业方向所使用的编程语言。
不同职业所使用的编程语言
让我们来看看一些常见的职业方向所流行的编程语言。在文中还提供了一些附加资源列表(有些网需要翻越一下才能浏览。。。),供你了解所介绍的每种编程语言的更多信息。
数据分析
数据分析师:收集、转换和组织数据,以得出结论、做出预测,依据数据做出明智的决策。数据分析师使用的最流行的编程语言是R和Python。
R为数据分析提供了方便的统计功能,对于创建高级数据可视化非常有用。查看这些资源以了解更多关于R的信息:
- 统计计算的R项目: 一个网站,用于下载R,文档和帮助
- R手册: R核心团队的手册,包括介绍,管理和帮助
- Coding Club R教程: 一个R编程教程的集合
- R for Beginners: 一个帮助你在R中使用数据、图形和统计的入门指南
Python是一种通用语言,您可以使用它来创建数据分析所需的内容。下面是一些开始学习Python的资源:
- Python软件基金会(PSF): 是一个帮助初学者入门的指南网站
- Python教程: 来自PSF网站的Python 3教程
- Coding Club Python教程: 一个Python编码教程的集合
网页设计
网页设计师负责包含文本、图形和视频的网页的样式和布局。网页设计师通常使用超文本标记语言v5 (HTML5)和层叠样式表(CSS)来创建网页。
HTML5为网页提供结构,并用于连接到托管平台。以下资源可以了解更多关于HTML5和CSS的信息:
- HTML教程: HTML的介绍,链接到HTML5的功能,示例和参考资料
- HTML5小抄: HTML5标签,属性和与HTML4的兼容性的一个方便的总结
- HTML5和CSS基础课程: 一个免费的W3C edX课程;如果要获得经过认证的课程证书需要付费的
CSS用于网页设计和控制图形元素(颜色,布局和字体)和多个设备(大屏幕,移动屏幕和打印机)上的页面呈现。看看这些CSS的小抄:
- 交互式CSS Cheat Sheet: 包括最常见的渐变、背景、字体族、边框等CSS代码片段
- 50个最好的HTML和CSS小抄: 一个50个小抄的列表,可以选择一些对你有用的
移动应用开发
移动应用程序开发人员通过编程创建在电脑、手机和平板电脑上使用的应用程序。对于移动应用程序开发者来说,最流行的编程语言是Swift、Java和c#。
Swift (适用于Apple平台)是一种面向macOS、iOS、watchOS和tvOS的开源脚本语言。它的主要目标是使应用程序运行得更快。浏览这些资源了解更多关于Swift的信息:
- Swift.org: 一个开源社区,提供学习如何使用Swift的资源,包括视频和示例代码
- Swift开发者网站: 一个苹果开发者网站,为想要使用Swift的开发者提供信息
- Swift开发资源: 苹果的文档,示例代码,视频和推荐书籍的集合
Java (Android设备)是Android开发的官方语言。文章我想开发Android应用程序-我应该学习哪种语言?探讨了用于Android开发的其他一些语言。查看这些Java参考资料:
- Android Studio: 一个可下载的集成开发环境(IDE),包含为Android设备构建应用程序的工具
- 用Java构建你的第一个Android应用程序: 安装Android Studio和创建你的第一个应用程序的说明
- Java初学者教程:编写一个没有经验的简单应用程序: 关于如何学习Java的概述,并附有示例
c#是一种面向对象的编程语言,广泛用于在 .net 开源开发者平台上创建移动应用程序。Xamarin扩展了.net平台,为开发人员提供了一个框架,可以为iOS和Android创建跨平台移动应用程序。这里有一些资源可以帮助你学习c#:
- 微软Xamarin学习材料 : 包括免费课程、教程和视频,学习如何使用Xamarin进行移动开发
- Xamarin教程-用c#构建你的第一个iOS或Android应用程序: 构建显示文本“Hello World”的移动应用程序的说明)
- 从Codecademy学习c#: 是一个免费的基本互动课程网站,每月订阅即可访问其他活动
Web应用开发
web应用程序开发人员设计和开发跨web使用的网络应用程序。web应用程序开发人员最常用的编程语言是Java、Python、Ruby和PHP。
Java 被广泛用于创建可以在多个客户端上运行的企业web应用程序。Java的主要优势在于它的“一次编写,随处运行”(WORA)方法。浏览这些参考资料以了解有关Java的更多信息:
- Oracle Java教程: Oracle文档中的Java教程
- Java初学者: 一个免费的Java初学者课程,来自“Home and Learn”网站)
Python是一种通用编程语言。请查看数据分析一节中列出的Python参考资料。
Ruby是一种通用的、面向对象的编程语言,用于开发web应用程序。Ruby和Ruby on Rails不一样,后者是一个使用Ruby运行的开源web应用程序框架。浏览这些参考资料以了解更多关于Ruby的信息:
- Ruby新闻: 关于最新Ruby版本的信息和其他资源的链接
- Ruby文档: 包括指南、教程和参考资料,以帮助您更多地了解Ruby
- Ruby程序员指南: 一个Ruby的教程和参考指南
- 从Codecademy学习Ruby: 是一个提供免费基本互动课程的网站,每月订阅即可访问其他活动
PHP是一种特别适合web应用程序开发的脚本语言。它基于另一种编程语言Perl。PHP简单、灵活,而且相对容易学习。查看这些参考资料以了解更多关于PHP的信息:
游戏开发
游戏开发者是专门从事电子游戏创作的应用开发者。游戏开发者最常用的编程语言是c#和c++。
c#是一种面向对象的编程语言,广泛用于制作游戏。查看移动应用程序开发人员一节中列出的c#资源。
c++是C语言的扩展,也用于创建主机游戏,如Xbox。浏览有关c++的更多资讯:
- Microsoft c++资源: 学习如何安装Visual Studio IDE和编写c++代码
- 微软c++和c#游戏代码示例: 这是一个包含40多个c++和c#游戏代码示例的资源
- 交互式c++教程: 一个免费的教程,在练习中运行c++代码
Tips:学习编程语言的技巧
当你开始学习一门新的编程语言时,这里有一些建议可以参考:
- 找一个练习项目,并使用编程语言来帮助你完成它。这会使得学习过程更加实际和有趣。
- 记住编程的概念和一些逻辑规则。其中许多概念和和规则在编程语言之间是相通的。所以,在你学会了一门语言之后,学习第二或第三门编程语言往往会容易得多。
- 用最适合你的记录方法(手写或打字),创建并保存好你的的笔记和小抄。
- 创建一个在线信文档,当你在各种不同的编程环境中工作时,你可以很随时随地的访问它。
从电子表格到 SQL 再到 R
尽管R语言对与你来说可能是全新的,但它实际上与你在工作中使用到的其他工具有很多相似之处,比如:电子表格,SQL。
在下面文中,将比较电子表格、SQL和R语言,以便更好地了解如何使用它们。
电子表格、SQL和R:一个比较
作为一名数据分析师,你很有可能在不同的职业阶段会使用到SQL、R和电子表格。每种工具都有自己的优点和缺点,但它们都能使数据分析过程更便捷、更高效。这三者有两个共同之处:
-
它们都使用过滤器: 例如,你可以使用这三个工具中的任何一个轻松过滤数据集。在R中,你可以使用过滤器函数。它执行的任务与基本的(SELECT - FROM - WHERE )SQL查询相同。在电子表格中,您可以使用菜单选项创建过滤器。
-
它们都使用函数: 在电子表格中,你会在公式中使用函数,而在SQL中,你在查询中使用函数。在R中,你将在代码中使用函数,这是分析流程的一部分
下表给出了一些重点问题,以了解这三个工具相互比较的优势和使用范围。
重点问题 | 电子表格 | SQL | R |
---|---|---|---|
这是什么? | 一种使用行和列来组织数据并允许通过公式、函数和内置特性进行分析和操作的程序 | 一种数据库编程语言,用于与数据库通信以进行数据分析 | 用于统计分析、可视化和其他数据分析的通用编程语言 |
主要优势是什么? | 包括各种可视化工具和特性 | 允许用户根据需要操纵和重组数据,以帮助分析 | 提供一种可访问的语言来组织、修改和清理数据框架,并创建深刻的数据可视化 |
哪些数据集最适合使用? | 较小的数据集 | 更大的数据集 | 更大的数据集 |
数据的来源是什么? | 手动输入或从外部源导入 | 从外部数据库访问 | 安装时用R加载,从计算机导入,或从外部源加载 |
我的分析数据通常存储在哪里? | 在你电脑上的电子表格文件里 | 在被访问数据库的表内 | 在你电脑里的R文件里 |
我是否使用公式和函数? | 是 | 是 | 是 |
我可以创建可视化吗? | 是 | 是的,通过使用额外的工具,如数据库管理系统(DBMS)或商业智能(BI)工具 | 是 |
后面我们开始详细介绍R语言,以及如何使用它。