當前位置:
首頁 > 最新 > 零編程基礎的我是如何在 15 歲之前僅用 9 個月開發了 9款App?

零編程基礎的我是如何在 15 歲之前僅用 9 個月開發了 9款App?

關鍵時刻,第一時間送達!

最近一年我做了很多事情,在這段日子裡我花了大量的時間來學習、練習編程然後構建實際的項目。

本文我將給大家分享自己這 9 個月里關於編程的心路歷程,如何接觸的編程,如何克服拖延症,如何將自己從迷茫中拯救出來,如何在這 9 個月內構建了 9 個應用程序,以及如何發現了自己最喜歡做的事情。

閱讀為我打開科技世界的大門

我之所以能夠進入科技領域,這一切都源於閱讀。我一直以來都非常熱愛閱讀,當我拿到父親送我的 Kindle 時,簡直愛不釋手!在頭六個月里,我每天使用它的時間都超過一小時。我甚至還為它寫了一篇評論文章,並且很幸運地發表在了當地的報紙上。

當時 11 歲的我有一些想法,我覺得這些想法可以讓 Kindle 變得更酷,於是我給傑夫.貝佐斯發了一封電子郵件。郵件如下:

大家可能很想知道我怎麼會有傑夫.貝佐斯的郵箱地址。實際上我並沒有。起初我想通過谷歌進行搜索,但是並沒有獲得有用的結果,最後我把傑夫和貝佐斯以及他名字的首字母進行隨意組合,抱著試一試的心態把郵件發給了多個名字組合。

事實證明我的方法是正確的,其中有一個真的是傑夫.貝佐斯的郵箱地址。大約兩個月後,我母親接到一個電話(我把她的電話號碼寫在電子郵件中),電話那頭說要找我。

以下是我們電話對話的內容:

亞馬遜員工(後面簡稱 A):你好,請問是薩瑪爾嗎?

我:是的,我是薩瑪爾。你也可以叫我薩姆。

A:好的,薩姆,自我介紹一下,我是一名亞馬遜的員工。你之前給傑夫.貝佐斯發了一封郵件,我致電的目的是想跟你談談這件事。我們很樂意聽到你關於亞馬遜和 Kindle的想法,在此我想邀請你到訪我們在印度金奈的辦公室,這個辦公室主要負責研發 Kindle 以及其他更多的設備。

聽到這裡,我簡直不敢相信,我深深地懷疑這是不是有人在跟我開玩笑。

我:不好意思,請稍等一分鐘。

於是我把電話靜音,急匆匆地去找到爸媽,把剛才發生的事情告訴了他們,他們讓我繼續和那個人通話。

我:哇,這簡直太不可思議了!你能告訴我更多的細節嗎?

A:當然,我們會在本月內隨時恭候你和你父母的光臨,並免費為你們提供差旅。你可以來到我們的辦公區,看看我們正在構建的一些很酷的新東西,甚至可以與我們的研發團隊碰面並分享你的想法。

此時我依然無法相信眼前的事情是真的!

我:這聽起來很棒!我可以和父母商量一下再回復你嗎?

A:當然沒問題,我發了一封電子郵件給你,你們商量好之後直接回復我郵件即可。

掛掉電話之後,我花了 30 分鐘的時間搜索這個人的名字。我通過查看 LinkedIn 個人資料來確認他是否真的在亞馬遜工作。最終確認無誤之後,我整個人陷入了瘋狂!

兩個星期後,我和父母去了位於印度金奈的亞馬遜辦公室。

我參觀了他們的研發團隊,看到辦公室里的開發人員面對非常炫酷的屏幕打字。我詢問身邊的嚮導這是在幹嘛,她告訴我說,「他們在編程」,他們正在為 Kindle 開發應用程序。我對應用程序有一點點了解,我在 iPad 上玩的遊戲就是應用程序的一種。

那個時候,我第一次萌生了想要學習編程並構建自己的應用程序的想法。

學習編程基礎

回到家之後,我立即在谷歌上搜索「編程」這個關鍵字。搜索結果是無數個關於 Python的教程以及其他一些對我來說看起來非常複雜的東西。於是我很快就忘記了編程這件事,繼續讀我的書。

一年之後,我突然發現越來越多的東西都搬到了的互聯網上並以網站的形式呈現給大家,於是我也想做一個自己的網站。我搜索如何才能做到這一點,並在codecademy.com 上參加了一個課程。很快我就構建了一個網站,雖然它功能簡單並且外觀並不美觀,但是我覺得它很有趣。於是我把它發布了出去,全世界都可以訪問!

我希望自己網站能夠實現更多的功能並且外觀更好看一些。通過了解之後,我發現自己需要學習 JavaScript ,這樣才能增強網站的「交互性」。於是我通過搜索「如何學習 JavaScript」 找到了大量的課程,學習這些課程總共花費了數千盧比。

