29/09/2018, 00:29

Làm thế nào để trở thành một lập trình viên giỏi

Là một lập trình viên PHP, hay bất kỳ kiểu lập trình viên nào, bạn cần phải liên tục cải thiện mình trong ngành công nghiệp luôn luôn thay đổi này; bạn cần phải tìm hiểu và sử dụng kiến thức mới mỗi ngày. Những lập trình viên thành công đều có một điểm chung, đó là họ quan tâm về ...

Là một lập trình viên PHP, hay bất kỳ kiểu lập trình viên nào, bạn cần phải liên tục cải thiện mình trong ngành công nghiệp luôn luôn thay đổi này; bạn cần phải tìm hiểu và sử dụng kiến thức mới mỗi ngày.

Những lập trình viên thành công đều có một điểm chung, đó là họ quan tâm về lập trình rất nhiều, họ là những chuyên gia xem những thói quen lập trình tốt như một hình thức nghệ thuật.

Trong bài viết này, bạn sẽ học cách làm thế nào để trở thành một lập trình viên giỏi hơn bằng cách làm theo các “nghi thức” của lập trình và bạn sẽ học cách làm thế nào sử dụng thông tin này để có thể dạy những người khác tự vươn lên trong nghề nghiệp và cuộc sống.

Làm thế nào để trở thành một người chuyên nghiệp

Học lập trình online trở thành lập trình viên giỏi

Tính chuyên nghiệp, không phụ thuộc vào công việc mà bạn đang làm, nó luôn bắt đầu cùng với bạn. Sự chuyên nghiệp đầu tiên và quan trọng nhất đó là có cá tính mạnh mẽ và đặc trưng.

Như trong bất kỳ lĩnh vực nào của cuộc sống, các chuyên gia lập trình luôn được xã hội tôn trọng. Bởi vậy chúng ta hãy cùng xem cách làm thế nào để bạn trở thành một người như vậy nhé!

Đừng ích kỷ

Tôi đã có cơ hội để làm việc trong những team rất lớn kể từ khi mới vào nghề này và điều quan trọng nhất mà tôi đã học được từ một nhóm năng động đó là tinh thần đồng đội và hợp tác chặt chẽ.

Phần lớn thời gian khi bạn ở trong một nhóm đó là học hỏi và dạy lẫn nhau, và môi trường làm việc phải luôn luôn cởi mở và có tinh thần sẻ chia.

Nếu bạn không muốn chia sẻ công việc và kiến thức của mình, bạn ngạo mạn và/hoặc có một “cái tôi” lớn, thì bạn sẽ không cảm thấy thoải mái để làm việc trong một môi trường như thế này.

Chịu trách nhiệm

Những người không chuyên nghiệp không cần phải chịu trách nhiệm về công việc của mình. Họ chuyển phần việc đó cho người quản lý. Họ chỉ nhận công việc được giao rồi quên tất cả về nó và xách đít ra về khi đồng hồ trỏ đến 5 giờ chiều.

Một lập trình viên chuyên nghiệp không thể chấp nhận điều này. Bạn sẽ cảm thấy thế nào nếu bug trong code của bạn khiến cho công ty phải thiệt hại hàng ngàn đô-la?

Đây là một vấn đề mà giải pháp còn phụ thuộc vào cách quản lý của mỗi công ty. Mọi công ty nên khuyến khích các lập trình viên phải chịu trách nhiệm về hành động của mình và quan trọng hơn là về phần code mà họ đã viết ra.

Nếu phát hiện ra lỗi trên production server, hãy làm mọi thứ trong khả năng của mình để sửa chữa nó càng sớm càng tốt, ngay cả khi bạn phải thức trắng đêm. Điều này sẽ phân biệt bạn khỏi những tay thiếu chuyên nghiệp và giúp bạn nhận được mức lương cao hơn.

Chấp nhận những lời chỉ trích
Việc viết ra phần mềm không có lỗi là điều không thể và tất cả chúng ta đều là nạn nhân của việc committing một cái gì đó ngớ ngẩn vào repository.

Cái cách chúng ta xử lý những lời chỉ trích cho thấy rất nhiều về cách chúng ta được xem như là những lập trình viên chuyên nghiệp.

