Trước khi trả lời cho câu hỏi này, tôi muốn chia sẽ với các bạn về quá trình tôi và đám bạn đã học lập trình như thế nào trong quá khứ! Từ đó chúng ta cùng nhau đi tìm câu trả lời.
Nội dung chi tiết
Tôi và đám bạn đã học lập trình như thế nào?
Từ thời còn ngây dại, khi mới bước một chân vào con đường code dạo, tôi luôn đặt ra câu hỏi “Học lập trình như thế nào?”. Khi đó tôi không biết hỏi ai cả, mới vào đại học thì gõ bàn phím chưa rành, tiếng Anh gần như là con số 0 to tròn, bạn bè xa lạ, thầy cô xa lánh, bạn gái cũng không có lấy một em… cuộc đời bế tắc!!!
Thế rồi tôi cũng cố gắng bơi qua năm nhất. Lúc này, tôi đã quen với cách sử dụng google, thế nên tôi đã tìm câu trả lời cho mình bằng cách google cách câu hỏi: “Học lập trình như thế nào?“, “Lộ trình học lập trình để trở thành Dev chuyên nhiệp“,…
Hiện ra trước máy tôi là hàng triệu bài viết nói về chủ đề này. Tất nhiên, tôi chỉ đọc khoảng vài chục bài đầu tiên thôi, đọc nhiều… mệt!!
Các bài này sẽ chia làm hai nhóm chính:
- Nhóm thứ nhất khuyên tôi nên học một công nghệ gì đó mới như di động, lập trình web,.. ngay và luôn, kèm theo lời khuyên nên học tại các trung tâm dạy lập trình trong danh sách kèm theo!!!
- Nhóm thứ hai khuyên tôi nên học vững cơ bản, rèn luyện khả năng tự học rồi mới tự học một công nghệ gì đó mà tôi yêu thích.
Lúc này tôi cũng đã có nhóm bạn, một đám mà mọi thứ đều ở mức trung bình, nhưng được một cái là chúng tôi rất thích lập trình.
Tất nhiên, tôi cũng đem ra thảo luận vấn đề với chúng nó. Sau nhiều buổi tranh luận quyết liệt, nhóm chúng tôi phân làm hai phe:
- Phe cánh hữu nghe theo các bài viết nhóm thứ nhất.
- Phe cánh tả nghe theo các viết nhóm thứ hai, tôi thuận tay trái nên tôi theo phe này!!!
Sau khi chọn phe thì chúng tôi đi theo con đường mình đã chọn. Kết quả là 3 năm sau, tới khi tốt nghiệp:
- Phe cánh hữu có đồ án nhìn khá xịn xò, chuyên nghiệp,.. mới tốt nghiệp đã làm Fresher (dạng thử việc, có lương) ở các công ty phần mềm.
- Phe cánh tả chúng tôi thì có đồ án dùng công nghệ mới, nhưng nhìn không chuyên nghiệp lắm,… khi tốt nghiệp thì vẫn phải thực tập 4 tháng nữa mới có thể làm Fresher như đám cánh hữu kia!!!
Lúc này tôi khá buồn!! Phe cánh tả chúng tôi cũng đổ rất nhiều công sức để học tập, không hề thua kém phe cánh hữu, thậm chí gặp rất nhiều khó khăn vì không có người cầm tay chỉ việc. Kết quả thì chũng tôi đạt được gì chứ!!? *** đời…
Như vậy tôi đã chọn nhầm cách học lập trình, phải vậy không?!!!
Bạn nghĩ sao!!? Tôi thì ngay lúc tốt nghiệp tôi nghĩ rằng: tôi đã chọn nhầm, nhầm to rồi tôi ơi!!!
Tuy nhiên, thời gian đã cho tôi câu trả lời khác!!
Sau hai năm tốt nghiệp, đi làm nhiều nơi, tôi nhận ra nhiều thứ:
Hầu hết các trung tâm lập trình sẽ:
- Không dạy kiến thức cơ bản (hoặc dạy sơ sài) mà chỉ tập trung vào dạy công nghệ.
- Dạy bạn theo phương pháp cầm tay chỉ việc, không được dạy cách tự học.
- Dạy bạn biết “Cái gì?“, “Dùng như thế nào?” mà không dạy bạn hiểu “Nó hoạt động như thế nào?“, “Tại sao?“
Kết quả là với phe cánh hữu, tuy có được việc ngay sau khi tốt nghiệp nhưng lại:
- Có kiến thức cơ bản kém, khả năng tự học gần như không có.
- Mặc dù biết công nghệ mới, nhưng họ lại không hiểu sâu về công nghệ này.
- Chỉ có thể viết được các phần mềm đơn giản, không đòi hỏi tối ưu.
- Chỉ có thể xin việc được tại nhưng công ty dùng công nghệ mà họ đã học.
- Chỉ những công ty ở top trung bình thấp mới nhận những người không vứng căn bản như họ.
- Kiến thức và kỹ năng tăng rất chậm khi đi làm.
Với phe cảnh tả, tuy chỉ có thể thực tập khi tốt nghiệp nhưng họ lại có thể:
- Có kiến thức cơ bản tốt, khả năng tự học cao.
- Có thể tự học công nghệ mới nhanh chóng và chuyên sâu.
- Có thể viết được các phần mềm phức tạp, cần tối ưu.
- Có thể thực tập tại mọi vị trí dù chưa biết công nghệ sẽ sử dụng.
- Các công ty “top trên” rất thích họ vì chỉ có sản phần từ họ làm ra mới có thể có chất lượng cao.
- Kiến thức và kỹ năng tăng rất nhanh khi đi làm.
Hiện tại sau 2 năm tốt nghiệp, đám phe cánh hữu vẫn còn loai hoai ở mức lương 10 triệu, còn phe cảnh tả chúng tôi nhiều người lương đã hơn 15 triệu, thậm chí có đứa ra nước ngoài làm lương nghìn đô!!!
Chốt lại thì tôi thấy mình đã chọn đúng hướng rồi nhé!!!
Giờ đây, khi đứng trên đỉnh cao tôi muốn gửi tới phe cảnh hữu kia: Ngã ở đâu thì đứng lên ở đó!!
Rốt cuộc tôi nói nhiều thế để làm gì?
Bây giờ tôi chiêm nghiệm lại, tôi thấy rằng “Học chắc kiến thức cơ bản và rèn khả năng tự học rồi mới tự học một công nghệ gì đó mà mình yêu thích” là một hướng đúng đắn.
Tuy nhiên, phương pháp này có nhiều vấn đề, đó là:
- Thế nào là kiến thức cơ bản?
- Học kiến thức cơ bản ở đâu?
- Làm sao để biết tôi có đủ kiến thức cơ bản hay chưa?
- Tự học là gì?
- Thế nào là tự học có hiệu quả?
- Học công nghệ gì? và học như thế nào?
- ….
Đây là một loạt câu hỏi mà trước kia chưa ai cho chúng tôi câu trả lời, tôi và phe cánh tả của mình phải trầy da tróc vẩy mới có thể tìm ra câu trả lời thỏa đáng cho chính mình.
Rất nhiều câu trả lời của chúng tôi đã sai, mỗi lần sai thì chúng tôi phải tìm câu trả lời khác cho tới khi tìm ra câu trả lời thỏa đáng. Cái giá của điều này là lãng phí rất nhiều thời gian.
Qua những trải nghiệp trên, tôi nhận thấy rằng, nếu có ai đó giúp chúng tôi trả lời các câu hỏi đó một cách rõ ràng, rành mạch, chi tiết.. thì chúng tôi khi đó sẽ:
- Tiết kiệm nhiều thời gian.
- Có thể học nhiều thứ hơn, hiệu quả hơn.
- Khi tốt nghiệp vừa có kiến thức cơ bản tốt, khả năng tự học cao lại vừa có thể nắm vững một hoặc một vài công nghệ để làm nhiều thứ hay ho.
- Khi có những điều trên thì chúng tôi có thể trở thành Fresher hoặc Developer tại các “công ty tốt” ngay khi vừa tốt nghiệp.
Vì vậy, tôi lập ra trang Siêu Cơ Bản này nhằm mục đích duy nhất là: giúp các bạn trả lời các câu hỏi trên một cách rõ ràng, rành mạch, chi tiết nhất có thể!!
Học lập trình như thế nào để đạt hiệu quả cao?
Đây là một câu hỏi lớn, để trả lời câu hỏi này đầu tiên bạn cần:
Bước 1: Tìm hiểu xem lập trình là gì? Học lập trình là sẽ học những gì?
Thông qua đó bạn sẽ hình dung được ngành nghề này có phù hợp với mình hay không.
Bước 2: Xác định mục tiêu và lộ trình học lập trình phù hợp
Mỗi người đều có một mục đích khác nhau khi học lập trình, tùy thuộc vào mục đích đó mà ta sẽ có lộ trình học khác nhau.
Khi đã có mục đích và có lộ trình cụ thể rồi thì ta chỉ cần học cần theo lộ trình đó.
Bước 3: Học tập và rèn luyện kỹ năng tự học lập trình
Để lập trình tốt thì kiến thức lập trình là không đủ, do đó ta cần rèn luyện các kỹ năng khác như: kỹ năng tự học, kỹ năng giải quyết vấn đề,…