Giải quyết vấn đề lập trình cho người mới?.
Cách đây hơn 2 năm lúc mới bắt đầu chập chững vào nghề và sau khi được join dự án đầu tiên là 1 trang web của công ty. Ngay lúc đó mình đã bị ngợp do dự án quá lớn và kiến thức mình còn rất nhiều hạn chế. Kỹ năng dùng stackoverflow của mình tự tin bao nhiêu thì mình lại fail bấy nhiêu trong vấn đề ...
Cách đây hơn 2 năm lúc mới bắt đầu chập chững vào nghề và sau khi được join dự án đầu tiên là 1 trang web của công ty. Ngay lúc đó mình đã bị ngợp do dự án quá lớn và kiến thức mình còn rất nhiều hạn chế. Kỹ năng dùng stackoverflow của mình tự tin bao nhiêu thì mình lại fail bấy nhiêu trong vấn đề searching, lý do thì nhiều vô kể nhưng chủ yếu là web đó công ty dùng devexpress và nó có một cộng đồng hỏi đáp riêng chuyên biệt, với cách trả lời của các supporter rất khác lạ đối với mình, cộng với việc thiếu kỹ năng tìm key work cho vấn đề.
Thấy không ổn và chậm chạp mình đã lục tung google để tìm hướng giải quyết và vô tình đọc được 1 bài viết của dev nước ngoài với tựa đề "5 Steps to Solving Programming Problems" và giờ khi tìm lại có thêm 1 bài viết nâng cấp hơn đó là "10 Steps to Solving a Programming Problem". Cụ thể bài viết đó có nội như sau (viết dưới ý hiểu của mình nên có chút khác biệt).
5 Bước giải quyết vấn đề cho việc lập trình
Giải quyết vấn đề là yếu tố thiết yếu của LTV và mỗi người đều có những cách giải quyết khác nhau. Cá nhân tác giả tìm ra được giải pháp không chỉ giúp chúng ta giải quyết vấn đề mà nó còn nhanh hơn, hiệu quả hơn.
1. Đọc các vấn đề nhiều lần cho đến khi bạn có thể giải thích nó cho người khác
Đây là bước lâu nhất, quan trọng nhất , đọc vấn đề vài lần, cho đến khi bạn hoàn toàn hiểu nó, nếu bạn không hiểu nó, bạn sẽ không thể giải quyết được nó. cách tốt nhất để biết nếu bạn hiểu vấn đề là bằng cách có thể giải thích nó cho người khác.
2. Giải quyết vấn đề theo cách thủ công
Nothing can be automated that cannot be done manually!
Mọi mã code chúng tôi đều xây dựng trên những nền tảng ban đầu và đó là quy trình thủ công. Điều tôi muốn nói tới là giải quyết vấn đề bằng tay đầu tiên, theo cách đó bạn biết chính xác những gì bạn muốn và có thể tự động được, điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian lãng phí nếu bạn chỉ bắt đầu viết mã như một coder thông thường.
Bằng những bài test case bạn hãy kiểm tra mã của bạn để xác thực nó. Chú ý đến từng bước, bạn biết đó khi vòng lặp chạy trong đầu bạn cũng đã hình dung được từng bước của vòng lặp, hãy nháp nó ra giấy để biết rằng nó là 1 trường hợp đúng.
3. Làm cho giải pháp thủ công của bạn tốt hơn
Xem bạn có thể làm cho quy trình của bạn tốt hơn không, nếu có cách nào dễ dàng hơn để thực hiện điều đó hoặc nếu bạn có một số bước bạn có thể cắt để đơn giản hóa nó (như vòng lặp). Bước này rất quan trọng, hãy nhớ rằng việc tái tạo lại quy trình trong đầu của bạn dễ dàng hơn nhiều so với việc thực hiện trong đoạn mã của bạn.
Lúc này bạn sẽ có một vài suy nghĩ về muốn viết về những mã mà bạn chưa làm được trong đây, chúng tôi có thêm một bước để hỗ trợ, tôi hứa với bạn nó sẽ làm cho đoạn mã cuối cùng của bạn dễ dàng hơn khi viết.
4. Viết giả code
Giả mã là một mô tả chi tiết về những gì một chương trình phải làm, điều này sẽ giúp bạn viết mọi dòng mã cần thiết để giải quyết vấn đề của bạn.
Đôi khi các lập trình viên có kinh nghiệm bỏ qua bước này, nhưng tôi có thể đảm bảo với bạn dù bạn có kinh nghiệm thế nào đi nữa, nếu bạn viết mã giả, quá trình viết mã cuối cùng sẽ dễ dàng hơn nhiều vì bạn chỉ phải dịch từng dòng mã giả vào mã thực.
đây là điều mình hứng thú nhất bởi mình chả cần suy nghĩ nhiều đến các hàm của ngôn ngữ, codingconvention hay nhiều thứ khác. Chỉ cần đặt bút xuống và viết những ý tưởng của mình thế là thành công