高中生如何快速学习编程
![](https://img.haomeiwen.com/i639109/d919edefde5be673.jpg)
在过去的几个月里,我一直在写学校的学生平台。经过了多次技术栈的更换、版本的迭代,我从一个青涩的编程爱好者成为了一个略有些经验的开发者,同时积累了不少经验。
今天想说说在过去的这几个月里,我写网站的一些心得,想通过这些,给高中低年级的编程爱好者一些经验(笔者现高三)。
-
我是如何学习编程的?
这里想说的是,编程与计算机科学不同。计算机科学背后,是数不尽的理论知识。
较于拥有理论知识的大学计算机系学生,高中学生普遍缺乏理论。而其实经常出现的一些问题是需要涉及到理论、原理层面的。但理论、原理确实是枯燥而乏味的。
我未曾参加过什么高中的信息竞赛,因此可以说比起和我一同写网站的竞赛班的队友,我是缺乏理论知识的,我不懂什么是数据结构,但这并不影响我写几千几万行的网站。
我选择的编程方式,是跳过理论知识,选择一门适合自己的编程,试着开发一个项目,从项目的需求中学习。比如说我的一个项目需要筛选的功能,我就会去读关于正则表达式的文章。
这样的一个方法,有好处,就是你不会学一些你不需要的,但是也有弊端,缺乏知识的整体框架,弥补的方法也有,多阅读文档,了解某个函数、某个库的作用,而不去深究其实现方法。当你需要这样的一个功能的时候,再去深度阅读。 -
挑选什么编程语言
一是每个人学习编程的目的都不尽相同。如果你要学手机 APP 开发,安卓你可以选择 Java 或者 Kotlin,iOS 你可以选择 Objective-C 或者是Swift。如果你想写个自己的PC游戏,C++ 或 C# 会更适合你。学习网页开发, HTML+CSS+JavaScript。其他的就不列举了,网上的文章有很多。
来说说我挑选编程语言的经历,最初是C。当时我初一,感觉C很多方法很变扭,也就只能写写终端的四则运算。后来想做网页开发,学了 PHP 和 HTML 。当时还不知道 CSS 和JavaScript 。
后来觉得编程太无趣,就去剪辑视频和做视频特效了。
高一因为树莓派的课题接触了 Python。后来当了学校电视台台长,也就没再接触编程了。
高二下,从电视台台长位置卸任。因为某些契机,重新拾起了编程。
因为是做网页开发,后续学习了 CSS + JavaScript。但 JS 也没好好学,只是用了Vue.js这个框架。
最初网站后端用的是 Django 。为此我重新滚了一遍Python的知识点。
之后,网站后端的技术栈进行更改,我选择了Node.js。用了Express这个框架。 -
需求驱动学习编程
就像我上面说的,我是以需求来驱动我学习什么。比如我需要跨域,我就会阅读 CORS 相关的文章。
那么应该提出什么需求?
我对于初学者的建议是,写一个个人博客。
简单的说,写一个个人博客将会涉及这些:- HTML + CSS(也许会加上JS,但都是前端知识)
- 数据库
- 后端(比如Django,Laravel)
这里对于后端,我建议新手直接用框架。一是框架基本上都有社区,你有什么问题可以有人可以回答你。用框架也可以让你在前期掌握一些思想,比如说MVC模式。
之后你可以试着写一个小游戏。
- 正向反馈学习法
新手在最初的一些问题,就是经常碰壁。而避免经常碰壁而导致心态爆炸的一个方法,便是从最简单的做起,获得及时的正向反馈、成就感。因为编程本身其实是枯燥无味的,只是最后实现需求或效果的时候我们会获得成就感,也就是多巴胺分泌了。
最后附上自己的 Github
希望大家可以互相学习。不过高三了,可能不会经常看了。