Ngôn ngữ lập trình cho người không chuyên?

  1. Lập trình

Như các bạn cũng biết thì công nghệ đang làm thay đổi rất nhiều thứ và người biết áp dụng công nghệ vào kinh doanh, cuộc sống cũng rất quan trọng. Tuy nhiên thì ở Việt Nam thì chưa có nhiều điều kiện để xây dựng một lộ trình học công nghệ cơ bản. Vậy nếu là người không thuộc lĩnh vực này thì nên học bắt đầu từ đâu và ở mức nào? (Việc học ở đây chỉ mang tính có kiến thức nền tảng và áp dụng ở mức cơ bản, không mang tính đào sâu để giỏi)

Cho mình xin lời khuyên với ạ

Từ khóa: 

lập trình

tôi nghĩ là chia sẻ của tôi dưới đây sẽ đồng cảm với bạn phần nào

Tôi không muốn phân tích sâu xa lý do gì gì nhiều, mỗi người mỗi cảnh, nhưng khuyên bạn 1 câu là HÃY CHUYỂN SANG CNTT NGAY LẬP TỨC.

  • Ngay lập tức đây là về mặt TINH THẦN nhé, về mặt thời điểm có thể phải trì hoãn một chút tuỳ mỗi người (vì có thể ko có saving, hoặc đang phải chi trả khoản tiền nào đó, người thân bị ốm chẳng hạn).

  • Một khi đã chuyển, thì hãy xác định là mình sẽ sống bằng nghề này trong trung hạn (5 - 7 năm tới), đừng chân trong chân ngoài, đừng coi kỹ năng lập trình là skill bổ sung cho nghề phiên dịch hiện tại.

  • Nên dứt hẳn ra để đi học. Mà nên học ở các trung tâm, hoặc các trường. Đừng học online trong giai đoạn bạn mới vào ngành, bởi bạn cần người chỉ ngay cho bạn hoàn thành 1 - 2 dự án đầu đời, cần bạn bè, cần thầy cô, cũng như cần mạng lưới quan hệ của chính bạn bè thầy cô mà mình đã học cùng. Nếu muốn, hãy nhắn riêng, tôi sẽ chia sẻ thêm về nơi tôi đã học.

Quá trình chuyển nghề vô cùng mệt mỏi và tốn năng lượng (bạn càng nhiều tuổi thì sẽ càng sợ thay đổi, chưa kể còn gánh nặng gia đình). Vì vậy, nếu bạn còn trẻ, chưa hài lòng với việc hiệc tại, muốn làm cái mới, thì hãy làm NGAY và LUÔN, đừng chờ đợi. Dành 150% tâm trí và sức khoẻ cho nó. Đừng lần khần (căn bệnh của rất rất nhiều người Việt trẻ), để rồi đến lúc muốn thay đổi thì tâm trí bó buộc, sức khoẻ không còn, tiền cũng hạn chế (vì còn phải chi cho rất nhiều việc khác).

Trả lời

tôi nghĩ là chia sẻ của tôi dưới đây sẽ đồng cảm với bạn phần nào

Tôi không muốn phân tích sâu xa lý do gì gì nhiều, mỗi người mỗi cảnh, nhưng khuyên bạn 1 câu là HÃY CHUYỂN SANG CNTT NGAY LẬP TỨC.

  • Ngay lập tức đây là về mặt TINH THẦN nhé, về mặt thời điểm có thể phải trì hoãn một chút tuỳ mỗi người (vì có thể ko có saving, hoặc đang phải chi trả khoản tiền nào đó, người thân bị ốm chẳng hạn).

  • Một khi đã chuyển, thì hãy xác định là mình sẽ sống bằng nghề này trong trung hạn (5 - 7 năm tới), đừng chân trong chân ngoài, đừng coi kỹ năng lập trình là skill bổ sung cho nghề phiên dịch hiện tại.

  • Nên dứt hẳn ra để đi học. Mà nên học ở các trung tâm, hoặc các trường. Đừng học online trong giai đoạn bạn mới vào ngành, bởi bạn cần người chỉ ngay cho bạn hoàn thành 1 - 2 dự án đầu đời, cần bạn bè, cần thầy cô, cũng như cần mạng lưới quan hệ của chính bạn bè thầy cô mà mình đã học cùng. Nếu muốn, hãy nhắn riêng, tôi sẽ chia sẻ thêm về nơi tôi đã học.

