Sự cần thiết của việc học lập trình trong thời đại hiện nay là không thể phủ nhận. Có  người còn ví von việc học ngôn ngữ lập trình giống như một môn Ngữ văn mới.

Thế giới đang bước vào kỷ nguyên công nghệ, và ngày càng có nhiều người trau dồi thêm kiến thức về lập trình để đảm bảo bản thân không bị lạc hậu và nắm chắc trong tay các công việc có thu nhập cao.

2 nhận định sai lầm về việc học lập trình

Đây là một trong những câu hỏi phổ biến nhất mà tôi nhận được – “Có quá nhiều ngôn ngữ lập trình, tôi không biết phải bắt đầu từ đâu. Đâu là ngôn ngữ giúp tôi có mức thu nhập ổn định?”

Bạn chắc hẳn cũng đang có những băn khoăn này.

Và chắc chắn nhiều người sẽ rối tung giữa hàng đống lựa chọn. (Và) phần nhiều sẽ đi tham khảo ý kiến người khác (giống như tôi đã từng) và nhận được những câu trả lời như:

“Tôi YÊU JavaScript. Nó là tốt nhất!”

“Python là ngôn ngữ tuyệt vời nhất và tôi không bao giờ thèm ngó ngàng tới ngôn-ngữ-ABC-nào-đó”

“C là lựa chọn sáng suốt và nó bao hàm hết toàn bộ nền tảng”

“Ruby là ngôn ngữ dễ dùng nhất! Hãy học nó đi!”

Sẽ có lúc bạn cảm thấy, gần như TẤT CẢ đều là TỐT NHẤT và bạn lại quay lại điểm bắt đầu của vấn đề.

Đây là lúc bàn tới 2 nhận định sai lầm về việc học lập trình.

SAI LẦM #1: Bạn chỉ cần thành thạo 1 ngôn ngữ lập trình duy nhất

Hãy quên hết mớ ý kiến của đám đông đi vì sẽ không bao giờ có hồi kết cho cuộc tranh luận ngôn ngữ lập trình nào đáng học nhất. Và đây là một điều mà tôi phát hiện ra rằng không có ai đề cập tới: “Đám cưới của bạn chưa chắc sẽ diễn ra với mối tình đầu!”

Công nghệ không ngừng thay đổi nhanh chóng, bạn sẽ được kỳ vọng có thể đảm nhiệm nhiều hơn một ngôn ngữ lập trình, sử dụng nhiều frameworks khác nhau. Có thể nói đối với ngôn ngữ lập trình, bạn đang ở trong chế độ “đa thê”. Các công ty công nghệ thông thường đều sử dụng nhiều frameworks & ngôn ngữ lập trình khác nhau cho những nhu cầu khác nhau.

Và vì mọi thứ luôn biến đổi, những gì được ưa chuộng ngày hôm nay chưa chắc sẽ là tâm điểm của ngày mai. Ngôn ngữ chỉ là một phần nhỏ trên bước đường lập trình.

Những điều bạn cần làm không chỉ là học 1 ngôn ngữ lập trình. Bạn cần học cách để trở thành một lập trình viên sẵn sàng thích ứng với mọi thay đổi.

SAI LẦM #2: Học ngôn ngữ lập trình quan trọng hơn xây dựng nền tảng căn bản

“Học cách dùng NodeJS và làm theo từng bước của framework là đủ”

“Cứ học thẳng luôn Django hoặc Ruby, cần gì phải băn khoăn cách xây dựng lại mọi thứ từ đầu”

Đó là lời khuyên của rất nhiều người. Nhưng nó thật sự rất nguy hiểm. Bất cứ ai nói với bạn những điều tương tự như trên đều đang đẩy bạn đến bờ vực của sự thất bại trong tương lai.

Bạn muốn trở thành Software developer, không phải một lập trình viên theo khung mẫu. Framework có thể bị “thất sủng” bất kỳ lúc nào và đó là “chuyện bình thường ở huyện”.

Có nhiều công ty lựa chọn không dùng tới framework để xây dựng các nền tảng công nghệ, hoặc có thể họ sẽ dùng framework nhưng biến tấu lại dựa trên như yêu cầu của công ty.

