Ngày 31 tháng 08 năm 2012

Cách Học Lập Trình Giỏi


Đây là 1 bài viết cách để trở thành lập trình viên giỏi mình lấy từ 1 website:
Không có định nghĩa cụ thể để đánh giá đâu là lập trình viên giỏi. Nhưng một lập trình viên giỏi trước tiên phải là người hoàn thành tốt công việc và tiếp nữa, thành quả của họ là những giải pháp xuất sắc thúc đẩy sự phát triển và đóng góp cho nghành phần mềm. Những nguyên tắc dưới đây thật sự cần cho những ai đã, đang và sẽ theo đuổi nghiệp lập trình.

1. Làm việc dựa trên kiến thức nền tảng.
Trong khoa học kỹ thuật, kiến thức căn bản là tối cần thiết. Nắm vững kiến thức căn bản ta sẽ có được cơ sở vững chắc cho thành công. Nghành phần mềm cũng không phải ngoại lệ, các lý thuyết về máy tính, phần cứng, mạng, thiết bị ngoại vi, hệ điều hành, thuật toán, mô hình cơ sở dữ liệu,…là căn bản, kim chỉ nam cho các thiết kế, cài đặt trong phần mềm. Nếu còn chưa nắm vững lý thuyết căn bản về khoa học máy tính, hãy sử dụng internet. Đó là cách tiếp cận tri thức vô cùng hiệu quả do chính công nghệ thông tin mang lại.
2. Gắn các từ khóa nghi vấn (how, what,…) cho mọi mã lệnh mà mình viết ra.
Một điều tôi nhận thấy là có khoảng cách rõ ràng giữa lập trình viên giỏi và phần còn lại. Lập trình viên đó luôn ham hố hiểu biết tất cả những gì về mã lệnh khi nó được thực thi (Nó chạy như thế nào? Làm sao nó chạy?…). Bởi thế, họ sẽ không bao giờ để lại những dòng code do mình viết mà không hề biết rõ mã lệnh đó được máy tính thi hành như thế nào.
Mặc dù phần mềm được phát triển theo một lịch trình chặt chẽ nhưng đó không phải là lý do chẹp miệng cho qua. Hãy hiểu biết chính xác và lựa chọn phương pháp tốt nhất cho cài đặt của bạn trong sự cân nhắc thời hạn hoàn thành phần mềm. Hãy biến nguyên tắc này trở thành một thói quen tốt trong công việc.
3. Hãy học bằng cách giúp đỡ người khác.
Kinh nghiệm bản thân cho thấy, tôi học được rất nhiều bằng cách tìm câu trả lời cho các thành viên trên diễn đàn JavaVietnam.org. Tự xấu hổ vì đến giờ tôi không còn nhiều thời gian lẫn thích thú khi làm tiếp công việc này. Giúp người khác tìm hiểu, giải quyết vấn đề là một phương pháp tốt để học tập. Trong công ty, trong nhóm, trên cộng đồng,… hiểu biết khó khăn của người khác và đưa cho họ giải pháp khắc phục là cách để nâng cao kiến thức của chính bản thân mình.
4. Hãy viết những dòng code đơn giản, dể hiểu nhưng logic.
Giữ cho mình công thức KISS: Keep it simple and short – Đơn giản và ngắn gọn. Đừng bao giờ cho rằng mã lệnh càng phức tạp thì càng khẳng định mình giỏi. Hãy viết những dòng code hợp lý và thật đơn giản. Mã lệnh càng đơn giản thì càng ít lỗi, có thể mở rộng tốt hơn cũng đồng nghĩa với việc cộng tác nhóm tốt hơn khi chúng ta cần chuyển giao code.
Một trong những tiêu chí đánh giá khả năng này là mã lệnh đạt đến mức không cần comment (chú thích). Điều đó đồng nghĩa với việc bất cứ ai cũng có thể đọc mã lệnh của bạn. Đừng tưởng viết nhiều chú thích vào mã mà bạn trở thành chuyên nghiệp. Hãy thể hiện chúng ngay trong chính dòng mã của mình.
5. Dùng nhiều thời gian để phân tích vấn đề hơn là đi sửa lỗi.
Một lập trình viên tốt sẽ dùng nhiều thời gian cho phân tích và thiết kế code hơn là thời gian sửa lỗi sau cài đặt. Thiết kế không đồng nghĩa với việc phải ngồi vạch
vạch, vẽ vẽ ra trên giấy. Nó đơn giản chỉ là ngẩng mặt lên trời và suy nghĩ một giải pháp trong đầu bạn. Đừng vội vơ lấy bàn phím khi có được yêu cầu, hãy phân
tích, thiết kế và cài đặt từ trong tâm trí trước khi hiện hữu những dòng mã trên màn hình.
If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it. ~Richard Pattis
6. Hãy là người đầu tiên phân tích và nhìn lại mã của bạn.
Nhìn lại mã lệnh mình vừa viết là một thói quen cực tốt. Việc này có thể cải tiến được cài đặt và tránh lỗi trước khi người khác phát hiện ra. Luôn luôn nghiêm
khắc và đừng bao giờ thiên vị với thành phẩm của mình. Cũng không nên ngại ngần khi để người khác review code. Tiếp thu những phản hồi từ bên ngoài sẽ giúp
bản thân ngày càng tiến bộ hơn.
7. Đừng chạy theo công nghệ.
Hiệu ứng sính cái mới đặc biệt phổ dụng trong nghành công nghệ.
Có rất nhiều người luôn muốn tìm hiểu và đánh cược cả sự nghiệp của mình vào những công nghệ vừa mới ra đời. Thật nực cười khi cụm từ “công nghệ mới nhất”
được gắn cho những tools, APIs, frameworks,… vừa mới ra đời. Những gì tương tự vậy diễn ra hàng ngày trong thế giới công nghệ và mặc dù chúng có thể giúp
việc lập trình nhanh hơn, dễ dàng hơn nhưng đừng vội vàng theo đuổi trước khi có những đánh giá cặn kẽ. Hãy giữ nền tảng kiến thức làm kim chỉ nam và kiến
thức nền tảng có tốc độ thay đổi chậm hơn rất nhiều so với frameworks, tools hay APIs quanh nó.
Đừng dập dềnh trên những con sóng biển. Nước bề mặt luân chuyển nhanh hơn rất nhiều trong khi nước ở dưới đáy, nơi cuộc sống cá tôm thực sự
tồn tại lại ít có sự thay đổi hơn. Hãy đặt mình vào chỗ nước sâu và gần hơn với kiến thức căn bản.
Chẳng hạn, trong thế giới Java, rất nhiều những tool, frameworks tồn tại và ra đời mỗi tuần. Đừng quan tâm nhiều, những khái niệm cốt lõi như tương tác client-
server, MVC pattern, Servlets/JSP, resource bundling, XML parsing,… mới là thứ cần phải nắm chắc. Một khi đã có được chúng, việc tiếp cận công cụ hay
frameworks mới sẽ chỉ trong một sớm một chiều.
8. Các giải pháp tình thế không tồn tại được lâu
Nhiều lập trình viên đưa ra những giải pháp tình thế để giải quyết vấn đề (do thiếu thời gian, không hiểu đúng vấn đề, hoặc thiếu kinh nghiệm). Nhưng về lâu dài,
những giải pháp đó sẽ làm hỏng code, khiến nó khó mở rộng và bảo trì. Hãy luôn cố gắng thực hiện một cách tổng thể. Chỉ nên bắt đầu công việc khi đã hiểu rõ
đầu vào- đầu ra của giải pháp.
9. Đọc tài liệu.
Lập trình viên giỏi thường giữ thói quen đọc nhiều tài liệu. Tài liệu có thể là đặc tả, API documents, tutorials,… Đọc tài liệu sẽ trang bị cho chúng ta những hiểu
biết tốt nhất từ đó có được cách thức giải quyết hiệu quả nhất cho mọi vấn đề.
10. Hãy học bằng cách đọc mã của người khác.
Tìm cách tiếp cận lập trình viên giỏi để có được mã nguồn của họ. Đọc và tham khảo trực tiếp chúng trong công việc hàng ngày. Cách thức tổ chức code, thiết kế
code (factory, singleton, traversal,…), cấu trúc thuật toán,… là những thứ rất đáng để quan tâm. Trong thế giới Java, bộ mã nguồn của JDK sẽ là một tham vấn
bên cạnh thế giới nguồn mở sẽ có rất nhiều thứ cho bạn học tập và tìm tòi.
                                                        Nguồn :http://hoangsanhck2.wordpress.com