兔子

编程学习之路:痛并快乐着

兔子 · 2017-01-01翻译 · 1073阅读 原文链接 十年踪迹审校

亚里士多德半身像

“你知道的越多,就会发现你不知道的更多”

——亚里士多德

我的编程之路始于一个名叫 learn HTML 的手机app,有时心血来潮我会打开它做几个小任务,然后就好几个月都不碰它了。

有一天我又坐下来像往常一样开始玩这个app,完成了几个小任务,新学了一点HTML。

但这一次——我也不知道为啥——我停不下来了。

连续好几个小时,我完成了app里一个又一个任务。

就在那一天我意识到,我真的喜欢学习编程。

从我开始玩learn HTML这个app已经过去一年了。从那时起,我已经进行了不少web开发实践。

与这篇文章的许多读者一样,我是完全自学的。我利用业余时间学习怎样敲代码,在网上和本地图书馆里查阅各种资料。

我仍然有很多东西需要学习,但我想给大家分享一路走来最重要的心得:web开发者必须不断学习新事物。

我早就知道创建网站需要掌握三个基本工具。首先是HTML。然后我得用CSS来美化它。美化完之后,我还得添加(交互)功能,这意味着要学习JavaScript。

一旦我掌握了这三种工具,我就能创建一些酷炫的网站,找到一份优越的工作然后开始数钱——就像我的同事们奉承我时说的那样。

对吗?

错。

web开发绝非易事。磨炼专业技能是需要时间的,你需要掌握大量的知识。这很容易让人迷茫。

通过学习HTML我懂得了网站的结构,理解了网站是如何运作的。接着我就想让它看上去美观一些,于是我开始学习CSS。

CSS是第一个让我走上歪路的东西。

不是那种歪路。

我学了一点设计,又学了一点用户体验。我发现设计并不只是创造一些审美上令人愉悦的东西,而是要给用户一种既有趣又易懂的浏览体验。

培养设计敏感度与学习特定的技术(比如盒模型)一样重要。如果你的网站体验不好,用户很可能直接关闭窗口。

所以我一直在不断寻找设计灵感。我一般在这些地方找:

Muzli

Codepen

Dribbble.com

httpster

更不要提学JavaScript了。我不得不去学习计算机科学基础概念、各种框架、库、工具,还有算法等等。很快我就发现自己身处绝望的沙漠

我发现自己一直在不停地原地兜圈子,要不就是走上了偏僻小路。不管我学什么,这条路看起来都没有尽头。

我简直要疯了。

我不停的问自己:“什么时候我才能学会所有我需要的东西?”

这真是我最重要的领悟。这个问题的答案非常简单,从一开始就摆在我眼前了:

永远不会有那一天

我终于接受了这个事实,我永远有新的东西要学。

身为一名开发者必须终身学习,永不止步。这个领域在不断地进化,需要学习的新事物也会继续出现。

我明白了我不能放松警惕,我必须每周都抽出时间来学习新事物——甚至是每天。

我还意识到我必须不断地提出问题,经常踏入新的学科,并深入钻研已经学过的学科。

我会把每天所学记好笔记,并在第二天开始学习之前复习。

人在不断接收新信息的时候很容易遗忘,我认为每天复习对自学来说非常重要。

倒不是有必要时时刻刻处于web开发的最前沿,而是保持状态。坚持学习能让我保持跟得上节奏的状态。

开发者社区大有帮助

我刚开始学习编程的时候,总是一个人敲代码。我的朋友没有一个会编程,也没有一个对编程感兴趣的。我一个开发者也不认识。

软件开发这扇新世界的大门已经向我敞开,可我却找不到一个可以说话的人。

但自从我有了twitter账号以后一切都变了。我在YouTube上看视频的时候认识了一些令我景仰的开发者们,于是我开始follow他们的Twitter账号。

我最先follow的一位是npm的联合创始人/首席运营官Laurie Voss (@seldo),然后是npm的CEO,Isaac Schlueter (@izs)。

然后我又开始follow他们follow的人们,我进入了一个新世界。我被邀请加入了一个社区,社区里都是志趣相投的小伙伴,他们每天都在激发我的灵感。

现在我已经follow了一大波开发者,强烈推荐以下几位:

@ScribblingOn

@ohhoe

@getify

@ossia

@mpjme

@_ericelliott

@jennschiffer

@davidwalshblog

