Một C# web developer cần biết những gì?

Ngày nay, việc học một ngôn ngữ, công nghệ là chuyện khá đơn giản, tuy nhiên, cái khó nằm ở chỗ chúng ta thường không biết nên học những gì, những kiến thức gì là cần thiết. Ở bài viết này, mình sẽ cùng các bạn tìm hiểu xem đâu là những kiến thức mà một C# web developer nói riêng hay một developer nói chung cần biết để có thể hành tẩu giang hồ.

Những kiến thức nền tảng

Kiến thức trong ngành công nghệ thông tin được chia làm 2 phần chính: nền tảng và công nghệ. Trong đó, kiến thức nền tảng là những kiến thức căn cơ, có thể áp dụng cho nhiều ngôn ngữ, công nghệ khác nhau. Để có thể tiến xa, bạn cần có một nền tảng vững chắc.

Ngôn ngữ lập trình

Chắc chắn rồi, bạn cần biết ít nhất một ngôn ngữ lập trình, cụ thể ở đây là C#. Có vô vàn kiến thức bạn cần nắm bắt để có thể thành thạo một ngôn ngữ lập trình, tuy nhiên, để bắt đầu, có một số kiến thức cơ bản mà bạn cần nắm:

  • Variables
  • Data type
  • Loops
  • Functions/ Methods
  • Exceptions
  • Advanced syntax
  • Best practice

Đối với những ngôn ngữ hướng đối tượng (OOP) như C#, sau khi có được kiến thức cơ bản, bạn cần tường tận được các kiến thức về OOP, bởi các kiến thức này sẽ được áp dụng cho tất cả các ngôn ngữ lập trình hướng đối tượng khác mà bạn học sau này (Java, C++, PHP…). Các kiến thức chính về OOP:

  • Object/class
  • Interface
  • 4 đặc điểm của OOP
  • SOLID Principles

Nền tảng

Như mình đã nói, kiến thức nền tảng là những phần kiến thức bạn có thể áp dụng cho bất cứ một ngôn ngữ, công nghệ nào. Đây là phần nền móng, căn cơ nhất, bạn cần nắm vững trước khi tiếp tục

Cấu trúc dữ liệu

Có rất nhiều loại cấu trúc dữ liệu khác nhau, được sinh ra với các mục đích khác nhau như: tiết kiệm bộ nhớ, tối ưu hóa tốc độ… Tuy nhiên, với sự phát triển của phần cứng như hiện nay, chúng ta không phải quá khắt khe trong việc lựa chọn cấu trúc dữ liệu như các bậc cha chú trước kia. Một số cấu trúc dữ liệu quan trọng mà bạn cần nắm:

  • Array
  • Linked list
  • Stack
  • Queue
  • Tree
  • Binary search tree
  • Heap
  • ...

Giải thuật

Tương tự như cấu trúc dữ liệu, giải thuật là một trong những kiến thức quan trọng, khó nhằn trong ngành phần mềm. Giải thuật sẽ trở nên vô cùng quan trọng khi chúng ta cần giải quyết các bài toán lớn, có độ phức tạp cao như: xử lý những cấu trúc hàng triệu phần tử… Một số loại giải thuật mà bạn cần biết:

  • Searching
  • Sorting
  • Graph Traversal
  • ...

Database

Rõ ràng, bất kể bạn lập trình web, di động hay desktop, database là một phần kiến thức không thể thiếu. Kiến thức về database vô cùng rộng lớn, phức tạp, đặc biệt là với những database có lượng record lớn, lên đến hàng trăm hàng nghìn, hàng triệu record. Tuy phức tạp là thế, nhưng để bắt đầu bạn chỉ cần nắm được một số kiến thức sau:

  • SELECT statements
  • WHERE statements
  • JOIN statements
  • UPDATE statements
  • DELETE statements
  • INSERT statements
  • Database design
  • NOSQL database
  • ...

Kiến thức về công nghệ

Với các kiến thức nền tảng mình nêu bên trên, bạn đã sẵn sàng để học các công nghệ mới nhất, chất nhất như: web, mobile… Ở phạm vi bài này, mình sẽ chỉ nói về công nghệ web. Web có thể nói là một trong những công nghệ phức tạp, rắc rối nhất trong ngành phần mềm, đơn cử như với mobile, bạn chỉ cần biết một ngôn ngữ lập trình duy nhất là java hoặc swift thì với web, bạn cần nắm một lượng kiến thức lớn hơn rất nhiều, được chia thành: back-end và front-end. Một số kiến thức quan trọng cần nắm:

  • Back-end framework (ASP.NET MVC & ASP.NET Core)
  • HTML
  • CSS
  • Javascript
  • HTTP
  • APIs
  • ...

Kiến thức cần cho quá trình làm việc

Ngoài những kiến thức kĩ thuật, bạn nên trang bị cho mình những kiến thức cần thiết trong môi trường làm việc. Khi đi làm hoặc thực tập, bạn sẽ phải đối mặt với khá nhiều vấn đề như: làm việc theo team, quản lý code… Mình nhận thấy có nhiều bạn developer thường bỏ qua những loại kiến thức này bởi họ cho rằng những kiến thức này không “pro”, code giỏi mới “pro”, thực tế, đa phần những kĩ năng trong từng môi trường làm việc mới là những mũi nhọn quyết định bạn sẽ đi xa đến đâu.

Source control

Mình đã viết một bài về source control ở đây, bạn có thể đọc thêm để hiểu rõ hơn về phần kiến thức vô cùng quan trọng này. Source control đơn giản là những công cụ giúp bạn/team của bạn quản lý source code một cách dễ dàng, chuyên nghiệp hơn. Các kiến thức cơ bản vể source control mà bạn cần nắm:

  • Lý thuyết về source control
  • Check in
  • Check in
  • Merge code
  • Branching
  • ...

Một số mô hình phát triển phần mềm

Thông thường, mỗi công ty khác nhau sẽ áp dụng những mô hình, quy trình phát triển phần mềm khác nhau. Tuy nhiên, các quy trình riêng biệt này đa phần được chế biến từ một số quy trình chuẩn mực, việc nắm bắt được cách vận hành của một số quy trình chuẩn mực sẽ giúp bạn hiểu hơn về toàn bộ ngành phần mềm, dễ dàng hòa nhập với team mới… Một số quy trình phát triển phần mềm phổ biến bạn nên biết:

  • Waterfall
  • Agile
  • Scrum
  • ...

Cuối cùng

Còn rất nhiều phần kiến thức khác mình muốn đề cập đến, tuy nhiên, trên đây là những kiến thức cơ bản nhất, nền tảng nhất mà bạn cần nắm trước khi có thể đặt những bước chân tiếp theo. Bạn có suy nghĩ gì không?

Đọc thêm nhiều bài viết tại: https://thedarkknighttech.com