Bạn nên lắng nghe và rút kinh nghiệm từ những lời chỉ trích, bởi vì điều đó làm cho bạn trở nên tốt hơn trong tương lai, đặc biệt là nếu bạn đang bị chỉ trích bởi những người có nhiều kinh nghiệm hơn mình.

Có một nguyên tắc làm việc mạnh mẽ

Trở thành một người chuyên nghiệp là một công việc không có điểm dừng. Việc học tập không chỉ nằm trong khoảng thời gian hành chính từ 9 giờ sáng đến 5 giờ chiều.

Không ngừng học tập, rèn luyện và nâng cao năng lực bản thân là một sự đầu tư vào chính mình và đó là trách nhiệm của bạn, không phải là trách nhiệm của ông chủ của bạn.

Bạn sẽ nói rằng, mình không đủ thời gian phải không nào? Tất nhiên là bạn sẽ có đủ! Bạn chỉ cần suy nghĩ một cách thông minh. Nếu bạn muốn nâng sự nghiệp của mình lên một tầm cao mới, thì hãy tập trung vào nó một cách nghiêm túc.

Hãy đi làm sớm, và ra về muộn hơn một chút. Sao cho khoảng thời gian làm thêm này có thể giúp phát triển sự nghiệp nhưng lại không ảnh hưởng đến sức khỏe cũng như thời gian dành cho gia đình của bạn.

Chỉ cần thêm 30 phút trước và sau giờ làm chính thức có nghĩa là mỗi tuần bạn sẽ làm thêm được 5 giờ đồng hồ. Đồng nghĩa với việc mỗi tuần bạn làm thêm được hơn nửa ngày.

Làm thế nào để viết ra code tốt

Học lập trình online trở thành lập trình viên giỏi

Đọc mã nguồn

Bạn hãy nghĩ mà xem: bạn không thể học cách đọc nhanh nếu không luyện đọc mỗi ngày. Công việc của các lập trình viên là viết ra code tốt, nhưng bạn không thể viết ra code tốt nếu bạn không biết code tốt là như thế nào.

Hầu hết các lập trình viên thường mù quáng sử dụng các thư viện của bên thứ ba mà không chạm vào mã nguồn. Điều này cũng ok thôi, nhưng để hiểu rõ về thư viện đó, bạn cần phải đào sâu hơn và đọc mã nguồn của nó, các comment, chạy các test (nếu có).

Đọc code sẽ giúp bạn nhanh chóng tìm thấy sai lầm các lập trình viên khác và điều này sẽ giúp ích rất nhiều nếu bạn đang tiến hành code review hoặc lập trình cặp (pair programming).

Tìm hiểu các kỹ thuật mới
Luôn luôn cởi mở để học các kỹ thuật mới và quyết định xem làm thế nào để chúng có thể giúp bạn trở thành một lập trình viên giỏi hơn.

Hãy luôn luôn cởi mở với những điều mới, đừng bỏ qua những xu hướng mới nhất chỉ vì bạn nghĩ rằng chúng sẽ trôi qua. Mọi thứ đều phát triển theo chu kỳ, nhưng cái không đổi đó là kiến thức mà bạn đã có cộng với việc cởi mở tâm trí để tiếp nhận những điều mới mẻ.

Một lập trình viên giỏi sẽ chẳng bao giờ dừng việc học, ngay cả khi anh ta đã có 15-20 năm kinh nghiệm trong nghề.

Hãy chậm lại

Hãy chậm lại và có thêm một chút thời gian để đánh giá vấn đề mà bạn đang cố gắng giải quyết. Làm nhanh không phải là một tiêu chí mà bạn nên phấn đấu.

Tôi đã nhìn thấy các lập trình viên mới vào nghề nhận tác vụ và viết code nhanh nhất mà họ có thể, kết quả là phần code có đầy lỗi, điều này làm mất nhiều thời gian để sửa chữa hơn nếu họ chịu ngồi xuống và suy nghĩ thấu đáo về một giải pháp đúng đắn ngay từ đầu.

Các lập trình viên có thâm niên là những người “lười biếng và chậm chạp”, và đây là lợi ích tốt nhất của mọi người, bởi vì một lập trình giỏi sẽ không muốn làm một công việc tới hai lần.

Đối với một lập trình viên nhiều kinh nghiệm, việc viết code thực tế chỉ chiếm 1/3 thời gian trong tổng thời gian dành cho tác vụ đó, phần thời gian còn lại là dành để suy nghĩ tìm ra một giải pháp tốt nhất cho vấn đề đang gặp phải.