还有很多人。我的Twitter账号是 @salsaflocka,你可以看到所有我follow的人,然后自己选择要follow哪些。

另外强烈推荐大家加入Free Code Camp的开源社区

Free Code Camp自称是一个让大家学习编程并无私帮助他人的友好开源社区。

我经常上他们的论坛,在那里获取了大量的信息。

他们声称自己是一个友好的开源社区也并非虚言。我在那里遇到的每一个人都既礼貌又热心。

Reddit(译者注:一个国外社交新闻网站)上也有许多开发者。戳这里,就能找到关于这个社区的一切信息。

我认为这两个资源对编程初学者来说是非常有用的。

刚开始加入Stack Overflow和GitHub的时候,我着实被这开发者世界的两大支柱吓住了。但我在其他社区感受到的温暖帮助我熟悉了开发者社区这种交流环境,然后加入了这些更大的社区。

加入本地的开发社区让我获益良多。尽管第一次聚会我就不得不开车1小时去参加,但这次经历带给我的收获是无法估量的。

我意识到开发者们大多都是乐于助人的热心好人!

冒牌者症候群——每个开发者都必须面对的真实感受

学习一门新技术总会带来一种不足之感。刚开始学习编程时,我感觉每一个人都比我专业得多。

无论我学了多少,我都找不到那种我正在成为一名真正的程序开发者的感觉。

这种感觉就是所谓的冒牌者症候群

直到今天我仍然被这种感觉所困扰,但我渐渐发现几乎每个人都有这种感觉。

没有哪一个开发者是冒牌的。我们都只是在和其他人一起学习和成长。

我会尽可能无视脑海中那个让我质疑自己能力的小小声音。

如果你正在开发程序,那么你就是一个程序开发者。就这么简单。

我才刚开始做一些兼职工作,可能算不上经验丰富的专家,但这能够积累经验。

只要我还愿意学习,我就走在了正确的道路上。

我认为战胜冒牌者症候群的最佳方式就是把自己会的东西教给他人

这一点再怎么强调也不为过。每个人都会知道一些其他人不知道的东西,放心大胆地分享你拥有的信息吧。

我会尽可能地分享在开发者社区学到的一切。这是让我们共同成长,变得更加强大的唯一方法。

总有人不学编程,这没什么不对!

对我来说,这是一个更加艰难的新发现。

他们总是随波逐流,并不操心将来会发生什么。

这些人喜欢谈论他们那些“没出息的工作”和“毫无价值的学历”。我不能理解为什么这些人对现状如此不满,却看不到花点业余时间学习编程的好处。

这个领域对于我所生活的社会中的大多数人都是很容易进入的。几乎每个人都可以学习编程,为什么他们就是不愿意试一试呢?

我花了不少时间才明白,不是每个人都能享受一天好几个小时坐在显示器前,就为了试图搞清楚为什么程序不能运行。

不是每个人都喜欢坚持不懈地学习新事物。

也不是每个人都能努力习惯技术氛围。

尽管软件开发的需求一直很大,但仍然有很多人不当程序开发者,这也是有原因的。现在只有相对较少的一部分人能够花时间去成为专业的开发者,根本不能满足需求。

因为这是一个可能会很枯燥、无趣且学习困难的领域,不是每个人都有足够的耐心。

但我还是很感激那些有兴趣成为这个社区一份子的人们,他们会战胜那些不可避免的挫折。

作为软件开发者我们责任重大。我们生活的世界是建立在技术之上的。我们具备塑造这个世界的能力,并且已经在日常生活中进行实践了。

总有人不学编程,这没什么不对。我只是很庆幸我学了,也庆幸还有许多人也学了!

这一年对我来说真是时光飞逝,我从未想过自己能学到这么多东西。

学习web开发让我的生活有了方向。在此之前我从未真正对未来抱有如此具体的期待和目标。

但现在,在我接到新客户的时候,学到新技巧的时候,身为一个web开发者做着有意义的工作的时候,我心中充满了兴奋。

如果你是一个程序开发新手,坚持下去吧。也许看起来需要付出很多努力,但我敢保证一切都是值得的。

如果你进行程序开发的时间和我一样,或者比我还长,那么我要感谢你成为了一名软件开发者,你对这个社区整体的贡献让程序开发变得更加容易。

感谢你阅读此文!新的一年让我们继续愉快地编程吧!

相关文章