Trong những trường hợp này, bạn cần có kiến thức nền vững vàng. Framework được tạo ra để giúp cho cuộc sống của bạn dễ dàng hơn. Nó tuỳ thuộc vào lĩnh vực bạn lập trình và bạn cần hiểu được bản chất của các framework.

Sử dụng framework thì dễ, NHƯNG hiểu được bản chất mới là vấn đề quan trọng. Thực tế, việc thấu hiểu này sẽ giúp bạn thích các framework hơn rất nhiều.

Gạt bỏ những nhận định sai lầm đi!

Nếu bạn đã từng nghe theo những quan điểm sai lầm trên, bạn sẽ khó trở thành một lập trình viên giỏi nếu không sớm gạt bỏ chúng ra khỏi đầu!

Chúng ta sẽ bàn thêm về việc điều gì tạo nên một lập trình viên giỏi trong những lần tới. Nhưng trước đó, hãy bàn tới một số điều quan trọng chính yếu mà chưa có ai từng nói với bạn khi bắt đầu học lập trình.

Bạn sẽ bắt đầu học lập trình như thế nào?

Sự thật là: Đừng băn khoăn về những điều vẩn vơ như tại sao bạn nên học ngôn ngữ lập trình này, framework kia.

Mục tiêu đầu tiên của bạn nên là “Viết những dòng code đầu tiên” (Thật đó!)

Mục tiêu thứ 2 là “Biến việc học lập trình trở nên đơn giản và nhanh chóng hơn”

Mục tiêu thứ 3: “Trở thành lập trình viên giỏi”

Trải nghiệm học lập trình có thể rất thú vị nhưng cũng có thể rất kinh khủng. Bạn cần duy trì tính kỷ luật và sự hứng thú để có đủ sức mạnh chiến đấu tới cùng.

Dưới đây là 7 điều sẽ giúp việc học lập trình của bạn trở nên “dễ thở” hơn rất nhiều.

#1: Bắt đầu với Lập trình Front-end cho những phản hồi trực quan

Sau nhiều khoá học, chúng tôi nhận ra mọi người sẽ cảm thấy dễ dàng hơn nếu bắt đầu với những thứ có thể nhìn thấy được.

Nào bắt đầu với mục tiêu đầu tiên của chúng ta: “BẮT ĐẦU VIẾT CODE”

Với lập trình web Front-end, bạn nên bắt đầu học bộ đôi ngôn ngữ lập trình HTML và CSS đầu tiên. Bởi lẽ nó rất dễ dàng cho một bài học khởi động. Những gì bạn viết đều sẽ hiển thị ngay trên trình duyệt của bạn.

Sau HTML và CSS, bạn nên bắt đầu với Javascript để tạo ra sự tương tác cho website. Dưới đây là một ví dụ: https://tddoanh.github.io/card-matching/

HTML/ CSS được sử dụng để tạo ra một website có giao diện đẹp mắt và Javascript được sử dụng để:

  1. Tạo tương tác với trang web như cách bạn click trong trò card matching và chọn ô bạn muốn lật
  2. Thuật toán được viết bởi Javascript giúp xác định các ô giống nhau sẽ “matched”

Khi bạn bắt đầu với lập trình front-end, bạn sẽ có những phản hồi trực quan trong suốt quá trình code. Bạn không cần phải mất công tưởng tượng ra kết quả vì nó hiển hiện ngay trước mắt của bạn và bạn sẽ biết ngay rằng code của bạn có hoạt động hay không.

Bài học: Bắt đầu với lập trình Front-end với HTML, CSS và Javascript.

Nên làm gì tiếp theo sau khi học lập trình front-end?

Chúng ta đã thảo luận về lý do vì sao front-end nên là khởi điểm cho việc học lập trình. Bạn sẽ có thể xây dựng một trang web tĩnh đẹp đẽ và làm nó trở nên có tính tương tác. Đây cũng chỉ là một ví dụ nhỏ cho sức mạnh của lập trình.

Bạn chắc hẳn không muốn chỉ tạo ra được một website tĩnh đúng không? Web động như Facebook, Twitter hay Instagram là những thành quả mà bất kỳ lập trình viên nào cũng muốn đạt được.

Hẳn là bạn sẽ muốn học cách viết ra những kịch bản, cách xây dựng ứng dụng, tìm hiểu sâu về machine learning, data science và cả trí thông minh nhân tạo?!

