Ngôn ngữ lập trình nào tôi nên học đầu tiên?
Bài đăng này đã không được cập nhật trong 6 năm
Ngôn ngữ lập trình tốt nhất cho người mới bắt đầu là gì? Đó có thể là một trong những câu hỏi phổ biến nhất của những người học lần đầu. Nếu bạn hỏi 10 người đã từng lập trình thì bạn sẽ có 10 câu trả lời khác nhau của mỗi cá nhân. Chase Bell, đồng sáng lập tại Paq Bags, từng nói:
“It doesn’t matter what language you start with, as long it’s in service of something that interests you.”
được hiểu là: Không quan trọng là bạn bắt đầu với ngôn ngữ nào, miễn là nó phục vụ cho những điều bạn quan tâm. Ngôn ngữ bạn bắt đầu học không chỉ phụ thuộc vào việc nó dễ học như thế nào, mà còn phụ thuộc vào những loại dự án nào bạn muốn làm việc, lý do tại sao bạn lại quan tâm đến lập trình, và có lẽ bạn đang suy nghĩ làm công việc này để kiếm sống. Trước đây, để làm cho bài tập lớn của mình thêm sinh động, mình đã ngồi học HTML và JavaScript, vì vậy mình đã có một ngôn ngữ mới trong vốn kiến thức của mình. Nên mình nghĩ:
Trước khi bắt đầu chúng ta cần tìm được vấn đề mà mình quan tâm, sau đó tìm kiếm giải pháp ngôn ngữ cho vấn đề đó. Để khi nản chí, ta có thể nhớ lại lý do vì sao ta bắt đầu.
Tại sao bạn muốn học lập trình?
Lựa chọn của bạn còn tùy thuộc vào những gì bạn muốn làm. Ví dụ, để xây dựng một trang web hay một ứng dụng web, bạn nên học HTML và CSS, cùng với JavaScript và có lẽ PHP cho tương tác. Nếu mối quan tâm của bạn chủ yếu vào việc xây dựng một ứng dụng di động thì bạn có thể nhảy vào học Objective-C hoặc Swift cho ứng dụng iOS hoặc lập trình Java cho Android (và những thứ khác).
Tuy nhiên, nếu bạn đang muốn học không chỉ cho một dự án hoặc chuyên ngành cụ thể, hoặc muốn tìm hiểu một loạt các ngôn ngữ, thì cách tốt nhất để bắt đầu là nên học các khái niệm cơ bản của lập trình và làm thế nào để "suy nghĩ như một lập trình viên.". Bằng cách đó, không quan trọng ngôn ngữ lập trình đầu tiên của bạn gì, bạn có thể áp dụng những kỹ năng đã có để học sang một ngôn ngữ mới. Thậm chí các ứng dụng lập trình cho trẻ em cũng có thể hữu ích để bắt đầu. Ví dụ, khóa học lập trình chính thức đầu tiên mà tôi tham gia là CS50 của đại học Harvard, bạn cũng có thể học khóa này miễn phí. Giáo sư Malan bắt đầu khóa học bằng Scratch, một môi trường lập trình dạng kéo-thả để dạy trẻ em về logic và các nguyên tắc lập trình cơ bản - nó cũng giúp bạn tạo ra một sản phẩm gì đó rất thú vị - và sau đó ông chuyển qua dạy bạn về ngôn ngữ C.
Đây là một số gợi ý nếu bạn đang bối rối về việc bắt đầu.
HTML & CSS: Dành cho những ai thích cái đẹp
Nếu bạn có hứng thú với việc phảt triển một websites, bạn chắc chắn cần sử dụng HTML (HyperText Markup Language) and CSS (Cascading Style Sheets). HTML là ngôn ngữ chuẩn để tạo 1 trang web, và CSS là một ngôn ngữ sử dụng để thêm các style (layout, color, fonts, etc.) dự trên các phần tử HTML. Bởi vì chúng đều là ngôn ngữ cần thiết để phát triển web nên chúng ta thường sử dụng cả HTML và CSS để băt đầu code.
HTML and CSS là base của mọi trang web và application, và nếu bạn tưởng tượng chúng giống như việc ghép các khối hộp - bắt đầu từ nhưng khối đơn giản để tạo nên một bức tranh toàn diện nhất - thì cách bạn xây dựng trang web sẽ dễ dàng hơn nhiều. Hai ngôn ngữ này đi cùng với nhau để tạo nên một trang web có nền tảng cấu trúc và thiết kế đồng nhất. Ngay cả khi bạn không quan tâm đến việc trở thành web developer, HTML và CSS vẫn có thể là những kỹ năng quan trọng để thêm vào skill của bạn, ví dụ như để giao tiếp tốt hơn vớiweb developer trong công việc của mình, tối ưu hóa một trang web. Vì vậy, bạn nên thực hành HTML và CSS tới khi nào mà bạn cảm thấy việc xây dựng một trang web thật là dễ dàng thì bạn đã có thể kiến tiền dựa trên thành quả của chính mình.
JavaScript: Dành cho những ai muốn nhảy ngay vào để xây dựng các trang web
Khi HTML và CSS trở thanh nền tảng cho việc tạo dựng web, JavaScript là ngôn ngữ lập trình kiểm soát dự tương tác của các trang web. Pop-up ads, slideshows, hay việc autocompletes, ...đều có thể thực hiện được mà không cần refresh lại trang là một điểm mạnh của JS. HTML và CSS thường được recommend như là điểm bắt cơ bản trước khi chuyển sang học JS. (Tuy nhiên vẫn có trường hợp học JS trước) JavaScript (ít liên quan đến Java) đòi hỏi rất ít thiết lập để bắt đầu, vì nó đã được tích hợp vào các trình duyệt web. O'Reilly Media cũng đề nghị bạn bắt đầu với JavaScript vì nó có một cú pháp tương đối dễ dàng, bạn sẽ thấy kết quả ngay lập tức từ code của mình, và không cần phải có nhiều công cụ. Trong bài hướng dẫn Learn to Code night school trên Lifehacker có sử dụng JavaScript để chỉ cho bạn những khái niệm cơ bản như cách các biến và hàm làm việc. Nếu bạn muốn làm những tính năng tương tác thú vị cho các trang web thì JavaScript là một kỹ năng bắt buộc. Đặc biệt trong thời điểm hiện tại , JS đang trở thành 1 xư hưởng trong lập trình web, bạn càng nên update bản thân bằng cách học JS.
Ruby/Ruby on Rails: Thân thiện và dễ sử dụng
Ruby là một ngôn ngữ lập trình khá là dễ học, nhưng cũng vô cùng mạnh mẽ đủ để các ông lớn như GitHub, Groupon sử dụng. Ruby on Rails là một framework (một tập hợp các thư viện) cho phép các ứng dụng viết bằng Ruby chạy trên web. Theo nhà đồng sáng lập Rendered Text/SemaphoreCI ông Marko Anastasov, Ruby là ngôn ngữ lập trình lý tưởng đầu tiên vif 1 số lý do sau:
- Ruby là open source
- Syntax của Ruby khá thân thiện và dễ sử dụng. "Ruby code gần giống hệt như bạn viết tiếng anh vậy!". Vì nó đơn giản và gần gũi như vậy nên tổ chức phi lợi nhuận dành cho phụ nữ phát triển ý tưởng của họ - Rails Girls - đã triển khai thành công những chương trình giảng dạy Ruby cho nữ giới trên toàn cầu.
- Ruby là vẫn đang được phát triển. Ruby on Rails đã tồn tại như một framework của web hơn 10 năm, các tools và services phát triển vô cùng mạnh mẽ để giúp người dùng dễ dàng xây dựng với Ruby ngay cả khi bạn thiếu kinh nghiệm.
Lựa chọn con đường của bạn
Một xem xét cuối cùng đó là liệu bạn có muốn đi từ sở thích lập trình trở thành một nghề nghiệp hay không. Trang web Dev/Code/Hack đã phân tích các vai trò công việc khác nhau và những kỹ năng bạn cần phải có để phù hợp cho công việc đó:
Lập trình viên Back-end (Server-side): Thường sử dụng một trong số các ngôn ngữ sau đây: Python, Ruby, PHP, Java hoặc .NET. Có kiến thức về database. Có thể cần thêm một số kiến thức về quản trị hệ thống.
Lập trình viên Front-end (Client-side): Yêu cầu kiến thức về HTML, CSS, JavaScript và có thể cần thêm một số kỹ năng về thiết kế.
Lập trình viên mobile: Objective-C hoặc Java (cho Android). HTML/CSS cho các website mobile. Có thể cần thêm một số kiến thức về Server-side.
Lập trình viên về Games/3D: C/C++, OpenGL, Animation. Có thể cần thêm năng khiếu về mỹ thuật.
Lập trình viên phát triển các phần mềm cần tốc độ xử lý cao High-Performance (phần mềm trong Thị trường Chứng khoán…): C/C++, Java. Có thể cần thêm nền tảng về kiến thức toán học và khả năng phân tích định lượng tốt.
Cuối cùng, mặc dù không phải chỉ có một cách duy nhất để bắt đầu học lập trình. Điều quan trọng nhất là học các kiến thức nền tảng thông qua "thực hành thật nhiều", tức là làm việc trên các vấn đề bạn muốn giải quyết hoặc một cái gì đó bạn muốn xây dựng.
Bởi vì là lần đầu tiên học một ngôn ngữ nào đó nên chắc hẳn còn nhiều khó khăn (hay có thể nói là khó khăn nhất), nhưng hãy tự thách thức bản thân bằng cách không ngừng tìm hiểu, không ngừng code code và thử kiểm tra đoạn code của mình. Một khi bạn đã thành thạo một ngôn ngữ, thì việc học thêm một ngôn ngữ mới là chuyện nhỏ như con thỏ, và bạn sẽ thu được nhiều kỹ năng khác trên con đường khám phá tri thức của mình.
Bài viết được tham khảo từ: https://techmaster.vn/posts/33722/ngon-ngu-lap-trinh-nao-nen-hoc-dau-tien và https://skillcrush.com/2017/07/10/where-to-start-learning-code/
All rights reserved