[Training] Để trở thành một lập trình viên giỏi
“ Việt Nam cần khoảng 500 000 nhân lực ngành CNTT vào năm 2020 , nhưng theo tính toán, trong khi toàn bộ hệ thống cung cấp nhân lực về CNTT trên cả nước chỉ có khả năng đáp ứng quá nửa con số ấy.” -- đó là một thông báo từ các chuyên gia trong lĩnh vực IT. Các lập trình viên mới ...
“Việt Nam cần khoảng 500 000 nhân lực ngành CNTT vào năm 2020, nhưng theo tính toán, trong khi toàn bộ hệ thống cung cấp nhân lực về CNTT trên cả nước chỉ có khả năng đáp ứng quá nửa con số ấy.” -- đó là một thông báo từ các chuyên gia trong lĩnh vực IT.
Các lập trình viên mới vào nghề thường chưa xác định được công việc trong tương lai của mình như thế nào. Liệu có có dám theo đuổi một nghề nghiệp có** tính thử thách cao** và thay đổi liên tục như thế? Điều này đang thực sự diễn ra khi mà nguồn nhân lực về Công nghệ thông tin trong những năm vừa qua trở nên nóng hơn bao giờ hết.
Để làm nghề lập trình, trước hết các bạn phải hiểu thế nào là lập trình viên. Lập trình viên là người thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm). 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, họ có thể tạo ra các chương trình mới, sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính.
1. Công việc của các Lập trình viên
Công việc của người lập trình được gọi là software engineering. Để làm ra một phần mềm, trước hết người ta phải tạo ra một “bản thiết kế” (framework), mỗi lập trình viên đảm nhiệm một phần việc, sau đó các phần được kết nối lại tạo thành một sản phẩm hoàn chỉnh. Lập trình viên được ví là những thợ “coding” (người ngồi gõ những dòng lệnh (code) trên máy tính), làm ra các phần mềm hoặc chỉnh sửa, phát triển nó dựa trên các công cụ lập trình.
2. Những yếu tố để trở thành Lập trình viên?
Nghề lập trình đòi hỏi sự sáng tạo cũng như các kỹ năng đánh giá, phân tích yêu cầu của dự án, đưa ra các giải pháp thiết kế hoặc cách tiếp cận công nghệ mới khi gặp những framework thiết kế chưa kỹ hoặc công nghệ thay đổi.
3. Suy nghĩ một cách logic
Logic là điều quan trọng nhất trong lập trình. Bạn phải có đủ nhạy bén, linh hoạt và khả năng phán xét cao để giải quyết một vấn đề triệt để bằng phương pháp logic. Vì thế, nếu không có khả năng suy luận logic thì chắc chắn một điều nghề lập trình không thích hợp với bạn. Bạn sẽ cảm thấy nhàm chán và nhức đầu khi theo đuổi các đoạn code của chương trình, các vấn đề về debug (gỡ rối), về lỗi, về dấu chấm, dấu phẩy…
4. Tiếp cận vấn đề có thứ tự và luôn chú ý tới chi tiết
Các lập trình viên nên tập cho mình thói quen cẩn thận và luôn chú ý đến từng chi tiết. Đôi khi những chi tiết rất nhỏ, bạn vô tình bỏ qua, thì bạn phải ân hận khi mất hàng ngàn giờ chỉ để tìm những lỗi nhỏ đó. Bạn 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 để đồng nghiệp của bạn có thể biết được tại sao bạn lại viết đoạn mã như vậy và cái gì tiếp theo sẽ xảy ra trong chương trình của bạn.
5. Làm việc nhóm
Đa số, công việc lập trình đều làm việc theo nhóm. Khả năng để bạn thích ứng, và chia sẻ những ý kiến của bạn tại công ty chiếm vị trí rất quan trọng. Bạn phải 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ử của bạn sẽ được sử dụng tối đa trong môi trường làm việc này.
6. Làm việc một mình trong thời gian dài
Thời hạn của dự án luôn làm bạn đau đầu. Có đôi lúc, bạn phải ngồi làm việc một mình, do đó, bạn cần phải có tính độc lập cao hơn, biết tổ chức và sắp xếp thời gian để hoàn thành dự án đúng lúc. Để được như vậy, bạn cần phải ghi danh sách những việc bạn phải làm và có ý chí quyết tâm cao khi làm việc một mình.
7. Kỹ năng thiết kế
Công việc phân tích và thiết kế luôn là công việc rất quan trọng của lập trình. Bạn có thể phải thiết kế toàn bộ một hệ thống cho kinh doanh, bao gồm 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... Bạn phải giỏi trong việc lắng nghe và chuyển đổi các yêu cầu của các khách hàng đơn lẻ, các nhóm khách hàng và thậm chí cả việc kinh doanh thành các ứng dụng. Các chương trình của bạn phải dễ dùng và có hiệu quả cao. Do vậy, bất kỳ kỹ năng thiết kế nào của bạn cũng sẽ rất hữu ích trong lĩnh vực này.
8. Kiên nhẫn
Các vấn đề mà các lập trình viên phải giải quyết thường là các vấn đề 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 bạn đi sai hướng lại phải quay lại giải quyết từ phần đã giải quyết đúng và bắt đầu lại.
9. Tự học
Không trường lớp nào có thể đào tạo cho bạn tất cả những thứ bạn cần cho công việc lập trình sau này. Chính vì thế, khả năng tự học qua sách vở, tài liệu, internet và qua cả bạn bè nữa là không thể thiếu. Kết hợp với những dự án làm việc trong thực tế, bạn sẽ dần dần thành thạo những gì mình đã tự học được.
Quan trọng nhất đối với các bạn muốn theo đuổi nghề lập trình đó là lòng đam mê và mong muốn chinh phục những thử thách. Ngay bây giờ, nếu bạn đã có sẵn niềm đam mê hãy bắt đầu bằng việc tham gia một trong những khoá đào tạo căn bản để mở đầu một chân trời mới và tiếp cận với kho tàng kiến thức khổng lồ.
Như trong bài viết "Tự học lập trình trong 10 năm" của Giáo sư Norvig thì chúng ta đã biết rằng để trở nên tinh thông bất cứ lĩnh vực gì thì ai cũng phải cần tối thiểu 10,000 giờ tập luyện (tương đương khoảng 10 năm). Nhưng bạn có thể nói rằng điều đó chẳng cần kết quả nghiên cứu của các nhà khoa học thì bạn cũng biết. Vấn đề ở đây là 10 năm là một quãng thời gian rất dài, và với 10 năm đó thì có thể đã “vật đổi sao dời” hay người còn kẻ mất. Điều quan trọng là làm sao duy trì được động lực làm việc và học tập trong một quãng thời gian dài như vậy?
Đúng vậy, để có thể duy trì được động lực trong một quãng thời gian dài như vậy thì bạn phải hình dung ra được một bức tranh lớn (big picture) của mình trong tương lai. Liệu bạn sẽ làm gì và ở đâu trong 10 năm tới? Hay còn gọi là phải đặt ra được mục tiêu cụ thể.
Hãy làm theo từng bước
Bước 1: Hãy chọn lấy một ngôn ngữ lập trình, và học từ những thứ căn bản nhất
Bước 2: Xây dựng một cái gì đó nhỏ thôi
Bước 3: Học về một công nghệ cơ sở dữ liệu
Bước 4: Nghiên cứu về một framework
Bước 5: Nhận một công việc hỗ trợ một hệ thống đang tồn tại
Bước 6: Học những bài thực hành tốt nhất về cấu trúc (structural)
Bước 7: Học một ngôn ngữ lập trình thứ hai
Bước 8: Xây dựng một cái gì đó có giá trị
Bước 9: Kiếm một công việc tạo một hệ thống mới
Bước 10: Học những bài thực hành tốt nhất về thiết kế phần mềm
Bước 11: Tiếp tục học
Một số điều cần làm trong suốt quá trình thực hiện các bước trên
Có một số điều mà bạn nên làm trong suốt quá trình mà bạn đang làm theo 10 bước nói trên. Nó sẽ rất khó để liệt kê chúng trong mỗi bước, vì vậy tôi sẽ liệt kê chúng một cách tóm tắt ở đây:
Dạy: Toàn bộ thời gian trong quá trình bạn đang học các thứ nói trên, bạn cũng nên dạy chúng cho những người khác. Không quan trọng là liệu bạn là một người mới bắt đầu hay là một chuyên gia, bạn sẽ có một cái gì đó có giá trị để dạy, dạy người khác thì cũng là một cách tốt nhất để học. Ghi lại tài liệu tất cả quá trình và chuyến hành trình của bạn, và giúp đỡ những người khác trên suốt con đường mà bạn đi.
Tiếp thị bản thân bạn: Tôi nghĩ rằng đây là một điều rất quan trọng đến mức tôi đã xây dựng một khóa học hoàn chỉnh về ý tưởng này. Học cách làm thế nào để tiếp thị bản thân và tiếp tục làm nó trong suốt sự nghiệp của bạn. Nhận ra cách làm thế nào để có thể tạo ra thương hiệu cá nhân cho chính bạn, xây dựng một danh tiếng cho riêng mình trong ngành công nghiệp phần mềm và bạn sẽ chẳng bao giờ sợ thiếu việc làm cả. Bạn sẽ quyết định về tương lai của chính mình nếu bạn học được cách tiếp thị bản thân. Có rất nhiều công việc phải làm, nhưng nó cũng mang lại giá trị xứng đáng. Bạn đang đọc bài viết này từ chính nỗ lực của tôi cho mục đích đó.
Đọc: Đừng bao giờ ngừng học. Đừng bao giờ ngừng đọc. Luôn luôn làm việc theo cách của bạn thông qua những cuốn sách. Luôn luôn phát triển bản thân. Chuyến hành trình tìm kiếm tri thức của bạn sẽ chẳng bao giờ kết thúc, vì việc học là chuyện của cả đời. Bạn có thể sẽ không biết được tất cả. Nếu bạn tiếp tục học trong suốt sự nghiệp của mình, thì bạn sẽ luôn luôn vượt trội hơn so với những đồng nghiệp khác.
Làm: Với mỗi điểm dừng chân trên chuyến hành trình đó, đừng chỉ học mà hãy làm. Hãy đặt mọi thứ mà bạn học được vào hành động. Thiết lập một quỹ thời gian bên cạnh để luyện tập các kỹ năng của bạn và viết code và xây dựng một số thứ. Cũng giống như việc bạn có thể đọc tất cả các cuốn sách về hướng dẫn chơi golf mà bạn muốn, nhưng bạn sẽ chẳng bao giờ trở thành tay golf số 1 thế giới như Tiger Woods nếu bạn không vác gậy đi đánh golf thực sự.
- Lựa chọn ngôn ngữ nào để bắt đầu học lập trình?
- Lập trình viên cần học những gì?
- Những tố chất cần có để trở thành lập trình viên
- Từng bước để trở thành một lập trình viên giỏi