我不是计算机专业毕业的,编程完全是自学的。

大学学的是一个和计算机完全不相关的专业,毕业之后做的也是和编程无关的工作。但我一直对计算机感兴趣,工作几年后,终于下定决心转行学编程。

从最开始连HTML是什么都不知道,到现在能独立做项目,这一路走来,踩了很多坑,走了很多弯路,也总结了很多经验。

本文分享我自学编程的经历,包括为什么学编程、怎么入门、踩过的坑、以及给自学者的建议。

一、为什么学编程

先说说我为什么学编程。

1. 对现状不满意

那时候我做的工作,重复性高,没什么技术含量,也看不到发展前景。每天上班就是混日子,下班就是刷手机。

我不想一辈子就这样。我想学一门有技术含量的技能,让自己更有竞争力。

2. 对计算机感兴趣

我从小就对计算机感兴趣。小时候喜欢玩电脑,大学时也自己折腾过网站,但都是浅尝辄止,没有系统学过。

工作之后,这个兴趣一直没有消失。我觉得,既然感兴趣,为什么不深入学一下呢?

3. 编程的前景好

那几年,互联网行业发展很快,程序员的薪资和待遇都不错。而且,编程是一门硬技能,学会了不愁找不到工作。

虽然不是为了钱才学,但钱也是一个重要的考虑因素。

4. 想做自己的产品

我一直有一个想法:做一个自己的产品,一个能解决实际问题的产品。

但不会编程,这个想法就只能停留在脑子里。学了编程,我就能把想法变成现实。

二、入门的过程

说说我入门的过程。

1. 第一步:选方向

刚开始学编程,最大的困惑是:不知道学什么。

编程语言太多了:Python、Java、C++、JavaScript、Go……每个都有人推荐,每个都说自己好。

我花了一周时间,查了很多资料,最后决定从Python入门。原因是:

  • Python语法简单,适合零基础
  • 应用领域广,Web、数据分析、人工智能都能用
  • 社区活跃,教程多,遇到问题容易找到答案
  • 就业前景好

现在回头看,这个选择是对的。Python确实很适合入门。

2. 第二步:找教程

选好了语言,接下来就是找教程。

我试过很多教程:

  • 网上的免费视频教程
  • 在线课程(慕课网、极客时间等)
  • 书籍(《Python编程:从入门到实践》)
  • 官方文档

最后发现,最好的入门方式是:一本书 + 一个视频教程,配合着学。

书的优势是系统、详细,可以慢慢看;视频的优势是直观、有互动,不容易走神。两者配合,效果最好。

3. 第三步:敲代码

学编程,最重要的是动手敲代码。

刚开始,我犯了一个错误:只看视频和书,不敲代码。看的时候觉得都懂了,一动手就什么都不会。

后来我明白了,编程是一门实践的技能,看十遍不如自己写一遍。

从那以后,我每学一个知识点,都要自己敲一遍代码。书上的例子,我不看答案,自己先写,写不出来再看答案。

4. 第四步:做小项目

学了基础语法之后,我开始做小项目。

第一个项目是一个命令行的待办事项工具,可以添加、删除、查看任务。虽然很简单,但做完之后特别有成就感。

然后又做了几个小项目:

  • 猜数字游戏
  • 简单的爬虫
  • 用Flask做了一个个人博客
  • 用Tkinter做了一个桌面小工具

做项目的过程中,遇到了很多问题,解决问题的过程,就是学习的过程。

5. 第五步:找工作

学了大概半年,我觉得自己可以找工作了,就开始投简历。

刚开始很不顺利,因为没有相关工作经验,很多公司连面试机会都不给。面试了几家,也都被拒了。

但我没有放弃,继续学,继续做项目,继续投简历。终于,在学了八个月的时候,我找到了第一份编程工作。

虽然工资不高,但我终于入行的。

三、踩过的坑

自学编程,我踩了很多坑。

1. 坑一:只看不练

这是初学者最容易犯的错误。

看视频、看书,觉得都懂了,但一动手就不会。编程是实践的技能,必须动手敲代码。

解决方法: 每学一个知识点,都要自己敲一遍。不要复制粘贴,要一个字符一个字符地敲。

2. 坑二:频繁换语言

今天学Python,明天学Java,后天又学Go。结果哪个都没学好。

解决方法: 先选一门语言,深入学,学到能做项目的程度。再学其他语言,就会容易很多。

3. 坑三:追求完美

写代码的时候,总想写得完美,结果一个功能写了很久,还没写完。

解决方法: 先让代码跑起来,再优化。能运行的代码,比完美但写不完的代码有价值。

4. 坑四:不做笔记

学过的东西,不做笔记,过几天就忘了。

解决方法: 准备一个笔记本(或电子笔记),把学过的知识点、遇到的问题、解决方法都记下来。定期复习。

