Câu hỏi phổ biến nhất mà mình nhận được là "Người mới bắt đầu tự học lập trình thì nên học như thế nào?"
Con đường học tập của mình không thuận lợi như mọi người thường nghĩ, cũng vật lộn với việc học khá nhiều.
Đầu tiên, mình học thiết kế đồ họa, nhưng lại cũng không học hết. Bởi vì chưa học được gì nhiều đã thấy thích thú với lập trình web mà nhảy sang mảng này để tìm hiểu.
Với bản tính tiết kiệm nên mình chịu khó Google và đi xin slide, tài liệu tự học của bạn mình, rồi có nhiều thứ xin trên các group share tài liệu.
May mắn là tài liệu free có sẵn khá nhiều, đến nỗi mình có cả mấy trăm Gb nhưng có cái chưa bao giờ động đến. :D
Tự học cái này cái nọ rồi cũng chẳng làm được cái gì ra hồn, nhưng mặt mình dày, nên xin đi thực tập. Dĩ nhiên là không lương, nên công ty ngồi rồi vừa tự học, vừa hỏi mấy anh.
Mình cũng tốn hơn 3 tháng thực tập trên cty để vật lộn với phần front end rồi sau đó mới chuyển sang tìm hiểu về back end.
Mình chắc là có nhiều người cũng như mình, vật lộn để học mà cũng không có kết quả như mong đợi lắm nên mới tìm đến bài viết này.
Thực tế, tự học là một kỹ năng nhất định lập trình viên nào cũng phải thành thạo. Việc học trên trường không thể giúp bạn có được các kiến thức công nghệ mới, kỹ năng, và công nghệ nó lại cập nhật thường xuyên.
Vì thế, hầu hết mọi người đã làm trong ngành này đều tự học, học hàng ngày. Từ đó, mọi người đúc kết ra các cách học lập trình hiệu quả.
Mình cũng có tham khảo các cách học lập trình của đồng nghiệp trong công ty của mình, bạn bè rồi cả cách tự học của mình nữa, hi vọng sẽ giúp ích cho bạn.
Cách #1: Cần một lý do
Đừng nghĩ đến câu nói này =)) nhé:
"Nếu muốn người ta sẽ tìm cách
Còn không người ta sẽ tìm lý do"
Vì lý do ở đây không phải lý do trốn tránh mà là:
"Lý do bạn muốn bắt đầu học lập trình"
Nếu bạn muốn bắt đầu lập trình, phải có lý do cho để làm điều đó. Cho dù đó chỉ đơn giản là "tao thích", hay bạn muốn kiếm được nhiều tiền hơn hay là bạn muốn lập trình để tối ưu công việc hàng ngày của mình.
Tóm lại là bạn cần tìm một lý do để bạn bắt đầu.
Và ghi nhớ nó!
Nói thật, Lập trình rất khó và nhiều khi bạn sẽ cảm thấy chán nản. Thế nên, điều cần thiết là bạn phải ghi nhớ lý do bạn bắt đầu, giống như người ta đã nói:
"Nếu một ngày bạn cảm thấy nản chí
Hãy nghĩ đến lý do khi bạn bắt đầu"
Ngày trước, khi mới bắt đầu học, mình đã ghi lý do mình muốn học lập trình web lên màn hình laptop của mình. Mỗi lần mở máy là mắt mình lại tự động đọc lý do đó
Nó ngấm vào mình đến nỗi, cứ khi nào chưa học bài mà đi chơi lol là trong người tự cảm thấy bồn chồn, lo lắng không yên. Cứ phải đi học xong rồi mới yên tâm chơi.
Cách #2: Xây dựng một nền tảng vững chắc
Những người đã từng đi làm được vài năm chắc chắn sẽ khuyên bạn như thế này. Hãy xây dựng một nền tảng vững chắc.
Nếu bạn từng lười học Toán, hãy học lại Đại số 1.
Hầu hết lập trình được xây dựng trên toán đại số 1 - tức là các hàm và biến. Hiểu được những khái niệm này bên ngoài lập trình sẽ rất có giá trị trong tương lai.
Cách #3: Tham gia một cộng đồng học lập trình
Điều tiếp theo bạn cần làm là tìm một cộng đồng để hỗ trợ bạn khi bạn bắt đầu học lập trình. Cộng đồng này sẽ có giá trị vì những người khác cũng tương tự như bạn và họ có thể hỗ trợ bạn lúc cần thiết.
Nếu được, mình khuyên bạn nên tìm một cộng đồng mà có thể gặp mặt trực tiếp để có thể có những buổi offline hỗ trợ nhau tốt hơn.
Nếu không có, bạn có thể tham gia Stack Overflow, Dev.to để đọc những bài chia sẻ, hướng dẫn, giải đáp về các chủ đề trong lập trình.
Hoặc theo dõi cộng đồng Học lập trình Web từ Zero trên Facebook để có thêm các nguồn tài nguyên hữu ích, tham gia các lớp học trực tuyến, miễn phí để tích lũy thêm kiến thức.
Cách #4: Chia để trị
Nếu bạn có một vấn đề lớn cần giải quyết trong lập trình nhìn qua có vẻ bất khả thi.
Vậy thì cố gắng chia nó thành các phần nhỏ hơn và nhỏ hơn nữa cho đến khi các các phần đó có thể giải được.
Nếu phần bạn chia ra chưa giải được tức là chưa đủ nhỏ.
Giải các phần nhỏ là dễ hơn và khi ghép lại tất cả, chúng ta sẽ giải được bài toán lớn.
Đây được gọi là phương pháp chia để trị.
Cách #5: Code giả
Trước khi bắt đầu viết những dòng code chi tiết, bạn nên viết nó bằng các từ ngữ đơn giản trước.
Quá trình này được gọi là code giả và nó có thể ở bất kỳ hình thức nào, miễn bạn hiểu được luồng chạy của chương trình và các yêu cầu cần thiết.
Bạn cũng có thể giải quyết một vấn đề thật chậm trên giấy trước, suy nghĩ hoặc thậm chí viết ra các bước bạn đang thực hiện để giải quyết vấn đề đó.
Có nhiều cách để làm bước này, nhưng một cách phổ biến đó thường là sử dụng lưu đồ thuật toán.
> Lưu ý: Bạn có thể sử dụng bất kỳ cách nào nhé, không nhất thiết phải là lưu đồ thuật toán.
Minh họa sử dụng lưu đồ thuật toán để học lập trình
Cách #6: Thiết lập giờ học cố định
Nếu bạn đang muốn tự học lập trình để đi làm, đặc biệt nếu bạn đã đang làm một công việc khác, thì việc tự học là cực kỳ quan trọng.
Bởi vì có rất nhiều cản trở việc học của bạn nên hãy cố gắng sắp xếp giờ học cố định trong ngày của bạn và bám sát lịch học.
Ví dụ, bạn có thể sắp xếp lịch học từ 21 giờ đến 24 giờ trong ngày hoặc từ 22 giờ đến 24 giờ.
Nếu được mình đề nghị bạn học 4 giờ / ngày.
... mà việc này có vẻ bất khả thi. Thế nên tối thiểu 2 giờ học lập trình / ngày cũng có thể.
Tuy nhiên, ban đầu sẽ rất khó để bạn vào học đúng thời gian và học đủ 2 giờ. Vì trước đó, bạn có rất nhiều việc để làm trong thời gian này, việc chuyển nó sang giờ khác là một việc khá là khó.
Nhưng cố gắng theo sát lịch trong khoảng 1 tháng, sau đó tự nhiên bạn sẽ cảm thấy việc ngồi vào học lúc 21 giờ là đương nhiên và chẳng có gì làm trong thời gian này nếu không học.
Nói chung, hãy chuẩn bị tinh thần vì sẽ có nhiều thứ bị xáo trộn.
Cách #7: Bắt đầu với tài liệu học lập trình miễn phí
Bạn có thể tìm thấy hàng triệu hướng dẫn học lập trình ngoài kia. Một số miễn phí và một số trả phí.
Nhưng dĩ nhiên, hãy bắt đầu với các tài nguyên miễn phí, đảm bảo rằng bạn thích thú, bạn quen với việc học lập trình sau đó mới chuyển sang tài liệu học lập trình trả phí (nếu được)
Tài liệu miễn phí rất tốt nếu bạn biết tận dụng. Nhưng tài liệu trả phí mang lại trải nghiệm học tập liền mạch, tốt hơn khá nhiều.
Bởi vì, thay vì đi làm kiếm tiền đâu đó rồi tranh thủ thời gian viết hướng dẫn thì nếu được trả tiền, họ có thể update hướng dẫn đầy đủ, chi tiết, cập nhật theo thời gian.
Bạn có thể tham khảo một vài địa chỉ giúp bạn học lập trình ở bài viết: Học code ở đâu tốt
Ngoài ra, hướng dẫn HỌC LẬP TRÌNH JAVA này cũng khá đầy đủ về Java cơ bản (có cả video), bạn có thể lưu lại để tìm hiểu thêm.
> Lưu ý: Bạn chỉ nên follow 01 HƯỚNG DẪN tại một thời điểm thôi, học theo hướng dẫn này xong mới nên đổi hướng dẫn khác, học nâng cao. Đừng ôm nhiều một lúc, sẽ loạn đó.
Cách #9: Đừng có cố gắng quá
Nghe có vẻ ngược đời nhưng nó lại đúng.
Bạn đã từng nghe câu nói này chưa?
"Cố quá là Quá cố"
Cố gắng tự giải quyết vấn đề và tìm ra câu trả lời khi gặp vấn đề khó là đáng hoan nghênh.
Nhưng làm mình mắc kẹt tại đó mà mãi không tiến được không phải là cách làm khôn ngoan.
Không những thế, mắc kẹt quá lâu có thể trở nên vô tác dụng và khiến bạn mất dần đi động lực học tập.
Vì thế, hãy tự qui định, sau vài giờ nếu không tự tìm ra được giải pháp, hãy liên hệ với người khác để được giúp đỡ.
Cách #9: Thua keo này ta bày keo khác
Lập trình rất khó và không phải lúc nào bạn cũng tìm ra câu trả lời ngay lập tức.
Thông thường, bạn sẽ phải làm vài lần, sai vài lần, qua nhiều phiên bản thì code mới hoạt động đúng như mong muốn.
Và cũng chưa dừng lại ở đó đâu. Rất có thể sau này lại lỗi đúng chỗ đó =)).
Nhưng đừng lo, nếu cách này chưa giải quyết được thì ta lại thử cách khác. Thế nên, sai là chuyện bình thường, sai thì sửa thôi.
Cách #10: Học cách đọc thông báo lỗi
Hầu hết các IDE hoặc Editor hiện đại đều sẽ thông báo lỗi để các lập trình viên theo đó và sửa chữa.
Thế nên, hãy sử dụng IDE để học lập trình luôn bạn nhé, tham khảo:
Thông báo lỗi rất hữu ích. Khi có lỗi xảy ra trong khi lập trình, điều đầu tiên bạn cần làm là bình tĩnh lại và đọc thông báo lỗi.
Cố gắng hiểu nó đang nhắc đến vấn đề gì, dòng nào đang gặp lỗi, cú pháp sai hay tham chiếu không tồn tại...
Trên thực tế, lúc mới học lập trình 90% lỗi bạn đều có thể tự khắc phục bằng cách đọc thông báo lỗi.
> Mẹo: Nếu không hiểu lắm thông báo lỗi, hãy copy thông báo lỗi và tìm kiếm trên Google. :D. Đôi khi mình cũng nhanh tay quá, chưa đọc gì đã copy rồi tìm trên Google luôn, mặc dù lỗi cú pháp rất đơn giản =))
Cách #11: Tìm ngôn ngữ dễ học hơn
Không có câu trả lời đúng cho việc học ngôn ngữ lập trình nào trước tiên.
Và mình vẫn khuyên mọi người không nên bắt đầu bằng việc chọn ngôn ngữ. Mà bắt đầu bằng lý do.
Tuy nhiên, thật sự thì có một số ngôn ngữ dễ học hơn.
Khi đã có lý do, tùy thuộc vào chiến lược mà bạn có thể quyết định chọn học cái nào trước.
3 ngôn ngữ dễ học hàng đầu bạn có thể lưu ý tới là Python, JavaScript và PHP.
> Tham khảo: KHÓA HỌC PHP hoặc KHÓA HỌC PYTHON dành cho những người mới bắt đầu học lập trình. Học với chuyên gia để học nhanh hơn.
Cách #12: Đừng cố để biết tuốt
Bạn không thể biết mọi thứ về lập trình 100% không thể biết mọi thứ về lập trình.
Và cũng không ai biết mọi ngôn ngữ lập trình, mọi phương thức, mọi thư viện và framework, hoặc giải pháp hoàn hảo cho mọi vấn đề.
Đừng cố để học mọi thứ, thời gian của bạn là hữu hạn, bạn chỉ cần tập trung vào những gì bạn biết và mở rộng xung quanh nó là được rồi.
Cách #13: Học cơ bản trước
Các nguyên tắc cơ bản của lập trình là thứ sẽ gắn bó với bạn suốt cuộc đời lập trình viên của bạn.
Tập trung tìm hiểu vững chắc về vòng lặp, điều kiện, hàm, kiểu dữ liệu và (trong hầu hết các ngôn ngữ) lập trình hướng đối tượng trước khi chuyển sang tìm hiểu về những thứ kiểu "Trending"
Khi nắm được cơ bản đủ tốt, bạn sẽ dễ dàng tìm hiểu được thư viện, framework cho dù nó vừa mới ra mắt.
Bạn cũng sẽ dễ dàng chuyển từ ngôn ngữ này sang ngôn ngữ khác, vì vậy bạn chỉ phải thực sự học chúng một lần - sau đó nếu có học ngôn ngữ mới thì chỉ học cú pháp mới mà thôi.
> Mẹo: Đối với những người chưa biết gì về lập trình, bạn có thể HỌC PYTHON để hiểu các khái niệm cơ bản về lập trình, sau đó chọn học tiếp ngôn ngữ khác (PHP hoặc JAVA) để đi làm. Như vậy sẽ dễ dàng nắm bắt hơn là học ngôn ngữ khó.
Cách #14: Biết sớt Gu Gồ
Bạn có thể tìm thấy mọi thứ trên Google.
Kể cả những thứ bạn nghĩ nó không hề tồn tại, có thể nó đã có giải pháp trên Google.
Vì thế, hãy học sớt Gu Gồ đúng cách bằng 11 Thủ thuật tìm kiếm Google này.
Cách #15: Đừng so sánh với người khác
Nếu không bạn sẽ cảm thấy tự nhục =)).
Vì ngoài kia, có rất nhiều "Con nhà người ta".
Hãy nghĩ xem, ngày xưa bạn đã bao nhiêu lần cảm thấy bực bội khi bố mẹ cứ "Con nhà người ta ..." thế này thế nọ.
Bây giờ bạn lại tự so sánh bản thân mình với người khác để làm gì?
Cứ mạnh thằng nào, thằng đấy học, mạnh thằng nào, thằng đấy làm thôi.
Bonus #1: Học các giải quyết vấn đề
Giải quyết vấn đề là cơ sở đằng sau lập trình. Biết cách giải quyết vấn đề bạn sẽ tìm ra cách để lập trình và vượt qua những khó khăn khi lập trình.
Đây không chỉ là kỹ năng khi lập trình mà còn là cả kỹ năng sống.
Bonus #2: Tìm hiểu về các Design pattern, Best practice phổ biến
Có rất nhiều cách làm phổ biến, tốt mà người ta đã giải rồi.
Việc của bạn là học cách sử dụng nó mà thôi. Không cần phải sáng tạo gì cả. :D.
Bonus #3: Tự thưởng cho chính mình
Hãy coi học lập trình là niềm vui, đừng có quá hà khắc với chính mình.
Cố gắng học tập và tự thưởng cho chính mình mỗi khi tìm hiểu xong một chủ đề nào đó, làm xong một module nào đó.
Việc này giống như đi săn boss, săn thành công thì được đồ ngon, không thành công thì nhịn.
Như thế thì động lực săn boss mới cao và ngày nào cũng căn giờ để đi săn boss.
> Note: Bạn tự hỏi là mình tự thưởng như thế nào? Xem avatar sẽ hiểu nha =)).
Tổng kết
Trên đây là một số cách học lập trình được tổng hợp từ những người cũng đã từng tự học lập trình. Hi vọng là nó sẽ giúp ích cho bạn.
Chúc bạn thực hiện được mục tiêu trở thành lập trình viên của mình.
> Tham khảo: Cách học Java hiệu quả
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp