Ngôn ngữ nào trước tiên cũng được.
Kỹ sư phần mềm thì nên tự học ngôn ngữ nào trước tiên?
Sau này khi đạt một cảnh giới nhất định… Ngôn ngữ lập trình chỉ là thứ yếu thôi (Đụng chuyện thì chiến) mấy bác cứ tập trung quá…
Kỹ năng lập trình là điều bắt buộc, cấu trúc dữ liệt - giải thuật phải tốt (tốt nhưng không đến nỗi phải trùm như lão Tourist), xử lý được việc scale dữ liệu lớn,… Mình không nhớ rõ, nhưng nói chung đạt cảnh giới này thì ít code lại rồi, lên kế hoạch, thiết kế, giao tiếp với các team là chủ yếu.
// Mình đang là thợ code cũng xin bon chen về kỹ sư phần mềm. Đó là hướng mình đang phấn đấu
Bạn có thể tham khảo ở đây.
https://www.quora.com/What-skills-are-needed-to-get-a-software-engineering-job-at-companies-like-Google-and-Facebook
Mình đang học Phần mềm tại HCMUT nên theo mình bạn cứ tập trung học ở trường phổ thông là được, không cần tập trung vào học ngôn ngữ gì cho mệt, học nền tảng thuật toán vào là cân hết. Thường phổ thông dạy Pascal, nhưng mình thấy một vài trường chuyển qua dạy C rồi.
hay là mình nên học C nhỉ?
Học C/C++ or Pascal đi em , rồi vào Cấu trúc dữ liệu- Giải thuật . Có nền rồi thì gì chả chiến được . Một khi em có tư duy Logic thì 1 ngôn ngữ bỏ một vài tháng nghiên cứu là ok
Vô tình mình lang thang tìm được link này… Mấy bác đọc chơi cho vui
bài viết hay lắm ạ
Ukm, pascal cũng dc nhưng hơi tí … lỗi thời. C cũng vừa sức cho newbie mà!
Ờ … C# cũng ok nhưng VB cũng k kém quan trọng đâu !
Mình nghĩ học Java cũng khá OK, vì:
- Nó được thiết kế hướng đồi tượng rất tốt
- Syntax đẹp, dễ viết, dễ maintain, tool bao la.
- Lib cũng nhiều vô biên.
Còn nếu đi vào giải thuật thì chọn C/C++.
Pascal giờ cũng ít người dùng. Delphi có hỗ trợ object Pascal http://www.embarcadero.com/products/rad-studio
VB.NET thì mình nghĩ k cần học lắm (cái này là con đẻ của MS)
Ngoài ra, kiếm một vài ngôn ngữ theo kiểu reactive trong core như F#, Scala để thay đổi tư duy code (thay vì code kiểu imperative sang declarative)
Mình lấy một ví dụ trong C# nhé
Cho một collection: List<int> collection = new List<int> { 1, 2, 3, 4, 5 };
với kiểu Imperative (coding kiểu ra lệnh, mình sẽ bảo compiler làm từng bước 1 cho tới khi đạt kết quả)
List<int> results = new List<int>(); foreach(var num in collection) { if (num % 2 != 0) results.Add(num); }
với kiểu Declarative (coding kiểu khai báo, mình mô tả cách thức mình muốn, không cần quan tâm nó làm thế nào)
var results = collection.Where( num => num % 2 != 0);
2 ví dụ trên cùng ra các số lẻ trong 1 tập hợp cho trước, tuy nhiên cách viết sau ngắn hơn và tự nhiên với đời thường hơn ^^ (mặc dù, về bản chất phía dưới của declarative vẫn là imperative)
Nếu k thích thì quất VB.NET cũng được bởi thời nay .NET cũng quan trọng lắm! VB.NET cũng tương đương như C# ấy và VB.NET do chính Microsoft phát triển nên cứ yên tâm mà học nhá! Học sơ sơ cug dc!
Anh Huy ơi
Em mới năm nhất thôi.
Em học cả 2 C# và Java liệu có ổn không nhỉ?
Em muốn phát triển trên windows và app mobile.
Đã học qua c/c++ có cả oop rồi.
Anh gợi ý cho em một hướng đi được không ạ ?
Em đang học Database/Sql nữa rồi.
Hướng đến tester hoặc dev có ổn không ạ ?
Java và C# thì bạn chọn một.
Cả 2 ngôn ngữ này đều có thể phát triển các ứng dụng trên Windows, mobile, web.
Không kể việc sử dụng các platform như xamarin…
C# thường dùng cho việc phát triển trên windows, web.
Java thường dùng cho mobile (android) và web.
Tuy nhiên đối với kỹ sư phần mềm thì ngôn ngữ lập trình không phải quan trọng nhất, điều quan trọng là phải nắm rõ được quy trình phát triển một phần mềm là như thế nào, theo những tiêu chuẩn gì.
(Y)
Cảm ơn anh ạ