Tư duy lập trình là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề tư duy lập trình. Trong bài viết này, coder.com.vn sẽ viết bài Tổng kết 4 phương pháp rèn luyện tư duy lập trình mới nhất 2020
1. Học kĩ và nắm vững căn bản trước
Khi mới học code, những kiến thức căn bản như: hàm, biến, mảng, vòng lặp là những thứ nền tảng của tư duy lập trình. Bạn phải hiểu phương thức biến, mảng lưu giữ giá trị, phương thức tách hàm ra sao thì mới ra đủ nội lực áp dụng chúng vào giải quyết chủ đề.
Học sâu hơn, sau một thời gian, bạn sẽ biết có những thuật toán, cấu trúc dữ liệu không giống ngoài mảng. Mỗi cấu trúc dữ liệu sẽ có ưu điểm nhược điểm riêng, nhưng bạn phải hiểu rõ chúng thì mới biết phương thức tìm hiểu, áp dụng vào bài toán.
Giả sử, bài toán yêu cầu lưu trữ danh mục 1 triệu sinh viên, tra cứu sinh viên theo mã số sao cho mau nhất:
- Nếu chỉ biết về mảng, bạn sẽ lưu toàn bộ 1 triệu sv này vào 1 mảng, sau đó loop để tìm từng sinh viên.
- Nếu nắm vững về cấu trúc dữ liệu, bạn sẽ biết cấu trúc HashMap/Hashtable rất phù hợp để lưu trữ, lấy dữ liệu theo dạng key-value, tra cứu rất mau với độ khó khăn O(1)
Cấu trúc dữ liệu HashTable thường dùng để lưu trữ dữ liệu dạng Key-Value, rất tiện tra cứu
Về sau, khi học những thứ khó hơn, cao siêu hơn như thư viện/framework cũng vậy; chỉ cần bạn nắm vững căn bản của chúng thì sẽ dễ học, easy áp dụng hơn nhiều.
2. Làm bài tập về thuật toán
Để có tìm hiểu khả thi, phải nắm vững cơ bản. Nhưng làm sao để nắm vững chúng bây giờ??
Bật mí nhỏ nè, dù bạn có học kĩ lý thuyết tới mấy, chúng cũng chỉ là … lý thuyết thôi! Để nắm vững văn hóa lập trình, thuật toán, bạn phải chịu khó .. làm bài tập để áp dụng chúng.
Gợi ý như một bài toán mà Google hay hỏi: làm sao cân bằng một cây nhị phân (binary tree). Bài toán này sẽ có nhiều phương thức giải:
- Có cách giải dễ dàng nhưng không optimize
- Có cách thức giải gọn nhưng khó hiểu
- Có phương thức độ khó khăn cao nhưng không cần memory
- Có cách chạy nhanh nhưng tốn memory
Khi giải những bài tập này, bạn sẽ học được cách thức áp dụng những cấu trúc dữ liệu vào thực tiễn, cách vạch code cho chúng chạy ra sao.
Gốc học thì trên mạng có cũng nhiều, mình chỉ mô tả một số sách/web hay nên học:
- Sách Cracking the Coding Interview
- Sách Algorithm 4th Edition
- Các trang thi thố, giải bài tập code: Hackerank, Code Fight…
Cracking the Coding Interview có những câu hỏi rất tốt về giải thuật
3. Sử dụng món hàng để có tư duy hàng hóa
Việc giải bài tập sẽ rèn cho bạn cách thức tìm hiểu, phương thức hoàn thành những chủ đề nhỏ. Tuy nhiên, khi đi sử dụng thực tế, các dự án công cụ đa phần là những vấn đề … to to, do nhiều vấn đề nhỏ ghép lại.
bởi thế, bên cạnh tư duy thuật toán, tìm hiểu sản phẩm cũng rất cần kíp. Nó sẽ giúp bạn phát hiện được món hàng cần những tính năng gì, khi dự án bự lên thì code như thế nào cho k bị rối, dễ bảo trì.
Do vậy, sau khi làm toán nhiều, các bạn đủ nội lực sử dụng một số pet project nhỏ để luyện kĩ năng sản phẩm. Bạn sẽ vô cùng bất ngờ trước những thứ mình có thể học được như:
- cách nghĩ requirement cho món hàng
- cách thức thiết kế flow, UI/UX cho khả thi
- cách thức tổ chức code trong một project
- Hiểu sâu hơn về ngôn ngữ lập trình, về những công nghệ mình sử dụng
Nếu bạn đã đi làm, đừng nghĩ là mình đã làm dự án thực tiễn rồi, cần gì phải làm pet project nhé!
Đa phần các dự án thực tế đã có cấu trúc sẵn, có qui trình rõ ràng, có design sử dụng hết, công việc của chúng ta chỉ có implement là nhiều. Tự sử dụng một dự án từ đầu, bạn sẽ học được nhiều điều hơn đấy!
Nếu các bạn mới học, muốn sử dụng dự án nhưng chưa có ý tưởng thì đủ sức xem qua bài Những project nhỏ bạn đủ sức dùng để luyện tập nha.
Sử dụng dự án sẽ làm bạn nâng cao mức độ tư duy sản phẩm đấy!
Xem thêm: Kinh doanh online là gì? Hướng dẫn Lập kế hoạch kinh doanh online 2020
4. Học rộng hơn, học những thứ mình chưa biết
Một trong những cách thức kết quả để rèn luyện tìm hiểu lập trình, đó là học hỏi phương thức người xung quanh tìm hiểu; học những thứ khác hoàn toàn với những thứ mình hay dùng để học cách thức tư duy mới:
- Trước giờ bạn làm việc với những ngôn ngữ static typing như Java, C#, cảm thấy phải khai báo đủ thứ method, class rất mệt mỏi? Hãy thử những ngôn ngữ dymanic typing như Python, JavaScript sida để nhìn thấy code đủ nội lực viết ngắn gọn ra sao. (Các bạn Python cũng nên thử Java, C++ xem).
- Hoặc trước giờ các bạn code sử dụng OOP, tạo class và hàm, kế thừa v…v. Hãy thử sử dụng Scala, Haskell hoặc JavaScript, code theo phong cách thức Functional Programming, dùng function thay vì class nhìn thấy sao!
- k chỉ xoay quanh trong ngôn ngữ, bạn làm back-end đủ sức thử học front-end để chửi thề với CSS, JavaScript; bạn là front-end đủ nội lực học back-end để nhức đầu với server configuration, với SQL.
Học một thứ mới, bạn sẽ có cái nhìn rộng hơn, tổng quát hơn về nơi mình; cùng lúc xây dựng rộng đầu óc, nâng cao mức độ tìm hiểu của bạn.
Nói nhỏ nhé, nếu muốn sử dụng full-stack developer thì cũng phải nắm đủ thứ hết ấy: từ front-end, back-end, security, database, DevOps đủ cả!
Mang danh full-stack là cái gì cũng phải chơi được hết, không phải ngại!
Xem thêm: Hướng dẫn cách lập trình trí tuệ nhân tạo Python cơ bản mới nhất 2020
Kết
Trong bài này, mình đã san sẻ về 4 giải pháp khá hiệu quả mà mình tốt sử dụng để nâng cao khả năng tư duy lập trình.
Nếu các bạn có trải nghiệm, phương pháp nào mà mình cảm thấy kết quả thì cứ comment phía dưới nha!
Có thể bạn quan tâm: Hướng dẫn cách lập trình trí tuệ nhân tạo Python cơ bản mới nhất 2020
Nguồn: https://toidicodedao.com/