Hãy cùng tới bước, “Biến việc lập trình trở nên đơn giản và nhanh chóng hơn!”

#2: Những ngôn ngữ lập trình bậc cao hơn cho người mới bắt đầu

Tiếp theo, cho lập trình backend, bạn nên lựa chọn gì? Bạn sẽ thấy một đống các chọn lựa: Java, C, C++, JavaScript, Ruby, Python, Elixir,…

Điều gì làm chúng khác biệt?

Nói đơn giản, ngôn ngữ lập trình bậc thấp được tạo ra để cho máy tính đọc được, còn ngôn ngữ lập trình bậc cao là để con người hiểu rõ.

Cách giao tiếp với máy tính tốt nhất thường là thứ con người thường không hiểu được: machine code

Để giúp cho cuộc sống của chúng ta dễ dàng hơn, các lập trình viên đã tạo ra các ngôn ngữ lập trình bậc cao, bằng cách thêm thắt vào machine code. Ngôn ngữ khác nhau sẽ có những điểm khác biệt.

Giả sử, bạn muốn viết một thuật toán thể hiện:

Đây là ví dụ của ngôn ngữ lập trình trung gian – Java

Dưới đây là ví dụ của một ngôn ngữ lập trình bậc cao – Python.

Bạn đã nhận ra sự khác biệt giữa 3 loại ngôn ngữ lập trình: Machine code, Java và Python chưa?

Khi bạn muốn học lập trình, bạn nên lựa chọn bắt đầu với ngôn ngữ lập trình bậc cao. Nó dễ hiểu và giúp bạn học lập trình nhanh hơn rất nhiều.

Nó cũng gọn gàng và dễ nhìn hơn!

Sau khi thành thạo ngôn ngữ lập trình bậc cao và có thể viết thuật toán một cách dễ dàng, bạn có thể học thêm các ngôn ngữ bậc thấp hơn (với điều kiện kiến thức nền tảng của bạn đã vững vàng)

#3: Học code không chỉ là học cú pháp

Tại phần trước, bạn đã thấy được sự khác biệt giữa machine code, ngôn ngữ lập trình bậc thấp và bậc cao. Ngôn ngữ lập trình bậc cao sẽ dễ hiểu, dễ học nhất đối với người sử dụng.

Cú pháp là một lý do chính lý giải vì sao nhiều người thích ngôn ngữ này hơn ngôn ngữ khác.

Hãy xem qua vài ví dụ đơn giản về sự khác biệt giữa Python, Ruby và Javascript.

Python:

Ruby:

JavaScript:

Bạn có thể nhận thấy rằng, mỗi ngôn ngữ có cách triển khai đặc thù riêng. Còn xét tính dễ hiểu thì cả 3 đều khá tương tự.

Bạn đã hiểu vì sao ngôn ngữ không hẳn là vấn đề quan trọng nhất chưa?

Nếu bạn có nền tảng vững chắc với 1 ngôn ngữ bậc cao, bạn sẽ không gặp khó khăn khi làm quen với ngôn ngữ lập trình bậc cao khác.

Mọi người thường cho rằng họ biết cách code khi họ biết về cách viết cú pháp. Nhưng sự thật là cú pháp rất đơn giản. Vấn đề khó nhằn nằm ở việc xâu chuỗi các cú pháp lại để nó hoạt động được.

#4: Hiểu và thành thạo những nội dung lập trình cốt lõi

Những nội dung chính rất quan trọng. Nếu so sánh Python, Ruby và Javascript, bạn sẽ nhận thấy chúng khá tương đồng về bộ dữ liệu và cách triển khai.

Bạn cũng có thể hiểu rõ các nội dung cốt lõi như Object-Oriented Programming (OOP), Model-View-Controller (MVC),…

Có rất nhiều nội dung được ứng dụng phổ biến trong lập trình. Ruby và Python là 2 ngôn ngữ giúp bạn dễ dàng học được những nội dung này.

Đảm bảo rằng bạn hiểu chúng đủ để biết cách triển khai. Khi bạn hiểu một ngôn ngữ rõ ràng, bạn sẽ nhanh chóng học được cách làm sao để triển khai chúng khi sử dụng các ngôn ngữ lập trình khác.

