Mình có nhận được câu hỏi: Lập trình viên nên học Ngôn ngữ nào? của một bạn học sinh lớp 12 (Năm nay mới vào Đại học)
Mình thấy câu hỏi này khá thú vị, và cũng có thể là câu hỏi tương tự của nhiều bạn. Nên mình quyết định viết hẳn một bài để trả lời.
Lập trình viên nên học Ngôn ngữ nào?
> Lưu ý: Trước tiên, những bạn chưa hiểu rõ về Lập trình viên thì nên đọc để hiểu LẬP TRÌNH VIÊN LÀ GÌ? rồi hãy quay lại bài viết này.
Tại sao mình thấy câu hỏi "Lập trình viên nên học Ngôn ngữ nào" thú vị?
Đầu tiên, mình thấy khá thú vị là học sinh lớp 12 mà đã có câu hỏi định hướng sớm như vậy.
Và mình nhận định câu hỏi này là của những bạn chưa tìm hiểu nhiều về nghề Lập trình viên (hoặc hơi bị mông lung bởi đã đọc quá nhiều tin tức PR), cụ thể là giống như bạn học sinh này.
Trong thế giới công nghệ có đến hàng trăm ngôn ngữ Lập trình và thi thoảng lại có một ngôn ngữ mới ra đời.
Và một sản phẩm công nghệ không phải được làm bằng chỉ một ngôn ngữ Lập trình hoặc chỉ 1 công nghệ nào đó...
Mà ...
Được kết hợp từ nhiều ngôn ngữ Lập trình và nhiều công nghệ khác nhau.
Chính vì thế câu hỏi "Lập trình viên nên học ngôn ngữ nào" ở đây có thể điều chỉnh lại là:
"Lập trình viên nên sử dụng ngôn ngữ nào làm ngôn ngữ chính?"
Câu hỏi này có lẽ "đúng hơn" và giải quyết được nhiều vấn đề hơn.
Vậy,
Lập trình viên nên chọn học ngôn ngữ nào làm ngôn ngữ chính?
Rất có thể nhiều người sẽ trả lời là:
"Nên HỌC JAVA đi em vì Java quá bá đạo, tốc độ cao, đa nền tảng (Số 1 thế giới nhiều năm liền)"
Hay có người sẽ nói là:
"Năm nay là năm nào rồi mà còn học Java. HỌC JAVASCRIPT đi, làm được mọi thứ từ App đến Web ..."
Hoặc cũng có thể có người nói là:
"Xu hướng tương lai là Trí tuệ nhân tạo, Machine Learning, Big Data... Em nên chọn HỌC PYTHON, nó cũng là ngôn ngữ lập trình dễ học nhất."
Ok, ĐỒNG Ý là như vậy cũng được, câu trả lời nào cũng đúng.
Nhưng, khi nhận được câu hỏi của bạn đó, mình đã không trả lời ngay mà hỏi lại là:
"Vậy bản thân em sau này em thích làm gì? Công việc mà em nghĩ là 5 năm sau em muốn làm đó?"
Em ấy mới trả lời rằng:
"Em cũng không rõ lắm, nhưng em thấy thích Startup, mở công ty riêng."
OK, vậy là đã biết được thông tin sơ bộ về mong muốn của em nó...
(Tạm dừng câu chuyện của bạn học sinh lớp 12 tại đây. Câu trả lời của mình dành cho em ấy ở đoạn cuối bài.)
Vấn đề là ở đoạn này, Tại sao mình bắt đầu hỏi "Bản thân em thích làm gì và Tại sao lại muốn học lập trình?" mà không trả lời luôn?
ĐĂNG KÝ TƯ VẤN LỘ TRÌNH HỌC LẬP TRÌNH VIÊN!
Trở thành Lập trình viên từ Đam mê
Nếu bạn học một ngôn ngữ Lập trình bởi vì nó kiếm được nhiều tiền, bởi vì người nhiều người nói rằng nó tốt.
Vậy đến khi bạn không kiếm được như người ta nói thì bạn sẽ nghĩ thế nào?
Bạn có nghĩ rằng mình đã bị lừa?
Khi thấy công nghệ khác hot hơn, dễ kiếm tiền hơn thì sao?
Bạn sẽ nhảy sang học nó?
Hoặc nếu bạn thấy học nó cực kỳ khó thì sao?
Động lực nào sẽ giúp bạn kiên trì học lập trình?
Lúc này cố bám víu vào khả năng kiếm tiền hay là đổ tội cho thằng lúc đầu tư vấn "đểu" cũng đều không thay đổi được sự thật là bạn đã:
"THẤT BẠI"
Mình chắc chắc lúc này bạn sẽ "NẢN".
* Và tin vui cho bạn là cũng nhiều người đồng cảnh ngộ như bạn lắm :D
Bắt đầu tư Đam mê, ước mơ - Để biết quyết định học Ngôn ngữ gì
Chính vì thế mình mới hỏi:
"Bản thân em thích gì? Ước mơ làm gì?"
Không có công việc nào là không thể kiếm tiền được cả.
Chính vì vậy, tập trung vào thứ mà mình thích sẽ khiến mình "Phải làm bất cứ thứ gì, học bất cứ thứ gì" để đạt mục tiêu.
Điều này khiến bạn có được cảm giác:
"HẠNH PHÚC & THÀNH TỰU"
Thứ mà TIỀN rất khó mua được. (Nhiều tiền sẵn thì đã không ngồi đâu. Nhiều tiền sẵn thì đừng học Lập trình làm gì. Vất lắm :v).
Điều này thực sự đúng trong thế giới công nghệ hay trong sự nghiệp của một Lập trình viên.
Hãy tập trung vào mục tiêu và học bất cứ thứ gì để có thể đạt được mục tiêu đó. Đây mới là con đường đúng đắn khi muốn trở thành Lập trình viên hoặc kể cả những công việc khác.
Tặng bạn câu nói:
"Khi bạn muốn bỏ cuộc, hãy nghĩ đến lý do khiến bạn bắt đầu"
Hãy nghĩ rằng bạn đã đi xa được như thế này rồi, bỏ cuộc thì nhục lắm!
Một số gợi ý "Tại thời điểm này". Ở một số lĩnh vực nên chọn học Ngôn ngữ Lập trình nào để làm ngôn ngữ chính?
Như ở trên đã nói qua, tại vì cách bắt đầu chưa được chuẩn lắm. Chính vì vậy, chúng ta NÊN BẮT ĐẦU TỪ MỤC TIÊU, và suy ngược lại để xem học cái gì có thể đến được đích.
Nếu bạn muốn sau này làm về mảng Lập trình Web:
-
PHP là thứ bạn nên chọn nếu muốn làm việc nhiều với CMS
-
Java là ngôn ngữ bạn nên chọn nếu muốn làm hệ thống lớn, phức tạp (Đây được coi là ngôn ngữ tiêu chuẩn của mọi lập trình viên)
-
C# là ngôn ngữ nếu muốn làm việc với hệ sinh thái của Microsoft (hay là muốn có lợi thế để xin vào Microsoft làm việc)
-
Javascript cũng là một lựa chọn rất tốt nếu muốn học 1 thứ làm nhiều thứ (Web, App, Ứng dụng đa nền tảng...)
Nếu bạn muốn sau này làm về mảng Lập trình Ứng dụng Di động:
-
Swift hoặc Objective - C là ngôn ngữ lập trình nên chọn nếu muốn làm Ứng dụng cho iOS
-
Chọn học Javascript và học lên ReactNative để làm ứng dụng cho cả Android, iOS. (Cũng có thể chọn Typescript và học lên NativeScript)
-
C, C++, C# hoặc Ruby cũng là ngôn ngữ bạn nên tham khảo khi thích mảng Lập trình ứng dụng di động.
Nếu bạn muốn sau này làm về mảng Phân tích dữ liệu:
-
R là ngôn ngữ lập trình rất mạnh trong phân thích dữ liệu
-
Python là ngôn ngữ Lập trình khá mạnh trong mảng này và cũng dễ học hơn R
-
Java là ngôn ngữ đa năng là một ngôn ngữ được yêu thích nhất
Nếu bạn muốn sau này làm về mảng Trí tuệ Nhân tạo (AI):
-
Python là ngôn ngữ lập trình phổ biến nhất trong mảng Trí tuệ Nhân tạo
-
Lisp, C++ là ngôn ngữ lập trình AI bạn nên thử.
Nếu bạn muốn sau này làm về lĩnh vực Robotic:
-
C, C++ là một lựa chọn tốt
-
Java cũng là một lựa chọn có thể sử dụng.
Nếu bạn muốn sau này làm về lĩnh vực IOT (Internet of Things):
-
C là một lựa chọn hàng đầu
-
Java là ngôn ngữ Lập trình phổ biến được cách chuyên gia khuyên dùng cho IOT
-
Python là ngôn ngữ dễ học, khả năng ứng dụng khá nhiều trong IOT
-
Bạn cũng có thể sử dụng Swift, Javascript hoặc PHP để phát triển IOT
Nếu bạn muốn sau này làm về lĩnh vực Game:
-
C có thể là một lựa chọn tốt để bắt đầu với các Game đơn giản.
-
C++ nếu bạn muốn làm những game bom tấn
-
C# nếu bạn muốn làm việc với Game Engine Unity
-
Java cũng là một lựa chọn tốt
....
Tham khảo mục đích sử dụng theo ngôn ngữ
Bạn muốn tạo ra các nguyên mẫu nhanh?
-
Ruby on Rails
-
Python Django
Bạn muốn làm trực quan hóa dữ liệu?
-
Javascript
->
D3.js
-
ChartJS
-
Chartkick
Bạn muốn tự động hóa & viết kịch bản
-
Python
-
Ruby
-
Bash
-
Powershell
-
AutoHotKey
-
Perl
Bạn muốn viết các ứng dụng PC
Bạn muốn trang web tĩnh của bạn có chút hình động
Bạn muốn làm hoạt hình
Bạn muốn làm nhạc
Bạn muốn lưu trữ một chút dữ liệu thay đổi và tôi là người dùng duy nhất. Nó là một ứng dụng cho tôi (bây giờ).
Bạn muốn lưu trữ một lượng lớn dữ liệu thay đổi trong môi trường tải cao và bạn sẽ thực hiện nhiều truy vấn.
Bạn muốn thu thập nhiều dữ liệu nhưng bạn không chắc chắn chính xác những gì bạn sẽ làm với nó.
Bạn muốn lưu trữ dữ liệu không thay đổi
Bạn muốn làm Toán
-
R
-
Python
-
Haskell
-
OCAML
-
Lisp
Bạn muốn làm về khoa học
Bạn muốn tương tác thời gian thực, phía khách hàng
Bạn muốn tạo một trang web tĩnh
Bạn muốn phát triển trò chơi cho các trang web
Bạn muốn có thể lập trình cho bất cứ điều gì
Bạn muốn phát triển trò chơi cho consoles và ứng dụng laptop
Bạn muốn làm ứng dụng di động
-
C ++ / Mục tiêu C / C #
-
Apple: Swift
-
Android: Java
Bạn muốn phát triển trên một thiết bị IoT
-
JavaScript
-
Python
-
Java
-
C / C ++ / C #
Đó, bạn nào muốn theo mảng nào thì có thể lựa chọn ngôn ngữ Lập trình có thể làm mảng đó.
> Lưu ý: Cũng có những ngôn ngữ có thể sẽ không phù hợp với người mới bắt đầu. Và ngôn ngữ đầu tiên bạn học cũng chỉ như người dẫn dắt bạn vào thế giới lập trình. Không phải là bạn sẽ gắn bó với nó suốt đời.
Vậy, bạn đã biết nên học ngôn ngữ nào chưa?
Phải nhớ, nếu muốn đi thật xa, đừng vội chọn ngôn ngữ để gắn bó suốt đời. Hãy chỉ chọn ngôn ngữ chỉ để bắt đầu mà thôi.
Tham khảo Infographics trên để biết chọn ngôn ngữ lập trình nào để bắt đầu tốt hơn. (Xem ảnh lớn hơn tại đây)
"Quan trọng là em thích gì và muốn làm gì?"
Em hãy tập trung vào cải thiện kiến thức toán học, tiếng Anh, tư duy logic.
Sau đó mới thử nghĩ đến ngôn ngữ Lập trình nào đó.
Ví dụ: Em có thể thử học ngôn ngữ Lập trình C (hoặc Python) (Ngôn ngữ bắt đầu với hầu hết các Lập trình viên)
Sau đó xác định học thật vững những môn làm nền tảng cho Lập trình như:
Đây là 2 phần kiến thức cực kỳ quan trọng đối với nghề lập trình, nên tự tìm hiểu sớm rồi bạn sẽ thấy học các công nghệ khác nhàn hạ là như thế nào.
Sau khi học được những kiến thức lập trình căn bản, cốt lõi nhất, nếu em thích làm Startup em có thể chọn thử với Javascript / Python cũng đều rất tốt.
Khi đã có nền tảng cơ bản thật vững chắc, vấn đề ngôn ngữ không còn là vấn đề.
> Bật mí: Các lập trình viên chuyên nghiệp thường chỉ mất khoảng 1 tuần đến 3 tháng để học một ngôn ngữ hoặc công nghệ mới.
> Tham khảo ngay KHÓA HỌC LẬP TRÌNH FULL STACK chỉ 12 tháng tại NIIT - ICT Hà Nội. Đi làm ngay từ tháng thứ 6.
Và trong lĩnh vực công nghệ thông tin, lập trình thì nên học càng nhiều để có càng nhiều cơ hội.
Hi vọng câu trả lời của mình dành cho em học sinh lớp 12 về việc "Lập trình viên nên học Ngôn ngữ nào?" cũng có thể giải đáp thắc mắc, định hướng lại cho các bạn muốn tham gia mảng Lập trình.
Chúc các bạn thực hiện được mong muốn của mình!
Sơn Vũ
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #icthanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp