我是如何从完全不懂编程到在9个月内完成9个项目——而且这一切都发生在我15岁生日之前
我学会了循环、数组、函数、递归、作用域以及其他许多概念。但我没有学到我真正想学习编程的原因——创造。
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
各位开发者社区的朋友们好!我几个月前在freecodecamp 的 Medium 平台上发布了这篇文章,现在刚加入这个社区,所以重新发布一下!
我制作东西已经(很多)差不多一年了。我的大部分时间都花在了编程、开发和学习上。
这是我如何开始编程的故事。我会分享我是如何克服拖延症和迷茫的,如何在九个月内开发出九个应用程序,并发现自己热爱的事业。
阅读如何让我进入科技行业
一切都始于读书。我真的很喜欢读书,所以我让爸爸给我买了一台 Kindle——我爱不释手!在最初的六个月左右,我每天都会用它大约一个小时。我还写了一篇书评,被当地一家报纸刊登了📰
11岁的我有一些让Kindle更酷的想法,于是我给杰夫·贝佐斯写了一封邮件。这封邮件是这样的:
我怎么知道杰夫·贝佐斯的邮箱地址?我并不知道。我只是试着在谷歌上搜索,但不确定会是什么,所以我就把所有我能想到的“jeff”和“bezos”以及他名字首字母的组合都输入了进去。
其中一封邮件肯定发出去了,因为大约两个月后,我妈妈接到一个找我的电话。我把她的电话号码写在了邮件里。
我记得当时我们是这样对话的:
亚马逊员工(A): 你好,请问是萨马斯吗?
我: 是的,我就是萨马斯。我叫萨马斯,你也可以叫我萨姆。A
: 太好了,我就是 亚马逊员工!萨姆,你之前给杰夫·贝佐斯写过一封邮件,我打电话来就是想跟你聊聊这件事。我们很想听听你对亚马逊和Kindle的看法——如果你能来我们位于钦奈的办公室参观一下就太好了,我们在那里生产Kindle和其他设备。
此时此刻,我分不清这是真的还是有人在跟我开玩笑。
我: 请稍等片刻。
把手机调成静音,去找父母。告诉他们发生了什么事。他们说继续聊下去。
我: 哇,那太棒了!能跟我说说更多细节吗?
答: 当然可以,我们随时欢迎你和你的父母本月过来,我们会帮你预订机票和住宿。你们可以来我们办公室,看看我们正在开发的一些很棒的新产品,还可以和团队成员见面,分享你们的想法。
现在我确信这是假的,不可能是真的……对吧?!
我: 听起来不错!我可以先跟父母商量一下再回复你吗?
答: 当然可以——我已经给你发了邮件,你回复一下就行了。
接下来的半小时,我都在谷歌上搜索这个人的名字。我查看了好几个他的领英个人资料,想确认他是否真的在亚马逊工作,以及这件事是否属实。确认他真的在亚马逊工作后,我简直兴奋极了。
两周后,我和父母参观了亚马逊位于钦奈的办事处。
我见到了他们的团队,看到他们办公室里有人在用类似黑客风格的屏幕敲敲打打。我问带我参观的人,她说:“这是在编程”,他们正在开发一款 Kindle 应用。我知道应用是什么,因为我在 iPad 上玩的游戏也是应用。
我想一切都是从那里开始的。我想学习编程,以便开发自己的应用程序。
发现编程错误
回家后,我上网搜索编程。结果搜出来一大堆Python教程和其他东西,对我来说都太复杂了。于是我把编程的事儿忘了,继续看书。
一年后,我意识到互联网上有那么多网站,我也想做一个。于是我上网搜索怎么做,然后在codecademy.com上找了个教程。我建了一个很小、很丑的网站。感觉很有意思——我把自己做的东西发布了出来,全世界都能看到!
但我希望我的网站能真正发挥作用,而不仅仅是互联网上一个丑陋的Word文档。结果发现,我必须学习一种叫做JavaScript的东西才能让我的网站“互动”。于是,我在谷歌上搜索“如何学习JavaScript”,然后把能找到的所有课程都学了一遍。所有课程我都学了。
我爸爸可能在这些课程上花了数千卢比。
我学会了循环、数组、函数、递归、作用域以及其他许多概念。但我没有学到我真正想学习编程的原因——创造。
我觉得我太沉迷于学习编程了,以至于忘记了当初为什么开始学它。当别人问我为什么要学编程时,我的回答既糟糕又无聊,因为这是一项重要的技能。
我花了一年多的时间才意识到自己在做什么,这要归功于我在网上不同社群中遇到的那些很棒的人。🌐
记住我的“初心”
我加入的第一个社群是Hack Club——一群和我一样的高中生,他们都在编程!Hack Club里有些人还在学校里创办了自己的编程俱乐部,教同龄人编程——但这并不是真正吸引我的地方。
Hack Club 让我接触到了“发布”这个概念——它指的是开发出某个东西,然后分享给全世界,让大家都能看到/使用。听起来很简单,对吧?Hack Club 的很多人都开发了自己的小项目,然后把它们发布到 Slack 的 #ship-it 频道。他们收到了很多关于自己应用的精彩反馈和想法。👨💻
我加入了另一个很棒的社区,叫做Feathrd。这里也是一群学生创客,他们在上学期间就做出了各种各样令人惊叹的东西!有些人的 GitHub 代码库里有成千上万颗星⭐,而且他们还通过自己的应用赚到了真金白银。哇!
我当时灵感迸发——然后我突然意识到:我不需要学习编程,我需要做的就是创造一些东西并把它发布出去🛠️。
于是,我花了三个小时什么也没做,只是努力想出要做什么。但我什么也没想出来。我脑子一片空白。
获得一些灵感
我的第一个项目源于我当时想下载一本书并获取一些相关信息。我想要构建一个界面,让这个过程更加便捷清晰。
你可能会觉得(至少我是这么想的),这应该很容易,因为我已经“学习编程”一年了。但事实并非如此。
我完全不知道该从何入手。于是,我在我加入的社区——HackClub 和 Feathrd 的 Slack 频道里提问。我了解到,我需要使用一种叫做 API 的东西来从图书供应商那里获取数据,而他们会给我发送另一种叫做 JSON 的数据。
我当时完全懵了(即使谷歌过了也一样!)。虽然有点不好意思,但我还是问了问那些术语的具体含义。幸运的是,大家都很友善,帮我理解了。
我刚刚学到了一件非常重要的事情:不要害怕寻求帮助(在你尝试过谷歌搜索之后)。
一周后,我开发出了这款终端应用程序,它可以将一本书下载到你的电脑上!这是我第一次发布产品🚀,一周内我学到的东西比过去一年学到的都多!我竟然真的做出了有用的东西。
简而言之:与其上课,不如去做点什么。
在我的第一艘船之后,我编写了一个关于学习编程的指南。
我继续开发我的终端应用程序。短短三个月,它就演变成了一个真正的网页应用程序!也就是从那时起,我迷上了物流。
此后九个月里,我发布了九款应用。
我从未想过要在九个月内开发九个应用。有时几个月我一个项目都没做,有时几周内我又发布了好几个项目。这是因为我的灵感通常来源于解决眼前的实际问题,或者是我看到一些很棒的技术后,很快就想到了它的应用场景(或者两者兼而有之!)。
以Chhota为例——这是我周末做的一个网址缩短工具。我当时想用自己的域名缩短网址,但又不想搭建整个服务器,也不想花 99 美元租用bit.ly。Chhota是一个 JavaScript 脚本,长度刚好可以塞进一条推文里(甚至不到 280 个字符!),它通过将网址重定向到谷歌的网址缩短服务来缩短网址。
例如:jajoosam.tech/# $mR2d变为goo.gl/mR2d
我利用周末时间或者放学后仅有的空闲时间来开发应用。构思并不难——我对任何想法都没有限制。
我的工作流程是:
获取想法 ⇒ 分享想法 ⇒ 获取关于建筑想法的想法 ⇒ 建造 ⇒ 交付 🚀
进行中
真正帮助我持续发布作品的是加入一个名为WIP(Work in Progress 🚧)的社区。WIP 社区里有很多非常非常棒的创作者和创业者——他们在 Telegram 群组💬上交流,并公开记录他们的作品发布目标。
在看到 Pieter Levels 提出的应用程序请求后,我开始积极参与 WIP 社区(!!!)。
Woof Wooferson = Pieter Levels
我的应对措施是在 24 小时内创建一个名为 Syncr 的应用程序。
到目前为止,Syncr已经帮我赚了将近一百美元——感谢@levelsio 的创意😄
全部公开
我把所有产品都发布在Product Hunt上,在那里我获得了许多很棒的反馈,通常也能获得不少点赞。我甚至有好几次产品都进入了前五名!
在 Product Hunt 上获得推荐非常鼓舞人心,登上 Hacker News 的榜首(这种情况发生过两次 😉)也是如此!
能做出别人喜欢用的东西——甚至还愿意付费——感觉真的很棒!但我创作主要还是为了乐趣。能登上 Hacker News 和 Product Hunt 的首页,感觉就像是一种成就,每次发布WIP 版本都会让我兴奋不已。
然后,Fog Creek 和Glitch(!!——我几乎所有应用都是用这个超棒的工具开发的)的 CEO在推特上给我发了消息:
阿尼尔·达什@anildash
这孩子用他的 @Glitch 应用做得太棒了!看他做应用真的很有意思!twitter.com/jajoosam/statu…2018年5月4日上午10:59Samarth Jajoo @jajoosam我的第十个@ProductHunt项目,也是Show HN首页的第五个项目!https://t.co/cifbPY2WrZ Wrish是一个快速自动保存的记事本✏️⚡,仅用了3天就开发完成。🚧 开发进度:https://t.co/9ldLDOuGuT 👨💻 代码:https://t.co/eCnSt00m8i 托管于@glitch 🐟
NameCheap 的首席执行官也持相同观点:
真是太刺激了!
根据谷歌分析的数据,我的网站访问量已经超过8万用户/访客。想到全世界有8万人看过我的作品,我就感到非常开心 :)
我学到的
我从来没有在一个项目上投入太长时间——我总是能在三个月内完成所有工作,而且我的大部分应用都是在一两个周末内完成的。我之所以能如此快速地发布产品,是因为我总是想方设法绕过问题,而不是真正去解决问题。我是一个名副其实的黑客。
目前我所有项目的数据库都是一个文本文件,我直接读写它。这是我唯一会做的,而且我的应用从来没有真正意义上的身份验证。一方面,这很棒。它让我可以快速地开发出最小可行产品(MVP),看看用户反馈。
但问题就在这里——我的所有项目都还停留在最小可行产品(MVP)阶段。原因有二:
-
我没什么耐心,而且特别喜欢尽快把新东西寄出去。
-
我用的是一套老旧的工具箱,我无法真正解决问题,只能暂时绕过它们。
展望未来
我想改变现状,打造一个真正成熟的产品。为此,我会继续开发大量的最小可行产品(MVP),同时专注于打造一款优秀的产品。我希望它能成为我解决问题、并在需要时不断升级技术工具箱的产品。
我未来(很快!)想做的一些很酷的事情包括:
-
构建原生移动应用
-
构建一份智能合约,看看它到底有什么魔力。
-
构建硬件项目(我已经有一些想法了!)
-
打造外观精美的应用👀
-
实现盈利,赚取可观的月度经常性收入!💵
吸取的教训
以下是我在这段疯狂的编程之旅中(目前为止!)学到的一些关键点:
-
别忘了你做某件事的初衷。对我来说,那就是忘记了我当初学习编程的初衷。这大概就是为什么我从学会编程到真正开始动手实践之间隔了两年的原因吧。
-
课程并不总是有效(至少对我来说是这样——jajoosam.tech/code)。我认为最好的学习方法是动手实践。在实践中学习。
-
找到一个能激励和帮助你的社群,同时也能激励和帮助他人(对我来说是 WIP + feathrd + hackclub)。
-
记录你的工作WIP.chat/@jajoosam )
-
并非所有东西都必须结构严谨、制作精良。为了快速搭建一个东西,临时拼凑一些方案,并想办法解决一些问题,也是可以的。(但并非所有事情都适用)
以下是这9个项目!
按时间顺序:
如果你想在我推出新项目、撰写新故事或其他精彩内容时收到我的通知 ;) — 请在此注册 👇
https://buttondown.email/jajoosam ✉️
感谢Vidyadhar Sharma阅读草稿并帮助编辑本文。
文章来源:https://dev.to/jajoosam/how-i-went-from-not-knowing-how-to-code-to-shipping-9-projects-in-9-monthsall-before-my-15th-birthday-go9