Quang Huy
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.
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.
Nguồn: pcworld
Không có nhận xét nào:
Đăng nhận xét