thì nên bắt đầu học từ đâu ạ ?
học ngôn ngữ gì trước ạ ??
Không biết tý gì về lập trình thì nên bắt đầu học ngôn ngữ gì trước?
ngôn ngữ phụ thuộc vào mục đích của bạn ? Trước tiên nghĩ học để làm gì, rồi lên google search làm cái đó thì học cái gì.
Python nhé, lấy cái nền vững rồi học tiếp.
Không học javascript vì đây là ngôn ngữ dynamic type, không có cấu trúc OOP rõ ràng.
Edit:
Đọc comment của @rogp10 thì mình xin đính chính, ý của mình ở đây là khai báo kiểu giống Java, hay như @noz1995 nói - strong typed; học những ngôn ngữ vậy với người mới nó dễ hơn.
Cả hai đều dynamic hết đưa method vào “class” và tạo “class” mới tại chỗ.
Vấn đề là JS không có Class (class
chỉ là giả lập thôi) mà là prototype (khó hiểu) và các phép tính cho ra kết quả rất quái đản như sau
[] + [] = ''
[] + {} = '[object Object]'
{} + [] = 0
{} + {} = NaN
Mình nghĩ Java / C# khá ok, strong typed giúp hạn chế nhầm lẫn khi code.
Có thể code theo hướng thủ tục, hướng đối tượng hay lập trình hàm đều được.
Nếu chưa có định hướng là học và làm trong lĩnh vực gì thì:
C/C++ mà giã em ạ.
Khó quá không trụ được thì Java/C#.
Học mấy cái ngôn ngữ cấp cao tuy lúc đầu có dễ tiếp cận nhưng cái gốc không có sau này làm cái gì cũng khó em ạ.
Còn nếu đã biết và xác định lĩnh vực muốn làm thì học những cái liên quan đến lĩnh vực đó.
Ví dụ :
Phần mềm iOS : swift, object-C, C++.
Phần mềm Android : Java, C++;
Phần mềm Windows : Java, C#, C++, VB.
Web: html, css, JavaScript, Java, C#…
AI, data : python.
……
Học Haskell nhé
Học mấy ngôn ngữ phổ biến hiện giờ C++, Java, JS gì đó nhiều quá khó học Haskell lắm. :v
Tôi cũng đồng ý với bạn @Khang_Viet, có lẽ bạn nên tìm hiểu mình định làm gì trước. Nếu bạn vẫn chưa rõ mình thích theo hướng nào thì có thể bắt đầu với Python vì nó tương đối dễ hiểu và có phạm vi ứng dụng đa dạng (từ quản trị hệ thống đến IoT, AI, Web App, …). Tuy nhiên nếu bạn muốn theo hướng làm việc với các sản phẩm hỗ trợ doanh nghiệp (business và enterprise) thì nên học Java hoặc C# vì phần lớn các phần mềm cho business được viết bằng hai ngôn ngữ này (không phải là vì chúng tốt hơn các ngôn ngữ khác mà đơn giản là vì xuất xứ của chúng: Java ra đời và phổ biến cách đây khá lâu, thời đó nó hầu như không có đối thủ, vì vậy đa phần các ứng dụng phức tạp được viết bằng Java. Nếu học Java, bạn còn có thêm một lợi thế nữa là có thể nhanh chóng làm quen với việc lập trình cho Android. Còn với C# thì đơn giản là bởi vì đứng sau lưng nó là Microsoft, ông vua của các phần mềm cho business, một lý do nữa là C# là đứa con của Anders Hejlsberg, người đã tạo ra Delphi). Học được một trong các ngôn ngữ này thì chuyện học các ngôn ngữ khác không khó đâu. Tôi bắt đầu học lập trình đối tượng với Java và cho đến nay, tôi không gặp nhiều khó khăn khi học một ngôn ngữ mới (ngoại lệ duy nhất là Prolog, rất may là bây giờ ít có ai dùng Prolog ).
Biểu thức thứ nhất:
[] + []
[] là array rỗng thuộc kiểu object, phép + chỉ nhận tham số có kiểu Number hoặc String. Từ đó có thể hình dung các bước thực hiện:
Bước đầu tiên, chuyển [] sang kiểu string, dùng hàm [[ToString]]([])
, kết quả là chuỗi rỗng, biểu thức trở thành
[] + [] = '' + ''
Phép + trên 2 chuỗi sẽ nối chuỗi, kết quả là chuỗi rỗng
'' + '' = ''
Biểu thức thứ 2:
[] + {}
Cũng như trên, cả 2 [] và {} đều là object, phép + chỉ thực hiện trên kiểu string hoặc number. Vì vậy, bước đầu tiên là chuyển sang string
- [] chuyển sang string, được chuỗi rỗng
''
- {} chuyển sang string, được chuỗi
[object Object]
[] + {} = '' + '[object Object]'
Cộng tiếp 2 chuỗi với nhau:
'' + '[object Object]' = '[object Object]'
Biểu thức thứ 3:
{} + []
Bước đầu tiên là thêm dấy chấm phẩy ( ; ), được 2 câu lệnh con
{}; + [];
Lệnh con đầu tiên: {};
sẽ xem {} là 1 block bình thường (không phải object), nên không có kết quả gì hết. Kết quả được rút gọn lại thành:
+[];
Phép toán + một ngôi chỉ áp dụng đối với dữ liệu kiểu Number, mà [] thuộc kiểu object, nên phải chuyển [] sang Number, hàm [[ToNumber]]([])
được gọi, trả về kết quả là 0.
+[] = +0
+0 cho kết quả là 0
+0 = 0
Biểu thức thứ 4:
{} + {}
Như biểu thức thứ 3, dấy chấm phẩy ( ; ) được đặt tách thành 2 câu lệnh con
{}; + {};
Lệnh {};
cũng được rút gọn, trở thành:
+{};
Phép + một ngôi chỉ áp dụng kiểu Number, mà {} là object. Do đó, {} được chuyển sang Number, hàm [[ToNumber]]({})
được gọi, trả về kết quả là NaN
+{} = +NaN
Bất cứ phép tính nào có toán hạng là NaN đều trả kết quả là NaN
+NaN = NaN
Xin lỗi vì off-topic nha
Mình nghĩ muốn có nền tảng vững thì phải học c/c++ thì tốt hơn đó
Chào bạn. Mình muốn làm test vậy k biết là mình nên tiếp cận thế nào để có thể hiểu được các kiến thức cơ bản về phần mềm để làm tốt công việc vậy bạn
Học Tiếng Anh trước
Chuẩn luôn Tài liệu hay toàn viết bằng tiếng Anh
Mục đích là làm lập trình web hay lập trình mobile thì lên search rồi chọn ngôn ngữ phù hợp mà học. Mà giờ lên search toàn thấy tuyển JavaScript vs Java =))
Đọc đến đoạn:
Không thể trở thành soft dev nếu không biết js.
Và python có tốc độ xử lý cực cao.
Thấy đơ não 1 lúc ::))
Không dám đọc thêm nữa sợ tẩu hoả.
Một số ưu điểm của ngôn ngữ C/C++
- Cú pháp rất sát với suy nghĩ logic, do đó việc viết code khá nhanh chóng và đơn giản
code C và C++ viết nhanh và đơn giản
Đang nói đến python mà
thì đọc thấy có gió lạnh nên thử vô dòm xem nó lạnh tới mức nào
mà Python xài C code gì cũng lẹ lắm mà, ai biết được tác giả là trùm Python thì sao
Có auto
sợ gì vết bẩn
buồn cười ở chỗ Python ko thấy ưu điểm viết code nhanh và đơn giản mà đi gán cho ông C/C++, còn tốc độ cực cao lại đá về Python