NRL Logo
Neural VN

Newbie vượt qua Coding barrier dễ dàng với những tip sau đây

17/2/202314phút đọc

Coding

Newbie coding

Coding barrier là gì?

Coding barriers (rào cản lập trình) là những khó khăn mà tất cả mọi người đều gặp phải khi học lập trình hoặc làm việc trong lĩnh vực này. Những rào cản này có thể gồm những thách thức về kiến thức và kỹ năng, vấn đề về sự chậm trễ và thiếu động lực, hoặc rào cản về môi trường hoặc xã hội.

Những rào cản đầu tiên này có thể làm nhiều newbie chật vật và bỏ cuộc khi bước vào ngành lập trình. Tuy vậy, chỉ cần vượt qua những Coding barrier đầu tiên thì công việc viết một đoạn mã nguồn (source code) và sửa lỗi (fix bug) sẽ trở nên tự nhiên và trôi chảy hơn rất nhiều.

coding barriers.png

Vậy khi nào thì bạn biết bản thân đã vượt qua được những rào cản lập trình ban đầu? Bạn sẽ có được câu trả lời sau khi trả lời bảng câu hỏi sau của Neural VN:

  1. Bạn đã biết mình phải học ngôn ngữ lập trình nào đầu tiên cho tác vụ (tasks) mình cần thực hiện chưa?
  2. Bạn có thể viết code theo đúng logic suy nghĩ trong đầu chưa?
  3. Bạn đã quen với code bug và thoải mái ngồi sửa?
  4. Bạn đã suy nghĩ theo logic máy tính khi lập trình chưa?
  5. Bạn đã nằm lòng trong tay cách tìm kiếm những tài nguyên khi có câu hỏi xuất hiện?
  6. Bạn yêu thích lập trình?

Nếu bạn cảm thấy bản thân vẫn còn coding barriers nào đó chưa vượt qua hãy cùng Neural VN phân tích chúng và đưa ra giải pháp khắc phục nhé!

Những Coding barrier đầu tiên cần vượt qua

Trong phần này, Neural VN sẽ nêu ra 5 coding barriers cơ bản nhất. Chỉ cần bạn vượt qua được những rào cản cơ bản này, thế giới của lập trình viên sẽ mở ra cánh cửa đầu tiên chào đón bạn. Ở mỗi rào cản, chúng mình cũng sẽ gợi ý những phương pháp để bạn có thể dễ dàng vượt qua nhé!

Coding barrier 1. Khó khăn trong việc chọn lộ trình học, ngôn ngữ cần học để áp dụng

Với số lượng ngôn ngữ lập trình khổng lồ và nhiều lựa chọn lộ trình khác nhau, việc quyết định bắt đầu học từ đâu và đi đến đâu sẽ rất khó khăn đối với những người mới học. Mỗi ngôn ngữ lập trình đều có ưu điểm và hạn chế riêng của nó, và có thể phù hợp với một mục đích hoặc không phù hợp với mục đích khác. Việc chọn sai ngôn ngữ hoặc lộ trình có thể dẫn đến việc mất thời gian và nỗ lực trong việc học một ngôn ngữ không cần thiết hoặc không phù hợp với mục tiêu của người học.