我學會了循環、數組、函數、遞歸、作用域以及其他概念。但是最重要的東西我沒有學會,那就是:真正動手構建一個項目。

很長一段時間我都陷入了學習編程基礎知識的泥潭中,甚至忘記了自己學習編程的初衷。當人們問我為什麼學習編程時,我的回答顯得蒼白無力:因為這項技能很重要。

一年之後,碰巧在不同社區中遇到了一些編程高手,他們讓我意識到自己的學習方式效率非常低下。

社區的啟發

我加入的第一個社區是黑客俱樂部,裡面彙集了一群像我一樣正在學習編程的中學生!有的黑客俱樂部成員在學校開設了自己的編程俱樂部,目的是教他們的同學編程,但這不是真正讓我感興趣的地方。

通過黑客俱樂部我了解到了名為「發布」的東西,它的意思是構建一些程序並分享給全世界的人來使用。看起來很簡單,對吧?黑客俱樂部的很多成員都開發了自己的小項目,並通過#ship-it指令將這些項目放在 Slack 頻道上。他們藉助這個平台獲取了關於自己應用程序的反饋和建議。

我還加入了另外一個名為 Feathrd 的社區。同樣,其成員主要是一群做了很多炫酷事情的在校學生!有些人的項目在 Github 收穫了1000多顆星,還有的人通過自己的應用程序賺到了不菲的真金白銀!簡直太酷了!

這深深地打擊了我,但同時也給了我啟發,那就是:我不需要花太多精力來學習編程基礎知識,我需要做的是真正動手開發一些程序並將其發布出去。

於是,我花了三個小時來思考,試圖想到一個有價值的應用程序。但最後我都無法想出一個好的點子,我的大腦一片空白。

尋找靈感

我喜歡閱讀,因此我經常需要下載書籍並獲取它的詳細信息,但是這個過程有點繁瑣。我想構建一個界面,從而讓整個過程更加方便和簡單。這個想法促成了我的第一個項目。

你們可能會認為對於已經學習編程一年之久的我來說,完成這個項目非常容易,但事實並非如此。

我不知道如何開始,於是向黑客俱樂部和 Feathrd 社區的 Slack 頻道尋求幫助。最後我了解到自己需要使用一個稱為 API 的東西從書商那裡獲取數據,然後他們會給我發送一個叫做 JSON 的東西。

我無法理解這些東西,於是使用谷歌搜索,但是搜索結果依然讓我很迷惑。我只好繼續硬著頭皮在社區詢問,希望有人能夠對這些術語的含義進行更深入的解釋。幸運的是,社區的人都超級好,大家很熱心幫助我。

在此我學到了非常重要的一課:不要害怕尋求幫助(當然前提是你已經嘗試了使用谷歌搜索尋找答案)。

一個星期的時間,我就完成了這個終端應用程序的開發,它可以幫助你把一本書下載到電腦上!這是我第一次發布應用,在這一周里我學到的東西比過去一年裡學到的都要多!我終於做了一些實實在在有用的事情。

真正動手編程,而不是紙上談兵

第一次成功發布程序之後,我寫了一個關於如何學習編程的指南。

我繼續優化我的終端應用程序,在之後的三個月里,它逐漸演變成了一個真正的 Web 應用程序!我開始痴迷於發布應用程序。

在那之後的 9 個月里我陸續發布了 9 款應用。

我並沒有強行規定自己要在 9 個月內製作 9 款應用,應用的誕生都是偶然的。有時候幾個月的時間我都不會開發一款應用,而有時候幾個星期的時間我會發布多個。主要取決於想法和需求,有時候我發現一個痛點就會產生做一個應用的想法,有時候看到一些很酷的技術時我會想到更好的做法來優化它。

以 Chhota 為例,它是我在周末做的一個縮短 URL 的工具。我想縮短自己域名的 URL,但我並不想自己構建伺服器,或者白白支付 99 美金給 Bit.ly。Chhota 是一個 JS 腳本,可以放入推文中(甚至在 280 個字元之前!),通過將 URL 重定向到谷歌的 URL 縮短器來縮短 URL。

例如:jajoosam.tech/#$mR2d 在縮短之後就變成了 goo.gl/mR2d

我主要利用周末和放學後的空閑時間來開發應用程序。獲得想法並不難,因為任何一個微小的創意都可以轉化為一個程序。

我的工作流程是:

獲取想法 分享想法 項目預研 開發項目 發布項目

正在進行的工作

之所以我有持續不斷發布項目的動力,主要源於自己加入了 WIP 社區。WIP 社區彙集了大量非常優秀的開發者,他們在一個電報小組上討論並公開跟蹤自己的發布目標。

看到 Pieter Levels 的應用程序請求後,我開始在 WIP 上活躍起來。

