Có bao giờ là quá trễ để học lập trình?
Dịch từ câu trả lời của Erin Parker — Founder Spitfire Athlete cho câu hỏi “Is it ever too late for someone to learn how to program?”...
Dịch từ câu trả lời của Erin Parker — Founder Spitfire Athlete cho câu hỏi “Is it ever too late for someone to learn how to program?”
Không bao giờ là quá muộn.
Rất nhiều điều có thể xảy ra trong 1 năm, và nó có thể khiến chính bạn kinh ngạc.
Tôi tốt nghiệp chuyên ngành Kinh tế. Năm 23 tuổi, tôi tình cờ đến một buổi Railbrigde Meetup, nơi bạn có thể học cách làm 1 ứng dụng Ruby on Rails cơ bản trong 1 ngày. Tôi đã làm được một ứng dụng bằng Ruby on Rails cơ bản và thực sự thích nó. Một hạt mầm trong tôi đã được ươm lên từ hôm ấy.
Một tháng sau, tôi có ý tưởng về một website mà tôi luôn muốn xây dựng. Mặc dù ý tưởng của tôi vẫn mơ hồ, trên website đó, tôi tưởng tượng nó sẽ truyền cảm hứng cho phụ nữ vượt qua giới hạn của mình. Tôi nghĩ là nó sẽ trở thành một website về công việc, hoặc một không gian về sức khỏe và fitness. Và tôi chắc chắc muốn gọi nó là Spitfire. Tôi có một cảm giác mạnh mẽ về 1 sản phẩm vô cùng cần thiết và tôi cảm thấy mình có một tầm nhìn rõ ràng và mạnh mẽ để tạo nên nó.
Mặc dù tôi chưa học lập trình tại thời điểm ấy, tôi vẫn phác họa được mô hình (mocks) của nó như thế này:
Tại thời điểm ấy, tôi thực sự cố gắng rất nhiều cho việc tăng cân và cảm nhận rõ là có một sự thay đổi tích cực. Tôi cũng có một thời gian khó khăn để tìm những thông tin đáng tin cậy cho phụ nữ, những người tăng cân và liên tục cảm thấy phiền muộn — điều mà có thể khiến tôi thực sự sẽ làm một điều gì để cải thiện vấn đề này.
Cuối cùng, tôi đã quyết định học lập trình. Bạn bè hỏi tôi cách tăng cân, cách ăn uống khỏe mạnh. Tôi quyết định sẽ học ruby on rails và sẽ building this out.
Tôi nhận ra, nếu tôi học lập trình, kể cả nếu thất bại, ít nhất tôi cũng thật bại trong việc làm được một cái gì đó mà có thể giúp một lượng kiến thức nhất định — những gì tôi đã học cho hàng triệu người khác. Và chỉ riêng điều đó cũng đáng để tôi theo đuổi.
Trong thời gian đấy, tôi quyết định thất bại chỉ là một lựa chọn. Tôi không cho phép bản thân dừng lại cho đến khi tôi làm được những gì tôi hình dung trong đầu về Spitfire có thể trở thực sự trở thành. Tôi biết rằng chỉ cần bền bỉ vượt qua nỗi đau (như 1 vận động viên điền kinh), cái giá nhận được ở cuối con đường sẽ xứng đáng với những nỗi đau chỉ mang tính tạm thời.
Tôi bắt đầu tự học ruby on rails bằng tất cả những nguồn miễn phí tôi có, ví dụ learn ruby on rails the hard way, try ruby, codeacademy. Michael Hartl’s book, Why’s Poignant Guide to Ruby, the Rails Guides, and my absolute favorite, Railscasts.
Tôi không ngừng nghỉ. Nếu tôi không đạt được điều gì đó trong lần đầu tiên, tôi không quan tâm. Tôi sẽ tiếp tục thử lại và thử lại cho đến khi nó bắt đầu ra một cái gì đấy. Tôi tìm những cách giải thích khác nhau của một concept. Tôi hỏi bạn. Khi trong quán café, nếu tôi đang coding và người ngồi trước mặt tôi nhìn có vẻ là là một kỹ sư dựa trên stickers trên laptop của họ, tôi sẽ hỏi xem họ có thể giúp không (tôi đã kết bạn rất nhiều bằng cách này, một vài người vẫn là bạn tốt cho đến tận bây giờ).
Tôi đến rất nhiều buổi meet up dành cho developer, đặc biệt như Women Who Code vì format dạy phương pháp mới tại mỗi buổi meetup của họ và tất cả các nhóm ruby meet-úp vì nó rất dễ để nhận được sự giúp đỡ.
Tôi mắc kẹt với nó trong một tháng và liên tục “tự tranh luận” những ý tưởng trong đầu. Bạn vẫn có thể xem các project trước đây tôi làm ở đây:
Tôi dành nhiều thời gian nhất cho trang này:
Website có vẻ đẹp. Nó tốt, UX tốt, và là một version tốt nhất của tất cả những ruby on rails stuff mà tôi đã học. Tuy nhiên, rất tiếc là không có ai sử dụng nó.
Nó là một sự hân hoan và thất vọng trong cùng 1 thời điểm. Tôi cảm thấy mình đã học được những kỹ năng tốt nhưng tôi đã build 1 thứ mà không ai muốn.
Khi tôi hỏi bạn vì sao họ không dùng nó, tôi biết rằng những gì họ thực sự muốn là chỉ cần nói với họ cách sự dụng. Họ muốn một thứ gì đó dễ nhìn trên điện thoại, để họ có thể luyện tập ở phòng gym.
Vì thế, tôi quyến định đổi hướng hoàn toàn, học jQuery Mobile và tôi đã build cái này:
Điều mà chắc chắn quyến rũ tôi về cái thứ này là mặc dù sự thật là nó xấu và thực sự đơn giản — mọi người đã thực sựdùng nó. Và họ muốn hơn thế — một app ios.
Đã 6 tháng từ khi tôi bắt đầu học Ruby on Rails.
Tôi cố gắng chống lại sự thực là tôi có thể cần một ios dev nếu tôi muốn đưa nó đi xa hơn. Tôi thực sự cố dùng jQuery Mobile to work nhưng rất nhanh sau đó, tôi nhận ra nó chỉ tốt cho prototyping — những vật mẫu (hoặc những app rất đơn giản).
4/2013. Tôi phải đưa ra quyết định, bạn biết không? Tôi đã 24 nhưng kệ cmn, tôi sẽ trở thành một ios dev. Vậy thì sao nếu tôi ko có biết gì về CS (Computer Science)? Tôi có nhiều động lực và sự quyết tâm hơn hầu hết mọi người. Họ có thể thông minh hơn tôi, nhưng tôi sẽ không bao giờ từ bỏ. Tôi sẽ còn tiến xa hơn nữa. Tại sao phải dừng lại bây giờ?
Vì thế tôi làm giống như khi học ruby on rails. Tôi vooc rất cả những tài liệu ios mà tôi có thể tìm được. Tôi làm tất cả các bài tập, đọc tất cả sách tôi có từ đầu đến cuối. Tôi rất cảm ơn bạn bè những người đã gửi cho tôi những bản pdf miễn phí của O’Reilly books vì quyển này rất đắt.
Tôi thường xuyên tham dự women who code ios meetups và được hưởng lợi từ Big Nerd Ranch books on Objective-C and iOS, Ray Wenderlich’s Tutorials, and Apple’s Documentation.
Tôi đã build cả tấn app nhỏ (đấy là cách mà bạn học), tôi cũng tự hứa với bản thân là tôi sẽ không bao giờ nghĩ bất kỳ công nghệ nào là khó, vì tôi nghĩ đấy giống như việc tự đặt một “mức trần” (giới hạn) cho việc học. Vì thế tôi, không một chút sợ hãi, đã quyết định học rất nhiều thứ mà hầu hết ios dev sợ hãi, mặc dù tôi không còn sử dụng nó bây giờ. Tôi nhận ra điều đó làm cho tôi trở thành một dev giỏi hơn, mặc dù tôi có nhừng đêm dài “ác mộng”.
Đây là tấm ảnh khi tôi chia sẻ một bài nói chuyện về công nghệ tại một buổi meetup về cách tạo một custom ruby on rails API và sau đó gửi dữ liệu tới iphone của bạn thông qua AFnetwworking.
5/2013. Tôi 24 tuổi. Tôi đã tự mình nói về điều này, mặc dù tôi chỉ vừa học cách làm những gì mà tôi nói về nó. Tôi cảm thấy giống 1 “ios imposter (kẻ mạo danh)” và như là tôi đã bắt đầu vượt qua cảm giác là 1 ruby on rails imposter.
Đây là ảnh màn hình của learning tableviews và chuyển khái niệm từ spitfire app to ios, mặc dù tôi build mọi thứ từ đầu. Tôi đã làm được điều này sau 2 tuần học Objective C.
Tôi học được nhiều hơn, từng tí một. Also, iOS is a very interface-heavy system và nếu bạn không học design, tất cả app của bạn sẽ nhìn rất xấu. Đây thực sự là 1 điều bất khả thi để chia bản thân bạn ra làm từ front — end trong Xcode. Vì thế tôi đã quyết định tôi có lẽ nên học design và Photoshop từ Hack Design curriculum.
Photoshop thì dễ hơn học programming, nên cuối cùng tôi cũng làm được mô hình rất đẹp như hình dưới:
Và cuối cùng, 10/2013, tôi đã realease spitfire athlete pre alpha app từ bản mockup. Đây là hình nền của app running thực tế trên thiết bị của tôi:
Sau một vài tháng gặp vấn đề với core data và rất nhiều passionate test-flight, người dùng yêu cầu nhiều tính năng hơn, tôi quyết định đây là lúc để biến đam mê điên rồ của tôi thành 1 startup và tôi đã tìm được 1 co-founder tuyệt vời, Nidhi Kulkarni, một MIT CS đã tốt nghiệp như tôi, một vận động viên điền kinh ( cô ấy đã thi đấu ở giải D1 rowing khi học ở MIT).
Với 2 technical hightly driven ladies là người cầm lái của spitfire, tôi cảm thấy năng suất của chúng tôi như tăng lên 10 lần. Chúng tôi bắt đầu cùng nhau từ 11/2013, tôi sắp sang 25 và tôi biết rằng tôi đang trên vách đá của 1 thứ gì đó thực sự phấn khích.
Chúng tôi tham gia codepath cho Ios Engineering bootcamp. Không giống như những bootcamp giới thiệu cho người mới về lập trình, lớp của codepath là nơi những senior software engineers nhận để trở thành chuyên gia trong lĩnh vực của họ. Lớp kéo dài 8 tuần, rất nhanh và diễn ra trong các buổi tối. Mỗi tuần, bài về nhà là build 1 app khác nhau, vì thế tuần này chúng tôi build twitter, tuần sau chúng tôi build facebook.
Tôi có một sự hiểu biết cơ bản tốt về ios từ trước, nhưng cầu trúc và môi trường học cực kỳ thử thách thực sự là những gì tôi cần để đạt đến điểm mà co founder và tôi có thể build and ship app trong 1 tuần. Khi chúng tôi không làm bài về nhà, (khoảng 10h/week cam kết) chúng tôi làm việc cho spitfire. Chúng tôi không chỉ muốn hoàn thành spitfire như một project, chúng tôi muốn một thứ gì đó thực sự sang trọng và đáng để được submitted trên app store.
Chúng tôi giới thiệu về spitfire athlete alpha app vào demo day (nơi mà những giảm khảo là Vice President của engineering từ những top mobile company từ Silicon Valley) và chúng tôi đã thắng giải “Best iOS App” và “Best Overall App”. Điều đó thực sự rất tuyệt, vì tôi chắc chắn là người duy nhất không có chuyên môn về lập trình trong cả lớp.
Tôi bước sang 25 vào 1/2014. 4/2014 chúng tôi launch trên app store và được featured trên home page trong Best New Apps, và trong Health and Fitness category. Giờ đây chúng tôi đã có hàng nghìn người dùng và nhận được rất nhiều thư cảm ơn, điều đó khiến tôi thực sự tin rằng hành trình này thực sự xứng đáng.
Tôi quyết định viết câu trả lời này tối nay vì tôi vừa renew my ios developer subscription. Tôi nghĩ:”Đã một năm rồi ư? No way. Thời gian trôi nhanh quá”. Và tôi nhớ lại những cảm xúc khi tôi bắt đầu.
Tôi hi vọng câu trả lời này có thể truyền cảm hứng cho bạn và những ai đọc được với mong muốn học lập trình và làm những gì bạn thực sự đam mê và muốn biến nó thành sự thật, vì cảm giác nhận lại khi tạo ra một thứ gì đó được hàng nghìn người yêu quý thực sự là.. không có từ gì miêu tả được.
Phát triển bản thân
/phat-trien-ban-than
Bài viết nổi bật khác
- Hot nhất
- Mới nhất