4 kỹ năng cần thiết cho lập trình viên

Không phải chỉ biết code là sẽ “tự nhiên” trở thành lập trình viên.


Ảnh minh họa

Có rất nhiều điều bạn cần học để trở thành lập trình viên chuyên nghiệp, chứ không chỉ đơn giản là học cách lập trình.

Nhiều việc nghe không liên quan, như cách làm việc với cả nhóm, cách giải quyết vấn đề hay là sử dụng phần kiểm soát phiên bản, và rõ ràng, bạn không thể đạt được công việc mong muốn nếu không có những kỹ năng thỏa mãn yêu cầu của công việc đó.

Bạn tự tin rằng mình viết code giỏi? Bạn tự tin khả năng đơn độc giải quyết các yêu cầu khó nhằn từ các thầy cô trong trường?

Những điều đó có thể cho bạn cảm giác tự tin, thậm chí xin được một công việc, nhưng vẫn chưa đủ để làm nên một lập trình viên chuyên nghiệp. Dưới đây là 4 kĩ năng bạn cần phải chú trọng ngay từ hôm nay, để không bị từ chối sau một thời gian thử việc.

1. Học cách giao tiếp

Các phương tiện truyền thông luôn “thích thú” khi mô tả về các lập trình viên độc lập, khiến nhiều người lầm tưởng việc viết code với việc phát triển phần mềm. Thế nhưng sự thực rằng toàn bộ ngành công nghiệp phần mềm là tập hợp của rất nhiều các đội ngũ.

Khi làm việc trong bất kì công ty nào, bạn sẽ là thành viên của một nhóm phát triển, và trong nhóm, bạn cần phải giao tiếp và làm việc tốt với những thành viên còn lại.

Giao tiếp là kĩ năng quan trọng hàng đầu : bạn phải sử dụng nó hàng ngày
Giao tiếp là kĩ năng quan trọng hàng đầu : bạn phải sử dụng nó hàng ngày

Kỹ năng nói và viết rõ ràng về ý kiến của mình một cách thuyết phục thậm chí cũng quan trọng ngay cả khi bạn dự định hoạt động freelance – làm một lập trình viên độc lập. Đó là những gì mà lập trình viên nhiều năm kinh nghiệm Jeff Bargman nhấn mạnh.

Anh cũng chia sẻ: “Trường học không chuẩn bị chút gì cho tôi về lượng lớn giao tiếp trong công việc trước mắt. Nếu bạn muốn phát triển chuyên nghiệp, bạn sẽ phải dành rất nhiều thời gian giao tiếp một cách rõ ràng, chính xác và thuyết phục. Bạn phải học cách nghĩ từ góc độ của người khác, bao gồm đồng nghiệp, cấp trên hay cả khách hàng nữa.”

“Và khi mà bạn cho rằng mình làm mọi việc nhanh gấp đôi người khác (hoặc dù sự thực có là thế đi nữa), thì việc này sẽ làm bạn tốn sức gấp đôi bình thường. Bạn có lựa chọn tự cải thiện kĩ năng này ngay bây giờ, vì nó là bắt buộc cần thiết, hoặc tương lai bạn sẽ phải học nó trong quá trình làm việc, theo một cách khó khăn hơn.” – Jeff chia sẻ tiếp.

Anh cũng có vài lời khuyên về việc phát triển kĩ năng giao tiếp:“Chẳng có cách nào khác hơn là trải nghiệm thực tế cả. Bạn hãy đăng vài bài viết ngắn, lớn tiếng đọc email, đối mặt với những lời phê bình, và nhiều hơn những việc tạo kinh nghiệm”.

Nếu bạn là sinh viên, hãy chú ý việc hoàn thành các bài tập lớn cùng nhóm của mình, với trọng tâm là cách làm việc với những người khác. Nếu bạn đã đi làm và vẫn chưa cảm thấy có thể giao tiếp với đồng nghiệp, được thôi, nhưng có thể bạn đã không nhận được những gì xứng đáng với khả năng code mà bạn tự hào.

2. Cải thiện khả năng giải quyết vấn đề

Nhiều developer cho rằng, việc hiểu một ngôn ngữ (lập trình) chỉ là một phần nhỏ của việc lập trình. Tìm cách giải quyết vấn đề lại là một kĩ năng quan trọng khác mà những developer non kinh nghiệm thường bỏ qua.

Việc phát triển phần mềm cũng giống với trò chơi ghép tranh : bạn cần phải xác định cách kết nối một mảnh của “bức tranh” chương trình với một mảnh khác, và chuyện đó không phải lúc nào cũng dễ dàng.

Giải quyết vấn đề cũng tương tự như trò ghép tranh
Giải quyết vấn đề cũng tương tự như trò ghép tranh

Một lập trình viên kể rằng: “Tôi đã gặp những người hiểu hết từng mã lệnh của cả ngôn ngữ lập trình, nhưng lại không thể tìm đường ra khi lạc trong nhiều vấn đề. Ví dụ như hồi tôi học đại học, đó là trong một bài tập nhóm, và tôi được nhờ xem xét phần code của một người khác. Anh ta cho biết không thể khiến nó kết nối tới server socket. Tôi nhận ra, mọi chuyện chỉ đơn giản là anh ta chưa bao giờ cài đặt cổng. Anh ta đã xoay xở với nó cả tuần liền. Thế rồi có cả những người biết cách giải quyết vấn đề nhưng chẳng biết tí gì về ngôn ngữ…”.

Học giải quyết vấn đề là cách duy nhất để bạn không vấp phải những tình huống dở khóc dở cười như trên. Cũng giống với kĩ năng giao tiếp, yêu cầu duy nhất là bạn cần phải luyện tập, luyện tập và luyện tập.

