Câu chuyện được Jose Manuel Gallego, lập trình viên back-end tại Kubide, đồng sáng lập Open Source Weekends, chia sẻ trên Tech in Asia.
Từ tấm bé tôi đã thích máy tính. Tuy nhiên, điểm số của tôi trong kỳ thi đại học không đủ cao để có thể đăng ký học tại lĩnh vực liên quan đến máy tính. Vì vậy, tôi đã học về kỹ thuật khai thác mỏ.
Sau một kỳ học đặc biệt tồi, trượt nhiều môn, tôi quyết định đi làm bảo vệ trong dịp hè để kiếm thêm. Công việc trong dịp hè năm ấy dần trở thành nghề nghiệp của tôi.
Làm nhân viên bảo vệ ở Tây Ban Nha không đòi hỏi bạn phải quá thông minh. Do vậy, những người xung quanh bạn bắt đầu kỳ vọng thấp hơn ở bạn và dần dần bạn cũng tự kỳ vọng thấp hơn từ bản thân mình. Bạn bắt đầu ngừng cố gắng để cải thiện bản thân.
Nhưng trong khi làm bảo vệ, một điều đặc biệt đã xảy ra với tôi.
Một năm trước, tôi bắt đầu nhận việc bảo vệ tại Campus Madrid, khuôn viên dành cho những doanh nhân của Google. Vài tháng trước đó vợ tôi đã sinh hạ một cậu con trai nên trách nhiệm của tôi ngày càng lớn. Làm việc tại Campus, tôi luôn thấy xung quanh mình là các doanh nhân trẻ đầy tham vọng. Họ liều lĩnh và sẵn sàng hành động trong khi tôi bị mắc kẹt trong một công việc nhàm chán, cố gắng đáp ứng nhu cầu cơ bản nhất cho gia đình nhỏ của mình.
Hôm ấy, khi bảo vệ cho sự kiện thứ 400 được tổ chức tại Campus, một diễn giả lên sân khấu và nói một câu đã thay đổi cuộc đời tôi mãi mãi: “Ai cũng có thể học code và làm việc như một lập trình viên”.
Tôi đã hoài nghi những gì ông ấy nói và sẵn sàng bỏ qua nó như nhiều khẩu hiệu marketing khác. Nhưng nếu ông ấy đúng thì sao? Nếu tôi cũng có thể học code và làm việc trên máy tính thay vì đứng, và dạo quanh cả ngày như một anh bảo vệ thì sao?
Ở Tây Ban Nha, công việc trí óc thường dành cho những ai có bằng đại học. Tuy nhiên, diễn giả kia nói rằng nhu cầu lập trình viên phát triển phần mềm cực kỳ lớn nên các nhà tuyển dụng đã có những ngoại lệ. Bạn sẽ được nhận nếu có kỹ năng code đủ tốt để vượt qua những bài test và phỏng vấn, không bắt buộc phải có bằng đại học.
Tôi đã gặm nhấm từng câu mà ông ấy nói và nhận ra rằng đó không phải là những lời văn hoa, những tuyên bố thổi phồng mà là sự thật, xuất phát từ thực tại nền kinh tế ở thời điểm đó. Và tôi đã quyết định rằng mình sẽ trở thành một lập trình viên dù phải trả giá như thế nào chăng nữa.
Vì không có thời gian để lãng phí nên tôi cố gắng tận dụng mọi thứ để tìm ra cách học code tốt nhất. Tôi bắt đầu hỏi những người bạn lập trình viên tại Campus Madrid như Carlos Hernadez, CEO tại Gamify. Tôi cũng tìm kiếm trên web và liên tục chuyển từ nguồn kiến thức này sang nguồn kiến thức khác. Mỗi ngày, tôi cố gắng học thêm một chút từ khóa học mới mà tôi tìm thấy.
Sau đó, tôi đã nói chuyện với Daniel Mery, sáng lập của Haskell. Anh ấy tự tin rằng tôi có thể tự học code miễn phí bằng những kiến thức mã nguồn mở. Tôi nghe lời anh ấy khuyên và thử theo học tại FreeCodeCamp.
Tôi luôn nghĩ rằng từ thời điểm hạ quyết tâm, tôi đã có những quyết định thông minh nhất và chọn những con đường ngắn nhất để trở thành lập trình viên. Nhưng sự thật là tôi đã mắc một số sai lầm. Sai lầm lớn nhất của tôi là không hoàn thành những gì tôi đã bắt đầu.
Khi bắt đầu học code, tôi học rất nhanh. Giai đoạn đầu tiên giống như tuần trăng mật vậy, tôi cảm thấy mình như một vị vua. Vì thế, khi gặp một vấn đề không thể giải quyết một cách nhanh chóng, tôi không bận tâm tới nó. Tôi muốn di chuyển nhanh hơn vì vậy tôi tiếp tục tiến lên phía trước, cố gắng học hỏi nhiều nhất có thể. Kết quả là, có rất nhiều vấn đề tôi chỉ giải quyết được một nửa và nhiều dự án dở dang.
Cuối cùng, tôi phải đối mặt với sự thật đắng lòng: Những vấn đề dang dở ấy không biến mất, chúng quay trở lại và gây khó khăn cho tôi. Tôi cần phải học bò trước khi học nhảy và hiểu rằng một dự án hoàn chỉnh mang lại nhiều thứ hơn là một ngàn dự án dang dở.
Sai lầm khác mà tôi mắc phải đó là mất tập trung. Khi đang tìm giải pháp cho một vấn đề, tôi thường phát hiện ra một vấn đề thú vị khác… Cứ như thế, tôi mất cả ngày trước khi nhận ra mình đang lãng phí thời gian cho những thứ khác trong khi không giải quyết được vấn đề ban đầu.
Một năm sau, khi nghe Pablo Almunia nói, tôi biết được rằng sai lầm mà mình mắc phải được gọi là “vấn đề săn sóc”.
Như bạn thấy trong video ở trên, chú cún bị mất tập trung khi con sóc xuất hiện và phải làm lại từ đầu. Hãy tập trung vào con mồi ban đầu, đừng để bị phân tâm bởi những con sóc khác.
Trọng tâm của tôi thay đổi mỗi ngày. Tôi để internet cuốn mình vào các khóa học mới mẻ, những ngôn ngữ mới đầy hấp dẫn và các framework mới. Tôi bắt đầu cảm thấy mình sẽ không bao giờ đạt được mục tiêu ban đầu là học code đủ giỏi để kiếm một công việc lập trình. Có lẽ code là một thứ gì đó quá sâu đối với tôi và tôi sẽ chết đuối trong nó.
Nhưng rồi tôi nghĩ tới con trai mình. Tôi nghĩ tới tương lai mà tôi muốn dành cho bé và muốn trở thành tấm gương về tinh thần không bỏ cuộc cho bé.
Rồi tôi gặp lập trình viên Ulises Gascon. Anh ấy khuyên tôi nên hoàn thành những dự án mà tôi đã bắt đầu. Thậm chí anh ta còn sẵn sàng giúp đỡ nếu tôi cần.
Tôi bắt đầu hoàn thành một số dự án. Tôi đã quay lại những vấn đề “quá dễ” mà tôi từng bỏ qua trước đây. Khi ấy, tôi bắt đầu tự hỏi mình những câu hỏi mới và khám phá những thách thức mới.
Hernandez và Gascon là tấm gương để tôi noi theo và đã giúp đỡ tôi rất nhiều, nếu không có họ có lẽ tôi đã bỏ cuộc. Tôi sẽ biết ơn họ trong suốt phần đời còn lại.
Tôi tự tin khẳng định với bạn rằng hãy tìm kiếm sự giúp đỡ của bạn bè nếu muốn có bước tiến đột phá trong cuộc đời.
Quá trình học code của tôi đã được tăng tốc. Tôi đã hoàn thành nhiều dự án hơn và muốn bắt đầu một số dự án mới. Nhưng tôi không biết mình nên làm gì.
Có người khuyên tôi nên tới những sự kiện cộng đồng và tìm cảm hứng từ đó. Tuy nhiên, hầu hết sự kiện tôi tìm thấy xung quanh thành phố là những khóa học cho những lập trình viên cao cấp và tập trung vào những công nghệ tiên tiến.
Tôi muốn giao lưu với mọi người ở tất cả các cấp độ nhưng không có một cộng đồng để tôi làm việc đó. Điều này thúc đẩy tôi suy nghĩ như một lập trình viên thực thụ: Nếu bạn không có công cụ bạn cần, hãy tạo ra nó! VÌ vậy, tôi bàn với Gascon, Hernandez và Ignacio Villanueva để cùng nhau thành lập Open Source Weekends.
Sau nhiều tháng làm việc chăm chỉ, nhiều lần đổ tiền bạc và thời gian xuống cống cũng như gặp khó khăn khi nhà tài trợ rút lui vào phút cuối, chúng tôi đã có thể tổ chức sự kiện đầu tiên. Bảy tháng sau, chúng tôi giành giải thưởng Open Award cho cộng đồng mở tốt nhất.
Tham gia cộng đồng tại địa phương là một điều quan trọng đối với tôi. Nó giúp tôi nâng cao các kỹ năng xã hội của mình và trở thành một người trưởng thành hơn, không chỉ đơn giản là một anh chàng đang học code.
Sau 11 tháng học code, thất bại, đứng dậy và thành lập một cộng đồng mã nguồn mở, tôi nhận được một email tuyển dụng.
Một startup có tên Kubide đang tìm kiếm lập trình viên back-end. Họ đã gửi cho tôi một API clone của Twitter như một bài kiểm tra tại nhà. Đó là một thử thách nhưng không quá khó.
Sau đó, CEO Angel Luis Quesada đã phỏng vấn tôi. Anh ấy quan tâm tới kỹ năng học tập của tôi nhiều hơn là các kỹ năng code. Anh ấy cũng muốn thuê ai đó trong thế giới startup và tôi phù hợp bởi đã từng có thời gian làm việc tại Campus Madrid (dù chỉ làm bảo vệ).
Ba ngày sau, tôi nhận được cuộc gọi thông báo rằng mình được nhận.
Tôi không thể diễn tả cảm xúc của mình trong giây phút đó. Những người thân thiết nhất trong cuộc đời tôi đều rất hạnh phúc. Cuối cùng, tất cả những nỗ lực, những chăm chỉ mà tôi đầu tư vào việc học code đều được đền đáp xứng đáng.
Thường thì những câu chuyện dạng này sẽ kết thúc ở đây với cái kết có hậu. Nhưng tôi muốn kể cho bạn cảm giác của mình khi lần đầu được làm việc như một lập trình viên.
Sự khởi đầu thường đáng sợ nhưng cũng rất thú vị. Bạn sẽ trải qua một loạt cảm xúc khác nhau.
Đầu tiên, bạn cảm thấy mình không có các kỹ năng cần thiết để code một dự án từ đầu. Nhưng hãy cố gắng hết sức và tiếp tục cố gắng ngay cả khi đã thử hết mọi cách. Sau đó, bạn có thể yêu cầu trợ giúp và hy vọng một lập trình viên lão luyện sẽ tới và chỉ cho bạn con đường mà bạn cần đi theo.
Tại thời điểm này, bạn sẽ cảm thấy ổn bởi bạn đã bắt đầu hoàn thành một số nhiệm vụ. Nhưng một ngày nào đó, bạn sẽ cảm thấy mình là kẻ vô dụng khi thấy đồng nghiệp có thể giải quyết một vấn đề trong vài phút, cùng vấn đề đó bạn mất cả ngày mới xong. Nhưng rồi một ngày khác, bạn cảm thấy tự tin trở lại khi giúp đồng nghiệp khác khắc phục được một vấn đề.
Cuối cùng, bạn nhận ra (hoặc sếp nói với bạn) rằng bạn được thuê không phải vì những kỹ năng mà bạn đã có. Bạn được thuê vì các kỹ năng mà bạn có thể phát triển, ứng viên tốt nhất để thuê là những người biết cách học hỏi và ham muốn học hỏi.
Khi nhận ra điều này, bạn sẽ cảm thấy khá hơn, cải thiện nhanh hơn và phát triển cùng các đối tác của mình. Bạn sẽ yêu công việc của mình nhiều hơn và cảm thấy hạnh phúc hơn.
Một số bài học mà tôi rút ra được sau khi học code
Cảm ơn vì đã đọc. Tôi hy vọng bài viết này sẽ hữu ích với các bạn.