Péter Varga tốt nghiệp ngành khoa học máy tính tại trường đại học Eötvös Loránd ở Budapest. Anh bắt đầu làm freelancer từ năm cuối đại học. Hiện anh đang phụ trách giúp đỡ học viên trường CodeBerry khi họ gặp trở ngại hoặc có câu hỏi liên quan đến lập trình.

Mình sống ở Budaörs, Hungary.
Mình làm việc cho CodeBerry
Mình sử dụng: OnePlus 3, máy tính để bàn, Lenovo Flex 2 (laptop), hệ điều hành Windows, Linux, WebStorm, Notepad++, và Chrome.

Khi được hỏi về nghề nghiệp, bạn sẽ trả lời như thế nào?

Tùy thuộc vào người hỏi. Khi nói chuyện với một người lớn tuổi hoặc không thông thạo với máy tính, mình chỉ nói mình là chuyên viên CNTT. Nếu người đó biết chút ít về máy tính, mình sẽ nói mình là một lập trình viên. Nếu đó là đồng nghiệp, mình sẽ nói với họ rằng mình phát triển các ứng dụng 3D trên nền web.

Hãy chia sẻ thêm với bọn mình về dự án bạn đang phát triển?

Trong sáu tháng qua, mình làm việc cho một công ty xây dựng của Mỹ, chuyên xây khung nhà từ vật liệu nhẹ. Họ có một ứng dụng 3D giúp khách tự thiết kế ngôi nhà tương lai trên trang web. Khách có thể đặt kích thước của tường, cửa sổ, cửa ra vào, v.v… Sau đó có thể xem trực tiếp kết quả trên trình duyệt với tính năng điều chỉnh camera để xem bên trong hoặc bên ngoài căn nhà. Nếu khách ưng mẫu thiết kế, họ có thể đặt hàng bằng một cú nhấp chuột đơn giản.

Mình làm nhiều dự án khác nhau, nhưng việc phát triển và bảo trì ứng dụng này chiếm phần lớn thời gian của mình.

Ngoài ra, mình cũng dành thời gian rảnh để tạo một ứng dụng chỉnh sửa ảnh trực tuyến cùng với cậu em họ. Ứng dụng này vẫn còn thô sơ lắm. Mình cũng dành vài giờ mỗi ngày để hỗ trợ học viên CodeBerry khi họ gặp khó với bài tập hoặc có bất kỳ câu hỏi nào liên quan đến lập trình.

Bạn đến với Trường CodeBerry như thế nào?

Mình đang lướt Facebook thì thấy post tuyển dụng của Trường. Mình thích tính chất công việc vì có thể làm tại nhà mà lại liên quan đến lập trình web và giảng dạy. Công việc cũng phù hợp với lịch làm việc của mình, vậy nên mình ứng tuyển.

Bạn học lập trình từ bao giờ, học ở đâu và bằng cách nào?

Trong kỳ đầu tại trường đại học, mình phát hoảng khi nhận ra hầu hết bạn cùng lớp đều học lập trình từ trung học. Hồi đó, lập trình hoàn toàn mới đối với mình. Mình bắt đầu học viết những chương trình đầu tiên vào năm nhất đại học. Trước đó mình thậm chí còn chẳng biết cách hiển thị câu “Xin chào thế giới!” trên một trang web.

Thời trung học, mình học tại Mihály Fazekas, một trường khá nổi tiếng ở Budapest. Tại đây mình được trang bị khá tốt các kỹ năng về toán. Chính những kỹ năng này giúp mình rất nhiều trong những năm đại học, và kể cả trong công việc hiện tại.

Sau khi học kiến thức cơ bản trong các buổi học lập trình trên lớp, mình thường tự viết các chương trình giúp giải toán ở nhà. Mình bắt đầu với những thứ như định lý Pythagore hoặc giải phương trình bậc hai. Sau đó, mình viết code cho thuật toán Euclide mở rộng. Đến một ngày, mình chợt nhận ra đã biết lập trình. Bây giờ nhìn lại, mình thấy ngạc nhiên vì mọi thứ diễn ra quá nhanh. Trong vài tuần, mình từ không biết gì đã bắt đầu có thể viết các chương trình hữu dụng cho bản thân. Cảm giác đó thật tuyệt.

Tất nhiên, mình còn cả một chặng đường dài cho đến khi lấy được bằng và học về thiết kế 3D, nhưng giai đoạn đó diễn ra một cách tự nhiên thôi.

Đây là góc làm việc của mình.

Đâu là cơ hội việc làm cho các nhà phát triển web? Trung bình bạn mất bao thời gian để tìm việc?

Mình chưa bao giờ phải tìm việc ngoại trừ lúc đi thực tập. Nếu bỏ công việc hiện tại, mình chắc chắn sẽ sớm tìm được một công việc mới. Mình thấy hàng tá thông báo tuyển dụng mỗi ngày, các công ty đều đang tìm kiếm lập trình viên – với nhu cầu lớn dành cho các vị trí liên quan tới phát triển web.