Vì vậy, hiểu rõ các nội dung là chìa khóa giúp củng cố nền tảng của bạn.

Đừng vội vã tìm hiểu bất cứ framework hay library nào trước khi bạn hiểu những nội dung chính một cách kỹ càng. Nền tảng yếu sẽ cản trở khả năng học hỏi của bạn.

Bài học: Tìm hiểu Python/ Ruby sẽ giúp bạn củng cố hiểu biết về OOP và MVC.

#5: Library và framework

Đây là khi mọi thứ trở nên quan trọng hơn. Nhiều người lựa chọn ngôn ngữ lập trình dựa trên việc truy cập vào library và framework. Học phải dự trên nhu cầu!

Sự tương đồng giữa library và framework:

Tưởng tượng bạn muốn xây một ngôi nhà (ứng dụng), bạn sẽ tới cửa hàng để tìm xem có vật liệu/ công cụ nào đang bán mà bạn có thể dùng (library). Bạn có thể chọn bản vẽ thiết kế (framework) để làm theo.

Python: library và framework

Python là ngôn ngữ lập trình được biết tới với nhiều ứng dụng. Nhiều người học Python vì họ muốn tìm hiểu về machine learning, AI và data science. Nó có nhiều library toán học được thành lập từ rất lâu và hiện nay, nhiều trường đại học ưu tú tại Mỹ đang sử dụng Python cho khoa học máy tính (computer science).

Một số Python framework hỗ trợ phát triển web: Flask, Django…

Ruby: library và framework

Ruby được biết tới rộng rãi nhờ framework Ruby on Rails. Nếu bạn muốn so sánh tốc độ xây dựng ứng dụng thì Ruby on Rails sẽ đứng hàng đầu bởi có rất nhiều ứng dụng được tạo ra từ framework này.

Ruby library được gọi là gem.

Xây dựng ứng dụng với Ruby on Rails kết hợp với gem sẽ cực kỳ dễ dàng. Nó hoàn toàn thích hợp với những người muốn xây dựng MVP nhanh và sớm đưa startup của họ đi vào hoạt động.

Nếu bạn muốn củng cố nền tảng của bạn, hãy bắt đầu với framework Sinatra.

JavaScript: library và framework

Javascript có thể được sử dụng cho cả lập trình front-end và back-end.

Frontend

Nếu bạn muốn trang web của bạn có tính tương tác, hãy sử dụng Javascript. Với tư cách là một người mới bắt đầu, sử dụng ngôn ngữ này sẽ giúp trang web của bạn sống động hơn.

Framework front-end nổi tiếng là ReactJS. (Framework này thích hợp với những ai có kinh nghiệm code front-end với Javascript)

Backend

Một trong những tính năng chính của Javascript là khả năng thích ứng, đây là lý do vì nhiều người thích sử dụng framework NodeJS cho những ứng dụng cần mở rộng. Tuy nhiên, NodeJS thường gây nhầm lẫn và tốn nhiều thời gian để hiểu. Vì vậy, bạn nên có kinh nghiệm lập trình trước khi sử dụng NodeJS

Với những người mới bắt đầu, bạn có thể học Javascript cho lập trình back-end SAU KHI bạn đã có kinh nghiệm với Python hoặc Ruby. Python và Ruby là ngôn ngữ lập trình hướng đối tượng.

Cả 3 ngôn ngữ lập trình trên đều có thể viết kịch bản và xây dựng web app, với tư cách là người mới bắt đầu, bạ nên học Javascript cho lập trình front-end. Đối với back-end, bạn nên bắt đầu trước với Python hoặc Ruby.

Nếu bạn muốn tìm hiểu thêm về machine learning, AI hoặc data science bên cạnh việc xây dựng app thì Python là lựa chọn lý tưởng cho bạn.

#6: Tham gia vào các cộng đồng

Ruby, Python và Javascript có những cộng đồng rất lớn mạnh. Các cộng đồng này hợp tác giúp đỡ nhau mỗi khi gặp khó khăn trong các dự án.

Ruby có một cộng đồng được thành lập riêng cho framework Ruby on Rails và phần lớn tập trung vào web development.

Bên cạnh phát triển web, Python còn có cộng đồng khoa học có những khám phá lớn trong các lĩnh vực như data science, AI và machine learning

Cộng đồng Javascript phần lớn tập trung vào lập trình front-end. Đối với lập trình back-end, NodeJS là framework hot nhất nhưng còn khá mới.

Giờ thì chúng ta hãy cùng hướng đến mục tiêu cuối cùng – “Trở thành lập trình viên giỏi”

#7: Rèn luyện tư duy logic & kỹ năng giải quyết vấn đề

Định nghĩa về một lập trình viên giỏi là người có tháo vát, độc lập, có nền tảng vững chắc và có kỹ năng giải quyết vấn đề tốt

Tư duy logic và kỹ năng giải quyết vấn đề là chìa khoá để trở thành một lập trình viên giỏi.

Có 2 phần chính trong lĩnh vực lập trình:

  1. Ngôn ngữ lập trình & framework
  2. Giải quyết vấn đề & tư duy logic

Tôi thường xuyên gặp những người tiêu tốn quá nhiều sự chú ý vào những lỗi sai của code. Những giảng viên chưa có nhiều kinh nghiệm thường để sinh viên học thuộc các code và ghi nhớ framework thay vì hiểu sâu vấn đề.

Tôi từng chứng kiến có người học thuộc code, copy và paste lại code của người khác, và khi nó hoạt động thì họ tự cho đó là thành tựu của cá nhân mình.

Khi nộp hồ sơ xin việc, bạn sẽ phải trải qua vòng phỏng vấn technical. Thông thường, các công ty sẽ nói: “Chúng tôi không quan tâm đến ngôn ngữ bạn sử dụng trong dự án, cái chúng tôi quan tâm là kỹ năng giải quyết vấn đề của bạn”

Vậy liệu có cần thiết phải học ngôn ngữ không?

Ngôn ngữ lập trình cũng giống như hệ thống chữ ABC, nếu bạn không thể đặt hoàn thiện 1 câu, viết 1 đoạn văn có nghĩa hay giao tiếp được với mọi người thì dù có biết mặt chữ đến mấy cũng không có tác dụng gì.

Và điểm khác biệt của một lập trình viên giỏi  là khả năng giải quyết vấn đề và khả năng sử dụng ngôn ngữ lập trình để viết ra các giải pháp.

Tư duy “máy móc” hiểu đơn giản là nghĩ như 1 chiếc máy tính. Giờ bạn đã có giải pháp, giờ thì viết sao cho máy hiểu đây?

Hãy rèn luyện tư duy logic và tư duy máy móc này nhé! Kỹ năng này quan trọng với bất cứ ai chứ không riêng gì lập trình viên.

Kết luận

Lập trình là ngôn ngữ đáng học nhất nếu bạn đã hoạch định rõ ràng các mục tiêu. Sự thật là, có QUÁ NHIỀU  thứ để học và bạn có thể bị quá tải. Việc học phải dựa trên nhu cầu. Nó sẽ giúp bạn giữ được hứng thú trong quá trình chinh phục mục tiêu.

Nền tảng căn bản vững chắc sẽ cho phép bạn thích ứng nhanh với các ngôn ngữ lập trình khác nhau. Mỗi ngôn ngữ đều có những đặc trưng riêng nhưng nền tảng vững chắc sẽ giúp bạn nhận ra điểm tương đồng giữa chúng!

Đó là những gì chúng tôi nói với học viên của mình, bạn nên học để trở nên độc lập và thích ứng cao. Chúng tôi sẽ giúp bạn xây dựng nền tảng vững vàng để bạn không gặp khó khăn trong trường hợp phải tiếp cận với công nghệ mới.

Bạn có thể lựa chọn việc tự học. Nhưng đây sẽ là một chuyến hành trình đòi hỏi nhiều nỗ lực với rất nhiều thách thức. Thay vì phải vật lộn 1 mình, tại sao bạn không lựa chọn học cùng những người đã có kinh nghiệm?

Khoá học “Web Front-end Development cho người mới bắt đầu” sẽ cung cấp cho bạn toàn bộ kiến thức cần thiết để trở thành Lập trình viên Front-end chỉ sau 4 tháng!

Tìm hiểu thêm về các khoá học tại Nordic Coder ngay nhé!

Nguồn: Next Academy