Dù bạn có là lính mới hay đã là một lập trình viên nhiều kinh nghiệm thì đều ít nhất một lần tự hỏi rằng: C# có phải là lựa chọn nghề nghiệp đúng đắn không?

Hãy cùng Vietnamworks inTECH tìm hiểu về công việc này nhé !

Đa dạng

C# và .NET framework là một trong những công cụ linh hoạt nhất dành cho các lập trình viên phần mềm, bạn không phải chuyển nhiều stack để tiếp cận nhiều nền tảng khác nhau.

ASP.NET và ASP.NET MVC là hai framework tuyệt vời để tạo ứng dụng web. Có công cụ và tốc độ phát triển ngang bằng với các framework tiên tiến nhất của các ngôn ngữ khác, đối thủ nặng ký nhất của Ruby On Rails.

Từ khi Xamarin được Microsoft mua lại, lập trình di động cho nền tảng chính này đang phát triển vượt bậc. C# có khả năng duy trì cơ sở code bằng một ngôn ngữ và chia sẻ thư viện trên các nền tảng Android và iOS. Một đối thủ khác trong cuộc đua di động này chính là React Native – được “chống lưng” bởi Facebook, nhưng một số lập trình viên vẫn chuộng phát triển trên nền tảng native hơn.

Nền tảng đám mây của Microsoft, Azure, đang phát triển nhanh chóng và cung cấp đa dạng các công cụ cho lưu trữ và code back-end API, công việc nền (background jobs), machine learning, các dịch vụ nhận thức (cognitive services), giải pháp doanh nghiệp, bảo mật và quản lý danh tính. Bạn sẽ được dùng thử khi đăng ký MSDN.

Khi bạn cần một ứng dụng desktop, thường bạn sẽ nghĩ tới Windows. Bạn thực sự không thể có được một framework nào tốt hơn WPF hay sự đơn giản của WinForms. Chúng là những công cụ ổn định và dễ sử dụng.

Ngoài ra còn có lập trình trò chơi. Unity - một trong những công cụ 3D lớn nhất sử dụng C#, các công cụ trong Visual Studio cũng được cập nhật thường xuyên.

Bạn có thể sử dụng C# để tạo nhiều ứng dụng khác nhau, mà không phải học các thư viện và cấu trúc ngôn ngữ mới. Các ứng dụng web trong Lisp hoặc Smalltalk, hay các ứng dụng Android trong Ruby cũng có thể được lập trình bằng C#, nhưng, tốt hơn hết là không nên. Tuy nhiên, C# là một trong những công cụ tốt nhất cho bất kỳ danh mục nào ở trên.

Kỹ thuật

C# là một ngôn ngữ mệnh lệnh hướng đối tượng (object oriented imperative language) - bạn ra lệnh cho máy tính để mô hình hóa theo ý bạn. Mô hình này được sử dụng rộng rãi nhất hiện nay, là một khía cạnh hay để bạn nắm vững. Các mẫu ứng dụng (application pattern) và thông lệ hướng đối tượng (object oriented practices) có thể chuyển sang nhiều nền tảng và ngôn ngữ khác.

Ngoài ra, C# cũng có một số tính năng từ các ngôn ngữ chức năng (functional language). Bạn không nhận được đệ quy đuôi (tail-recursion), nhưng LINQ là một công cụ tuyệt vời để chuyển đổi và lọc dữ liệu, và với C# 7.0, bạn cũng nối được mẫu. Cho nên kỹ năng của bạn cũng có thể được mở rộng mà không cần ngưng sử dụng ngôn ngữ yêu thích của mình.

Ngoài ra, C# còn được gõ tĩnh. Đó quả là một công cụ tuyệt vời khi làm trong các dự án lớn, nhóm lớn. Bạn cũng có lợi thế hơn khi chuyển sang ngôn ngữ Ruby.

C# cũng có các tính năng động (dynamic feature). Từ khóa động (dynamic keyword) và API phản chiếu (reflection API) là các công cụ mạnh mẽ để tạo các DSL tốt, hoặc cách thức hiệu quả với API JSON. 

Hãy xem bản tin hàng tuần của C# Digest để cập nhật thông tin trong cộng đồng .NET.

Việc làm CNTT lương thưởng hấp dẫn, mới nhất dành cho bạn!

Kinh nghiệm

Một trong những lợi thế lớn nhất của C# là nó được sử dụng bởi công ty. Từ những công ty khởi nghiệp nhỏ đến những tập đoàn khổng lồ.

Mỗi loại hình công ty có các thách thức và vấn đề khác nhau, mọi lập trình viên nên trải qua từng loại hình trong sự nghiệp của mình. Ngay cả khi bạn nghĩ rằng bạn không được làm cho một tập đoàn lớn, làm việc trong những công ty nhỏ cũng sẽ mang lại cho bạn một góc nhìn mẫu mực hơn từ những vấn đề gặp phải.

Ở các công ty khởi nghiệp thì bạn có cơ hội tham gia vào nhiều vai trò hơn - phát triển, hỗ trợ kỹ thuật và phát triển các dự án ngay từ đầu.