Một gợi ý là khi làm các nhiệm vụ được giao, dù đơn giản hay phức tạp, bạn hãy tập trung vào cách nó hoạt động, ví dụ như code một bài toán giải hệ phương trình, làm việc với stack – những thứ đơn giản – nhưng hãy thử vừa làm vừa cố gắng hiểu xem máy tính “suy nghĩ” như thế nào, hay cách nó xử lí những dòng lệnh của bạn.

Một cách khác để thực hiện điều này, mà vẫn gắn với việc học ngôn ngữ lập trình, đó là học Assembly – một ngôn ngữ khó nhằn, nhưng thực sự hữu ích trong việc giúp bạn hiểu được cách máy tính xử lí thông tin, cách làm việc với máy tính. Có thể Assembly sẽ không trực tiếp liên quan tới công việc của bạn, nhưng chắc chắn nó sẽ giúp bạn thay đổi cách suy nghĩ của mình về lập trình đấy.

3. Lập tức sử dụng hệ thống quản lí phiên bản:

Nếu bạn còn đang đi học, không sớm thì muộn bạn cũng sẽ bắt đầu làm việc trong các nhóm khác nhau ở nhiều môn học để cùng phát triển các dự án hoặc bài tập lớn.

Khi cùng làm, sẽ có vấn đề nảy sinh khi có va chạm code giữa các thành viên, có nhiều lỗi nghiêm trọng trong code hay đơn giản có một phiên bản mới tệ hơn bản cũ, nhiều những vấn đề như thế khiến bạn cần tới một hệ thống quản lí phiên bản (Version Control System – VCS).

Bạn nên làm quen dần với những nhánh cây phiên bản như thế này
Bạn nên làm quen dần với những “nhánh cây” phiên bản như thế này

Ngay cả trong những dự án nhỏ cỡ bài tập về nhà của sinh viên, chắc chắn bạn cũng sẽ thấy được lợi ích trong việc sử dụng VCS. Hai hệ thống phổ biến hiện nay với mọi người là GitHub và WindowsSVN, bạn có thể bắt đầu sử dụng chúng để hiểu về cách các hệ thống VCS hoạt động cũng như tăng hiệu quả làm việc.

Học cách sử dụng GitHub tương đối đơn giản thậm chí trên cả phiên bản dòng lệnh CLI , nên bạn có thể bắt đầu với GitHub. Việc này cũng tránh cho bạn cảm giác bỡ ngỡ khi đi làm, với nhiều khả năng bạn phải sử dụng những hệ VCS như Apache SVN hay Visual SourceSafe.

Chìa khóa của bất cứ kĩ năng nào đều là rèn luyện. Nếu bạn đang đi học, khi làm việc nhóm hoàn thành dự án hoặc bài tập lớn, hãy chủ động gợi ý mọi người cùng sử dụng GitHub hoặc hệ thống miễn phí tương tự.

Đặc biệt, nếu học ngành Công nghệ Phần mềm, bạn sẽ có cơ hội hiểu rõ hơn về vấn đề này. Nếu bạn là người tự học, hãy chủ động tham gia vào một dự án trên GitHub hoặc tự tạo một “kho” (repository) mới với một nhóm bạn muốn cùng làm việc.

4. Liên tục cập nhật xu hướng mới, học tập chăm chỉ

Công nghệ vẫn đang phát triển từng ngày, và cùng với đó, lượng kiến thức của một lập trình viên cũng cần phát triển. Nếu muốn “giữ vững phong độ” trong lĩnh vực của mình, nói chung, bạn cũng cần theo dõi các ngôn ngữ lập trình, các framework mới, cũng như những phần cứng mới nhất.

Cải thiện kĩ năng học hỏi của mình giúp bạn dễ dàng tiếp thu công nghệ mới
Cải thiện kĩ năng học hỏi của mình giúp bạn dễ dàng tiếp thu công nghệ mới

Bạn sẽ phải học những ngôn ngữ, công nghệ và cả những công cụ mới với tần suất chóng mặt. Bạn phải sẵn sàng thử nghiệm, kiểm tra những công nghệ mới, thống kê được mặt tốt và mặt xấu của nó, và nhanh chóng “đồng hóa” nó.

Đúng, không chỉ là học, mà là đồng hóa. Bạn phải thực sự hấp thụ, hiểu rõ và tích hợp những tính năng mới này vào bộ kĩ năng của mình, chứ không chỉ là có một chút hiểu biết sơ bộ.

Có rất nhiều thứ bạn có thể làm để nhanh chóng học những kĩ năng mới một cách dễ dàng hơn. Ví dụ như, bạn có thể tìm hiểu cách hoạt động của bộ nhớ, và áp dụng các phương pháp ghi nhớ hiệu quả.

Kĩ năng đọc cũng cần được bạn chú trọng cải thiện, khi các công nghệ mới thường được mô tả chi tiết trong các tài liệu chính thức, và tìm hiểu từ tài liệu là cách tốt nhất để hiểu rõ một công nghệ nào đó. Nói chung, dù bạn đang đi học hay không, cải thiện kĩ năng học hỏi là điều luôn cần làm, không chỉ để bạn có thể tiếp thu những công nghệ mới, mà còn giúp bạn không bao giờ “dậm chân tại chỗ” cả trong cuộc sống của mình.

Con đường trở thành một lập trình viên, một nhà phát triển phần mềm chuyên nghiệp yêu cầu ở bạn nhiều thứ hơn là chỉ ngồi bên một chiếc bàn và gõ những dòng lệnh. Hiểu rõ điều này càng sớm, bạn sẽ càng có một cơ hội lớn hơn để bổ sung các kỹ năng quan trọng mà “sếp” của bạn hay khách hàng cần có ở bạn.

Theo Trí Thức Trẻ