ThamCơ hội tham gia ngày hội lập trình lớn nhất Việt Nam: Vietnamwebsummit.com

Kiểm thử code của bạn

Đây không phải là một cuộc tranh luận về việc có nên sử dụng phương pháp phát triển TDD hay không, nhưng nên nhớ rằng việc kiểm thử là rất quan trọng để có thể đưa ra phần code chất lượng.

Làm thế nào để bạn biết liệu một cái gì đó có bị lỗi hay không nếu không kiểm thử nó? Bạn có biết những gì mình đã làm một vài tháng trước đây trên một tính năng đặc biệt nào đó?

Từ những kiểm thử, bạn có thể biết được phần code đó thực sự làm việc như thế nào. Nó giống như một hướng dẫn cho các lập trình viên và cũng như phần mục lục của một cuốn sách vậy. Các kiểm thử chỉ cho bạn biết nên xem chỗ nào và nên xem cái gì.

Việc viết test cho code của bạn là quan trọng và khó khăn vào lúc đầu, nhưng nó đã được chứng minh là có lợi về lâu dài không biết bao nhiêu lần rồi.

Biết rõ công cụ của bạn

Biết những loại công cụ nào bạn có thể sử dụng để giúp bạn giải quyết các vấn đề. Hầu hết các công cụ hiện nay thường được sử dụng theo sở thích, nhưng nên nhớ rằng một công cụ hoặc thư viện tốt có thể giúp bạn rất nhiều.

Chỉ cần nghĩ về bao nhiêu thời gian bạn đã dành ra sử dụng một trình soạn thảo code, hoặc một IDE đầy đủ hay chỉ là một editor có hỗ trợ tính năng highlighted code.

Ngoài ra, bạn nên quyết định xem liệu có đáng để sử dụng một thư viện cụ thể cho công việc hay không. Liệu có giá trị để sử dụng một framework PHP? Những ưu và khuyết điểm là gì? Có nên sử dụng một CMS cồng kềnh cho một dự án nhỏ?

Đây là những câu hỏi mà bạn nên đặt ra trước khi xắn tay áo lên để bắt đầu viết code.

Làm thế nào để luôn đi đúng hướng

Học lập trình online trở thành lập trình viên giỏi

Chiến đấu chống lại tình trạng kiệt sức

Việc liên tục lập trình trong một thời gian dài có thể dẫn đến tình trạng mệt mỏi và chán nản. Hầu hết các lập trình viên có thâm niên đều phải trải qua việc này tại một thời điểm nào đó trong sự nghiệp của họ.

Tình trạng hết năng lượng (burnout) là sự kết hợp của làm việc trong nhiều giờ liền và cái được gọi là “hội chứng kẻ mạo danh”, có nghĩa là một lập trình viên luôn nghĩ rằng mình không đủ giỏi; và để trở nên giỏi hơn anh ta cần phải làm việc chăm chỉ hơn và làm việc nhiều hơn, trong khi nhiều không có nghĩa là tốt hơn.

Loại thuốc tốt nhất để chữa trị bệnh này là chỉ cần lùi lại, thoát ra khỏi chu kỳ đó và làm công việc khác, những công việc sáng tạo. Hãy dành thời gian nghỉ ngơi, thậm chí nếu nó chỉ là một vài ngày.

Một giải pháp khác, ngày càng phổ biến trong cuộc chiến chống lại sự kiệt sức (burnout), đó là tìm  một thành viên trong nhóm mà bạn có thể cùng lập trình cặp. Sự tương tác xã hội với một người khác là rất hiệu quả.

Bảo trì code

Luôn luôn đi đúng hướng có nghĩa là luôn giữ một code base gọn gàng. Không chỉ cho những người khác, mà cho cả bản thân bạn nữa. Code mà không có kiểm thử hoặc tài liệu hướng dẫn thì giống như một mớ bùi nhùi mà không ai muốn nhìn lại.

Điều gì sẽ xảy ra khi bạn cần phải xem lại một số tính năng sau vài tháng không đụng đến nó? Bạn sẽ phải dành nhiều thời gian hơn để nhận ra những gì trước đây mình đã thực sự làm.

