• Thứ Tư, 16/03/2011 10:28 (GMT+7)

    Coder hoàn hảo

    P.Uyên
    Những kỹ năng chuyên gia lập trình cần có

    Trong lĩnh vực công nghệ, những người viết chương trình (coder hay lập trình viên – LTV) đã tiến một bước dài từ hình mẫu “chuyên gia” với cây viết giắt túi. Chương trình do LTV tạo ra không chỉ làm thay đổi bộ mặt công nghệ mà còn làm thay đổi cách chúng ta liên lạc, điều hành kinh doanh, truy cập thông tin, kiểm soát sức khoẻ và nhiều thứ khác. Nói chung, nếu không có kỹ năng của các LTV, sẽ không có ngành công nghiệp phần mềm, có lẽ chúng ta vẫn còn dùng máy đánh chữ và mất hàng tuần để gửi thư thay vì chỉ mất vài giây như hiện nay.

    Để kiếm sống và thăng tiến trong nghề viết code, LTV cần phải thành thạo ít nhất một hay nhiều ngôn ngữ lập trình thời thượng. Và còn phải biết các kỹ thuật lập trình, mô hình phát triển phần mềm và nhiều kỹ năng khác.

    Ngôn ngữ lập trình

    Tối thiểu, LTV cần tinh thông một trong những ngôn ngữ lập trình đang thịnh hành. Theo chỉ số TIOBE tháng 12/2010, 5 ngôn ngữ lập trình phổ biến nhất hiện nay là Java, C/C++, PHP, C# và Python. Sự phổ biến của ngôn ngữ không phải bất biến. Do vậy, các công ty thích tuyển LTV không chỉ thành thạo một ngôn ngữ mà còn biết thêm nhiều ngôn ngữ khác như Python, JavaScripts, Ruby on Rails, C#... Bạn có thể truy cập website TIOBE (www.tiobe.com) hay đơn giản tìm trên Google để biết những ngôn ngữ lập trình đang được ưa chuộng. 

    LTV được kỳ vọng có thể làm được mọi thứ như thiết kế, viết code, kiểm tra và bảo trì hệ thống từ đơn giản đến phức tạp với ngôn ngữ mà mình thành thạo.
     

    Khả năng sử dụng các ngôn ngữ kịch bản là “giá trị gia tăng” đối với LTV, và là yêu cầu “phải có” đối với một số vị trí công việc. Nói chung, các ngôn ngữ kịch bản (script) dễ học và dễ dùng, không phức tạp như các ngôn ngữ lập trình cần biên dịch. Các ngôn ngữ kịch bản hiện rất phổ biến vì chúng cho phép trình duyệt web “nói chuyện” và tương tác với người dùng và với chương trình ở máy chủ.

    LTV nên biết một số ngôn ngữ kịch bản như JavaScript, Perl, WSH, TCL… LTV làm việc với máy ảo Java (JVM) cũng nên xem xét phát triển kỹ năng sử dụng các ngôn ngữ kịch bản như Groovy, JRuby, Jython, Scala hay Fantom. 

    Các ngôn ngữ kịch bản có thể dùng để lập trình tự động hoá các công việc như xử lý file, xử lý chuỗi hay chuyển đổi định dạng dữ liệu.

    10 ngôn ngữ lập trình cho năm 2011

    Tạp chí eWEEK đã thực hiện thăm dò rất nhiều LTV, nhà tuyển dụng, các công ty công nghệ mới khởi nghiệp
    và những người sáng lập một số ngôn ngữ lập trình phổ biến, dưới đây là kết quả - 10 ngôn ngữ lập trình được dự báo sẽ “hot” trong năm 2011:
    1. Java
    2. C#
    3. C/C++
    4. JavaScript (cùng với CSS
    và HTML)
    5. Visual Basic
    6. PHP
    7. Objective-C
    8. Perl
    9. Python
    10. Ruby
    Danh sách này có chút khác biệt (về thứ tự) so với danh sách những ngôn ngữ lập trình “hot” của TIOBE.
    Tuy nhiên, việc chọn ngôn ngữ nào để “kiếm sống” tùy thuộc bạn và lĩnh vực ứng dụng mà bạn đang (hay muốn) làm việc.

     Kỹ thuật lập trình

    Cùng với ngôn ngữ lập trình, LTV còn phải am tường những kỹ thuật lập trình như hướng đối tượng (object-oriented), khách/chủ (client/server), phân tán, triển khai, thử nghiệm, bẫy lỗi và bảo trì. Các kỹ thuật này có liên quan đến phương pháp phát triển phần mềm (thường liên quan đến môi trường hay công cụ phát triển) sẽ được đề cập trong phần dưới đây.

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

    Dù một mình phát triển ứng dụng, hay là thành viên của nhóm phát triển cả trăm người, thì việc hiểu biết những mô hình phát triển phần mềm đều cần thiết, giúp cho công việc dễ dàng hơn.
     

    LTV cần có kiến thức về các việc như: kiểm soát phiên bản, thư viện, hệ thống quản lý mã, tài liệu, phương pháp và công cụ kiểm thử, quản lý bản phát hành...
    Hiện nay nhiều công ty áp dụng những mô hình đặc biệt để quản lý quy trình phát triển phần mềm, LTV nên nắm rõ mô hình này và vị trí của mình trong quy trình.

    Một số mô hình thông dụng đã được giới thiệu khá nhiều trên TGVT như Agile, Lean, Scrum, Spirall và Waterfall (bạn dễ dàng tìm thấy trên website pcworld.com.vn bằng các từ khoá này).

    Ứng dụng web

    Giờ là thời của web. LTV không thể không biết web. Ứng dụng web hiện diện khắp nơi và làm được gần như mọi thứ. Để làm được điều đó, LTV phải hiểu những phương thức đằng sau các trang web và ứng dụng web, đó có thể là một hay nhiều trang JSP (Java Server Page), Java servlet, ASP (Active Server Page) và ActiveX control. Tùy yêu cầu công việc, LTV cũng cần có kiến thức về Cascading Style Sheets (CSS), HTML và XHTML.

    Kỹ năng cá nhân

    LTV không phải ngôi sao “cô đơn” mà thường phải làm việc với một nhóm hay làm việc trong một dự án gồm nhiều khâu. Vì vậy LTV cần có những kỹ năng sau:
     

    - Kỹ năng giao tiếp tốt: ở đây muốn nói đến kỹ năng giao tiếp giữa người với người chứ không phải với máy tính, bao gồm cả nói và viết.
     

    - Khả năng giải quyết vấn đề: trong lĩnh vực phát triển phần mềm, nếu có vấn đề ở khâu nào đó, thì chắc chắn các khâu còn lại sẽ bị ảnh hưởng. Một LTV “có nghề” phải là người có khả năng ứng biến tìm ra giải pháp để giải quyết vấn đề hay sáng tạo những cách thức mới để thực hiện những công việc mới hay thậm chí là công việc... cũ.
     

    - Tính tự giác: Tuy LTV có thể làm việc trong một nhóm, nhưng viết code là công việc “tự thân”, yêu cầu tính tự giác. Nghề phát triển phần mềm đầy những “deadline” (mốc thời gian buộc phải hoàn thành) và những thay đổi giờ chót vì vậy “không thiếu” những ngày làm việc vất vả thâu đêm.

    Lời kết

    Trung thành là tính từ tốt. Tuy nhiên trong lĩnh vực phát triển phần mềm, trung thành với một ngôn ngữ lập trình hay một phương pháp phát triển có thể cản trở con đường nghề nghiệp của LTV. LTV “có nghề” cần “trung thành” với khả năng đáp ứng nhanh nhu cầu của thị trường, do vậy cần nắm bắt những xu hướng mới, những ngôn ngữ mới hay mới nổi.

    ID: A1101_96