Jun 9, 2014

10 điều bí mật bạn nên học cùng với tấm bằng Kỹ sư phần mềm

Vẫn là câu chuyện muôn thuở: bạn đi học từ năm này sang năm khác và cuối cùng farm được cái bằng tốt nghiệp, chụp đại một công việc nào đo, và rồi ngay lập tức bị hạ gục bởi luật bất thành văn và những điều phức tạp khác mà xưa giờ chả ai nói với bạn. Ngành lập trình cũng không phải là ngoại lệ.

Chỉ có một ít sinh viên chuẩn bị 100% cho công việc đầu đời. Và cái bằng khoa học máy tính chỉ hơn một bằng trung cấp ... Tuy nhiên, tôi nhiều lúc ngạc nhiên khi thấy rất nhiều sinh viên tốt nghiệp - và kể cả những lập trình viên chuyên nghiệp - sử dụng Notepad hoặc Pico để sửa code và không biết cách dùng phầm mềm quản lí phiên bản.


Nếu không muốn trở thành trường hợp như trên, thì dưới đây là 10 kỹ năng căn bản bạn cần nắm:
  1. Hệ thống quản lý phiên bản
  2. Đây là một thiếu sót lớn trong chương trình giảng dạy. Các trường đại học, học viện ở các bậc đại học chỉ dạy làm thế nào để tạo ra code của chương trình nhưng lại bỏ qua mọi điều về làm thế nào để quản lý code. Mỗi lập trình viên cần biết cách làm thế nào tạo ra được các repositories, chỉnh sửa và code code, và chia nhánh cũng như gọp một các hiệu quả các thành phần của project lại với nhau sử dụng Git hoặc Subversion. Việc biết về hệ thống quản lý phiên bản cũng có nghĩa răng bạn sẽ biêt tốt về công việc ở những công ty không sử dụng các công cụ này.
  3. Kỹ năng viết.
  4. Là một lập trình viên không đơn thuần là ngồi cặm cụi viết những đoạn mã. Bận cũng sẽ phải viết những văn bản như release notes cho project. Bạn cũng phải viết các thông điệp mỗi khi commit trên hệ thống quản lý phiên bản. Bạn cũng sẽ phải viết những ticket cho những bugs trong hệ thống. Tất cả những điều trên và nhiều điều nữa yêu cầu sự rõ ràng, hiệu quả trong giao tiếp trong Tiếng Anh - một kỹ năng mà các chương trình trong KHMT ít khi nhất mạnh.
  5. Regular expression.
  6. Regex là một ngôn ngữ mà bất kì lập trình viên hiện đại nào cũng phải thành thạo. Mỗi ngôn ngữ lập trình hỗ trợ regex hoặc cung cấp các thư viện chẩn nhằm giúp ta làm việc với nó.
  7. Sử dụng thư viện.
  8. Bây giờ đã là năm 2014, và chẳng có ai phải bỏ công ngồi viết đoạn mã regular expression để rút trích hostname từ URL. Tất cả những chuyện đó đã được cung cấp bởi các thư viện chuẩn của các ngôn ngữ lập trình. Người lập trình cần hiểu rằng những đoạn mã như trên đã được viết, test, kiểm định và có chất lượng rất tốt so với cái họ tự viết.
  9. SQL.
  10. Kỷ nguyên của lưu trữ dữ liệu trên file đơn thuần đã chấm dứt. Mối dữ liệu được nhập và xuất thông qua database, và SQL là ngôn ngữ được dùng để truy vấn vào CSDL. SQL cũng là declarative language, người lập trình phải học cách giải quyết vấn đề khác với thông thường. Dĩ nhiên, mỗi lập trình viên cần phải hiểu những căn bản về SQL cũng như các lệnh phổ thông.
  11. Sử dụng công cụ: IDEs, editors, CLI tools
  12. Một lập trình viên không chỉ biết sử dụng những tool như Notepad và Pico để lập trình. Người lập trình còn phải biết nhiều hơn thế, những công cụ hỗ trợ trong phát triển ứng dụng của như quản lí dữ liệu.
  13. Debug.
  14. Mỗi lập trình viên cần biết cách để debug bằng dòng lệnh hoặc bằng cách in thông tin của từng dòng thông tin ở những khói dòng lệnh. Khả năng theo dõi vấn đề thông qua phân tích từng bước rất quan trọng.
  15. Defensive programming.
  16. Những thánh code còn được phép mắc sai lầm, và hầu như mọi thứ trên đời đều ngoài tầm kiểm soát của bản thân, và mọi thứ đều có thể sẽ sai. Defensive programming đề cập đến sự thật đơn giản đó. Nếu chả có gì lỗi hoặc sai sót, thì ta không cần phải kiểm tra xem file có mở được hay không, hoặc kiểm tra ID của người dùng có đúng không, hay kiểm tra code chúng ta chạy đúng không. Lập trình viên cần hiểu rằng trình biên dịch có những công cụ rất hữu ích để làm mọi việc trở nên dễ dàng hơn, hoặc tránh được những phiền hà. Mỗi lập trình viên cần biết vì sao trong PHP lại có error_reporting(E_ALL), và trong chương trình Perl lại có use strict; use warnings;.
  17. Làm việc nhóm.
  18. Có rất ít công việc liên quan đến lập trình cho phép bạn làm việc với toàn bộ dự án. Code của bạn phải tương tác với đoạn mã của người khác, và thường xen kẽ với những code khác. Không quan trọng bạn thông minh thế nào, một lập trình viên không thể cùng hợp tác vào dự án với người khác sẽ có hiệu suất làm việc thấp và nhanh chóng trở thành gánh nặng của nhóm.
  19. Làm việc với code hiện có.
  20. Trong giảng đường, những bài tập thường là những project mới hoàn toàn. Điều đó không đúng trong đời thực. Điều đầu tiên xảy đến với những người mới được thuê là phải ngồi sửa cái bug thứ 8347 trong hệ thống. Và sau đó, họ phải thêm vào một tính năng bổ sung vào hệ thống hiện có với nền tảng mã nguồn đã được xây dựng.
Lược dịch từ: Nguồn