我与计算机技术的缘分要从我七岁的时候说起,当时的我拥有了人生第一台计算机,这为我打开了一个新世界,其内置的 Win 7  系统对当时的我来说是世界上最精彩、宝贵的东西。14 岁的时候,我获得了第一份“工作”,16 岁,我有了一个新梦想——移动应用开发梦想。

先来解决第一个问题:我是谁?

我叫 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 设计,这些知识为我在网站上开发出良好的主题与设计做出了重要贡献。

总结

希望大家喜欢这篇文章。对于那些跟我同龄,而且也在考虑学习编程的朋友们,我的建议是:不要想,马上去做!编程是我在整个人生中最难忘的一段历程,同时也让我有了丰富而精彩的回忆。总之,这段旅程越早开始越好!

(文章来源:高效开发运维)