Có một số tiêu chí bạn có thể dùng để xem xét về ngôn ngữ lập trình đầu tiên bạn nên học:

  • Mức độ gần với ngôn ngữ tự nhiên: Lập trình chính là việc viết ra logic để có máy tính có thể hiểu được và thực hiện theo. Chính vì vậy, ngôn ngữ lập trình là công cụ để giao tiếp giữa lập trình viên và máy tính. Cú pháp của ngôn ngữ lập trình càng gần với ngôn ngữ tự nhiên, người dùng càng dễ thực hiện. Bạn nên bắt đầu học với một ngôn ngữ lập trình gần với ngôn ngữ tự nhiên để có thể nắm vững các khái niệm lập trình nhanh chóng và làm quen với cách tư duy của máy tính.
  • Tính đa dạng trong khả năng sử dụng: Có một vài ngôn ngữ lập trình có thể sử dụng đa năng trong nhiều lĩnh vực. Việc học ngôn ngữ lập trình đầu tiên là một ngôn ngữ đa năng giúp bạn có khả năng áp dụng nhiều hơn công cụ mình đã học trong cuộc sống và công việc. Điều này tạo điều kiện rất lớn cho việc tiếp thu của bạn.
  • Cộng đồng hỗ trợ: Một ngôn ngữ lập trình có cộng đồng lớn giúp bạn đi xa hơn rất nhiều trong việc lập trình. Mọi tài liệu, bugs và thắc mắc của bạn có thể dễ dàng tra cứu hoặc hỏi đáp. Điều này là vô cùng quan trọng nếu bạn là một newbie mới bước chân vào ngành.
  • Tiềm năng phát triển: Bạn nên chọn học một ngôn ngữ lập trình được dự đoán là sẽ phát triển và ứng dụng nhiều trong tương lai. Điều này khiến lượng kiến thức bạn sẽ học trở nên giá trị và tuyệt vời hơn.

Cuối cùng, Neural VN cũng không quên nhắc bạn một kinh nghiệm mà newbie lập trình nên biết:

"Học một ngôn ngữ lập trình thứ hai dễ hơn nhiều so với lần đầu tiên, bởi vì các khái niệm và cấu trúc lập trình cơ bản có thể chuyển giao giữa các ngôn ngữ lập trình khác nhau.”

Coding barrier 2. Đau đầu trong việc hiểu cú pháp, ngữ nghĩa của các lệnh và thuật ngữ lập trình

Đối với những người mới bắt đầu học lập trình, một trong những khó khăn đầu tiên chắc chắn gặp phải là việc hiểu cú pháp, ngữ nghĩa của các lệnh và thuật ngữ lập trình. Có quá nhiều thuật ngữ và cú pháp khác nhau, và mỗi ngôn ngữ lập trình đều có cú pháp và thuật ngữ riêng. Việc học và ghi nhớ tất cả những thuật ngữ và cú pháp này đôi khi có thể trở nên rất khó khăn và đòi hỏi sự kiên nhẫn và nỗ lực. Nếu không hiểu rõ cú pháp và ngữ nghĩa của các lệnh và thuật ngữ, thì sẽ rất khó để viết được code chính xác và hiệu quả.

Ví dụ, một người mới bắt đầu học lập trình Python có thể gặp khó khăn trong việc hiểu ý nghĩa của các lệnh cơ bản như "if", "else", "while", "for", và các biểu thức điều kiện như "and", "or", "not". Người mới cũng có thể gặp khó khăn trong việc hiểu cách các đối tượng được định nghĩa và sử dụng trong Python, ví dụ như chuỗi (string), danh sách (list), và từ điển (dictionary).

Trong trường hợp người mới học cú pháp Python muốn in ra một dòng văn bản đơn giản trên màn hình, họ có thể gặp khó khăn trong việc sử dụng lệnh "print" cùng với các tham số đầu vào. Người học không biết rằng phải sử dụng cặp dấu ngoặc kép để bao quanh chuỗi ký tự, hoặc không đặt chính xác các dấu ngoặc đơn hay kép, hoặc không sử dụng dấu phẩy để phân tách các giá trị. Điều này có thể dẫn đến các lỗi cú pháp hoặc in ra các kết quả không đúng.

Để giải quyết khó khăn này, tất nhiên người học cần phải dành thời gian để học cách đọc tài liệu lập trình và thực hành viết code để có thể trau dồi kỹ năng và nâng cao hiểu biết của mình. Một tài liệu tốt mà newbie nên tham khảo chính là Cheat Sheet - một bảng ghi lại tóm tắt tên gọi, chức năng, cách dùng của câu lệnh cũng như thư viện trong lập trình. Chúng ta có thể dễ dàng tìm được những bảng Cheat Sheet này trên Google theo nhưng từ khóa như: “Python Cheat sheet”, “HTML Cheat sheet”, “Vizualization in Seaborn Python Cheat sheet” v.v. Những người mới trong học lập trình cũng nên tự tạo cho mình những bảng tổng hợp những bug hay mắc phải và cách xử lý, những khái niệm lập trình cơ bản cũng như ghi chú riêng của bản thân.