5. 坑五:不做项目

只学语法,不做项目,学了也不知道怎么用。

解决方法: 学完基础语法,就开始做项目。从简单的项目开始,逐步增加难度。

6. 坑六:遇到问题就放弃

编程会遇到很多问题,初学者很容易被劝退。

解决方法: 遇到问题,先自己想,再查资料,再问人。不要一遇到问题就放弃。解决问题的过程,就是成长的过程。

7. 坑七:孤军奋战

一个人学,遇到问题没人问,很容易放弃。

解决方法: 加入学习社群,和大家一起学。可以是线上的论坛、微信群,也可以是线下的学习小组。

四、我的学习方法

总结一下我的学习方法。

1. 制定计划

学习要有计划,不要东一榔头西一棒子。

我当时的计划是:

  • 第一个月:Python基础语法
  • 第二个月:面向对象和常用库
  • 第三个月:Web开发基础(HTML/CSS/JavaScript + Flask)
  • 第四个月:数据库和项目实战
  • 第五个月:做一个完整的项目
  • 第六个月:复习和找工作

计划不用太详细,但要有大致的方向。

2. 每天坚持

学编程,最重要的是坚持。

我当时每天下班后学两个小时,周末学半天。虽然每天学的不多,但坚持下来,积累就很可观。

不要三天打鱼两天晒网。一天学十个小时,然后休息一周,不如每天学两个小时,坚持一周。

3. 费曼学习法

用费曼学习法:学完一个知识点,试着用自己的话讲出来。如果讲不清楚,说明还没真正理解。

我当时会把学过的东西,写成博客。写博客的过程,就是整理思路、加深理解的过程。

4. 项目驱动

以项目为驱动来学习。

不要先把所有知识都学完再做项目,而是边做项目边学。做项目遇到不懂的,再去查资料、学知识。这样学的东西,记得更牢,也更实用。

5. 善用搜索

编程遇到问题,要会搜索。

  • 英文搜索比中文搜索结果更好
  • Stack Overflow是最好的问答社区
  • GitHub上有很多开源项目可以参考
  • 官方文档是最权威的资料

学会搜索,是程序员的基本技能。

五、给自学者的建议

给想自学编程的人一些建议。

1. 想清楚为什么学

在开始之前,先想清楚:你为什么学编程?

  • 是为了找工作?
  • 是为了做自己的产品?
  • 还是单纯感兴趣?

目的不同,学习的路径和重点也不同。想清楚目的,才不会半途而废。

2. 不要怕晚

很多人觉得,学编程要趁早,年纪大了就学不会了。

我是工作几年后才开始学的,也学会了。学编程,什么时候开始都不晚。关键是要有决心,能坚持。

3. 不要怕难

编程确实有难度,尤其是刚开始的时候,很多概念理解不了。

但不要怕难。难的东西,学会了才是你的。多花点时间,多查点资料,总能学会的。

4. 不要等准备好了再开始

很多人一直在"准备",买了很多书,收藏了很多教程,但就是不开始学。

不要等准备好了再开始,边学边准备。开始了,你就已经超过了很多人。

5. 找一个学习伙伴

如果能找到一个一起学的伙伴,会好很多。

你们可以互相监督,互相讨论,互相鼓励。一个人学容易放弃,两个人学更容易坚持。

6. 接受自己的不完美

刚开始写代码,肯定写得不好,bug不断。这很正常。

不要因为写得不好就放弃。每个程序员都是从烂代码开始的,写多了自然就好了。

7. 保持好奇心

编程的世界很大,新技术层出不穷。保持好奇心,不断学习,才能跟上时代。

但也不要什么都学,先把一门语言学精,再扩展其他领域。

六、现在的我

现在,我已经做了几年程序员了。

回头看,自学编程的那段日子,虽然辛苦,但很充实。每天下班后学两个小时,周末泡在图书馆,那种为了目标努力的感觉,很好。

现在,我已经能独立做项目了,也带过新人。但我依然在学习,因为编程的世界太大了,永远有新东西要学。

我很庆幸,当年下定决心学了编程。它不仅改变了我的职业,也改变了我的思维方式。

七、写在最后

自学编程,不是一件容易的事。它需要耐心、毅力,还有正确的方法。

但它也不是一件不可能的事。我一个非计算机专业的人,都能学会,你也可以。

2022年了,编程已经不再是计算机专业的专利。越来越多的人开始学编程,把它作为一项基本技能。

如果你也想学编程,不要犹豫,现在就开始。选一门语言,找一本好书,敲下第一行代码。

最后,用一句话结尾:"编程不难,难的是开始。只要你开始了,并且坚持下去,就一定能学会。"

愿你的编程之路,顺利而有趣。