• Thứ Sáu, 28/08/2009 07:39 (GMT+7)

    Lập trình viên - ảo thuật gia số hóa

    Bằng cách thao tác các đoạn mã (các ngôn ngữ) trên các công cụ lập trình, các chuyên viên phát triển phần mềm (PM), lập trình viên (LTV - Developer) có thể tạo ra các chương trình máy tính (PM) nhằm làm tăng hiệu quả của việc sử dụng máy tính.

    Khả năng suy luận logic

    LTV không có nghĩa là chỉ viết PM mà thực sự là tham gia một quá trình gồm nhiều giai đoạn: phân tích, thiết kế theo yêu cầu của khách hàng (KH), lập trình dựa theo thiết kế, kiểm lỗi... Thông thường, một LTV mới vào nghề thường bắt đầu từ công việc kiểm lỗi. Sau đó, mới đến các giai đoạn phức tạp hơn: lập trình, thiết kế... Trước tiên, LTV phải sở hữu một khối lượng lớn kiến thức cơ sở về lập trình như: cấu trúc dữ liệu, kỹ thuật lập trình, các ngôn ngữ lập trình (Java, dotNet, C++...) và một số kiến thức như: phát triển và quản lý chất lượng PM, quản lý cơ sở dữ liệu, mạng máy tính, Internet và viễn thông, các hệ quản trị cơ sở dữ liệu...

    Ông Trần Anh Dũng, kỹ sư thiết kế hệ thống CSC Việt Nam cho biết, khi tham gia dự án, tất cả các lập trình viên phải thảo luận trước về kiến trúc, mô hình thiết kế, các chuẩn, quy định về mã code (conventions)... đảm bảo tất cả mọi người trong dự án đều có chung một cách hiểu về dự án. Quá trình phát triển PM trải qua nhiều giai đoạn dưới sự giám sát chặt chẽ của đội ngũ quản lý quy trình. Yêu cầu của KH phải được tìm hiểu cẩn thận, các đoạn mã phải theo đúng chuẩn và được các thành viên trong nhóm thông qua tại các buổi họp. Ngoài việc viết các đoạn mã, người lập trình còn phải tham gia nghiên cứu các công nghệ mới để tìm ra những giải pháp tối ưu, tăng tính hiệu năng cho từng module chương trình...

    Trong lập trình, khả năng giải quyết triệt để một vấn đề bằng phương pháp suy luận logic là điều quan trọng. Các LTV phải mất rất nhiều thời gian trong việc kiểm tra hàng ngàn dòng mã lệnh phức tạp. Vì vậy, họ rất cần giải quyết vấn đề một cách có thứ tự, bao gồm những chi tiết nhỏ như dấu chấm phẩy, dấu hai chấm... cũng rất quan trọng. Ngoài ra, LTV cần có kỹ năng truyền đạt thông tin tốt cũng như viết chương trình của mình một cách mạch lạc, có cấu trúc (chú thích rõ mục đích đoạn mã, kết quả đoạn mã này). Mục đích của việc chú thích giúp LTV dễ dàng trong việc sửa lỗi và LTV khác có thể tiếp tục phát triển công việc mình đang làm.

    Làm việc nhóm và trau dồi công nghệ, tiếng Anh

     
    Ông Trần Anh Dũng, kỹ sư thiết kế hệ thống CSC Việt Nam: “Nhiều công ty PM ở Mỹ có rất nhiều LTV hay LTV cấp cao hơn tuổi 40 mà vẫn còn lập trình. Khả năng code của họ rất chuyên nghiệp, rất cẩn thận và đặc biệt là kiến thức chuyên sâu trong lĩnh vực đang phụ trách.
     
    Cũng có những người kiểm thử PM (Tester) lớn tuổi rất am hiểu về hệ thống đã từng là những LTV kỳ cựu”.

    Một yếu tố khác đòi hỏi phải có ở LTV là khả năng làm việc nhóm. Công việc ngày nay thường đòi hỏi sự cộng tác của cả một đội ngũ LTV: biết cách phối hợp công việc với cộng sự, khả năng thuyết trình, giao tiếp, ứng xử sẽ được sử dụng tối đa trong môi trường làm việc này. Chính vì thế, khả năng làm việc nhóm rất quan trọng. Tuy nhiên, LTV cũng phải có khả năng làm việc độc lập vì phần lớn công việc của LTV đều liên quan đến việc ngồi trước màn hình máy tính, đọc/viết mã và các loại tài liệu khác. Ngoài lập trình, LTV cần phải làm unit test, sửa lỗi, viết tài liệu hướng dẫn cài đặt.

    Đối với người lập trình, việc tự học để trau dồi, cập nhật các công nghệ mới là điều bắt buộc. Không có trường lớp nào có thể đào tạo tất cả các kiến thức cần thiết cho công việc lập trình. Do đó, tự học qua sách, tài liệu, trên Internet hay từ chia sẻ của giới công nghệ là nguồn tài liệu bổ ích. Ngoài ra, cách học tốt nhất là qua thực hành, tham gia thực tế vào các dự án. Khi tham gia vào dự án, hãy trao đổi với những người trong nhóm, đọc code của họ. Khi làm việc chưa hiệu quả, bạn hãy nhìn người làm việc tốt nhất trong nhóm đang làm gì để học cách họ đang làm và cả việc họ không làm gì. Khi có thời gian bạn có thể vào thực tập các công nghệ mới trên VirtualLab của Microsoft”. “Ngành phầm mềm có tính cạnh tranh rất cao nên để không tụt lại phía sau và tăng cạnh tranh cho bản thân, theo tôi, LTV nên trang bị cho mình sự hiểu biết tốt ở nhiều công nghệ khác nhau. Điều này không chỉ giúp LTV làm việc trong những yêu cầu khác nhau mà còn tự tin khi tư vấn cho KH” – ông Dũng chia sẻ.

    Trong môi trường làm việc cho KH nước ngoài, tất cả các tài liệu, email, giao tiếp với khách hành đều sử dụng bằng tiếng Anh. Do đó, các thành viên cần phải có trình độ ngoại ngữ nhất định để có thể nắm bắt được tất cả thông tin trong quá trình xây dựng chương trình. Ngoài ra, do có độ chênh lệch về múi giờ nên nhóm phát triển dự án phải tuân thủ đúng theo quy định, nếu không cả hệ thống sẽ làm việc không hiệu quả. Để giúp nhân viên hòa nhập với môi trường quốc tế, Công ty CSC Việt Nam đã tổ chức các lớp học tiếng Anh và quy định giao tiếp bằng tiếng Anh trong khi làm việc. Họ không chỉ đơn thuần học cách giao tiếp mà còn được bổ sung kiến thức về văn hóa, phong tục, kỹ năng khi làm việc với các công ty PM tại Mỹ...

    Kiên nhẫn và áp lực

    Các vấn đề mà LTV phải giải quyết thường khó có thể giải quyết ngay lập tức. Nó mất nhiều giờ, nhiều ngày, thậm chí nhiều tháng làm việc một cách cẩn thận để giải quyết, tìm hướng đi, nhiều khi phải quay lại từ đầu. Các LTV mới vào nghề, chưa có cơ hội tiếp cận với công việc thực tế của người lập trình nên, khi mới tham gia vào các công ty PM, họ cần phải tham gia vào các khóa học bổ sung về kiến thức, công nghệ, kỹ năng về quy trình sản xuất PM. LTV cần tuân theo những quy trình sản xuất PM như RUP (Rational Unified Process), CMMI (Capability Maturity Model Integration)...

    Theo ông Dũng, áp lực về thời gian và khối lượng công việc đối với LTV rất lớn và họ phải làm thêm giờ thường xuyên. Nếu phần việc của bạn có thể khiến cho cả dự án trễ một ngày thì bạn không thể từ từ giải quyết chúng được. Trong đa số trường hợp bạn phải tự mình làm thêm giờ mà rất có thể sẽ không có thêm khoản lương phụ trội nào.

    Bà Nguyễn Thị Ngọc Thảo, chuyên viên phát triển PM Công ty Harvey Nash cho biết, công việc phân tích, thiết kế là những khâu quan trọng của dự án. Tùy theo trình độ và kinh nghiệm, LTV có thể sẽ đảm trách những phần khác nhau như phân tích, thiết kế toàn bộ một hệ thống, chu trình cho phù hợp bài toán kinh doanh, quản lý của KH. Chẳng hạn, sơ đồ hóa các luồng xử lý dữ liệu, dữ liệu đầu vào/ đầu ra, kết quả, các bảng lưu trữ thông tin, các giao diện nhập/ xuất, thông tin hay các tài liệu kỹ thuật liên quan đến chương trình... LTV không những là người am hiểu về công nghệ mà còn phải giỏi trong việc lắng nghe, thu thập yêu cầu và tìm hiểu thật cẩn thận, tỉ mỉ từng yêu cầu của người dùng, từng bộ phận, phòng ban và hiện thực các yêu cầu đó bằng PM. Người dùng luôn yêu cầu chương trình phải dễ dùng, tính hiệu quả cao. Do vậy, bất kỳ kỹ năng thiết kế nào cũng phải cân nhắc kỹ lưỡng vì nó là xương sống, ảnh hưởng đến toàn bộ chương trình.

    Niềm vui trong công việc

     
    Bà Nguyễn Thị Ngọc Thảo, chuyên viên phát triển PM Công ty Harvey Nash: “LTV không những là người am hiểu về công nghệ mà còn phải giỏi trong việc lắng nghe, thu thập yêu cầu và tìm hiểu thật cẩn thận, tỉ mỉ từng yêu cầu của người dùng, từng bộ phận, phòng ban và hiện thực các yêu cầu đó bằng PM”.

    Thử tưởng tượng nếu phải mất cả ngày để giải quyết một vấn đề và hoàn toàn bế tắc thì rất dễ rơi vào cảm giác chán nản. Đôi lúc, LTV sẽ gặp những tình huống bực dọc, cáu kỉnh và muốn quẳng hết “đống” công việc vào “sọt rác”. Tuy nhiên, vấn đề càng phức tạp thì niềm vui có được khi giải quyết được chúng càng cao. Việc lập trình thường là sự pha trộn giữa các dự án và các lỗi cần phải sửa và cả hai vấn đề trên đều có sự hứng thú riêng của nó. Cảm giác của việc hoàn tất một dự án lớn hòa với niềm vui khi sửa được những lỗi chương trình nhỏ và làm cho người dùng hài lòng hơn với chương trình của mình là phần thưởng lớn đối với các LTV.

    “Lập trình không phải là một việc dễ dàng. Nó đòi hỏi kỹ năng cao và bạn phải luôn có khả năng tập trung tối đa vào công việc mình đang làm. Cái quan trọng là có niềm đam mê lập trình. Điều đó sẽ giúp các LTV có được niềm vui trong công việc và vượt qua những khó khăn”, bà Thảo chia sẻ.

    Nhiều người cho rằng, LTV có một độ tuổi nhất định. Theo bà Thảo, nghề nào cũng có tuổi nghề của nó và nghề lập trình không là ngoại lệ. Tuy nhiên, ở độ tuổi nào còn tùy thuộc vào khả năng và sự đam mê công việc của mỗi người. Vấn đề là người lập trình nên có kế hoạch, định hướng cụ thể phù hợp với năng lực của mình.

    Hồng Vinh

    ID: B0908_58