Bạn có thể chia sẻ một chút về thời gian biểu của bản thân?

Nếu có thể, mình ngủ nướng đến tầm 10-11 giờ trưa, trừ mùa hè mình dậy lúc 8-9 sáng vì trời nóng quá. Mình sẽ ăn sáng và rửa mặt, sau đó ngồi trước máy tính và lướt qua danh sách những việc cần làm. Mình thường bắt đầu với các đầu việc thường nhật, sau đó đến những đầu việc lớn hơn với ý nghĩ rằng “Mình sẽ hoàn thành đầu việc này trong ngày hôm nay”. Thật không may, luôn có trục trặc hoặc do mình dự tính sai thời gian cần để hoàn thành. Kết quả là mình thường phải thức khuya do không muốn để lại phần việc dang dở cho ngày hôm sau.

Mình nghĩ mình là người may mắn, khi làm freelancer mình có thể xếp đặt lịch tùy ý. Nghĩa là mình có thể nghỉ ngơi vào ngày thường nhưng cũng nhiều khi phải làm việc nguyên cả cuối tuần.

Điều gì làm bạn ngạc nhiên về ngành này, điều mà bạn chưa bao giờ nghĩ tới trước khi học lập trình?

Mình không nghĩ một người có thể học được kiến thức lập trình cơ bản nhanh như vậy. Như đề cập trước đó, mình bắt đầu học đại học mà không hề biết về code. Vậy mà mình lại qua được kỳ thi cuối kỳ, trong khi nhiều sinh viên đã có kiến thức cơ bản trước khi vào đại học thì lại rớt môn này. Chắc họ nghĩ đã biết mọi thứ nên không chú tâm vào bài giảng. Đến lúc họ nhận ra thì đã quá muộn và không thể bắt kịp kiến thức trên lớp nữa. Mình nghĩ chìa khóa để học tốt chính là động lực của bản thân.

Bạn làm việc cùng ai?

Với anh họ của mình ở nhà. Làm kiểu này khá thoải mái và tiện bởi bọn mình có thể hỗ trợ nhau khi cần thiết.

Nếu phải thay đổi bạn sẽ chọn ngành nghề nào? Liệu bạn đủ khả năng để thay đổi hay không?

Mình luôn thích âm nhạc. Cách đây không lâu, mình thậm chí còn tham gia một nhóm nhạc rock. Nhưng mình không tự đánh lừa bản thân, mình biết không đủ khả năng để kiếm sống bằng nghề nhạc sĩ. 🙂 Thành thật mà nói, mình không biết sẽ làm gì nếu phải chọn nghề khác. Nhưng một điều mình biết là nghề nghiệp của mình hiện tại không nhiều rủi ro. Mình chưa nghe thấy kỹ sư phần mềm bị sa thải bao giờ. Thông thường, chỉ có trường hợp họ tự sang một công ty khác khi nhận được mức lương tốt hơn.

Kỹ năng nào tạo nên một lập trình viên giỏi? Những ai sẽ không phù hợp với nghề này?

Mình nghĩ các lập trình viên giỏi đều có điểm chung là sự tò mò và đam mê ngay từ những ngày đầu tiên. Đó là những đứa trẻ thích tháo rời món quà Giáng Sinh để xem điều gì giúp chiếc xe đồ chơi chạy nhanh thế, hoặc những đứa nghịch radio của bố mẹ với tuốc nơ vít để xem nó tạo ra âm thanh như thế nào. Những đứa trẻ mà bạn không thể lôi ra ngoài vui đùa vì chúng cứ dán chặt vào máy tính, hoặc tự tạo ra máy tính bằng các bộ phần mà chúng nhặt nhạnh mỗi nơi một ít. Những đứa trẻ tò mò như vậy có “tố chất lập trình” tuyệt vời. Mình cũng thấy một vài trường hợp chỉ quan tâm đến CNTT khi bước vào tuổi hai mươi nhưng vẫn trở thành chuyên gia. Dù thế nào đi nữa, yếu tố chính ở đây là niềm yêu thích và động lực. Mình không khuyến khích bạn tham gia vào lĩnh vực này nếu không có đức tính trên.

Thêm nữa, việc tìm và sửa lỗi trong phần mềm đòi hỏi đức tính kiên nhẫn và sự bền bỉ. Ví dụ, khi mình viết một chương trình với cả ngàn dòng code cho bài luận án, mình đã dành mấy ngày chỉ để tìm một lỗi duy nhất. Hóa ra là do một ký hiệu toán học không đúng và mình phải thay một dấu cộng thành trừ. Các dự án lớn có thể bao gồm cả trăm nghìn hoặc thậm chí hơn một triệu dòng code. Việc tìm lỗi sẽ mất thời gian hơn nhiều. Điều quan trọng là bạn phải biết khoanh vùng vị trí của lỗi. Nhưng để làm vậy bạn có thể phải bỏ ra nhiều ngày để nắm được cấu trúc của dự án.