“Cheat sheet trong lập trình là một tài liệu tóm tắt các lệnh, cú pháp và ngữ nghĩa của một ngôn ngữ lập trình để giúp nhớ và tra cứu nhanh chóng.”

Coding barrier 3. Kiệt sức vì lỗi (bug)

Debugging (tìm lỗi và sửa lỗi) là một quá trình tốn thời gian và công sức, đôi khi bạn có thể dành nhiều giờ chỉ để tìm ra một lỗi nhỏ trong code. Khó khăn này có thể bắt nguồn từ nhiều nguyên nhân khác nhau, ví dụ như thiếu kinh nghiệm trong việc phân tích lỗi, không hiểu rõ cách hoạt động của một số công cụ hỗ trợ debugging, hoặc còn có thể do thiếu kiên nhẫn và sự kiên trì trong việc tìm kiếm lỗi.

Ban đầu khi mới học lập trình, bạn còn có thể gặp một số lỗi rất nhỏ và vụn vặt chỉ vì “nhớ nhớ quên quên”. Bạn có thể đặt tên biến không giống nhau, gõ thiếu kí tự trong câu lệnh, đặt sai dấu cách trong câu lệnh Python, v.v. Những lỗi này đối với những người đã có kinh nghiệm code sẽ gần như không mắc phải hoặc có thể nhận ra và xử lý nhanh chóng. Tuy vậy, đối với newbie thì những lỗi đơn giản này lại vô cùng mất thời gian và gây mệt mỏi, giảm động lực để tiếp tục học code.

Debugging là một kỹ năng quan trọng của một lập trình viên, và nếu bạn là người mới học code thì cần phải dành thời gian để học và rèn luyện nó. Vì vậy đừng để những bug đơn giản ban đầu đánh bại quyết tâm của bạn.

Để giảm thiếu những khó khăn về bug và làm quen với công việc debug, các newbie có thể tiến hành theo những bước sau:

  1. Chuẩn bị: Các ban hãy tìm cho mình một IDE có giao diện và màu sắc phân biệt dễ nhìn, đôi khi bạn có thể tuy chỉnh theo nhưng kinh nghiệm cá nhân. Sử dụng một công cụ hỗ trợ debugging thân thiện và sử dụng tốt cho newbie. Đọc về Coding Style Rules của ngôn ngữ bạn đang học để dễ dàng xem lại và tránh được những sai lầm cơ bản.
  2. Đọc hiểu: Việc đọc hiểu lỗi là bước đầu tiên để có thể tìm và sửa lỗi. Bạn cần kiến thức để phân biết các loại lỗi (Syntax errors, Runtime Errors, Indentation Errors, …) và tìm được vị trí của những đoạn code lỗi trên thông báo bug của terminal.
  3. Tìm cách sửa lỗi: Bạn có thể sửa lỗi bằng cách suy luận lại logic code, xem tài liệu, sửa lỗi bằng kinh nghiệm bản thân hoặc đặt câu hỏi và tìm câu trả lời trên các diễn đàn như Stackoverflow, Reddit, …

"Có hai điều chắc chắn trong lập trình: một là bạn sẽ phải đối mặt với bug, hai là bạn sẽ học được cách sửa chúng một cách vui vẻ”

Coding barrier 4. Chưa thể xây dựng logic máy và giải quyết vấn đề.

Một rào cản nữa của một người mới học lập trình chính là khả năng tư duy để viết code. Mặc dù việc chạy một chương trình cũng dựa theo chu trình nhất định, cách giải quyết vấn đề cũng rất logic. Nhưng máy tính và ngôn ngữ vẫn có những cách hoạt động và xử lý thông tin cố định, không linh hoạt như bộ não con người. Chính vì vậy, việc làm quen với logic máy và viết ra mã nguồn hoàn thành những công việc nhất định cần có những kiến thức về suy luận và cách hoạt động của máy tính.

Một ví dụ đơn giản, đề bài được đưa là Kiểm tra xem số nguyên n có chi hết cho 6 hay không (0 < n < 1000)