C# giúp bạn tiết kiệm thời gian để biết thêm nhiều dự án kinh doanh, mà không phải học lại các framework hay ngôn ngữ, từ đó bạn sẽ tập trung hơn vào xây dựng động lực của nhóm bạn.

Việc tìm kiếm một tập đoàn lớn có sử dụng Ruby để làm việc là một điều chẳng dễ dàng.

Tiền tài và sự ổn định

Hiện nay, các tập đoàn tài chính lớn đang trả lương khá cao cho các lập trình viên C#.

Bạn luôn có thể kiếm được nhiều tiền hơn bằng cách trở thành nhà thầu COBOL chuyên biệt, nhà tư vấn SAP… nhưng thực ra lập trình là một trong những nghề nghiệp có thu nhập cao nhất hiện nay.

Thêm một nền tảng vững chắc của SQL bản cũ, bạn có thể khai thác bộ kỹ năng đó trong vài kỷ nguyên phát triển dựa trên thế chấp (mortgage driven development).

Có rất nhiều cơ hội việc làm C# ở hầu hết các nơi trên thế giới, điều này mang lại cho bạn sự ổn định mong muốn và tùy chọn thay đổi trong trường hợp công ty hiện tại của bạn gặp khó khăn.

Microsoft

Microsoft từng là công ty khép kín (closed company) muốn thu được tất cả lợi nhuận bằng mọi giá, vậy nên tất cả những người làm kỹ thuật đều chế giễu và không muốn đụng đến Windows Vista tí nào. Nhưng thời thế đang thay đổi, đặc biệt là đối với các lập trình viên.

C# và .NET framework với trình biên dịch Roslyn có nguồn mở và được lưu trữ trên Github.

.NET Core chạy trên nhiều nền tảng khác ngoài Windows, có cả Visual Studio cho Mac và Visual Studio Code dung lượng thấp được sử dụng phổ biến.

Có một đội ngũ tuyệt vời đằng sau ngôn ngữ C# đang thúc đẩy sự đổi mới, bộ phận Đám mây và Doanh nghiệp (Cloud and Enterprise) dưới sự chỉ đạo của Scott Guthrie đang phát triển mạnh. Một hướng đi rõ ràng cho sản phẩm là cực kỳ quan trọng.

Windows đang rất nỗ lực, đặc biệt là đã cho chạy Ubuntu, có thêm kế hoạch với Fedora và SUSE. Thời của lập trình viên C# đang đến!

Cạnh tranh

Hãy thảo luận về các nền tảng khác về điểm mạnh và điểm yếu:

Java thì sao? Java khá giống với C# - tất cả những điểm lợi đều giống nhau. Java hỗ trợ bạn các công cụ tốt hơn khi nghiên cứu machine learning và các framework big data, nhưng không hỗ trợ dựng ứng dụng desktop cho Windows bằng C#. Hơn nữa, tiêu chuẩn và các tính năng của Java cũng thua C# một chút. Nhưng nhìn chung, Java không phải là lựa chọn tồi.

Về Ruby, bạn có thể thay thế Ruby bằng Ruby on Rails, vì phần lớn các công việc Rails có thể đảm trách được các việc của Ruby. Ruby thống trị thế giới khởi nghiệp web trong thập kỷ trước. Các framework web khác đã bắt kịp, nhưng hiện có rất nhiều doanh nghiệp vừa và nhỏ thành công được xây dựng dựa trên Rails, họ rất cần phát triển và bảo trì. Đây là một lựa chọn tốt cho các công ty mới thành lập, muốn phát triển theo hướng ít người nhưng đi nhanh. Không ngôn ngữ nào sánh bằng Ruby trong việc hỗ trợ người dùng làm việc từ xa. Nhưng thị trường việc làm có thể bị giới hạn trong khu vực của bạn và bạn sẽ xây dựng các ứng dụng web CRUD.

Nhu cầu sử dụng JavaScript đang rất cao. Bạn sẽ dễ dàng truy cập và viết phần back-end với Node.js, ứng dụng desktop với Electron và ứng dụng di động với React Native. Javascript không được tạo ra để duy trì một cơ sở code lớn, thế giới đã quá mệt mỏi với các framework front-end. Nhưng nếu bạn đang ở trong stack web, bạn sẽ cần phải tiếp xúc với JavaScript. Rất thích hợp cho các ứng dụng front-end nặng nề.

Bạn nghĩ sao khi so sánh những ngôn ngữ này với C#?

Phần kết luận

Tóm lại, trở thành một lập trình viên C# là một con đường sự nghiệp ổn định, bởi vì có nhiều ứng dụng và có nhiều công ty sử dụng C#, mức lương thì lại khá cao trên thị trường.

Cuối cùng, rất thú vị khi bạn lập trình với C# - bạn luôn có thể học một điều mới và Visual Studio sẽ là người bạn đáng tin cậy trong các dự án lớn với IntelliSense.

Đây là một lựa chọn tinh tế.

 

Tổng hợp việc làm IT - Software trên VietnamWorks
VietnamWorks inTECH
Theo Medium