Một trong những kỹ năng quan trọng nhất mà tất cả sinh viên theo ngành CNTT cần phải biết chính là kỹ năng lập trình. Đây là một kỹ năng khó yêu cầu sinh viên phải thực sự nỗ lực, kiên trì để có thể “vượt vũ môn” thành công. Nếu các bạn thực sự có niềm đam mê và học tốt lập trình thì cơ hội việc làm với mức thu nhập cao sẽ luôn rộng mở sau khi tốt nghiệp. Ở bài viết này, tôi sẽ nêu ra các khó khăn, phân tích các sai lầm phổ biển mà đa phần sinh viên CNTT thường gặp khi học lập trình đồng thời chia sẻ một số kinh nghiệm để giúp các bạn học lập trình hiệu quả & thành công.
1. Khó khăn, thử thách khi học lập trình
-
Có nhiều ngôn ngữ lập trình khác nhau
Sự phát triển nhanh chóng của công nghệ dẫn đến việc có nhiều ngôn ngữ lập trình mới ra đời. Sinh viên mới bắt đầu làm quen tiếp cận với lập trình sẽ có nhiều bỡ ngỡ khi không biết nên lựa chọn ngôn ngữ nào để học hay cố gắng học được càng nhiều loại càng tốt. Thực ra cái cốt lõi của lập trình chính là tư duy lập trình. Một khi bạn đã có tư duy lập trình tốt thì việc học hỏi tiếp thu một ngôn ngữ mới không còn là rào cản nữa.
- Cú pháp câu lệnh phức tạp, nhiều từ khóa
Tùy thuộc vào thiết kế của nhà phát triển, mỗi ngôn ngữ lại có một tập từ khóa và cú pháp khác nhau dẫn đến khó khăn khi tiếp thu nhiều ngôn ngữ lập trình cùng một lúc. Sinh viên dễ bị nhầm cú pháp hay từ khóa của ngôn ngữ này với ngôn ngữ kia. Ngoài một số cấu trúc hay từ khóa dùng chung thì cũng có những từ dùng riêng hoặc từ đặc biệt khó nhớ và ít vận dụng trong thực tế.
- Nhiều kiến thức lập trình khó
Học lập trình ở mức độ cơ bản để giải quyết các bài toán đơn giản thì không khó. Tuy nhiên càng học các bài nâng cao thì độ phức tạp và độ khó cũng tăng theo tỷ lệ thuận. Nếu sinh viên không có nền tảng kiến thức vững chắc, tư duy lập trình tốt thì sẽ khó theo được nội dung của môn học.
- Dễ cảm thấy nản chí
Đặc thù của việc lập trình là việc học và thực hành với những dòng code khô khan buồn tẻ không tạo nhiều sự hứng thú đối với sinh viên như những môn học khác. Ngoài ra với việc có quá nhiều ngôn ngữ, mỗi ngôn ngữ lại có một tập từ khóa riêng rồi cú pháp câu lệnh cũng khác nhau khiến cho sinh viên dễ cảm thấy chán nản và muốn buông xuôi.
- Đòi hỏi khả năng tư duy tốt, tính sáng tạo cao
Môn lập trình cũng có phần giống với môn toán. Đấy là yêu cầu sinh viên phải có khả năng tư duy tốt cũng như tính sáng tạo cao. Để rèn luyện các kỹ năng này ngoài việc “giỏi bẩm sinh” thì sinh viên cũng cần phải trau dồi việc lập trình mỗi ngày. Khi các bạn thực hành nhiều, gặp nhiều bài toán thử thách mới, xử lý được các lỗi mới thì các bạn sẽ tích lũy được thêm kiến thức kinh nghiệm góp phần nâng cao các kỹ năng này.
- Đòi hỏi khả năng tự học, tự tìm hiểu
Kỹ năng tự học luôn là một trong những kỹ năng quan trọng và cần thiết cho tất cả các môn học đặc biệt đối với môn lập trình. Để học giỏi lập trình thì sinh viên cần có khả năng tự học, tự tìm hiểu các nguồn tài liệu khác nhau từ Internet, báo đài,…
- Trình độ tiếng Anh kém
Sinh viên cần phải có một khả năng ngoại ngữ (tiếng Anh) khá tốt để có thể đọc hiểu các nội dung được truyền tải trên lớp học, slide bài giảng, video hướng dẫn, sách báo, tạp chí. Việc học kém tiếng Anh sẽ dẫn đến hạn chế rất lớn khi muốn tiếp thu kiến thức mới hay tìm hướng giải quyết một vấn đề cụ thể.
- Không biết nên bắt đầu từ đâu và như thế nào
Một trong những câu hỏi phổ biến mà các sinh viên năm nhất hay dành cho các giáo viên CNTT là “em mới bắt đầu lập trình thì em nên bắt đầu từ đâu và học như thế nào cho hiệu quả”. Các bạn nên tìm kiếm sự chia sẻ từ những người có kinh nghiệm lập trình lâu năm để có được những lời khuyên bổ ích và chân thành nhất.
2. Sai lầm phổ biến khi học lập trình
- Dành nhiều thời gian nghiên cứu nhưng lại ít tập luyện
Một trong những sai lầm lớn nhất của sinh viên khi học các môn lập trình đấy là dành nhiều thời gian để đọc, tìm hiểu nhưng lại không thực hành thực tế. Về cơ bản học lập trình không khó nếu đã có kiến thức nền tảng nhưng chúng ta sẽ dễ quên nếu không thực hành nhiều. Cũng như các môn học khác, việc học (lý thuyết) phải luôn đi đôi với hành (luyện tập). Với môn lập trình, chỉ có đọc hiểu và làm theo mới giúp các bạn cải thiện tư duy & kỹ năng lập trình.
- Học lập trình mà không có mục tiêu cụ thể
Có một sự thật hiện nay là nhiều bạn sinh viên chỉ đi học mà không có một mục đích cụ thể, không xác định học để làm gì mà chỉ đơn giản đi học vì việc đấy là bắt buộc, đi học chỉ để đủ điều kiện đi thi mà không hề có chút hứng thú hay yêu thích nào. Mục đích thực sự việc đi học trên trường lớp ngoài việc nâng cao kiến thức thì cũng là để mở mang thế giới quan của mình. Chúng ta phải nhận thức rằng việc học là cả một quá trình dài chứ không phải là kết quả để hướng đến.
Đối với sinh viên, các môn học lập trình luôn được xem là khó khăn khô khan thì các bạn có 2 lựa chọn: từ bỏ chấp nhận buông xuôi để thi lại, học lại hoặc là chấp nhận thử thách kiên trì rèn luyện để tìm thấy niềm đam mê yêu thích với môn học này. Tuy nhiên, đối với các lập trình viên chuyên nghiệp thì họ theo đuổi công việc với những mục tiêu rõ ràng như chạy đua với deadline, gia tăng thu nhập. Khi đã có mục tiêu cụ thể thì họ sẽ có thêm động lực quyết tâm để vượt qua những khó khăn thử thách này.
Vậy nên các bạn nên đặt ra cho mình những mục tiêu cụ thể dù là ngắn hạn (qua môn, đạt điểm cao) hay là dài hạn (theo nghề, kiếm nhiều tiền) mà bạn cảm thấy thiết thực và có thể đạt được. Có như vậy thì bạn mới có thêm động lực khi học lập trình.
- Cố gắng tìm hiểu nhiều công nghệ, ngôn ngữ cùng một lúc
Công nghệ thông tin là một lĩnh vực rộng lớn có nhiều mảng kiến thức chuyên ngành khác nhau. Vậy nên sinh viên dễ bị phân tán tư tưởng hay thời gian công sức để tìm hiểu những công nghệ mới, các ngôn ngữ lập trình khác nhau trong khi kết quả đạt được lại không như ý. Bạn nên có một định hướng cụ thể, kế hoạch rõ ràng ví dụ như thời điểm này nên ưu tiên tìm hiểu công nghệ gì hay học ngôn ngữ nào. Có như vậy thì việc học lập trình mới hiệu quả và thiết thực.
- Có nhiều ngắt quãng trong quá trình học
Ở một khía cạnh nào đấy, học lập trình cũng tương tự như học ngôn ngữ. Để việc học tập đạt kết quả tốt chỉ có một cách duy nhất là không ngừng tập luyện, nâng cao kỹ năng bằng việc code mỗi ngày. Nếu bạn học tốt môn Toán, có tư duy tốt thì mới đầu học lập trình bạn sẽ thấy thú vị hứng thú và bạn nghĩ là nó dễ nên không thực hành nhiều. Tuy nhiên nếu bạn không thực hành thường xuyên thì kiến thức sẽ bị lãng quên. Khi học sang phần nội dung kiến thức mới cần vận dụng kiến thức cũ mà bạn không nhớ lúc ấy thì bạn phải học lại từ đầu. Vậy nên các bạn sinh viên luôn phải ghi nhớ trong đầu là không được phép nghỉ ngơi ngắt quãng việc học lập trình quá lâu, luôn luôn dành thời gian cho việc viết code hàng ngày để có được kết quả tốt nhất.
- Nghĩ rằng chỉ cần học ngôn ngữ là đủ
Nhiều bạn sinh viên có suy nghĩ là chỉ cần học tốt một vài ngôn ngữ lập trình phổ biến là có thể trở thành một lập trình viên giỏi kiếm được nhiều tiền trong tương lai. Tuy nhiên việc lập trình cần nhiều kỹ năng hơn thế. Ngoài việc code tốt, thì một lập trình viên cần có các kỹ năng mềm khác như: giải quyết vấn đề, tư duy logic, làm việc nhóm, … Các bạn nên tập thói quen tư duy logic tìm ra giải pháp hợp lý nhất để giải quyết bài toán trước khi ngồi viết code.
- Không coi trọng việc đọc hiểu code
Một trong những sai lầm khác của đa số sinh viên khi học lập trình là chỉ tìm cách để cho code chạy được đúng theo yêu cầu của bài tập mà không để ý bận tâm xem code chúng ta viết có dễ đọc, dễ hiểu đối với người khác hay không. Điều này sẽ gây khó khăn khi một thời gian dài sau đấy chúng ta đọc lại code sẽ cảm thấy khó hiểu vì không biết tại sao lại viết code như vậy, tại sao lại khai báo hàm này tại sao lại sử dụng cấu trúc kia,… Do đó, các bạn nên tập thói quen trình bày code rõ ràng sạch đẹp có sử dụng ghi chú (comment) ở các vị trí hợp lý trong code để thuận tiện cho việc tra cứu & tìm hiểu lại code sau này.
- Không có thói quen kiểm tra code thường xuyên
Có một thực tế là code bạn viết có thể hoạt động không chính xác, không đúng theo yêu cầu của bài toán hoặc khác với mong muốn ban đầu của bạn. Vậy nên hãy luôn kiểm tra sau khi viết xong mỗi đoạn code chứ đừng viết xong xuôi cả chương trình rồi mới chạy thử một lần vì như vậy có khả năng là code sẽ tồn tại nhiều lỗi dẫn đến việc debug sẽ tốn nhiều thời gian và công sức hơn.
- Tự học code một mình
Tự học là kỹ năng thực sự cần thiết khi học lập trình. Ngoài giờ học trên lớp thì sinh viên có thể tự học từ nhiều nguồn khác nhau như tài liệu môn học, internet, sách vở,… Tuy nhiên, việc học lập trình sẽ trở nên hiệu quả hơn khi các bạn gia nhập tham gia các diễn đàn online trên mạng, học hỏi trao đổi với thầy cô bạn bè giỏi. Điều này đặc biệt đúng khi bạn gặp phải một vấn đề hoàn toàn mới mà không biết bắt đầu từ đâu hoặc gặp mỗi loại lỗi mới phức tạp mà bạn chưa gặp ban giờ. Hãy tham gia vào các cộng đồng lập trình online cũng như offline, bạn có thể chia sẻ kiến thức, trao đổi kinh nghiệm với nhiều người có cùng đam mê. Điều này thực sự sẽ giúp bạn thuận lợi và dễ dàng hơn để tiến tới con đường trở thành một lập trình viên giỏi trong tương lai.
3. Kinh nghiệm khi học lập trình
- Kiên định và không từ bỏ
Lập trình không bao giờ được xem là môn học dễ dàng đặc biệt đối với sinh viên mới. Vì thế rất nhiều sinh viên đã cảm thấy nản chí và muốn buông xuôi. Nếu các bạn không đủ quyết tâm ý chí thì chắc chắn việc học lại là chuyện tất yếu. Luôn luôn kiên định và không bao giờ xuất hiện tư tưởng từ bỏ chính là chìa khóa để giúp các bạn vượt qua môn lập trình thành công.
- Tự làm những project nhỏ
Khi tự học lập trình thì ngoài việc làm các bài tập trên lớp hay thực hành theo các ví dụ nhỏ ở trên mạng, các bạn sinh viên nên tự chủ động nghĩ ra các project nhỏ có vận dụng các kiến thức đã được học. Như vậy vừa giúp ôn luyện kiến thức và tạo sự hứng khởi cho học tập.
- Học chậm mà chắc hơn là học nhanh để rồi quên
Trong việc học lập trình, tốc độ không quyết định tất cả. Có một số bạn trước khi bắt đầu học các môn lập trình thì đã biết qua về lập trình trước đây rồi nên tiếp thu rất nhanh. Nhưng càng về sau thì những bạn này càng bị thụt lùi và bỏ lại phía sau. Đơn giản là vì họ đã đi quá nhanh, họ tự tin là đã biết tất cả nên lại càng chủ quan. Thực tế là việc học lập trình là cả quá trình tích lũy kiến thức, thực hành thường xuyên thì mới thành thạo được. Để bắt đầu với việc học lập trình thì yếu tố tiên quyết là có một nền tảng tốt. Nền tảng này được xây dựng từ quá trình thực hành viết code mỗi ngày, khi bạn viết nhiều hay viết code có lỗi thì bạn sẽ đúc rút được kinh nghiệm có thêm bài học để từ đấy bạn tìm ra hướng giải quyết hiệu quả nhất cho từng vấn đề. Bạn nên giữ tốc độ ổn định và vừa phải, không nên đi quá nhanh cũng như không nên đi quá chậm.
- Đừng bao giờ chỉ copy và paste code rồi chạy
Cần phải nhấn mạnh lại rằng việc tự học một ngôn ngữ lập trình cũng giống như khi các bạn học một ngoại ngữ mới. Bạn cần phải tự luyện tập bằng cách viết, gõ các đoạn câu lệnh. Chỉ có như vậy mới giúp các bạn học thuộc được các từ khóa, cấu trúc, cú pháp của từng ngôn ngữ khác nhau. Còn nếu chỉ đơn giản là lên mạng tìm đáp án, giải pháp mẫu cho vấn đề rồi copy paste về máy để chạy thì bạn sẽ không bao giờ nhớ được. Nguyên tắc này tuy có vẻ đơn giản và dễ nhớ nhưng không phải bạn sinh viên nào cũng vận dụng tốt trong thực tế.
- Học luôn phải đi đôi với hành
Trong thời đại thông tin phổ biến như hiện nay thì bạn có thể tìm được rất nhiều nguồn tài liệu khác nhau từ các website, forum để tự học lập trình. Hoặc bạn có thể xem video hướng dẫn code trên youtube để việc tiếp thu kiến thức dễ dàng và nhanh hơn. Tuy nhiên nếu bạn chỉ đọc hoặc xem hướng dẫn mà không thực hành thì hiệu quả sẽ rất thấp vì bạn có thể quên ngay kiến thức đấy. Vậy nên việc tự học phải đi kèm với việc thực hành. Các bạn xem hướng dẫn đến đâu thì gõ code theo đến đấy, như vậy mới thực sự hiểu và nhớ lâu được. Hoặc tốt hơn hết là bạn tự gõ lại mà không nhìn hướng dẫn, có thể bạn sẽ gõ sai hoặc quên một phần nào đấy nhưng đấy là chuyện bình thường. Bạn nên thử ngối suy nghĩ xem bổ sung hoặc sửa code thế nào cho đúng trước khi xem lại hướng dẫn.
- Code, code nữa, code mãi
Trong tiếng Anh có một câu nói nổi tiếng đấy là “Practice makes perfect”. Đúng vậy, chỉ có luyện tập thực hành liên tục và thường xuyên mới giúp các bạn trau dồi kỹ năng code được tốt hơn. Nếu các bạn gặp lỗi sai thì ngồi sửa lại, nếu gặp lỗi thì tìm cách sửa, luôn luôn tìm cách giải quyết được vấn đề một cách nhanh và hiệu quả nhất, có thể nhờ sự trợ giúp từ Google, bạn bè hoặc thầy cô nếu vấn đề gặp phải rất phức tạp. Tuy nhiên các bạn nên hạn chế làm như vậy vì như thế sẽ nảy sinh tâm lý ỷ lại phụ thuộc vào sự giúp đỡ. Trong khi cách học tốt nhất đối với lập trình là tự tìm hiểu tự mày mò vì một trong những đặc điểm của lập trình là tư duy độc lập và khả năng sáng tạo của cá nhân. Lời khuyên ở đây là sinh viên nên rèn luyện tính tự giác và tư duy chủ động khi theo học các môn lập trình.
- Luôn tự thử thách bản thân
Tự nghĩ ra vấn đề chủ đề mới để tự thách thức bản thân. Đây là một trong những cách hiệu quả nhất để giúp bạn code giỏi hơn theo thời gian. Ví dụ bài tập mà thầy cô giao chỉ có 3 yêu cầu thì bạn tự đặt thêm yêu cầu số 4, 5 khó hơn và tự tìm cách giải quyết vấn đề đấy. Như vậy bạn sẽ cải thiện được khả năng tư duy tính sáng tạo bằng cách tự thách thức tự đặt ra vấn đề trở ngại cho bản thân.
- Học lập trình từ nhiều nguồn khác nhau
Ngoài kiến thức các bạn tiếp thu được trên trường lớp từ thầy cô thì các bạn có thể tự học ở nhà từ nhiều nguồn khác nhau. Tuy nhiên, số lượng lớn tài nguyên vừa là thuận lợi (tính đa dạng) và cũng vừa là khó khăn (biết chọn lọc). Việc lựa chọn tài liệu phù hợp chỉ có thể được thực hiện thông qua quá trình tích lũy kinh nghiệm kiến thức theo thời gian.
- Học cách sửa lỗi bằng công cụ debug
Việc gặp lỗi khi viết code là chuyện hết sức bình thường. Thay vì phải tự mò mẫm trong từng đoạn code để tìm lỗi thì các bạn nên tận dụng công cụ Debug có sẵn trong các IDE (môi trường phát triển tích hợp). Việc debug giúp chúng ta theo dõi sự thay đổi giá trị của từng biến theo thời gian thực. Một sinh viên giỏi lập trình thì cần phải thành thạo các thao tác Debug. Các bạn cũng nên học các phím tắt trong IDE để có thể debug nhanh chóng và thuận tiện hơn.
- Hãy viết code theo cách riêng của bản thân
Chúng ta đều biết mỗi một bài toán lập trình sẽ có nhiều giải pháp hướng giải quyết khác nhau. Khi bạn học trên lớp thì các thầy cô thường dạy sinh viên tư duy theo một hướng nào đấy cụ thể. Nếu bạn chỉ thực hành lại theo đúng hướng dẫn như vậy thì rất khó để trở thành một người code giỏi vì đơn giản tư duy của bạn đã bị thu hẹp lại rồi. Bạn nên tự thử code theo tư duy hướng riêng của mình để tìm ra điểm mạnh điểm yếu của phương pháp đấy. Việc này giúp bạn rèn luyện tính tư duy sáng tạo vốn là yếu tố quan trọng cần phải có khi tự học lập trình.
4. Bí quyết thành công khi học lập trình
- Có niềm đam mê với ngành CNTT nói chung và việc học lập trình nói riêng
- Có tư duy lập trình tốt giúp giải quyết vấn đề một cách chính xác và hiệu quả
- Có kỹ năng tiếng Anh tốt, đặc biệt là kỹ năng đọc và nghe để hiểu tài liệu
- Có 1 nền tảng vững chắc về CNTT và ngôn ngữ lập trình
- Có 1 mentor tốt (bạn bè, giáo viên, anh chị khóa trước) để giúp bản thân có định hướng rõ ràng
- Có 1 lộ trình học bài bản và khoa học: học ở trường, học ở nhà (tham gia các course online)
- Có kỹ năng tự học tốt để tự trau dồi kiến thức và kỹ năng lập trình
- Có kỷ luật bản thân cực kỳ tốt để không ngừng cố gắng và rèn luyện mỗi ngày
Thầy viết dễ hiểu quá ạ
Biết code giỏi bằng 1 ngôn ngữ lập trình cũng nên được tính là biết 1 ngoại ngữ thầy nhỉ 😀