“Một lập trình viên giỏi là một người luôn nhìn 2 phía khi băng qua đường 1 chiều”. ~ Doug Linder
Đối với một lập trình viên trong thế giới công nghệ, có một thứ mà có thể kéo chúng ta ra khỏi nhà và đến nơi làm việc, đó là niềm vui và đam mê trong việc lập trình. Nhưng để khiến cho công việc thực sự vui vẻ và có thể tạo ra một niềm hứng khởi vĩnh cửu, chúng ta cần phải biết những điều căn bản để giúp trở thành một nhà lập trình viên giỏi.
Trong bài viết này, tôi tập hợp những mẹo mà mình đã học và thực hành trong thực tiễn để có được những kết quả tốt nhất. Không có định nghĩa thế nào là một lập trình viên giỏi, tuy nhiên tôi đang nói tới một nhóm những con người đã tạo ra những giải pháp xuất sắc cho nền công nghiệp IT và giúp cho nền công nghiệp này ngày càng phát triển.
Đối với một lập trình viên trong thế giới công nghệ, có một thứ mà có thể kéo chúng ta ra khỏi nhà và đến nơi làm việc, đó là niềm vui và đam mê trong việc lập trình. Nhưng để khiến cho công việc thực sự vui vẻ và có thể tạo ra một niềm hứng khởi vĩnh cửu, chúng ta cần phải biết những điều căn bản để giúp trở thành một nhà lập trình viên giỏi.
Trong bài viết này, tôi tập hợp những mẹo mà mình đã học và thực hành trong thực tiễn để có được những kết quả tốt nhất. Không có định nghĩa thế nào là một lập trình viên giỏi, tuy nhiên tôi đang nói tới một nhóm những con người đã tạo ra những giải pháp xuất sắc cho nền công nghiệp IT và giúp cho nền công nghiệp này ngày càng phát triển.
1. Làm việc với Căn bản
Đúng
với tất cả các ngành nghề và công việc, hiểu được bản chất là nhân tố
quyết định cho thành công. Trừ khi một người có một nền tảng vững chắc,
bằng không anh/cô ấy sẽ không bao giờ trở thành một người lập trình
giỏi. Việc hiểu được bản chất giúp cho chúng ta có thể thiết kế và thực
hiện những giải pháp hay với những cách tốt nhất có thể. Nếu bạn vẫn
còn cảm thấy có khoảng trống trong lĩnh vực khoa học máy tính hoặc các
khái niệm trong ngôn ngữ lập trình, sẽ không bao giờ là quá muộn để quay
đầu và học lại những điều căn bản.
2. Hãy bắt đầu những câu hỏi (làm sao, cái gì) với tất cả nhưng đoạn code bạn viết
Một
điều giúp tôi nhận ra sự khác biệt giữa những người lập trình giỏi và
những người khác đó chính là sự thôi thúc muốn biết cái gì và làm cách
nào điều đó lại xảy ra. Có một nhóm nhỏ những người sẽ không bao giờ rời
dòng code của mình cho đến khi biết chắc chắn cái gì đang xảy ra khi
dòng code đó được chạy. Đôi khi, với thời gian hạn hẹp, chúng ta không
thể lúc nào cũng có được sự tự do để làm điều đó, và đôi khi ta phải bỏ
dở việc đào sâu nghiên cứu và chấp nhận rằng dòng code đó có thể làm
được việc. Nhưng đối với một người lập trình giỏi, chúng ta luôn có thể
cố gắng hết sức để đào vấn đề càng sâu càng tốt. Và hãy tin tôi đi, việc
này sẽ trở thành một thói quen và sau đó bạn làm mà không biết rằng
mình đang thực hiện điều đó.
3. Bạn học được nhiều hơn nếu giúp đỡ người khác
Hầu
hết chúng ta có một xu hướng phổ biến là quay lại với các diễn đàn chỉ
khi chúng ta cần sự giúp đỡ. Và một lần nữa, một điều phân biệt giữa
người lập trình giỏi và những người khác là họ vào các diễn đàn thường
xuyên để giúp đỡ và chia sẻ. Điều này sẽ khiến họ học hỏi thêm được
nhiều điều hơn là để vấn để của mình cho người khác giải quyết. Và tin
tôi đi, việc hiểu được vấn đề của người khác trong bối cảnh của họ ,
điều tra và cung cấp giải pháp sẽ khiến bạn học được nhiều hơn so với
trước đây.
4. Viết code đơn giản, dễ hiểu nhưng phải đúng logic.
Như
trong hầu hết mọi khía cạnh của cuộc sống, công thức KISS (Keep It
Short and Simple) cũng được áp dụng với lập trình. Hãy viết nhiều những
đoạn code hợp lý và tránh sự rườm rà phức tạp. Nhiều người cố tình viết
ra những đoạn mã phức tạp để chứng tỏ khả năng của mình, nhưng theo kinh
nghiệm của mình, tôi thấy những đoạn code đơn giản, logic luôn làm được
việc, nó thường sẽ ít có vấn đề và dễ dàng mở rộng. Tôi vẫn còn nhớ một
đoạn trích dẫn : “Những
đoạn mã tốt thì bản thân nó đã là một tài liệu tốt nhất. Mỗi khi bạn
phải thêm vào 1 dòng chú thích (comment), hãy luôn đặt câu hỏi: Làm cách
nào tôi có thể làm sáng tỏ đoạn mã này mà không cần phải chú thích
thêm” ~ Steve McConnel.
5. Dành nhiều thời gian trong việc phân tích vấn đề, bạn sẽ cần ít thời gian hơn để sửa chữa nó
Dành
nhiều thời gian trong việc tìm hiểu và phân tích vấn đề và thiết kế
giải pháp cho nó sẽ giúp bạn dễ dàng thực hiện được phần còn lại. Thiết
kế không phải lúc nào cũng có nghĩa là bằng cách sử dụng ngôn ngữ mô
hình hóa và các công cụ, nó có thể đơn giản như nhìn bầu trời và suy
nghĩ giải pháp trong tâm trí của bạn. Những người có thói quen nhấn bàn
phím (để viết code) ngay thời điểm nhận được vấn đề, thường kết thúc với
một cái gì đó khác hơn nhiều so với yêu cầu.
“Nếu bạn không thể hình dung ra cấu trúc tổng thể của một chương trình trong khi đang tắm, bạn chưa sẵn sàng để code nó”. ~ Richard Pattis
“Nếu bạn không thể hình dung ra cấu trúc tổng thể của một chương trình trong khi đang tắm, bạn chưa sẵn sàng để code nó”. ~ Richard Pattis
6. Hãy là người đầu tiên phân tích và kiểm duyệt mã của bạn
Mặc
dù có một chút khó khăn, nhưng hãy cố gắng để khám phá những đoạn mã
của bạn trước khi những người khác làm việc đó, và với thời gian, bạn sẽ
học được cách để viết ra những đoạn mã mà hầu như sẽ không có lỗi. Luôn
luôn xem xét chặt chẽ và không thiên vị với những đoạn mã đó; Cũng
không bao giờ ngần ngại để người khác xem nó. Làm việc với các lập trình
viên tốt thì các phản hồi từ họ chắc chắn sẽ giúp bạn trở thành một lập
trình viên tốt.
7. Không chạy theo công nghệ
Trong
giai đoạn gần đây của ngành công nghiệp IT, tôi đã gặp rất nhiều người
thất vọng bởi công việc của họ, thậm chí bỏ việc để tìm những cơ hội
mới. Họ nói rằng họ muốn học và tìm hiểu những công nghệ mới nhất. Những
gì chúng ta nghe thấy hàng ngày về “công nghệ mới” có thể hiểu là những
công cụ mới, API, framework và nó được phát triển theo từng ngày để
khiến cho việc lập trình dễ dàng hơn và nhanh hơn. Điều này dù sao vẫn
đang rất phổ biến và sẽ tiếp tục trong thế giới công nghệ. Nhưng những
gì cần phải hiểu chính là các công nghệ cốt lõi và cơ bản thì thay đổi
rất ít so sánh với các framework, tool và API xung quanh nó. Cũng giống
như nước biển, nếu nước ở tầng trên thường nổi sóng cuồn cuộn và chảy đi
với tốc độ rất nhanh thì nước ở tầng sâu lại ít di chuyển và đó mới
chính là nơi để nguồn thủy sản sinh sôi và phát triển. Vì thế, hãy cảm
nhận chính mình trong phần nước sâu, và gần gũi với những công nghệ cốt
lõi. Ví dụ, trong Java Enterprise, hiện đang có rất nhiều web frameworks
tồn tại và còn nhiều nữa sắp được tung ra. Nhưng những khái niệm cốt
lõi của mô hình Client-Server, MVC pattern, filters/servlets/JSP,
resource bundling, XML parsing thì vẫn không thay đổi. Vì thế hãy dành
nhiều thời gian để tìm hiểu về những khái niệm này hơn là lo lắng và
chạy theo những framework và tool xung quanh nó. Với nền tảng về các
khái niệm cơ bản vững chắc, bạn sẽ luôn luôn thấy việc học công nghệ
mới, tool hay các API sẽ là công việc khá đơn giản.
8. Giải pháp tạm thời (work-around solution) không tồn tại được lâu.
Rất
nhiều lập trình viên sử dụng các giải pháp tạm thời, lý do có thể là do
thiếu thời gian, thiếu kinh nghiệm, thiếu sự hiểu biết của vấn đề.
Nhưng theo thời gian, những giải pháp đó sẽ gây ra sự hỏng hóc của
chương trình hoặc mã, nó khiến ta khó có khả năng mở rộng hoặc bảo trì,
dẫn đến việc tốn nhiều thời gian và công sức sau này để sửa chữa nó. Vì
thế hãy luôn luôn ghi nhớ là cần phải tìm những giải pháp khi bạn biết
rõ đầu vào và đầu ra của nó. Trong nhiều trường hợp, sẽ khó tránh khỏi
những việc phải sử dụng work-around, cũng giống như việc người ta hay
nói: “Tôi luôn luôn nói thật, nhưng trong một vài trường hợp tôi phải nói dối“.
9. Đọc tài liệu
Một
trong những thói quen cần thiết của các lập trình viên giỏi là họ đọc
rất nhiều tài liệu. Nó có thể là các thông số kỹ thuật, JSR (Java
Specification Request), tài liệu, hướng dẫn API. Đọc tài liệu sẽ giúp
bạn hình dung ra nền tảng thiết yếu dựa trên đó, bạn có thể lập trình
theo cách tốt nhất.
10. Bạn có thể học hỏi từ mã của người khác
Tôi
cộng tác với một số lập trình viên xuất sắc, những người lúc nào cũng
có những dự án java trong IDE của họ để có thể đọc hoặc tham chiếu đến
nó trong công việc hàng ngày. Họ làm điều đó không chỉ để thỏa mãn nhu
cầu được hiểu về các vấn đề căn bản mà còn là một cách để viết những
chương trình tốt. Đọc và tham khảo những mã nguồn uy tín hoặc từ những
đồng nghiệp lâu năm, sẽ giúp cho bạn tạo ra những chương trình tốt hơn.
Và điều cuối cùng, không được liệt kê ở trên: Đừng so sánh mình với những người khác
So
sánh của bạn về bản thân với người khác sẽ chỉ dẫn đến những cảm xúc
tiêu cực và cạnh tranh không lành mạnh. Mọi người đều có điểm mạnh và
điểm yếu riêng. Quan trọng hơn là chúng ta phải hiểu bản thân và làm
việc với nó. Tôi đã nhiều lần chứng kiến những người được cho là lập
trình viên kiệt xuất lại làm ra những sai lầm ngớ ngẩn. Vì vậy, phân
tích bản thân, lập danh sách những thứ bạn cần cải thiện và làm việc với
nó. Lập trình là một niềm vui thực sự, hãy tận hưởng nó.
“Bất
kỳ kẻ ngốc nào cũng có thể viết mã để một máy tính có thể hiểu được.
Các lập trình viên giỏi viết mã để cho những người khác có thể hiểu được“. ~ Martin Fowler
Bài viết của tác giả Ashish Arya
Người dịch: Phạm Thùy Dương
Không có nhận xét nào:
Đăng nhận xét