Với tư duy toán học bình thường, chúng ta sẽ tìm xem n có thỏa mãn điều kiện chia hết cho 2 (Tận cùng là 0,2,4,6,8) và chia hết hết cho 3 (Tổng các chữ số chia hết cho 3)

Nhưng nếu code trên máy tính, bạn hãy đơn giản sử dụng toán tử chia lấy phần nguyên cho 6 và so sánh kết quả với 0 để đưa ra kết luận.

Một ví dụ khác là khi người mới học muốn tạo một chương trình đơn giản để tính tổng các số chẵn trong một danh sách các số nguyên. Họ có thể không biết cách sử dụng vòng lặp để duyệt qua từng phần tử của danh sách và kiểm tra xem số đó có chẵn hay không, sau đó cộng dồn vào một biến tạm để tính tổng. Họ cũng có thể gặp khó khăn trong việc xử lý trường hợp danh sách rỗng hoặc danh sách không chứa số chẵn nào.

Phương pháp để giải quyết vấn đề này chủ yếu dựa vào khả năng học tập và suy luận hình thành từ kinh nghiệp lập trình. Với newbie, để làm quen với logic máy có thể tham khảo một số những kiến thức nên tảng về cấu tạo máy tính, kiến thức Toán rời rạc, v.v.

Tiếp theo đó, các bạn cần đặt bản thân vào vị trí của máy và làm quen với việc tư duy theo code. Luyện tập những bài tập thuật toán cơ bản cũng là một phương pháp có hiệu quả giúp bạn nâng cao năng lực này.

Cuối cùng, Neural VN muốn nhắn nhủ đến các bạn newbie:

“Hãy tư duy như máy, đừng tư duy như người”

Coding barrier 5. Thiếu động lực để bắt đầu học tập

Coding barrier cuối cùng được Neural VN đề cập đến nhưng lại là coding barrier các bạn newbie nên vượt qua đầu tiên. Học tập lập trình hay một kỹ năng mới bao giờ cũng tồn tại những khó khăn mà bạn cần vượt qua. Để xây dựng những động lực học tập lâu dài, Neural VN gợi ý bạn có thể suy nghĩ theo các bước sau:

  • Xác định mục tiêu: Bạn không thể bay nếu bạn không biết mình sẽ đáp xuống ở đâu. Xác định mục tiêu là bước đầu để bạn có thể học lập trình. Hãy xây dựng cho mình một lộ trình học tập và những thành công bản thân sẽ đạt được sau mỗi giai đoạn.
  • Tập trung vượt qua coding barriers: Trong khoảng thời gian đầu học lập trình, các bạn hãy dành nhiều hơn một chút cố gắng và kiên trì cho việc học. Chỉ cần vượt qua những coding barriers ban đầu, việc học tập của bạn sẽ trơn tru và mượt mà hơn rất nhiều.
  • Xây dựng thói quen: Học lập trình cũng như học một ngôn ngữ. Nếu bạn lâu không thực hành, khả năng code và tư duy của bạn sẽ giảm đi. Vì thế, các bạn newbie hãy cố gắng xây dựng một thói quen luyện tập nhé.
  • Cập nhật công nghệ: Lập trình viên luôn phải bắt kịp xu hướng công nghệ và thay đổi thích ứng. Điều này không giúp bạn sử dụng được những công nghệ mới, những công cụ mới làm cho công việc của bản thân trở nên dễ dàng hơn rất nhiều. Chính vì điều đó, đừng quên theo dõi những chương trình công nghệ, đọc báo và blog, không ngần ngại thử sức với những công nghệ mới bạn nhé!

Kết luận

Nếu bạn chưa bắt đầu học lập trình, hãy thử bắt đầu ngay hôm nay và không bao giờ ngừng học tập. Bằng sự kiên trì và nỗ lực, bạn có thể đạt được mục tiêu mà mình muốn khi học code. Hãy tận dụng các nguồn tài nguyên học tốt như sách, trang web, video hướng dẫn và các khóa học trực tuyến để giúp bạn vượt qua những Coding barriers đầu tiên.

Cùng tham khảo những bài viết trong series Newbie lập trình của Neural VN nhé!