Lập trình có cứng nhắc và máy móc không (phần tiếp theo) Unknown Thursday, February 5, 2015 No Comment

Hiện nay, để có thể học được lập trình thì rất dễ dàng, và nếu như bạn rất quan tâm đến nó. Như vậy thì nên học như thế nào để cho có hiệu quả tốt nhất? Đơn giản mà chỉ đọc qua một bài viết thì không thể hiểu hết được, nhưng nói chung, theo kinh nghiệm của các lập trình viên, bạn nên chú ý vài điều sau đây. 

1. Phải có khả năng tự kỷ ám thị, ví dụ như “lập trình” là mục đích của cuộc đời, không trở thành “lập trình viên giỏi” tôi không biết phải làm gì. “Lập trình thật dễ”...v.v Làm sao để cho mình cảm thấy việc học lập trình và lập trình là công việc thiết yếu, mang tính sống còn (giống thi đại học), bạn sẽ học được nhanh và hiệu quả hơn.
2. Học tập dựa trên tích lũy, không có việc học chỉ trong một ngày, phải thường xuyên rèn luyện để tạo nên niềm đam mê với nó.
3. Không thể làm ứng dụng đàng hoàng nếu thiếu lý thuyết, nhưng cũng không thể làm việc hiệu quả nếu không làm dự án thực tế và luyện tập miệt mài. Vì vậy, việc đọc sách/báo/bài viết và tự nghĩ ra các bài tập để rèn luyện kỹ năng đã học là việc làm cần làm thường xuyên, xen kẽ và không bao giờ ngừng lại.
4. Tri thức là vô hạn, năng lực học tập là hữu hạn, vì vậy bạn không thể cùng một lúc học hết được tất cả, hãy học thứ cốt yếu, lưu lại (bookmark) và sưu tầm những thứ là thứ yếu để sau này có thể dùng khi cần. Ví dụ: biết lập trình javascript là cốt yếu, biết cách sử dụng một plugin để hiển thị album ảnh theo kiểu như LightBox hoặc như Facebook là thứ yếu, tuy nhiên vẫn cần phải tìm kiếm các thư viện và đánh dấu nó để dùng khi cần.
5. Viết ứng dụng không phải là dòng suy nghĩ, vì suy nghĩ đôi khi nó tràn tới như bão và không có thứ lớp, còn ứng dụng cần phải được cấu trúc rõ rành, rạch ròi, vì vậy, là lập trình viên tốt cần phải nắm bắt cách cấu trúc ứng dụng, phân chia ứng dụng ra các thành phần cụ thể, ráp nối chúng lại với nhau, làm sao để mỗi lần có sự thay đổi, chỉ thay đổi một thành phần của dự án chứ không đi xáo tung toàn bộ dự án.
6. Mã lệnh ta viết không chỉ mình ta đọc, mà để dành cho cả team cùng đọc. Phần mềm, như mọi sản phẩm khác, muốn là sản phẩm tốt và tinh xảo, cần phải huy động bộ máy nhiều người cùng góp sức mới có thể ra được sản phẩm dùng được, tốt, và có tương lai. Vì vậy, luôn giữ trong lòng, rằng mọi thứ ta lập trình cần phải giữ được sự đơn giản, dễ hiểu, gọn gàng, tinh tế và dễ dàng sửa đổi hoặc thay thế. Làm ra một mớ xà bần không khó, nhưng tạo ra những thứ dễ hiểu đối với tất cả mọi người là một nghệ thuật. Vì vậy, người lập trình, bản thân họ phải tự rèn luyện họ để trở thành những kỹ sư công nghiệp và là những nhà nghệ thuật bậc thầy.
7. Lập trình giống như công việc của công nhân & kỹ sư xây dựng, nhà xấu hay nhà tốt phụ thuộc vào các yếu tố: bản vẽ tốt, chất liệu tốt, tay nghề xây dựng tốt để áp dụng đúng kỹ thuật và cách thức, và một yếu tố cũng quan trọng không kém đó là sự hiểu biết lẫn nhau và phối hợp nhịp nhàng để thực hiện công việc. Nói nhỏ thì là team working (làm việc nhóm), nói lớn thì là process và project management (quy trình làm việc và quản lý dự án). Để dự án hoạt động trơn tru, thì kỹ sư phải có thêm sự hiểu biết rõ rệt về quy trình, cách thức vận hành dự án, để có thể phối hợp với mọi người và dự án trưởng để dự án thành công. Vì vậy, bạn không chỉ nên học lập trình, mà cũng cần phải học cách phối hợp lập trình, quy trình phát triển phần mềm, các vai trò trong dự án phần mềm, tại sao cần có những thứ đó, ví dụ tại sao cần có tester, các dự án càng lớn, kỹ sư càng giỏi nhưng lượng tester không giảm đi mà lại càng nhiều? ..v.v
8. Làm khoa học là “tự sướng”, làm kinh doanh/sản phẩm là “làm cho người ta sướng” (trích dẫn lời của bác Nam công ty FPT hồi bác ấy đi nói chuyện với SV miền trung để vận động cho cuộc thi Trí Tuệ Việt Nam). Vì là “làm cho người ta sướng” nên cái tôi cá nhân phải được đặt trong vị trí khiêm tốn, thay vào đó, lập trình là vì sự thỏa mãn của khách hàng, tất cả là vì khách hàng. Khách hàng thường hay thay đổi, họ không biết diễn tả chính xác thứ họ cần, họ hay phàn nàn, họ không hiểu rõ nổi khổ của lập trình viên... nhưng sao cũng được, khi họ là khách hàng, ta là người cung cấp sản phẩm, hãy cố bằng mọi cách mang lại những sản phẩm tốt nhất và kịp thời nhất trong mức có thể cho khách hàng. Giao tiếp, thương thảo, khả năng mô tả, diễn đạt ý tưởng là những kỹ năng quan trọng mà ta cần phải có. Nhưng trên hết vẫn cần có thái độ cầu thị, nhiệt thành, chân thật, và luôn mong muốn mang lại giá trị tốt đẹp cho mọi người.
9. Mình học được nhiều thứ từ mọi người, từ các blogger trên internet, từ sách mua/sách chùa, từ open source... Đã biết nhận thì phải biết cho, nên luôn coi “chia sẻ” là việc nên làm, và luôn làm. Cho đi không chỉ mất, mà còn được rất nhiều, được sự ghi nhận, được comment (đánh giá, nhận xét) nhờ đó mà hoàn thiện những thứ còn thiếu sót, được trở thành thành viên của một cộng đồng, và nhận được sự giúp đỡ nhiệt tình hơn từ mọi người. Và thực ra “cho” là một cách để “nhận” được nhiều hơn. Sống là sẻ chia! Triết lý đơn giản, nhưng áp dụng thành công thì rất khó!

Bạn hãy đọc và xem thử có những thứ bạn sẽ cần phải in đậm để nhớ rõ hơn. Đây là cách học và nguyên lý cần để trở thành một người lập trình chuyên nghiệp. Chỉ 30 phút viết điều nó không nói lên tất cả, nhưng hy vọng nó sẽ vừa đủ để bạn có thể “refresh your mind”, học tập & lập trình tốt hơn! ^^. Happy coding!  
Tags: Phần 1

by Jillur Rahman

Jillur Rahman is a Web designers. He enjoys to make blogger templates. He always try to make modern and 3D looking Templates. You can by his templates from Themeforest.

Follow him @ Twitter | Facebook | Google Plus

No Comment

Pages

Powered by Blogger.

Người đóng góp cho blog