原題:Is it too late for an X-year-old to learn how to program?
翻譯:X(X>0)歲的我,開始學編程來得及嗎?
作者:Erin Parker
翻譯:餘璐、徐鵬亮、丁禮元
校對:Sherry SG、丁禮元、Phil Tang
題圖:Erin Parker
It's never too late. So much can happen in a year; it can amaze you.
永遠不會晚。一年之內可以發生很多讓你意想不到的事。
I majored in Economics. When I was about 23, I randomly decided to go to a Railsbridge Meetup, where you learn how to make a basic Ruby on Rails application in a day. I made a basic Ruby on Rails application and very much enjoyed it. A seed was planted that day.
我是學經濟學的。23 歲的時候,不經意間參加了 RailsBridge 的一個聚會,在那裡你能在一天之內學會用 Ruby 語言開發一個簡單的應用,那時我寫了一個,整個過程非常享受。於是,興趣就在那天種下了。
Months later, I had an idea for a website I've always wanted to build. Although my idea was vague, in this website, I imagined it would inspire women to be kickass go-getters. I thought it would either be a career type of website, or one in the health and fitness space. And I definitely wanted to call it Spitfire. I strongly felt such a product was sorely needed and I felt like I had a pretty good perspective and vision to create it.
幾個月後,我有了一個想法,建一個一直想建的網站。雖然當時的想法還比較模糊,但我希望這個網站能夠鼓勵一些女性成為出色的有夢就追的人。我設想這將是一個有關職場的網站,或者是健康和健身的網站。於是,我迫切地想叫它 Spitfire。我強烈地感覺人們需要這樣的產品,並且我已經有了思路和想像。
Although I hadn't committed to learning programming just yet, I would sketch out mocks like this:
我當時還沒著手學編程,只是畫了這樣的草圖:
I would email these mocks to my friends and get their feedback.
我把這些草圖郵給我的朋友,要到他們的反饋。
At the time, I was getting pretty hardcore into lifting weights and seeing a lot of results. I was also having a frustrating time finding high quality, trustworthy resources for women who lift weights and had this continuous nagging feeling that maybe I should actually do something about it.
那時候,我在健美方面投入很多,也得到了很多成果。但常常因為無法提供一些高品質、可信賴的資源給那些練健美的女性而感到沮喪,所以總是在想也許我應該做點什麼。
Finally, I decided to do it. Friends were asking me how I was getting in shape, how to lift weights, how to eat healthy. I decided to commit to learning ruby on rails and just building this out.
最後,我下定決心做一個網站,回答朋友們的那些問題:怎樣保持體形?如何舉重?如何健康飲食?於是,我決定學習 ruby on rails 語言來實現這一切。
I figured, if I learn to program, even if I fail, I would have at least failed building something that can help scale what I've learned to potentially millions of people. And that in itself, is a worthy pursuit.
我想,如果我學習編程失敗了,也至多是沒能創造出一個產品,將自己所學用在幫助許許多多用戶上,但這努力的過程本身是值得的。
At the same time, however, I decided failure was no longer an option. I wasn't going to let myself stop until I've built what I envision in my head Spitfire can truly be. I knew that if I just persisted through the pain (like an athlete), that the end result is going to be well worth the temporary pain.
就在那個時候,我要求自己必須成功。如果 Spitfire 沒有真正做成我腦海中的樣子,我絕不停下。我知道,如果一直堅持下去,熬過痛苦的階段(像一個運動員一樣),就能獲得最終的成果,短暫的痛苦也值得了。
I started teaching myself Ruby on Rails by voraciously consuming every free resource I could, like Learn Ruby the Hard Way, Try Ruby, Codecademy, Michael Hartl's book, Why's Poignant Guide to Ruby, the Rails Guides, and my absolute favorite, Railscasts.
我孜孜以求地尋找任何免費的資源自學 Ruby on Rails,比如學習《Ruby the Hard Way》、《Try Ruby》、《Codecademy》、Michael Hartl 的書《Why's Poignant Guide to Ruby》和《the Rails Guides》,還有我最喜歡的《Railcasts》。
I was relentless. If I didn't get something the first time, I didn't care. I would go through it again and again until it started to make sense. I would look for different explanations of the concept. I would ask my friends. When in coffee shops, if I was coding, and if the person sitting in front of me looked like they were an engineer based on the stickers on their laptop, I would kindly ask them if they could help (I have made so many friends this way, a few of them are still my really really good friends).
我蠻執著的。如果第一次沒有什麼成果,沒關係。我會反覆去做,直到開始理解它。我會尋找不同的概念解釋,會問我的朋友。如果在咖啡店,我正在寫代碼時遇到問題,對面坐著一個看起來像是工程師的人——從他們筆記本上的貼紙能看出來——我會非常友好向他們請教。(通過這樣的方式,我已經交了很多的朋友,其中幾個後來成為了我的死黨)。
I would go to lots of developer meet-ups, and particularly liked Women Who Code because of their "teach a new tutorial at each meetup" format and all of The Ruby Group meet-ups because it was easy to get help and unstuck.
我會去很多開發者的聚會,尤其喜歡 Women Who Code,因為她們「每一場教一教程」。也會去 Ruby 小組的聚會,因為我在那裡很容易找到人幫忙,而且能把我的難題解開。
I stuck with it for months and little by little "banged out" the ideas in my head. You can still see many of my early projects here:
我堅持了幾個月,逐漸地落實腦海中的想法。在這裡你還可以看到許多我早期的項目:
http://spitfiredarkstar.herokuapp.com/
http://spitfiredauntless.herokuapp.com/
http://spitfirehellcat.herokuapp.com/
https://spitfireocelot.herokuapp.com/
I worked the most on this one:
我主要把精力放在這個網站:
http://spitfireathlete.herokuapp.com/
The site was quite feature-rich. It was pretty, had nice UX, and was a culmination of all the great ruby on rails stuff I had learned. Unfortunately though, no one was using it!
這個網站功能豐富多樣,用戶體驗很好,集合了我在 ruby on rails 所學到的最好的東西,然而,並沒有什麼人瀏覽這個網站。
It was exhilarating and discouraging at the same time. I felt like I had this great skill set...but that I was building stuff...that nobody wanted.
那段時間,激動與失望並存,我覺得自己懷才不遇,有手藝但是做的東西別人卻不喜歡。
When I asked my friends why they weren't using it, I learned that what they really wanted was for me to "just tell them how to work out". And they wanted something that looked nice on their mobile phones, so they can train at the gym.
我問我朋友為什麼他們不用這個網站,我才知道到他們需要的只是「告訴他們怎樣健身」。他們希望自己的身材在手機上看起來很棒,然後就會在健身房裡(按照指示)健身。
So I decided to change directions completely, learn jQuery Mobile, and I built this:
所以我決定轉向學習 jQuery Mobile,建了下面這個網站。
http://spitfirewarrior.herokuapp.com/
What absolutely fascinated me about this was despite the fact that it was ugly and utterly simple - people actually used it! And they wanted more. And they wanted it as, gasp, a native iOS app.
令我感興趣的是,不管這個軟體有多麼醜,多麼簡單,他們就是在用它。他們還想要更多,都把它當做是原生 iOS 應用。
As a datapoint - it had been about 6 months since I started learning Ruby on Rails.
現在,距離我開始學 Ruby on Rails,已經有6個月了。
I tried resisting the nagging realization that I might have to pick up iOS development if I wanted to take this further. I really tried getting jQuery Mobile to work but very quickly realized it's only great for prototyping (orvery simple apps).
我一直不願承認,如果想要有更大的發展空間,我必需要開始學 iOS 的開發。我曾想發掘 jQuery Mobile 的潛能,但是很快也意識到它只夠軟體的原型開發(或者說非常簡單的 app)。
It was around April 2013. And I decided, you know what? I'm 24 but hell, I'm going tobecome an iOS developer. So what if I don't have a CS major? I have more drive and determination than most people. They may outsmart me, but I just never give up. I've already gone so far. Why stop now? #turtle
大概是在 2013 年的四月份。我做了一個決定,你知道嗎?那時的我已經 24 歲了!我決定成為一個 iOS 的開發者。然而我的專業不是計算機編程,但我比大多數人有著更強大的動力和決心。他們或許比我更聰明,但是我從不放棄。我已經在這條路上走了很遠,為什麼要停呢?
So I did the same thing. I voraciously went through every iOS resource I could find. I did all the exercises, the challenge exercises, and finished every book I could get my hands on from start to finish. I was very thankful to friends who would send me free PDF copies of nice O'Reilly books that were "expensive".
所以我做了和大多人一樣的事,如饑似渴的去瀏覽每一個能找得到的 iOS 資源庫,做了所有的練習,各種具有挑戰性的練習,我把我手上的書都完整的讀了一遍。非常感謝朋友們將 O'Reilly 的書(很貴的)的 PDF 副本免費發給我。
I frequently attended the Women Who Code iOS meet-ups and benefited from the Big Nerd Ranch books on Objective-C and iOS, Ray Wenderlich's Tutorials, and Apple's Documentation.
我經常參加 Women Who Code iOS 的聚會。我學習了 Big Nerd Ranch 叢書中關於 Objective-C 和 iOS 的部分,Ray Wenderlich 的教程,還有 Apple 的文獻,受益良多。
I built TONS of tiny little apps (that's how you learn)! I also made a promise to myself that I'm not going to ever think of any technology as "hard", because I think that's like a self-imposed ceiling on your learning. So I, quite fearlessly, ended up learning a bunch of stuff that scares away most iOS developers, that although I don't use it today, I realizeit made me a much stronger developer, even though I had many long nights of "much stuckness".
我做了「大量」的簡易 app(這都是學習的過程)。我規定自己絕不對任何技術說「難」,因為那樣會無形中自我製造恐懼,妨礙學習。所以,我無畏地學了很多嚇倒 iOS 大神的知識,雖然這些知識我目前都用不上,還需要經常熬夜各種攻克「難關」,但這些都使我成為了一個更強大的開發者。
Here is a photo of me giving a tech talk at a meet-up on how to make a custom Ruby on Rails API and then send that data to your iPhone app using AFNetworking.
下面的照片是我在見面會上做的一個技術交流展示,如何自定義 Ruby on Rails 的 API(註:Application Programming Interface,應用程式編程接口),然後通過 AFNnetworking 向 iPhone 發送數據。
That was May 2013, age 24. I made myself give this talk...even though I had only *just* learned how to actually do what I was talking about. I felt very much like an "iOS imposter" and like I had just begun to get over the feeling of being a "Ruby on Rails imposter".
那是 2013 年的五月,我 24 歲了。我逼著自己上臺做了這段展示,即使當時我才「剛剛」學會那些知識。我感覺自己像是個「iOS 騙子」,但又慢慢地適應「Ruby on Rails 騙子」這個稱呼。
Here is a screen shot of learning tableviews and transferring the concept of the Spitfire App to iOS, even though I ended up building everything again from scratch. I made this after two weeks of learning Objective-C.
下面的屏幕截圖是表格視圖的界面和轉存 Spitfire 軟體中內容到 iOS 的界面。我當時是從打草稿開始,所有都重新來過一遍的,這僅是我在學了兩個星期 Objective-C 之後的成果。
Months went by. Little by little I got better. Also, iOS is a very interface-heavy system and if you don't learn design, all your apps will look ugly. It's almost impossible to separate yourself from the front-end when in Xcode. So I decided I should also probably learn design and Photoshop via the Hack Design curriculum.
幾個月過去,我的技術在一點一點地增進。IOS 是一個用戶界面很多的系統,如果你不學習設計,你做出來的 app 就會很難看。但在用 Xcode 的時候,你的工作和前端設計是不可區分。所以我決定通過一些課程學習設計和 photoshop。
Photoshop was a lot easier to learn than programming, so eventually I made these really pretty mocks:
Photoshop 比學編程容易多了,所以我做了這些漂亮的模板。
And eventually, around October 2013, I turned these mocks into the "Spitfire Athlete pre-Alpha" app. Here is a screen shot of the actual app running on my device:
最後大約在 2013 年 10 月份的時候,我把這些模板做成了「Spitfire Athlete」pre-Alpha 版. 這是在我的設備上的 app 截圖。
A couple months of struggling with Core Data and many passionate Test-Flightusers asking for more features, I decided it was time to turn this crazy passion of mine into a start-up and I recruited an incredible co-founder, Nidhi Kulkarni, a razor sharp MIT CS gradwho, like me, was also an athlete (she competed in D1 rowing while at MIT).
花了幾個月的時間學習 Core Data,許多熱情的測試用戶向我請求更多的功能。在那之後,我決定是時候把我的心思投入到創業中去了。我聘請了一個很棒的合作夥伴,Nidhi Kulkarni,一個 MIT 的 CS 畢業生,也是一個運動員(在 MIT 的時候是個賽艇選手)。(註:CS, computer science; D1 rowing 是美國大學生體育聯合會 NCAA 舉辦的划艇賽事。)
With two technical, highly-driven ladies at the helm of Spitfire, I felt our productivity 10x. We started together around November 2013, I was nearing the end of age 24 (lol), and knew I was on the verge of something pretty exciting.
有兩個技術型,自我驅動型的女生在 Spitfire,我覺得我們的效率成倍增長。我們從 2013 年 11 月在一起工作,當時我 24 歲半了(大笑),我有預感會發生非常令人激動的事。
We participated in the Code Path iOS Mobile Bootcamp together, a free bootcamp for professional-level iOS developers. We finished Spitfire Athlete alpha and at demo day (which was judged by VPs of Engineering from top mobile companies in Silicon Valley) we won "Best iOS App" and "Best Overall App". That was pretty cool, because I was definitely the only non-CS major in the entire class!
我們一起參加了 Code Path iOS 手機夏令營,專業 iOS 開發師可以免費參加。我們完成了 Spitfire Athlete alpha。發布 demo 那天,在矽谷頂尖手機公司的工程部副總裁們的評選下,我們獲得了最佳 iOS App 和最佳 App 的稱號。真是太爽了。因為我真的不是專業 CS 的學生。
I turned 25 in January of 2014. In April of 2014 we launched to the app store and were featured on the home page in Best New Apps, and all over the Health and Fitness category. We now have tens of thousands of users and have gotten so much love mail, it makes me truly believe the journey so far has been worth it.
2014 年 1 月,我 25 歲。我們在 app store 發布了自己的 app,結果被放在首頁,列在最佳新 app 的一欄裡面,在健康與健美的單元裡面也都是我們的廣告。我們現在有幾萬用戶,每天收到很多很有愛的郵件。這讓我覺得一路來所付出的一切都值了。
You can download the app from the App Store here: Spitfire Athlete (https://itunes.apple.com/app/spitfire-athlete/id822040342?mt=8)
通過以上網址,你可以下載到我的 App,名為 Spitfire Athlete。
I decided to write this answer tonight because I recently had to renew my iOS Developer subscription. I thought, "Has it been a year? No way. Time goesby so fast." And then I remembered what it felt like, when I first started.
我決定寫下這個答案。因為最近最新要刷新我的 iOS 開發的會員資格,我在想「已經一年了嗎?不可能。時間過得真快!」趁著記憶猶新,把最初的感動寫下來。
I hope this answer inspires you and those who read it to learn how to program and make what you're passionate about become a reality, because the rewarding feeling of having built something that tens of thousands of people loveis...indescribable.
我希望這個答案能激勵你,和那些想要學習編程的人,把你們的點子變為現實。創造出萬人喜愛的 App 那種成就感是難以言喻的。
***
Update: September 9, 2015
We are running a Kickstarter to bring Spitfire Athlete to Android. The app has helped women not only build strength, but also fightcancer and overcome anorexia. With your help we can continue to build a future where women are half of the weightroom and celebrated for their strength.
2015 年 9 月 9 日更新:我們計劃把 Spitfire Athlete 變為 Android 版本。這個 App 將會幫助女性鍛鍊力量,也能幫助女性對抗癌症和厭食症。若能夠得到你們的幫助,我想未來能看到更多的女性出現在舉重房裡,為她們的鍛鍊成果歡呼雀躍。
Fund Us On Kickstarter Today: SpitfireAthlete Pro: Strength Training App for Women (網址:https://www.kickstarter.com/projects/841316976/spitfire-athlete-pro-strength-training-app-for-wom?utm_source=quora&utm_medium=answer&utm_campaign=erinquoraanswer)
如果希望資助我們,請訪問 kickstarter Today,網址以上。
本文遵循CC版權協議:署名-非商業性使用-禁止演繹(已獲作者版權)
長按二維碼關注本公眾號↓