Tôi đã nhìn thấy nhiều khách hàng tìm thuê các lập trình viên để cấu trúc lại dự án của họ rất nhiều lần, bởi vì team trước đó không còn cảm thấy thú vị và muốn làm việc trên đó nữa, và gần như tất cả thời gian của team mới là phải viết lại từ đầu.

Điều này xảy ra bởi vì các team trước đó không có khả năng duy trì một code base sạch và gọn gàng. Để làm được điều này mất rất nhiều thời gian; nhưng bạn nên học cách thực hiện được điều đó.

Kỹ năng ước lượng

Ước lượng là một vấn đề nhạy cảm đối với nhiều lập trình viên và các nhà quản lý. Tôi chắc chắn rằng tất cả mọi người đã nghe nói về những câu chuyện mà nhà quản lý yêu cầu các lập trình viên ước lượng về thời gian để hoàn thành một công việc, và họ mong đợi một câu trả lời rõ ràng, nhưng sau đó thời gian thực hiện vẫn gấp đôi thời gian được ước tính ban đầu.

Điều mà hầu hết mọi người không nhận ra đó là ước lượng chỉ là sự suy đoán chứ không phải là cam kết. Để trở thành một lập trình viên giỏi hơn, bạn nên biết rằng ước lượng không bao giờ là một sự cam kết, bởi vì một khi bạn cam kết để làm một điều gì đó thì có nghĩa là bạn phải có trách nhiệm để hoàn thành đúng hạn.

Ước lượng chưa bao giờ và sẽ không bao giờ là cam kết cả, đây là bản chất tự nhiên của việc ước lượng. Mọi người thường cảm thấy khó khăn khi ước lượng thời gian cho một công việc nhất định, và nếu người quản lý của bạn yêu cầu thì bạn nên nói với anh ta rằng bạn không thể cam kết cho một cái gì đó mà bạn không chắc chắn 100% mình có thể làm đúng hạn.

Tuy nhiên, bạn có thể ước lượng theo kinh nghiệm, nhưng đừng nói ra bất kỳ lời hứa nào.

Làm thế nào để trở thành một chuyên gia

Học lập trình online trở thành lập trình viên giỏi

Giao tiếp

Việc giao tiếp rất là quan trọng. Tôi đã nhìn thấy các dự án và công ty sụp đổ vì các thành viên trong nhóm không thể giao tiếp với nhau hiệu quả.

Hãy giữ cho việc giao tiếp trở nên đơn giản và dễ dàng, hãy loại bỏ những yếu tố trung gian giữa bạn và người cần giao tiếp. Mỗi “node” trong đường dây giao tiếp của bạn tạo ra sự phức tạp theo hàm số mũ.

Các tổ chức lớn gặp phải vấn đề này rất nhiều – đây là lý do tại sao họ thay đổi rất chậm, mọi quyết định phải đi qua hàng tá người, và đây là nơi mà các team agile tỏa sáng.

Giữ cho việc giao tiếp đơn giản và ngắn gọn có nghĩa là bạn có thể di chuyển nhanh hơn so với những người khác, bạn có thể hiểu được nhiệm vụ của mình rõ ràng hơn và điều này mang lại cho bạn một lợi thế lớn, do đó đừng ngại hỏi và đặt ra những câu hỏi cụ thể.

Hợp tác

Bên cạnh việc trở thành một người giao tiếp tốt, bạn cũng sẽ cần phải là một người cộng tác tốt.

Bạn cần phải hợp tác không chỉ với các lập trình viên khác, mà còn với người quản lý của bạn, và có thể là trực tiếp với khách hàng nữa.

Sự hợp tác cũng có nghĩa là biết công việc của mình là gì và biết cách hoàn thành công việc cũng như trở thành một thành viên giỏi trong nhóm.

Nếu bạn thấy rất khó để hợp tác hiệu quả với người khác, thì hãy thử phương pháp lập trình cặp. Bản chất của cặp lập trình là sự hợp tác.

Lời nguyền của kiến thức

Theo Wikipedia: “Lời nguyền của kiến thức là một sự thiên vị về nhận thức dẫn đến bên có nhiều thông tin hơn cảm thấy vô cùng khó khăn để suy nghĩ về vấn đề đó từ quan điểm của bên ít thông tin hơn.”

