Trang chủ » Kinh nghiệm học lập trình của bản thân
Chuyện bên lề

Kinh nghiệm học lập trình của bản thân

Bản thân mỗi người luôn có một, hai hay nhiều phương pháp học riêng. Bản thân mình cũng vậy, mình không dám khẳng định rằng cách học của mình là tốt, là ưu việt, nhưng mình đã từng bế tắc không biết học từ đâu, nên mình nghĩ cách của mình sẽ có ích với những ai định hướng phương pháp học của riêng mình 🙂

hoc-lap-trinh

Điều duy nhất mình muốn khuyên các bạn đó chính là:

Đừng “chưa học bò đã lo học chạy”

Bạn thấy rất nhiều người học rất giỏi khi tuổi đời còn rất trẻ, thành đạt khi chỉ vừa đôi mươi, hoặc thậm chí những người xung quanh mình học rất nhiều, biết trước rất nhiều ngôn ngữ lập trình. Và thực tế những người mà mình biết ở cấp 3 rất giỏi về lập trình, biết rất nhiều ngôn ngữ, thì lên đại học lại khá chật vật để qua môn. Vì sao vậy?

Có lẽ bạn chưa biết, học nhiều ngôn ngữ không có nghĩa là bạn đã giỏi. Bản thân lập trình đòi hỏi 1 tư duy tốt, và số lượng ngôn ngữ không quyết định được gì cả. Có thể họ biết rất nhiều, nhưng việc sử dụng nó vào thực tế bao nhiêu lại là 1 chuyện khác. Developer giỏi không nhất thiết phải biết nhiều ngôn ngữ.

Liệu bạn có cần phải học hết số lượng ngôn ngữ trên?

Chính vì vậy, mình khuyên các bạn nên đầu tư vào 1 nền tảng thật tốt. Nền móng thật vững chắc thì khi lên cao, bạn sẽ không choáng ngợp và bỡ ngỡ. Hơn thế nữa, trong quá trình bạn học tập và thực hành, có thể sẽ phát sinh nhiều vấn đề mà sách vở, trường lớp không bao giờ nhắc đến. Như vậy giúp tích luỹ kinh nghiệm cho bản thân nhiều hơn.

Sau đây là những cách giúp bạn học lập trình tốt hơn:

1. Nói không với copy/paste code

Điều này có lẽ rất nhiều người cũng nói rồi, mình cũng chỉ nhắc thêm thôi. Bạn mới học lập trình, tất nhiên khi nhìn những dòng code mẫu có sẵn trên mạng giống như 1 đống “bùi nhùi”. Tâm lý nhiều người rất lười gõ lại, họ nghĩ rằng copy/paste code rồi đọc lại thì sẽ hiểu thôi.

Nhầm to! Bạn chỉ đang là ngồi nhẩm lại những đống hổ lốn mà bạn còn không biết nó là gì. Tất nhiên, đó chính là học vẹt. Và hậu quả của học vẹt thì rất nghiêm trọng, đặc biệt trong lĩnh vực IT này. Nhưng nếu bạn chịu khó mày mò gõ lại, có thể trong lúc gõ sẽ sai, nhưng chính cái sai đó lại giúp bạn không mắc lỗi khi gặp lại. Mặc dù mình có những đoạn code mẫu trong 1 số bài blog, tuy nhiên ngay từ đầu, mình nhắc các bạn không được copy/paste code mà phải tự gõ lại đấy!

copy-paste

Tuy nhiên, chỉ gõ lại 1 cách vô hồn thì nó lại không có tác dụng. Khi gõ lại, bạn phải tìm cách hiểu từng đoạn code, cố gắng hiểu thật rõ, nếu không rõ thì “Google thần chưởng” hoặc hỏi những người khác. Chỉ có vừa gõ lại, vừa tìm hiểu thì bạn mới có thể tiếp thu 1 cách hiệu quả hơn.

2. Đừng chỉ đọc các ví dụ

example