作為回應,我在24小時之內創建了一個名為 Syncr 的應用程序。

迄今為止,Syncr 已經為我帶來了近百美元的收入。

全部公開

我的所有應用都發布在 Product Hunt,在那裡我得到了一些很好的反饋和讚揚。我的應用甚至有幾次進入了 Top 5榜單!

能夠在 Product Hunt 的 Top 5榜單上露臉是件非常令人鼓舞的事情,就像文章登上黑客新聞(已經兩次了)的頭版一樣!

開發一款大家喜歡的應用感覺很棒,甚至還有人會付錢給我!但我開發應用的主要原因是享受開發過程的樂趣。登上黑客新聞的頭版或者進入 Product Hunt 的 Top 5榜單讓我很有成就感,此外,在 WIP 上發布應用也會給我帶來自豪感。

可能很多人都知道 glitch 這款強大的工具,我的所有應用程序幾乎都是用它來構建的。Glitch 提供商的 CEO 在一條推文中提到了我。

這個小孩使用 @Glitch 開發的應用程序非常有趣!https://t.co/KIExGeToJn ?—?@anildash

NameCheap 的 CEO 甚至還詢問我是否需要工作:

@yesnoornext @jajoosam 你需要工作嗎? ?—?@NameCheapCEO

這真的太不可思議了!

谷歌分析顯示,我發布的應用有超過8萬的用戶和訪問者,這讓我無比自豪。

我的收穫

我從未經歷過一個耗時漫長的項目,我幾乎都是在三個月以內完成一個應用,甚至我的大部分應用程序都是在一兩個周末內完成的。我的目標是快速發布,於是我一直都是臨時解決問題,而不是真正解決問題。

因為我對文件操作很熟悉,於是我所有項目的資料庫都是文本文件的形式。此外,我從來沒有在應用程序中進行任何形式的身份驗證。這並不影響功能,並且能夠快速發布,因此我採取了非常簡單的方法。

我沒有嚴格按照 MVP 模式去構建應用。主要有兩個原因:

1. 我缺乏耐心,一直沉迷於儘快發布應用。 2. 我使用的開發工具有些陳舊,於是我不想真正解決問題,臨時解決我就滿足了。

展望未來

我想改變現狀,開發一款真正的產品。我將繼續做大量的小應用,同時繼續專註於構建偉大的產品。我希望自己能夠真正解決問題,此外, 我會找機會升級自己技術工具箱。

我想在不久的將來做一些很酷的事情:

開發原生移動應用

構建一個更加智能的縮短工具

開發硬體項目(我已經有一些想法了!)

構建一些 UI 美觀的應用程序

經驗教訓

到目前為止,我在這段從事編程的瘋狂旅程中收穫了一些經驗教訓:

不要忘記你做某事的真正原因。對我來說,就是我曾經忘記了自己為什麼學習編程。這就造成了我學習編程知識和真正開始動手編程之間的時間長達兩年之久。

參加課程並不總是有效,至少對我來說是這樣。 我認為最好的學習方法是實際動手。

社區能夠激勵和幫助你,同時你也可以激勵和幫助他人。這些社區有 WIP、 Feathrd、黑客俱樂部。

學習過程做好記錄。

並非所有的應用程序都需要合理的架構且精心構建。有些時候,拼湊解決問題從而快速發布也是可以的。

關於這 9 個項目

按照時間順序排列,這9個項目分別是:

Urbansaurus -? 谷歌城市辭彙:https://www.producthunt.com/posts/urbansaurus

Chhota -? 一個沒有資料庫的前端 URL 縮短器:https://www.producthunt.com/posts/chhota

Pagiga -? 基於谷歌表單且支持 Markdown 的博客:https://www.producthunt.com/posts/pagiga

rnr -? 無需現金的捐款網站:https://www.producthunt.com/posts/ernr

Syncr -? 源於 YouTube 的視頻播客:https://www.producthunt.com/posts/syncr

Pingr -? 即時通知系統:https://www.producthunt.com/posts/pingr

Writt - 在電報中製作豐富並且可分享的筆記:https://www.producthunt.com/posts/writt

Polltime - 無處不在且可調整的民意調查系統:https://www.producthunt.com/posts/polltime

Wrish - 支持自動快速保存的在線記事本:https://www.producthunt.com/posts/wrish。

原文:https://medium.com/m/global-identity?redirectUrl=https://medium.freecodecamp.org/how-i-went-from-not-knowing-how-to-code-to-shipping-9-projects-in-9-months-all-before-my-15th-7ec3666072c3

作者:Samarth Jajoo

譯者:安翔,責編:郭芮


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

360 核心高管離職;賈躍亭妻子欠14億成「老賴」| 一周業界事
馬化騰「閃退」華人首富;馬雲回應收購中天微|CSDN極客頭條

TAG:CSDN |