learn-tech/专栏/左耳听风/070程序员练级攻略(2018):零基础启蒙.md
2024-10-16 06:37:41 +08:00

9.7 KiB
Raw Blame History

                        因收到Google相关通知网站将会择期关闭。相关通知内容
                        
                        
                        070  程序员练级攻略2018零基础启蒙
                        如果你从来没有接触过程序语言,这里给你两个方面的教程,一个偏后端,一个偏前端。对从零基础开始的人来说,最重要的是能够对编程有兴趣,而要对编程有兴趣,要有成就感。而成就感来自用程序打造东西,所以,我推荐下面这份不错的入门教程。

第一份入门教程,主要是让你体会编程是什么。

与孩子一起学编程 这本书以 Python 语言教你如何写程序,是一本老少咸宜的编程书。其中会教你编一些小游戏,还会和你讲基本的编程知识,相当不错。 两个在线编程入门的网站Codecademy: Learn Python 和 People Can Program ,你也可以在这两个网站上学习 Python只不过是英文的。

然后,你可以到 CodeAbbey 上去做一些在线编程的小练习。

第二份入门教程,主要是让你做点实际有用的东西。嗯,做个网页吧。

MDN 的 Web 开发入门 MDN 全称是 Mozilla Developer Network你可以认为是 Web 方面的官方技术网站。这个教程会带着你建立一个网站。然后,你可以把你的网页发布在 GitHub 上。

这两份教程都很不错,都是从零开始,带着你从环境准备开发,一点一点地从一些简单而有意的东西入手,让你感觉一下编程世界是什么样的,相信这两个教程可以让零基础的你喜欢上编程。

编程入门

在这时,我们使用 Python 和 JavaScript 作为入门语言。Python 就不用多说了,语法比较简单,有大量的库和语法糖,是零基础的人学习编程的不二之选。而 JavaScript 则是前端的语言,为了让你更有编程的成就感,所以,这也成了一门要学习的语言。(注意:对于计算机专业的学生来说,一般会使用 Pascal 做为入门的编程语言,但我觉得编程入门还是要以培养兴趣为主,所以,还是选一些能让人有成就感的语言会更好)。

入门语言 Python

如果你想更为系统地学习一下 Python 编程,我强烈推荐你阅读一下下面这两本书。它们是从零基础入门非常非常不错的书,里面有大量的更为实用的示例和项目,可以让你有会编程会有超能力的感觉。

Python 编程快速上手 Python 编程:从入门到实践

这两本书除了编程语法方面的讲述有所不同之外,其他都差不多,主要是通过书中的示例来强化你对编程的学习。第一本偏文本处理一些,包括处理 Word、Excel 和 PDF第二本中有一些 Web 项目和代码部署方面的内容。如果可能的话,你可以把两本书中的示例都跑一遍。如果你时间有限的话,我推荐你看第二本。

编辑植入:极客时间上也有 Python 入门的视频课程。

入门语言 JavaScript

如果想入门学习 JavaScript我主要推荐以下在线教程。

MDN JavaScript 教程 你可以认为这是最权威的 JavaScript 官方教程了,从初级到中级再到高级,就是讲语言方面。非常全。 W3School JavaScript 教程 W3School 的这个教程比较偏 Web 方面的编程。 JavaScript 全栈教程(廖雪峰) 这是廖雪峰的一个比较偏应用的教程,也是偏 Web 方面的编程,同时包括涉及后端的 Node.js 方面的教程。

操作系统入门 Linux

学习编程你还需要会玩 Linux虽然 Windows 占据着更多的桌面市场,但是你还是要了解 Linux。这里你可以看一下W3CSchool 上的在线教程 Linux 教程。

编程工具 Visual Studio Code

这里主要推荐时下最流行也是最好用的 Visual Studio Code这个工具潜力十足用其开发 Python、JavaScript、Java、Go、C/C++ 都能得心应手(教程 - 本文发布时还基本没怎么翻译完)。

Web 编程入门

如果玩到这里,你觉得有趣的话,可以学习一下 Web 方面的入门知识。为什么是 Web 而不是别的什么呢因为你正身处于第三次工业革命的信息化浪潮中在这个浪潮中Web 互联网是其中最大的发明,所以,这是任何一个程序员都不能错过的。

关于 Web 编程,有下面几个方向你要学习一下。