Quá trình chuyển nghề vô cùng mệt mỏi và tốn năng lượng (bạn càng nhiều tuổi thì sẽ càng sợ thay đổi, chưa kể còn gánh nặng gia đình). Vì vậy, nếu bạn còn trẻ, chưa hài lòng với việc hiệc tại, muốn làm cái mới, thì hãy làm NGAY và LUÔN, đừng chờ đợi. Dành 150% tâm trí và sức khoẻ cho nó. Đừng lần khần (căn bệnh của rất rất nhiều người Việt trẻ), để rồi đến lúc muốn thay đổi thì tâm trí bó buộc, sức khoẻ không còn, tiền cũng hạn chế (vì còn phải chi cho rất nhiều việc khác).

Nếu là căn bản và để hình dung được 1 số thì C/C++, Python, HTML/CSS/JS

Nếu làm về điện tử thì là C/C++, Arduino, Matlab, Proteus

Nếu làm về data thì Python, R, Matlab, Excel

Để bắt đầu thì bạn nên học Toán. Ít nhất cũng nên biết một chút về Đại số Tuyến tính và Toán Rời rạc. Sau đó thì tùy nhu cầu, bạn có thể học thêm nhiều thứ toán khác, chẳng hạn nếu muốn tìm hiểu ML thì nên học thêm Xác suất Thống kê.

Con đường "chính thống" để học lập trình là học toán, sau đó tới các môn liên quan, chẳng hạn như kiến trúc máy tính, cấu trúc dữ liệu và giải thuật, v.v. Ngôn ngữ lập trình chỉ là thứ phụ. Mình nghĩ là các trường nghề dạy kỹ thuật lập trình cũng không phải là kém so với các đại học lớn, nhưng người tốt nghiệp đại học nói chung "giỏi" lập trình hơn người tốt nghiệp trường nghề. Họ có nền tảng tốt hơn và đã được rèn luyện để biết giải quyết vấn đề, chứ không phải chỉ để "thành thạo" ngôn ngữ lập trình nào đó.

Con đường chính thống là con đường tốt, nhưng không phải là con đường tốt với mọi đối tượng, vì có nhiều người chỉ nghe tới toán là thấy nản và từ bỏ. May mắn là bạn có thể lập trình mà không cần phải học toán. (Tất nhiên không có toán thì bạn chỉ tiến xa tới một mức độ nhất định thôi, nhưng tới lúc đó học cũng được.)

Cá nhân mình thấy cách học hiệu quả nhất là cách học khiến cho người học cảm thấy hứng thú, thậm chí là đam mê và học quên ăn quên ngủ. Có cách nào để một người không chuyên có thể hứng thú với lập trình tới mức đó không? Với mình thì một ngôn ngữ dễ học và có thể giải quyết những vấn đề thực tế (tức là mình ngay lập tức nhìn thấy thành quả) là một ngôn ngữ sẽ tạo động lực cho người học và là một ngôn ngữ nên học. Bạn hãy tham khảo vài gợi ý dưới đây.

1. AutoHotkey.

Nếu bạn không chuyên thì rất nên thử AutoHotkey. Đây là thứ ngôn ngữ lập trình mà ngay từ ngày đầu tiên sẽ giúp bạn cảm thấy hạnh phúc vì biết lập trình và giải quyết một vấn đề thực tế. (Trên một diễn đàn có một anh bạn nói AutoHotkey là the programming language of instant gratification, và mình hoàn toàn đồng ý.)

Hiểu một cách đơn giản thì AutoHotkey giúp bạn tạo ra các tổ hợp phím nóng để tự động hóa những công việc lặp đi lặp lại mà bạn thực hiện trên máy tính. Chẳng hạn, nếu bạn thường xuyên tra google, có thể lập trình để sau khi bôi đen một từ và nhấp chuột giữa vào từ đó thì một kết quả google từ ấy sẽ hiện ra.

Mình thực sự dùng AutoHotkey vào công việc và nó giúp mình tiết kiệm rất nhiều thời gian. Công ty mình dùng Creo, một phần mềm khét tiếng là không thân thiện đến mức làm người dùng muốn đập đầu vào tường (nhưng người ta vẫn dùng vì nó rất mạnh). Mình đã dùng AutoHotkey để "viết lại" và bổ sung rất nhiều chức năng cho Creo, khiến cho việc dùng nó dễ dàng hơn và tiết kiệm hàng trăm giờ mỗi năm cho mình và đồng nghiệp.

