我与计算机技术的缘分要从我七岁的时候说起, 当时的我拥有了人生第一台计算机, 这为我打开了一个新世界, 其内置的 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,Node.JS 等)
- PHP (但我很后悔没有学习 Laravel, 目前只会用 CodeIgniter)
数据库 (MySQL,MongoDB)Java
- Python
- C# (只会一点点, 好在它跟 Java 比较类似)
- C (会一些. 我用得不多, 主要是用来摆弄 Arduino)
- API (了解如何开发并使用 REST API)
现在, 我再不像以前那样专注于编程. 我喜欢编程, 每天也都在做相关工作, 但我更关注加密货币, 商务以及人工智能, 这些都是我接下来的学习重点.
我现在最大的项目就是用 Python 编写的加密货币投资机器人, 我觉得它有很大的发展潜力.
另外, 我很庆幸自己学习了 UI/UX 设计, 这些知识为我在网站上开发出良好的主题与设计做出了重要贡献.
总结
希望大家喜欢这篇文章. 对于那些跟我同龄, 而且也在考虑学习编程的朋友们, 我的建议是: 不要想, 马上去做! 编程是我在整个人生中最难忘的一段历程, 同时也让我有了丰富而精彩的回忆. 总之, 这段旅程越早开始越好!
来源: http://developer.51cto.com/art/201909/602544.htm