Điều này có lẽ hơi trái ngược với điều trên, tuy nhiên nó lại là sự thật. Thực tế 1 điều rằng, ở hầu hết các trường, deadline và các bài tập nhỏ chỉ dừng ở mức “hiểu”, chứ không thể áp dụng vào thực tế được. Bởi vì thời gian học ở trường là có hạn, cho nên một số bạn chỉ hiểu những ví dụ ấy, chứ thật sự không biết được những ví dụ ấy có tác dụng gì trong thực tiễn.

Như vậy rất nguy hiểm, vì nó tạo cho bạn trở nên “lý thuyết hoá”, hàn lâm, kiến thức thì nhiều nhưng không biết vận dụng những kiến thức trên. Mỗi ví dụ, bài tập nhỏ, deadline nhà trường giao cho các bạn đều nhằm mục đích ôn luyện kiến thức của ngày hôm đó, cho nên nhiệm vụ của bạn là phải tự tìm hiểu những thứ đằng sau nó. Như vậy thì bạn mới có thể làm chủ mớ kiến thức đó.

3. Lười biếng hợp lý

Nghe có vẻ khá mâu thuẫn khi mình lại khuyến khích các bạn lười biếng nhỉ? Bản thân mình rất thích câu nói này của Bill Gates:

Tôi sẽ luôn luôn chọn một người lười biếng để làm những công việc khó khăn, vì họ sẽ tìm cách dễ dàng để làm điều đó.

bill-gates-lazy-quote

Khi bạn hoàn thành 1 bài tập, hay 1 đồ án nhỏ, project,… có bao giờ bạn tự nghĩ rằng “còn cách nào ngắn hơn mà hiệu quả hơn để giải quyết chúng không?“. Thực tế rằng, khi hoàn thành bài tập, đồ án,… một số bạn sẽ không bao giờ tự tìm thêm những cách khác ngắn hơn mà hiệu quả hơn để giải quyết chúng, vì trong đầu bạn sẽ nghĩ rằng “mình đã giải quyết bài tập rồi, cần gì phải làm thêm, cũng nhiêu đó điểm thôi“.

Điều đó thật sự rất nguy hiểm, vì như vậy lâu dần sẽ hình thành tính cách qua loa. Bạn chỉ làm việc 1 cách sơ sài, không hiệu quả. Một lời giải dài dòng thì không có ý nghĩa so với một lời giải khác ngắn gọn hơn phải không nào? Đó chính là sự “lười biếng” của những lập trình viên đấy!

4. Tìm hiểu cách gỡ rối (Debug)

Một ngày đẹp trời, bạn mở máy tính lên và code 1 cách hăng say. Và khi bạn compile nó thì, ôi thôi, 1 loạt các lỗi xổ ra cứ như đập vào mặt bạn. Mình dám cá 1 số bạn sẽ rất hoảng loạn, có thể nản chí và tắt máy tính luôn (thực tế ngày trước mình cũng vậy :v).

Rất mệt mỏi nếu ngày nào code cũng có lỗi phải không?
Rất mệt mỏi nếu ngày nào code cũng có lỗi phải không?

Bạn nên nhớ rằng, không có 1 chương trình nào khi đang phát triển lại không có lỗi cả. Kể cả chương trình của bạn! Việc bạn cần làm là thật bình tĩnh, gỡ từng lỗi một cách từ từ. Các trình biên dịch bây giờ rất hiện đại (như Visual Studio), nó có hỗ trợ các công cụ gỡ rối rất hiệu quả. Việc bạn cần làm là từ từ gỡ rối và học cách sử dụng nó. Có như vậy bạn mới làm chủ những đoạn code của mình.

5. Học từ nhiều nguồn khác nhau

Đôi khi, kiến thức mà bạn thu gom được trong nhà trường, bạn bè là không đủ. Công nghệ bây giờ phát triển rất chóng mặt, mới ngủ tối hôm nay thì sáng mai các nhà lập trình viên tuyên bố tẩy chay C++ chẳng hạn (mình đùa thôi, đừng ném đá tội nghiệp…). Chỉ tiếp thu nguồn kiến thức từ nhà trường là không đủ, bạn cần phải học từ những trang web nổi tiếng, những người thầy, người bạn mà bạn tin tưởng.