AutoHotkey được tạo ra dựa trên AutoIt nhưng mạnh mẽ hơn nhiều. Cả hai có ưu điểm lớn là rất dễ học, kể cả với người không chuyên. Mình thật lòng khuyên bạn hãy bắt đầu với AutoHotkey.

Nếu vì lý do nào đó bạn không thích AutoHotkey, thì có nhiều lựa chọn khác để bắt đầu, chẳng hạn

i) JavaScript

Giúp bạn viết ra ứng dụng web và xem thành quả của mình trên trình duyệt ngay lập tức (không cần học về UI). Bạn có thể học thêm Html và CSS nếu thích.

ii) Lập trình vi điều khiển.

Giúp bạn điều khiển thiết bị điện trong nhà, lập trình cho robot, làm đèn cảm biến, v.v. chỉ với vài con chip và linh kiện rẻ tiền khác. Trước đây thường thì bạn sẽ phải học hợp ngữ, nhưng giờ có thể dùng C. Nếu bạn dùng Arduino thì việc lập trình khá đơn giản và có nhiều mã nguồn có thể copy và dùng trực tiếp. Có thể là bạn sẽ muốn học thêm một chút về điện tử.

iii) VBS/VBA.

Có khả năng áp dụng vào công việc thực tế rất cao, nhưng cú pháp hơi loằng ngoằng một chút. Bạn không cần cài đặt gì cả, chỉ cần viết một file trên windows và lưu với phần mở rộng.vbs là có thể tự động hóa rất nhiều tác vụ trên máy tính. Nếu dùng excel thì bạn có thể tạo ra macros bằng VBA với cú pháp tương tự VBScript, và hoàn thành những công việc vốn phải mất hàng giờ chỉ trong vài phút. Nếu bạn làm văn phòng thì nhất định nên thử.

iv) Python

Một ngôn ngữ mà mình thấy là "toàn năng", có thể xử lý ma trận và chạy những mô phỏng như Matlab/Octave, có thể xử lý dữ liệu như R, có thể viết ứng dụng Android như Java, có thể tự động hóa các tác vụ như VBA hay AutoHotkey, có thể tạo và xử lý 3D như các phần mềm CAD, v.v. Cú pháp của Python cũng rất gần với ngôn ngữ tự nhiên, và chắc chắn là dễ học hơn các ngôn ngữ họ C (mà mọi người thường hay khuyên người mới học để nắm "cơ bản"). Tuy nhiên với người mới thì có hai điểm trừ, thứ nhất là nếu viết ứng dụng thì bạn cần phải làm giao diện, thứ hai là để thật sự làm được việc với Python thì sẽ mất một chút thời gian để học. (Cá nhân mình nghĩ thời gian bỏ ra là xứng đáng, nhưng nếu bạn chỉ muốn nếm thử mùi vị của lập trình thì không cần thiết phải học.)

Kinh nghiệm của mình cho thấy lập trình có ích trong rất nhiều công việc, có điều không phải ai cũng nhận ra. Nếu bạn muốn tìm hiểu bất kỳ thứ gì trong những thứ mình kể trên, trên mạng có rất nhiều tài liệu. Chúc bạn tìm được hứng thú với lập trình, và áp dụng được vào công việc của bản thân nhé.

Bạn có thể xem thêm bài viết sau:

Hoặc follow bạn Như Trương_bạn có rất nhiều bài viết chia sẻ về mảng Ngôn ngữ lập trình nhé:

Không có câu trả lời chung cho tất cả, tùy vào bạn muốn hoặc lập trình để làm gì cụ thể, khi đó mới có câu trả lời là học ngôn ngữ gì.

Nếu học để làm các việc đơn giản tương tác trên desktop thì bạn nên tham khảo Autoit. Khá là mạnh mẽ, mà lại cực dễ học. Chỉ có điều nó dễ bị dịch ngược mà lại ko có multi thread thôi.

Luôn thần thánh C & C++ nhưng vẫn chưa học code :)).
Nếu để muốn hiểu sâu bản chất thì học C/C++ thì sẽ biết nhiều hơn là các ngôn ngữ JAVA, PYTHON... :"> (Có 1 ông trên Quora bảo làm 35 năm vẫn chưa biết hết về C/C++)

Bạn nên nói rõ bạn người không chuyên về IT nhưng chuyên về mảng nào.

Ví dụ nếu là cấp 3 không chuyên tin bạn có thể học pascal.

Bạn là nhà toán học, sp toán,.. có thể dùng octave, matlab, R.

Tương tự nhà vật lý có thể dùng fortran,..