故事要从我 14 岁那会说起。当时的我学过 PHP、HTML/CSS 和 JavaScript,而且对自己的朋友充满嫉妒。
作为在网上发布的第一篇“严肃”文章,我想从自己的成长经历谈起——当然,之后我还会更新更多文章,毕竟学无止境嘛。
先来解决第一个问题:我是谁?我叫 Nuno,今年 16 岁,来自葡萄牙。今天,我想跟大家聊聊我是如何成为一名全栈开发者(至少算是广义上的全栈开发者)的。
首先,我觉得我这个年纪的人接触编程并不算什么新鲜事。因为我身边就有很多同龄的朋友,他们特别希望能够开发出像《侠盗猎车手 5》或者《皇室战争》这样的游戏,而且有几位还真的就开始了追梦之旅。他们学习编程、热爱编程,如今开始着手开发自己的独立游戏作品。
第二,随着市场上应用程序的数量越来越多,很多年轻人借此成了百万富翁(例如 Mark Zuckerberg 和 Evan Spiegel)。他们的创业思路看起来非常简单,所以很多年轻人会想,“我为什么不试试运气呢?”
但也有不少人看到代码就觉得害怕。反正每次我向兄弟姐妹展示自己的代码时,他们就连连摇头,“看不明白你在写什么东西。”
我妈妈也差不多是这样,她看到我用 C#编程之后,关心地问我是不是在做炸弹。当然,她是在开玩笑,因为她最后笑场了。但我确实得向她解释,我这是在编程。
我爸爸完全不知道 Python 是什么,所以我打算帮他写一个简单的 Python 脚本来完成某些自动化操作。不过在向他解释必须单击文件才能让脚本运行时,他看起来一脸迷茫。
无论如何,即使面对着如此恐怖的代码,很多年轻人仍然义无反顾地愿意投身进来。事实上,编程本身的难度也确实在逐步下降。看看互联网上那么多的框架和库吧,储量丰沛,专为简化流程而生。代码本身虽然枯燥,但学习的过程却丰富多彩。
我的编程之旅:起点
我一直很喜欢互联网和信息技术。我 2003 年出生,所以我接触的第一台计算机上装的就是超经典的 Windows XP。我真的很喜欢 XP,它简直太棒了。我花了好几个小时玩弹珠台游戏,还用画板应用涂涂划划。另外,我还玩了一会儿《疯狂出租车》和《模拟人生》等游戏。总之,我对技术很感兴趣,而且总想知道眼前的事物是怎样运作的。
大概是七岁的时候,我有了自己的第一台电脑。在葡萄牙,家长通常会在小学二年级的时候给孩子买台笔记本,就是下图里这台。它叫“麦哲伦(Magalhães)”,纪念的当然是葡萄牙探险家麦哲伦啦,这是二年级小孩们最想要的东西了。里面预装了不少教育课程,对 7 岁的孩子来说就像是个全新的世界。它使用的是 Windows 7 系统,这套系统对我来说就像是宇宙里最精彩、也最宝贵的东西。
麦哲伦 2 代——2010/2011 年时 7 岁小朋友们最想要的礼物。
但“王权没有永恒”,最后这台电脑坏了。我爸爸把它送去修,虽然毛病修好了,但运行速度变得很慢,基本没法用。(我说的「用」,就是拿来玩游戏。我那时候特别喜欢玩游戏。)
接下来我又有了第二台电脑,我记得我爸爸还买了一台坏的麦哲伦电脑,打算出毛病的时候拆上边的配件来换。可能他觉得无论我的东西出了什么问题,他都能修好吧。但无所谓的,因为我终于有了一部台式机,虽然没有麦哲伦那么有趣,但性能可要好得多啦。
就在这时候,我突然冒出了一个改变了自己人生的神奇念头:既然我爸修不好原先那台麦哲伦电脑,我想我可以用配件组装一台个人游戏机。
OUYA,这是我编程旅程中最重要的灵感来源。
当时的我,并不知道自己的决定意味着什么……
我当时听说过一台名叫 OUYA 的主机,它给我留下了非常深刻的印象:这是一台基于 Android 系统的全新主机,能够自由修改并创建游戏。所以,我想弄一台只属于自己的麦哲伦游戏主机。
相信大家肯定能想到,我当时没能——实际上到现在也不能——完成这项目标,其中涉及的专业知识量多得惊人。但我还是非常兴奋。在阅读了互联网上的一些文章之后,我决定学习 C 语言加汇编语言来构建自己的操作系统。
我真的感觉这事不是很难……
然后,在看到第一行汇编代码的时候,我就哭了。好吧,并没有真的哭出来,但大家应该明白我的感受。
一个美好的主机梦,就这样胎死腹中。
时间快进到几年之后,我和朋友又打算创办一家像微软或者苹果这样的公司(当时我 13 岁)。这又是个令人兴奋的打算,我们会开发众多程序与应用、声名大噪,然后每天坐着数钱。
这就是我们的梦想……
那还等什么,马上开始吧!那么,创建这家大企业、豪赚数百万欧元的第一步应该是什么?
对了——先创建一个 Facebook/Twitter 页面。
在此之后,我们又开始动手创建应用与程序。但那时候我和我的朋友还完全不懂编程,一点也不懂。我们做的事情跟 Python、Java、PHP 甚至是我的老朋友 C 语言一点关系都没有!
那我们是在干嘛?实际上……
我们根本就没有学习编程。相反,我们觉得可以在 YouTube 上建个频道,专发如何使用 Visual Basic 创建一款网络浏览器。
对我们的这家大公司来说,这真的很有创意,对吧?
而且不怕告诉各位,我们的浏览器真就成功了!我甚至在 Weebly 上创建了一个网站(加上.com,我设法说服父亲给我买了个域名,真的)将其分享给全世界。
但是,没人关心我们的成果。
但这无所谓。首次尝试,代表着我正式踏出了编程学习的第一步,也是我如今能够成为开发人员的原因所在。这是我第一次接触 Visual Basic(之前我也试着学过 Java,但放弃了)并真正开始编程(虽然我所做的,只是复制粘贴教学视频里的内容)。
我的编程之旅:真正的起点
现在,我要说说如何正确学习编程了。
在有了以上愉快的经历之后,我意识到自己必须认真学习编程,而不能只靠 YouTube 视频帮自己构建那些实验性的网络浏览器。我想要实现更多!
这个网站真的对我帮助很大!
我要向大家隆重介绍我的恩师: Codecademy!
Codecademy 是迄今为止我在编程学习过程中接触到的,最令人惊叹的网站之一。它跟 freeCodeCamp 有点类似(我去年才知道这个网站,它同样非常出色),但我觉得 Codecademy 在某些方面做得更好。
我的第一段历险是探索 Python 世界。Python 简单、快速、有趣,是最理想的编程学习起点!它跟英语只有一点点区别(英语老师说我英语学得不错,可能这也是我喜欢 Python 的原因吧)。
学了一阵子之后,我的好奇心更加强烈。所以我开始学习 PHP,当然只是出于兴趣(我不想开发网站,网站真的很……无聊)。我有个朋友,是 PHP 方面的天才。听了他的建议,我也踏上了这条学习的道路。
很快,我就掌握了 PHP 和 Python 的基础知识。但是后来,我发现了一个 YouTube 频道,它彻底改变了我的开发思维。这是一个巴西频道,名叫Curso em Vídeo,里面有不少编程课程,来自一位名叫的 Gustavo Guanabara 优秀大学老师。
这个频道让我真正朝着专业的方向迈进。
我在这里上的第一门课程叫作算法与编程逻辑。学习编程逻辑非常重要,有了对它的理解,我才能真正消化很多编程基础知识。
在此之后,我开始专注于学习 PHP、Java(我最大的梦想,因为我一直想开发 Android 应用)、HTML/CSS 以及 JavaScript(现在对我来说非常重要)。
我也尝试过学习一点 C 语言知识(只是基础),并发现这真的是有门槛的。例如,我在理解指针的概念时就感到非常困难。但至少我已经了解了最基础的情况,能够编写出简单的 C 程序了。
我的编程之旅:学习大量编程语言,并找了一份“工作”
在完成以上工作后,我感觉并不开心。因为在最初开始学习编程时,我最大的梦想就是能够开发出自己的桌面和移动应用程序。但出于某种原因,我一直不喜欢开发网站,到现在也不喜欢——而且我也说不出个所以然来。
我的一个朋友(就是当初那个打算跟我一起开大公司,而且很擅长 PHP 的朋友)告诉我,他认识的一个人手头有个大项目,前景光明、没准能发展成一家真正的企业。
这个项目……是开发网站,后端加前端。
但作为一个 13、14 岁的孩子,当时的我并不关心这些。我想的是,既然朋友都参加了,那我也得参加。虽然学习的内容多了一点,但我毕竟也只是个普通的同龄人,那么大的时候大家都又愚蠢又容易嫉妒。反正朋友能去的,我也得去。
我跟朋友提到的那个人谈过了,最终决定以股权的形式(大约是占股 10%)帮忙开发网站。这个项目,还有他们的计划,都让我非常振奋。
好了,这就是我第一份“工作”的故事:我当时 14 岁,学过 PHP、HTML/CSS 和 JavaScript,而且对自己的朋友充满嫉妒。
挺“专业”的吧~
现在如何?
现在我 16 岁了,我的编程之旅也远没有止步。在意识到 Web 开发与移动开发将成为我的饭碗之后,我开始学习更多关于 PHP、数据库(MySQL 与 MongoDB)、API、JSON、HTM/CSS 及其框架(Bootstrap、Sass/Less 等)甚至是 JavaScript(ES6、Node.js 等)的专业知识。
刚开始我打算学习 React,而且在它、AngularJS 和 Vue.js 之间挣扎了很久。但事实证明我选对了,学习 React 的过程中我接触到了 React Native,这帮我一步步走近自己心中的移动应用开发梦想。
现在,我想我已经掌握(至少了解)了以下技术:
HTML/CSS (及其框架)
JavaScript (MERN stack、NodeJS 等)
PHP (但我很后悔没有学习 Laravel, 目前只会用CodeIgniter)
数据库 (MySQL、MongoDB)
Java
Python
C# (只会一点点,好在它跟 Java 比较类似)
C (会一些。我用得不多,主要是用来摆弄 Arduino)
API (了解如何开发并使用 REST API)
现在,我再不像以前那样专注于编程。我喜欢编程,每天也都在做相关工作,但我更关注加密货币、商务以及人工智能,这些都是我接下来的学习重点。
我现在最大的项目就是用 Python 编写的加密货币投资机器人,我觉得它有很大的发展潜力。
另外,我很庆幸自己学习了 UI/UX 设计,这些知识为我在网站上开发出良好的主题与设计做出了重要贡献。
总结
希望大家喜欢这篇文章。对于那些跟我同龄,而且也在考虑学习编程的朋友们,我的建议是:不要想,马上去做!编程是我在整个人生中最难忘的一段历程,同时也让我有了丰富而精彩的回忆。总之,这段旅程越早开始越好!
原文链接:
How I Became a 16-Year-Old Full-Stack Developer
评论