Từ ‘thanh niên bán hàng rong’ trở thành ‘kĩ sư phần mềm cho các hãng công nghệ hàng đầu’
Alvaro Videla - lập trình viên kì cựu từng làm việc cho các hãng công nghệ hàng đầu thế giới như Apple, VMWare, EMC, và là đồng tác giả cuốn sách RabbitMQ in Action. Tuy nhiên, anh chưa từng học đại học ngành CNTT. Để bước vào thế giới công nghệ đôi khi phù hoa không kém gì showbiz, và để có một vị trí vững chắc ở đó, Alvaro Videla đã phải tự mình vạch một lối đi riêng với rất nhiều nỗ lực và ý chí.
Ehkoo xin trân trọng giới thiệu câu chuyện của Alvaro Videla: từ “thanh niên bán hàng rong”, tôi đã tự học lập trình để trở thành “kĩ sư phần mềm cho các hãng công nghệ hàng đầu” như thế nào.
Lối rẽ
Cuối năm 2006, tôi đứng trước ngã ba cuộc đời. Nhiều chuyện không may đổ ập xuống một lúc, khiến giấc mơ trở thành giáo viên cấp 2 môn ngôn ngữ tan tành mây khói. Tôi đành trở về quê để tính xem nên làm gì tiếp theo.
Lúc ấy, ở quê nhà Durazno (Uruguay), vợ tôi đang làm việc quần quật với mức lương còm cõi 160usd (khoảng 3.6 triệu vnd theo thời giá 2018 -nd) mỗi tháng. Phải, nghĩa là tổng cộng 1,920usd/năm. Chúng tôi ở tạm cùng nhà với một bà dì bên ngoại. Toàn bộ không gian riêng tư của hai vợ chồng chỉ giới hạn quanh cái giường ngủ. Và thú thật, có lẽ chúng tôi không còn được chào đón trong ngôi nhà đó nữa rồi.
Vốn đã chán nản vì sự nghiệp trật đường rày, tôi lại càng stress vì điều kiện sống chật vật. Để có thêm đồng ra đồng vào, chúng tôi thử tự làm pasta rồi bán trên phố. Tôi gõ cửa từng nhà, hỏi từng người xem liệu họ có muốn đặt chút đồ ăn homemade cho cuối tuần hay không. Sau đó, hai vợ chồng dành trọn thứ Bảy và Chủ nhật để làm tới 2,000 phần ravioli, trị giá vỏn vẹn 500 pesos, tương đương với 20usd – ấy là chưa khấu trừ tiền nguyên vật liệu.
Tình cảnh thật cùng quẫn. Vợ tôi đã làm việc vất vả cả tuần, đến cuối tuần lại phải giúp tôi nấu nướng. Cô ấy nhanh chóng kiệt sức, nên đành cầu xin tôi hãy dừng việc bán ravioli lại – cho dù như vậy nghĩa là tiền nong sẽ eo hẹp hơn. Rốt cuộc, tôi đồng ý. Nhưng không bán đồ ăn nữa, thì tôi phải kiếm việc khác để làm – mà kiếm việc ở vùng quê thì chẳng dễ chút nào. Lo lắng, chán chường càng thêm chồng chất.
Một tối nọ, tôi tình cờ nói chuyện với người bạn đang học đại học ngành CNTT ở Montevideo. Cậu ấy tiết lộ rằng có rất nhiều cơ hội nghề nghiệp cho ngành này ở thủ đô, với mức lương mà dân quê chúng tôi nằm mơ mới thấy: gấp 3 lần tổng thu nhập hiện tại của cả 2 vợ chồng! Chúng tôi sẽ không phải đắn đo từng đồng khi mua thức ăn nữa! Chúng tôi sẽ có đủ tiền để kéo internet về nhà, mua giày dép và quần áo. Thậm chí, chúng tôi còn có thể mua máy giặt!
Trời ơi! Tôi phấn khích quá! Bản thân tôi cũng rất thích máy tính. Với tôi, lập trình có vẻ cũng giống như chơi đố vui hay giải mật mã – rất nhiều thử thách song cũng rất vui! Thêm nữa, có vẻ hướng nghề nghiệp này còn rất nhiều tiềm năng để phát triển.
Tóm lại, động cơ: có, triển vọng nghề nghiệp: có, hứng thú để thực hiện: có.
Chỉ còn một vấn đề “nho nhỏ”: TÔI KHÔNG BIẾT LẬP TRÌNH.
Phải làm thế nào khi bạn không được đào tạo chính quy, cũng chẳng có chút kinh nghiệm lập trình nào cả? Phải làm thế nào khi bạn muốn tự học lập trình, song nhà không có internet, không có người hướng dẫn, mà cũng chẳng kiếm đâu ra một cuốn sách dạy lập trình cho ra hồn?
Đó là những câu hỏi tôi từng phải đối mặt năm 2006. Và sau đây là cách tôi đã từng bước giải quyết chúng.
Xác định mục tiêu và lập kế hoạch hành động
Mục tiêu của tôi rất rõ ràng: trở thành lập trình viên, và phải kiếm được công việc lập trình càng sớm càng tốt.
Để đạt được mục tiêu này, trước tiên tôi phải tự đánh giá xem mình có sẵn những lợi thế gì.
Tại thời điểm tháng 11/2006, tôi đã biết chút ít về ActionScript dùng cho Flash MX, cộng thêm một vài kiến thức sơ đẳng về PHP. Tất cả là nhờ hồi đầu năm tôi có thử làm một dự án cá nhân để tự học lập trình, đồng thời cũng nuôi mộng sẽ kiếm chác thêm được vài đồng.
Dự án đại khái là một bản đồ kĩ thuật số của chính quê tôi, cho phép ghim vị trí của doanh nghiệp, cửa hàng, cũng như các địa điểm thú vị lên, để người dùng dễ tìm kiếm. Tôi định sẽ thu một khoản phí nhỏ khi các doanh nghiệp muốn xuất hiện trên đó.
“Trời ạ, là Google Maps chứ có gì mới lạ đâu!” Chắc hẳn bạn sẽ nghĩ ngay như vậy. Nhưng hồi năm 2006, quê nhà tôi khá hẻo lánh, và điều duy nhất mà Google Maps biết về nó là có quốc lộ chạy băng qua. Thế nên ý tưởng của tôi tính ra vẫn ngon lành. Và cái dự án bé xíu ấy hoàn toàn có thể giúp tôi ghi một điểm cộng trong hồ sơ xin việc.
Còn nhược điểm của tôi, như đã liệt kê ở trên: không bằng cấp, không có kiến thức cũng như kinh nghiệm lập trình. Để khắc phục nhược điểm này, tôi bèn “ủ mưu” làm một dự án để vừa học vừa thực hành, đồng thời có luôn thành quả để “khoe” với nhà tuyển dụng, thuyết phục họ rằng tôi có thể sử dụng các công nghệ được nêu trong bản mô tả công việc.
Đồng thời, tôi cũng xác định thời hạn: từ tháng 11/2006 đến tháng 2/2007; xác định mục tiêu cụ thể cho dự án: phải hoàn thành concept một ứng dụng bản đồ, trong đó sử dụng Flash cho phần front-end, PHP cho back-end, và MySQL cho phần dữ liệu tĩnh.
Những công nghệ nói trên ngày nay đã lỗi thời, nhưng khi đó thì tôi cần chúng để thỏa mãn các yêu cầu tuyển dụng. Deadline tôi đặt ra gắt như vậy, là vì phải chạy đua với thời gian: cứ mỗi ngày trôi qua là thêm một ngày vợ tôi phải làm việc quá sức để gồng gánh chi phí sinh hoạt cho cả hai.
Kì vọng của tôi là, nhờ kế hoạch này, sẽ lọt được vào vòng phỏng vấn ở một công ty công nghệ. Sau đó, với những kĩ năng/kiến thức thu nhặt được thông qua dự án, cộng thêm cái ứng dụng bản đồ làm bằng chứng, tôi sẽ “đốn tim” nhà tuyển dụng thành công và giành được công việc lập trình hằng mơ ước.
Kế hoạch ngon lành cành đào rồi, giờ là lúc xắn tay áo lên làm thôi!
Dự án vừa học vừa thực hành: ứng dụng bản đồ Aleph
Tôi đặt tên cho dự án là Aleph Maps, dựa theo truyện ngắn “El Aleph” của nhà văn Jorge Luis Borges – kể về một địa điểm trên thế giới nơi mà quá khứ, hiện tại và tương lai song hành. Và để biến ý tưởng thành hiện thực, tôi cần phải học cách làm ứng dụng web.
Không có internet ở nhà quả là một thách thức đối với “nhà lập trình web tương lai”. Lúc bấy giờ, ADSL hầu như không tồn tại, chỉ có doanh nghiệp hoặc gia đình khá giả lắm mới dám dùng. Các hộ bình dân thì chỉ dùng net chung với đường dây điện thoại, và phải trả một cái giá cắt cổ cho đường truyền chậm như sên. Tôi không gánh nổi mức phí ấy, đồng nghĩa sẽ phải quấy rầy bạn bè mỗi lần muốn xem hướng dẫn online về PHP.
Vậy là, dù có máy tính và có khao khát học hành, thì con đường đến với tri thức của tôi vẫn gập ghềnh khôn tả. Nhưng tôi thực sự rất, rất muốn kiếm việc làm. Và trong tình huống quá khẩn cấp, thậm chí tôi còn chẳng có sức lực hay tâm trí để quằn quại tuyệt vọng. Thay vào đó, tôi cố tìm ra giải pháp.
Trong thị trấn không có internet, song ở thành phố thì các quán net cafe bắt đầu mọc lên với mức phí khoảng nửa usd một giờ lướt net. Dĩ nhiên, 50 cents cũng là cả một khoản đối với tôi, chưa kể còn phải xùy thêm để mua ít ổ đĩa trắng nữa – nhưng vẫn đỡ hơn là làm phiền bạn bè. Để tiết kiệm thời gian và tiền bạc, tôi thường lên sẵn “danh sách mua sắm” ở nhà, rồi bò đến quán cafe, google các bài blog, tutorial, hướng dẫn… liên quan, cóp vào ổ đĩa, sau đó đem về nhà để “ngâm cứu” cho dễ.
Song, chỉ sau vài lần, tôi nhanh chóng nhận ra cách này chẳng thực tế chút nào.
Thứ nhất, đúng là những thông tin thu lượm được đã giúp tôi hoàn thành một số tính năng cho cái app, song sau đó, tôi không có đủ kiến thức để làm tiếp phần khác. Tôi phải ngóc mỏ ngồi ở nhà, quằn quại nghĩ ngợi về vấn đề đang treo lủng lẳng trước mặt, và chờ đến ngày hôm sau – để có thể nướng tiếp 50 cents cho quán cafe net.
Thứ hai, không ít lần dữ liệu cóp vào đĩa, về đến nhà thì không đọc được. Ôi, tôi muốn phát rồ! Vì đã mất công bò đến quán cafe, lại còn tiêu tốn 50 cents vô ích! Những nửa đô-la! Tương đương với một bình sữa tươi, hay một ổ bánh mì! Hoặc là nửa cái burger hay nửa lon bia!
Phải rồi, cái tôi cần không phải là online tutorials, mà là sách!
Nhưng sách lập trình cũng không dễ kiếm. Ở thư viện công cộng chỉ có vài cuốn cũ rích về cách sửa máy tính, họa may thì có vài cuốn hướng dẫn MS-DOS phủ đầy bụi, hoặc là sách dạy BASIC hay Delphi. Nhưng đến vậy mà thôi. Còn các hiệu sách, thì ở vùng quê, bói đâu ra sách kĩ thuật – nữa là sách kĩ thuật bằng tiếng Anh? Thành ra, tôi chỉ còn một lựa chọn duy nhất: Amazon.
Để mua sách trên Amazon thì cần phải có miếng nhựa bé xíu thần thánh có tên gọi “thẻ tín dụng”. Để có thẻ tín dụng, cần phải có lịch sử tín dụng tốt. Còn trong thế giới của tôi, mọi thứ được chi trả bằng tiền mặt. Nếu muốn mua cái gì đắt đỏ hơn thu nhập hàng tháng, chúng tôi sẽ phải dành dụm tiền, hoặc sẽ hỏi vay người thân bạn bè rồi trả lại họ sau. Thêm nữa, mua sách rồi ship từ Mỹ về Uruguay, thì tiền ship còn quá tiền sách, mà cũng phải cả tháng mới tới nơi.
Tôi đành email cho một bà dì bên vợ đang sống ở Mỹ, giải thích tình cảnh của chúng tôi, và nhờ dì ấy mua giùm mấy cuốn sách. Vài ngày sau, tôi nhận được email của dì: “Cháu cần những cuốn nào thì liệt kê ra, dì sẽ đặt mua trên Amazon”. Trời ơi, tôi sung sướng muốn rụng tim. Nhờ dì ấy, tôi có được hai cuốn sách là Flash MX Bible và PHP 5 and MySQL Bible. Cuối cùng, tôi không còn phải lết xác đến quán cafe net nữa, và đã có được những thông tin cơ bản để làm cái ứng dụng web tôi hằng mong muốn.
Rải CV và chuẩn bị cho việc phỏng vấn
Trong khoảng từ tháng 12/2006 đến tháng 1/2017, tôi cày cuốc cật lực để hoàn thành cái app và để nó chạy được. Tôi cũng cố gắng tích lũy càng nhiều kiến thức về lập trình càng tốt để phục vụ cho buổi phỏng vấn tuyển dụng.
Kiến thức mênh mông, nhưng tôi cố gắng xác định rõ ràng những điểm trọng yếu, liên quan mật thiết nhất đến công việc mà tôi nhắm tới. Nhờ thu hẹp phạm vi, tôi sẽ có cơ hội để tìm hiểu sâu hơn về chúng.
Cụ thể, tôi cần kiến thức về lập trình hướng đối tượng (là công nghệ lập trình quan trọng nhất lúc bấy giờ), ngôn ngữ lập trình PHP (là ngôn ngữ phục vụ cho công việc đó), và Flash (kĩ năng giúp tôi trở nên khác biệt so với các ứng viên khác).
Làm thế nào mà tôi xác định được những điều đó? Rất dễ: 1) bản mô tả công việc (nêu cụ thể các kĩ năng mà họ cần) 2) các tạp chí máy tính (thường đưa ra xu hướng công nghệ, hoặc những lời khuyên để phát triển nghề nghiệp).
Ngoài ra, tôi cũng tìm hiểu về thị trường việc làm, nhu cầu tuyển dụng, cũng như các kênh để tìm thông tin tuyển dụng/nộp hồ sơ. Điều này rất quan trọng, và nên được thực hiện trước cả khi bạn có ý định nộp đơn ứng tuyển vào bất cứ đâu.
Khi làm xong cái app, và cảm thấy đã sẵn sàng cho việc phỏng vấn, tôi bắt tay vào làm CV. Tôi chịu không biết một cái CV để kiếm việc lập trình thì nên trông như thế nào. Vả lại, là “gà con” muốn nhảy vào một lĩnh vực hoàn toàn mới mẻ, tôi cũng chẳng có nhiều nhặn kinh nghiệm gì để kể lể. Thành ra, tôi phang đại đủ thứ kĩ năng vào CV: từ MS Word, MS Excel cho đến Adobe Illustrator và InDesign.
Bây giờ, mỗi lần nghĩ về cái CV đầu tiên ấy, tôi vẫn thấy chóng cả mặt vì ngượng. Hic, nó chẳng khác gì một thông điệp to tổ bố được ịn lên: gã này cực kì gà mờ!
Nhưng lúc ấy thì tôi chỉ cố được đến thế mà thôi. Tôi đọc đi đọc lại CV hàng chục lần, dò dẫm từng chữ để chắc chắn là không ghi sai tên chính mình, hay viết nhầm địa chỉ liên lạc. Thế rồi, tôi gửi CV đi.
Thật kinh ngạc. Khoảng nửa giờ sau, điện thoại tôi bỗng reo. Số lạ. Tôi ngần ngừ giây lát, rồi bắt máy. Và nhận được lời mời phỏng vấn việc làm đầu tiên!
Lời kết
Sau cuộc phỏng vấn này, Alvaro Videla nhận được công việc lập trình đầu tiên, nhưng rồi anh nhanh chóng bị mất việc sau đó 1 tuần. Không nản lòng, anh tiếp tục kiên trì rèn luyện kiến thức/kĩ năng và tìm kiếm các cơ hội khác.
Câu chuyện khởi đầu từ hơn 10 năm trước. Những vấn đề mà Alvaro phải đối mặt lúc đó (không có internet, không có sách vở tài liệu…) có lẽ đã không còn giống 100% những gì các bạn tự học lập trình phải đối mặt ngày hôm nay. Song, Ehkoo tin rằng chúng ta vẫn có thể học hỏi rất nhiều về cách xác định mục tiêu, lập kế hoạch, cũng như ý chí kiên cường của anh.
Bạn có thể tìm đọc toàn bộ câu chuyện bằng tiếng Anh tại đây: http://bit.ly/alvaro-videla
Bạn biết những câu chuyện thú vị khác trong ngành lập trình? Bạn có kinh nghiệm, hay đang gặp khó khăn gì trong quá trình học lập trình? Hãy cùng chia sẻ với Ehkoo và cộng đồng ở phần bình luận phía dưới nhé!
Bản tin Ehkoo hàng tuần 💌
Đăng ký ngay để nhận những tin và bài viết mới nhất về lập trình frontend, cũng như các thủ thuật hay thư viện mới…
Powered by ButtondownGửi tặng cà phê ☕️
Nếu thấy bài viết này hữu ích, bạn có thể gửi tặng Ehkoo một ly cà phê theo link bên dưới 👇
Cám ơn bạn rất nhiều 🤗