前端基础。要系统地学习一下前端的知识,也就是 CSS、HTML 和 JavaScript 这三个东西。这里还是给出 MDN 的相关的技术文档页面 CSS 文档 和 HTML 文档 。文档很大,你要学习的并不是所有的东西,而是了解 CSS 和 HTML 是怎么相互作用来展示数据的,然后,不用记忆文档中的内容,这两个文档是用来查找知识的。 另外,你可以简单地学习使用 JavaScript 操纵 HTML 元件。理解 DOM 和动态网页(可以参看 W3Schools 的 JavaScript HTML DOM 的教程)。 后端基础。如果你想省点事,不想再学一门新的语言了,那么你可以直接用 Python 或者 Node.js这两个技术在前面提到的廖雪峰的那个教程里提到过。当然如果你想试试另外一种脚本型的也是比较主流的编程语言那么可以搞搞 PHP它也是很快就可以上手的语言。学习 PHP 语言,你可以先跟着 W3School 的 PHP 教程 玩玩(其中有连接数据库的 MySQL 的教程)。然后,以 PHP 的官网文档 作为更全的文档来学习或查找相关的技术细节。

下面是一些学习要点。

学习 HTML 基本语法。 学习 CSS 如何选中 HTML 元素并应用一些基本样式。 学会用 Firefox + Firebug 或 Chrome 查看你觉得很炫的网页结构,并动态修改。 在一台 Linux 机器上配置 LEMP - Ubuntu/Nginx/PHP/MySQL 这个环境。 学习 PHP让后台 PHP 和前台 HTML 进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。 把 PHP 连接本地或者远程数据库 MySQLMySQL 和 SQL 现学现用够了)。

这里,你可能会问我,入门时有三个后端语言,一个是 Python一个是 Node.js一个是 PHP你对这三门语言怎么看老实说Python 我还看好一些PHP 次之Node.js 最后。原因是:

Python 语言的应用面还是很多的。当然性能可能会有一些问题但是用于一些性能不敏感的和运维或是一些小工具相关的还是非常好用的。另外Python 的应用场景其实还是很多的,包括机器学习和 AI 也有 Python 的身影。用 Python 来做一些爬虫、简单的中间件、应用或是业务服务也是很不错的。) PHP 也是一个比较主流的简单的语言PHP 在目前来说还是一个比较主流的语言,但其发展潜力有限,虽然可以让你找得到工作,但是一般玩玩就行了)。 Node.js 号称 JavaScript 的后端版,但从目前发展来说,在后端的世界里,并不能承担大任,而且问题很多。一些前端程序员用它来做后端的粘合层,我个人觉得这样做法只是掩盖前后端配合有问题,或是接口设计思维上的懒惰,我还是希望前端程序员应该认真学习一门真正的后端语言。

当然这里只是让你感觉一下Web 前端编程的感觉,只是为了入门而已。所以,对于这些语言你也不用学得特别精通,感觉一下这几个不同的语言就可以了,然后知道相关的文档和知识在哪里,这样有助于你查阅相应的知识点。

实践项目

无论你用 Python还是 Node.js还是 PHP我希望你能做一个非常简单的 Blog 系统,或是 BBS 系统,需要支持如下功能:

用户登录和注册(不需密码找回)。 用户发贴(不需要支持富文本,只需要支持纯文本)。 用户评论(不需要支持富文本,只需要支持纯文本)。

你需要从前端一直做到后端,也就是说,从 HTML/CSS/JavaScript到后面的 PHPPython/Node.js再到数据库。这其中需要你查阅很多的知识。

这里有几个技术点你需要关注一下。

用户登录时的密码不应该保存为明文,应该用 MD5+Salt 来保存(关于这个是什么,希望你能自行 Google. 用户登录后,对于用户自己的贴子可以有 “重新编辑” 或 “删除” 的功能,但是无权编辑或删除其它用户的贴子。 数据库的设计,你需要三张表:用户表、文章表和评论表,它们之间是怎么关联的,你需要学习一下。这里有个 PHP 的 blog 教你怎么建表,你可以 前往一读。

如果你有兴趣,你可以顺着这个小项目,研究一下下面这几个事。

图片验证码。 上传图片。 阻止用户在发文章或评论时输入带 HTML 或 JavaScript 的内容。 防范 SQL 注入。参看PHP 官方文档 或 微软官方文档,或者你自己 Google 一下。

上面这些东西,不是什么高深的东西,但是可以让你从中学到很多东西。相信你只需要自己 Google 一下就能搞定。

小结

总结一下今天所说学的内容。我先推荐 Python 和 JavaScript 作为入门语言,以让你尽快上手,获得成就感,从而激发你想持续学习的热情。随后介绍了 Linux 操作系统、Visual Studio Code 编程工具、Web 编程入门等方面的学习资料,并给出了学习要点。最后,我给出了一个实践项目,帮助你理解和巩固今天所学的内容。

消化好了今天的内容,就准备好精力迎接后面的挑战吧。下篇文章中,我们将正式入门学习该如何编程。