Mình xin liệt kê những trang web mình biết:

  • GitHub: cộng đồng open-source lớn nhất thế giới. Bạn có thể lên và chia sẻ code, hoặc tìm code từ những chuyên gia hàng đầu trên thế giới. Ngoài ra bạn có thể trao đổi, thảo luận với những developer khác ở đây.
  • Stackoverflow: có lẽ mình không cần phải nói nhiều về độ nổi tiếng của website này. Bạn có thể tìm câu hỏi của mình trong 1 kho tàng đồ sộ những khúc mắc của các developer trên khắp thế giới. Đây là dịp để bạn trao đổi, học hỏi từ những chuyên gia đấy!
  • W3Schools: kho tàng kiến thức về website. Nếu bạn có đam mê và muốn tìm hiểu về nó, vào đây là có hết. Mình khi mới học lập trình web cũng khá vào đây để tìm hiểu và học tập đấy. Và đây cũng chính là website dạy lập trình web theo chuẩn do chính hiệp hội W3C lập nên.
  • izWebz: mình chập chững bước vào giới lập trình web nhờ vào đây. Đây là trang blog khá nổi tiếng của anh Demon Warlock thành lập nên. Bạn có thể học căn bản từ HTML5, CSS, JS, PHP,.. đến những thứ phức tạp hơn về web như Responsive, MVC, Framework… Đây cũng là trang web mình thích nhất!
  • Dạy nhau học: khá tự hào khi mình nói rằng, đây chính là website dạy học do anh Lê Trần Đạt, cựu sinh viên của trường ĐH Khoa học tự nhiên – ngôi trường mình đang học – lập nên. Có thể nói đây chính là 1 “stackoverflow” phiên bản Việt vậy, và mình rất thường xuyên vào đây để học hỏi.

Tất nhiên, có thể còn rất nhiều những trang tương tự nhưng mình không biết. Và liệu rằng, bookmark trình duyệt của bạn có lưu lại đầy đủ các trang web dạy học không?

6. Code, code nữa, code mãi

Mình rất hay lên blog ITviec và mình khá tâm đắc với câu nói sau:

Không lập trình khi rảnh rỗi không biến bạn thành developer tồi, nhưng lập trình khi rảnh rỗi có thể khiến bạn trở thành developer giỏi hơn

Điều này cũng được rất nhiều người nhắc đến. Chỉ khi bạn bỏ công sức ra làm 1 việc gì đó, bạn mới có thể thu được thành quả. Code cũng vậy. Bạn mơ ước trở thành 1 lập trình viên chuyên nghiệp, thế nhưng mỗi ngày bạn lại tiêu phí phần lớn thời gian vào lướt web, facebook, youtube,… thì “hãy dẹp cái ước mơ vào trong 1 xó nào đó đi”.

Việc code có thể rất nhàm chán, một số bạn nghĩ vậy. Tuy nhiên, nếu bạn thật sự yêu thích và sẵn sàng theo đuổi nó suốt cuộc đời, vậy thì cớ gì bạn không bỏ nhiều thời gian hơn cho nó?

Bạn có thật sự giành nhiều thời gian để lập trình?
Bạn có thật sự giành nhiều thời gian để lập trình?

Trên đây là quan điểm của mình, cảm ơn các bạn đã theo dõi! Xin chào và hẹn gặp lại!

About the author

Võ Hoài Sơn

Tính tình bất định
Chọc vào là bịnh
Rất yêu lập trình
Luôn code hết mình
Mình hiện đang là sinh viên của trường ĐH Khoa học tự nhiên TPHCM. Bản thân rất thích code, kiêm luôn cả mần thơ nên thường hơi hâm hâm dở dở. Ngoài ra chém gió, chém chuối, chém trái cây các kiểu cũng là sở trường của mình. Rất mong được làm quen với các bạn :D

Add Comment