Về cơ bản, các lập trình viên có thâm niên thường rất khó khăn để giải thích các vấn đề sao cho đơn giản để các lập trình viên mới vào nghề có thể hiểu được. Điều này xảy ra bởi vì tất cả họ đều rất quen thuộc với các vấn đề và kỹ thuật mà họ đã giải quyết nó, nhưng khi họ cố gắng để giải thích cho những người khác thì họ thất bại, bởi vì lời giải thích đó chỉ là một bản tóm tắt các kiến thức trong đầu của họ mà thôi.

Nói một cách đơn giản, là khi bạn biết điều gì đó thì rất khó để truyền đạt cho những người chưa biết về nó. Để khắc phục điều này, bạn cần phải sử dụng ngôn ngữ chính xác. Giải thích một vấn đề thật chi tiết, ngay cả khi bạn thấy điều này trông thật buồn cười nhưng hãy cứ tiếp tục, bởi vì suy nghĩ của bạn không giống như suy nghĩ của những người tiếp nhận đâu.

Biết lĩnh vực của bạn

Nếu bạn xem mình là một chuyên gia trong lập trình, thì hãy là một chuyên gia lập trình đúng nghĩa. Đó là biết rõ về lĩnh vực của bạn từ trên xuống dưới.

Biết lĩnh vực của mình không nhất thiết có nghĩa là bạn phải có một trình độ đại học, nó có nghĩa là bạn có rất nhiều kinh nghiệm làm việc thực tế. Bạn cần phải cải thiện kỹ năng của mình không chỉ trong lập trình nói chung, mà còn trong cả kỹ thuật và kiến trúc máy tính nữa.

Trở thành một chuyên gia có nghĩa là bạn phải tìm ra giải pháp lập trình tốt nhất có thể cho một vấn đề, còn công việc viết code chỉ là “việc phụ” cho điều này mà thôi.

Hiểu rõ nghiệp vụ mà bạn đang làm

Không ai có thể tạo ra phần mềm tốt mà không biết rõ các vấn đề nghiệp vụ của doanh nghiệp và những gì họ đang cố gắng giải quyết với code của bạn.

Bạn cần phải năng động và quan tâm đến nghiệp vụ, bởi vì nó phản ánh vào trong công việc của mình. Nếu không có những mục tiêu rõ ràng và những vấn đề cụ thể thì phần code của bạn sẽ vô tình trở thành một mớ hỗn độn.

Nếu bạn cảm thấy rằng chuyên môn của mình và mục tiêu của doanh nghiệp không phù hợp với nhau, thì đừng nhận lời làm công việc đó. Bởi vì thời gian của bạn là vô giá.

Code katas

Không ngừng nâng cao năng lực bản thân, và trước tiên bạn cần phải biết là mình đang ở cấp độ nào cái đã.

Code katas là những bài tập dành cho các lập trình viên cải thiện kỹ năng của mình bằng cách thực hành và tìm ra giải pháp tốt hơn cho các vấn đề khác nhau.

Bạn có thể thử giải quyết các code kata tại các dự án như Euler, CodeKata hoặc Topcoder.

Topcoder thậm chí còn có giải thưởng cho những ai tìm ra giải pháp tốt nhất trong những thách thức lập trình của họ.

Kết luận

Lập trình là một hoạt động mang tính xã hội. Để trở thành một lập trình giỏi, trước tiên bạn phải làm việc dựa trên cá tính của mình nếu bạn thấy mình sống nội tâm. Sau đó, phải nắm vững các nguyên tắc lập trình.

Bạn cần phải liên tục cải thiện bản thân, không ngừng học hỏi, và bước một bước về phía trước trong trò chơi này. Để thực sự đạt được tính chuyên nghiệp, bạn cần phải hiểu các nghiệp vụ và vấn đề mà bạn đang cố gắng giải quyết với code của mình.

Code chỉ là một sản phẩm phụ của toàn bộ giải pháp cho vấn đề và nó bổ sung rất ít đến bức tranh lớn. Các ý tưởng giải pháp, các kỹ năng hợp tác và làm chủ những công cụ bạn cần phải sử dụng để giải quyết một vấn đề là chìa khóa để trở thành một người chuyên nghiệp được cộng đồng tôn trọng.

Nếu bạn có bất cứ điều gì muốn bổ sung vào danh sách này, xin vui lòng cho chúng tôi biết trong phần bình luận phía dưới nhé!

Techtalk via Techmaster

0