Khi bạn bước vào con đường của một lập trình viên, tự học luôn là điều cốt lõi trong quá trình phát triển sự nghiệp của bạn. Từ khi còn ngồi trên giảng đường đại học cho tới khi ra trường, đi làm và trở thành một lập trình viên thực thụ, hai chữ “tự học” sẽ luôn theo bạn trong toàn bộ con đường sự nghiệp.
Ngoài ra đây cũng là một trong những câu hỏi phỏng vấn rất thường xuyên được hỏi. Ví dụ như “Cho bạn một ngôn ngữ mới mà bạn chưa biết, thì bạn sẽ học nó như thế nào? Và trong bao lâu thì có thể làm việc được?”.
Trước khi bắt đầu bài viết, mình muốn hỏi bạn một vài câu hỏi. Bạn có đang tự học? Và bạn có đang tự học đúng cách? Thực tế cho thấy, học sinh sinh viên hiện đại bây giờ cực kì thụ động đối với chuyện học hành.
Với kinh nghiệm học tập và làm việc trong nhiều năm, mình muốn chia sẻ một vài bí quyết tự học được mình đúng kết lại và cô động trong bài viết này.
#1 PHÂN BIỆT MỘT CHÚT VỀ CODER VÀ DEVELOPER
Sở dĩ mình phân biệt coder và developer là vì theo quan điểm của mình, vấn đề tự học ở hai level này có một chút khác biệt. Chúng ta sẽ tìm hiểu ngay điều này.
Khi bạn mới đặt tay vào code, đúng hơn là lúc bạn đang ở trong trường học, cho tới lúc ra đi làm (một fresher) và có một chút kinh nghiệm (một junior) thì bạn được gọi là một coder. Đúng rồi, một coder là người có khả năng code.
Khi bạn có nhiều năm kinh nghiệm làm việc, bạn có thể trở thành một senior. Và lúc này, bạn được gọi là một developer đúng nghĩa. Bạn có khả năng code, phân tích và giải quyết vấn đề và khả năng training cho người khác.
Vậy thì hai level trên sẽ khác nhau như thế nào trong vấn đề tự học? Chúng ta sẽ tìm hiểu ngay sau đây.
#2 SỰ KHÓ KHĂN KHI TIẾP CẬN MỘT THỨ GÌ ĐÓ MỚI CỦA CODER, NGƯỜI MỚI HỌC LẬP TRÌNH.
Đối với những bạn chưa có kinh nghiệm code nhiều, thì bạn sẽ dễ bị phụ thuộc vào người khác. Bạn sẽ hay có suy nghĩ “có thầy dạy sẽ tốt hơn và nhanh hơn”. Và tư duy lập trình chưa nhiều, chưa trải nghiệm qua nhiều công nghệ, nên việc tiếp cận một cái gì đó mới thường sẽ gặp khó khăn.
Ở trong giai đoạn này, bạn sẽ có suy nghĩ tìm tới những trung tâm đào tạo lập trình viên. Đây là một lựa chọn tốt cho bạn, nhưng ở đây, mình muốn chia sẻ kinh nghiệm hoàn toàn tự học cho bạn. Vì chính bản thân mình, chưa từng học tại bất kì một trung tâm nào. Thâm chí ngành học trong trường đại học không phải là IT mà là điện tử viễn thông. Mình không được học bất cứ thứ gì về database, cấu trúc dữ liệu, giải thuật hay hướng đối tượng OOP. Toàn bộ về “background IT“, mình tự học 100%.
Mình cũng từng trải qua giai đoạn là một coder mới vào nghề và ngay bây giờ mình sẻ nói đôi chút về các phương pháp mình đã áp dụng. Vì giai đoạn này cực kì quan trọng trong quảng đời của một lập trình viên.
Để tiếp cận một ngôn ngữ mới, một công nghệ mới, hay một cái gì đó mới trong ngành IT, bạn hãy lên trang chủ của nó, đọc và làm theo document hay tutorial chính thống của nó. Đây là câu trả lời rất đúng trong trường hợp… bạn đi phỏng vấn hoặc bạn là một developer đúng nghĩa.
Thực tế thì, đối với những bạn mới học lập trình, chưa có kinh nghiệm, vốn tiếng Anh không nhiều. Thì cách ở trên khá là khó tiếp cận trong thực tế.
Lấy một ví dụ cụ thể, bạn là coder, chưa biết gì về công nghệ Nodejs và bạn đang muốn học nó. Bạn thử lên trang chủ của nó, đọc thử và cảm nhận. Đa số các bạn sẽ gặp khó khăn rất nhiều và dễ dàng bỏ cuộc vì không biết đọc như thế nào. Và bắt đầu từ đâu.
Vậy đâu là cách tốt nhất khi học một cái gì đó mới, một công nghệ mới, một ngôn ngữ mới dành cho coder?
#2 CÁCH TIẾP CẬN CÁI GÌ ĐÓ MỚI DÀNH CHO CODER.
Video. Đúng vậy, bạn nên tiếp cận trước tiên bằng các video tutorial. Nếu vốn Tiếng Anh của bạn có hạn, bạn có thể lên Youtube và tìm các video bằng Tiếng Việt. Hoặc một cách tiếp cận khác là tìm kiếm các khóa học online bằng video. Một số trang bạn có thể tham khảo là myclass, udemy, lynda. Học ở những trang online này, bạn sẽ rèn luyện được thêm kĩ năng nghe Tiếng Anh của mình.
Hãy quay lại ví dụ học Nodejs trên kia. Sau khi bạn đã tiếp cận các video tutorial trên Youtube hoặc các khóa học online (lưu ý là những khóa học này thường ngắn – khoảng vài chục giờ đồng hồ), bạn sẽ có một ít kiến thức căn bản nhất về Nodejs. Sau đó hãy quay lại trang chủ nodejs.org, lúc này là khoảng thời gian bạn tập trung, kiên trì vào tài liệu chính thống và bắt đầu chinh phục Nodejs.
Theo ví dụ trên, rõ ràng khi bạn tiếp cận một công nghệ mới, thì video là nguồn tài liệu giúp bạn dễ tiếp cận nhất. Và sau đó, chính trang chủ (homepage) của chính công nghệ, ngôn ngữ đó là nơi bạn tiếp tục rèn luyện. Hãy xem chính homepage này là một từ điển, bạn sẽ dùng và tra thường xuyên trong suốt quá trình học.
Ngoài ra, có một chuyện quan trọng khác khi tự học chính là lúc bạn gặp một vấn đề, một bug, hay một lỗi (error) nào đó. Lúc này, bạn phải học cách giải quyết vấn đề bằng nhiều cách khác nhau.
Trước tiên hãy dùng các công cụ mạnh nhất chính là internet và sử dụng google một cách thông minh nhất. Bạn có thể search bằng cả Tiếng Việt và Tiếng Anh. Điều quan trọng nhất để bạn có thể tìm được hướng giải quyết chính là đặt những câu hỏi với từ khóa đúng nhất. Hoặc bạn có thể đăng các câu hỏi thắc mắc lên các diễn đàn thích hợp. Khuyến nghị bạn dùng stackoverflow cho Tiếng Anh và daynhauhoc cho Tiếng Việt.
Bạn cũng có thể đăng câu hỏi mình lên trên các group, forum khác mà bạn nghĩ rằng sẽ nhận được câu trả lời.
Một cách khác nữa, hãy đi hỏi những người giỏi hơn bạn. Điều này giúp bạn mở rộng mối quan hệ và giải quyết vấn đề nhanh hơn. Bạn cũng thể thành lập các nhóm (2 người trở lên) để cùng học tập và làm việc. Vì teamwork có sức mạnh rất ghê gớm.
Một lưu ý cuối, bạn là coder chưa có nhiều kinh nghiệm, nên hãy tập trung vào những gì nền tảng nhất dành cho một developer (ví dụ tư duy lập trình, cấu trúc dữ liệu, giải thuật, OOP, cơ sở dữ liệu) và nắm bắt nó thật chặt. Khi bạn đã có một nền tảng tốt, quá trình học và làm việc sau này sẽ dễ dàng hơn.
#3 HÃY NHÌN CÁCH TIẾP CẬN CỦA MỘT DEVELOPER ĐÚNG NGHĨA
Developer hay senior developer hoặc cao hơn là những người đã có rất nhiều kinh nghiệm trong lĩnh vực của mình. Họ đã có một lượng kiến thức, tư duy nhất định về cấu trúc, flow, hay kiến trúc của các loại công nghê khác nhau, họ luôn có cái nhìn tổng quát trong quá trình làm việc. Cho nên việc học một công nghệ mới của họ thường đơn giản hơn.
Họ là những người sẽ tiếp cận với homepage của công nghệ đó ngay từ lúc ban đầu. Bởi vì đã có cái nhìn tổng quan về các loại công nghệ, họ có một cách nhìn đa chiều vào những gì mình đang học. Họ so sánh với những gì mình biết trong quá khứ để nhìn xem công nghệ mình đang học có những điểm gì nổi trội so với các công nghệ khác.
Với khả năng phân tích và giải quyết vấn đề, họ dương như làm chủ một công nghệ mới rất nhanh và chắc chắn.
#4 KẾT
Kiên trì, đam mê là 2 từ dành cho một developer thành công. Con đường để trở thành một developer đúng nghĩa không đơn giản nhưng cũng không quá phức tạp. Chỉ cần với niềm đam mê và lòng kiên trì trong quá trình học và làm việc, bạn sẽ thành công trong con đường của mình.
Để làm được điều này, bạn cần xác định được mục tiêu rõ ràng ngay từ ban đầu và đi theo đúng những gì mà bạn đã vạch ra. Thành công sẽ đến với bạn.
Bài viết rất hay.Cảm ơn bạn rất nhiều 😀
Cảm ơn bạn đã để lại phản hồi cho bài viết này. Hi vọng bài viết sẽ mang lại giá trị cho bạn.
bài viết hay quá. Tuyệt vời
Cảm ơn bạn đã ghé thăm blog! Chúc bạn có một sự nghiệp như mong muốn!