Cũng khó tránh khỏi những tình huống căng thẳng trong nghề lập trình, bởi vậy bạn không nên chọn nghề này nếu thiếu kiên nhẫn hoặc nóng tính. Bạn có thể dễ làm tổn thương mọi người xung quanh trong những hoàn cảnh như vậy.

Phần yêu thích của bạn trong công việc là gì?

Mình thích nhìn thấy thành quả từ công việc. Viết được một chương trình hoạt động tốt đem lại cảm giác thật tuyệt vời.

Điều gì khiến bạn chán nản? Khó khăn và rủi ro trong nghề này là gì?

Mình không thích để lại những việc chưa hoàn tất vào cuối ngày, nhưng đôi khi mất rất nhiều thời gian để dò ra được lỗi. Mình ngủ không ngon những lúc như vậy vì đầu óc cứ liên tục nghĩ đến các giải pháp. Mặt khác, cảm giác thật tuyệt khi cuối cùng cũng tìm ra lỗi và mọi thứ bỗng trở nên rõ ràng.

Hành nghề tự do có thể nguy hiểm bởi bạn dễ rơi vào tình huống nhận quá nhiều hoặc quá ít việc dẫn đến đảo lộn thói quen hàng ngày. Mình vẫn chưa quen lắm với công việc freelancer vì đôi khi mình cũng không tìm được nhịp riêng cho công việc.

Tập thể dục đầy đủ cũng rất quan trọng, đặc biệt là đối với công việc ít vận động thế này. Mình không vận động nhiều cho lắm, nhưng duy trì tập luyện ít nhất hai lần một tuần trong khoảng 1-2 tiếng (thường là chơi bóng đá hoặc bóng rổ). Mình đang lên kế hoạch tăng lịch tập lên 3-4 buổi một tuần.

Công việc của bạn có ổn định không?

Khối lượng công việc các khách hàng của mình giao khá ổn định. Hiện tại, mình cảm thấy đang nhận ngày một nhiều việc hơn và chưa bao giờ hết việc để làm cả.

Nếu được thay mặt cho tất cả lập trình viên đưa ra một yêu cầu, bạn sẽ yêu cầu điều gì?

Làm ơn hãy tận dụng Google!

Bạn kiếm được bao nhiêu từ nghề này (khi mới vào nghề, khi bắt đầu có kinh nghiệm và khi đã là một tay “lão luyện”)?

Ở [Mỹ] mức thu nhập trung bình [hàng năm] của nghề này là [70k USD], nhưng sau đó bạn vẫn có thể nâng mức thu nhập cao hơn. Dĩ nhiên bạn cần kỹ năng tự quản lý tốt. Kỹ năng lập trình tốt thôi là chưa đủ.

Theo bạn đâu là cách tốt nhất để học lập trình?

Thực hành thật nhiều. Bạn nên tham gia các khóa học trực tuyến để hiểu những khái niệm cơ bản. Sau đó, nếu bản thân có một ý tưởng (trò chơi, gian hàng trực tuyến, bất cứ điều gì), hãy thử tự mình làm. Tham khảo thông tin trên internet và xem hướng dẫn trên YouTube. Nếu thực hành đủ nhiều, bạn rồi sẽ thực hiện được ý tưởng của mình. 🙂

Làm sao để bạn cập nhật kiến thức mới? Bạn đọc sách, blog, hay tham dự những sự kiện nào, v.v…?

Đôi khi mình xem Google I/O (hội nghị thường niên dành cho các lập trình viên được tổ chức bởi Google) và các video tương tự khác nơi họ nói về những công nghệ mới nhất. Nếu thích công nghệ nào đó trong bài thuyết trình, mình sẽ nghiên cứu thêm trên mạng để xem nó hoạt động như thế nào.

Theo bạn, điều gì khiến cho việc lập trình đáng để học?

Đây là một trong những ngành có nhu cầu cao và được trả lương hậu hĩnh nhất hiện nay, và kỹ năng tư duy thuật toán trong nghề này cũng là một điều tuyệt vời. Mình khuyên tất cả mọi người nên thử lập trình. Dù sao thì bạn cũng đâu có mất gì.

Sở thích…
– Đồ uống: nước
– Thức ăn: thịt rút xương
– Phim truyền hình dài tập: Trò Chơi Vương Quyền
– Phim lẻ: Ma trận
– Sách: Trò Chơi Sinh Tử Ngoài Không Gian (Ender’s Game)
– Hệ điều hành: Windows, Linux
– Trình soạn thảo văn bản/IDE (Môi trường phát triển tích hợp): Notepad ++, WebStorm, Visual Studio
– Ngôn ngữ lập trình: C ++, TypeScript, JavaScript, PHP
– Trái cây: chuối
– Âm nhạc: bài “System of a Down” của Chop Suey
– Màu ưa thích: đen
– Vật nuôi ưa thích: mèo