Phân tích vấn đề quá hay.
Cách học lập trình thất bại
đại loại như tự minh đặt ra một bài toán thực tế trong cuộc sống và tự giải lấy. Chứ mấy bài tập trong sách vở là lối mòn, người ta dẫm nát rồi, k thú vị
Bạn này mới học Python nhưng tự viết chương trình này, Đạt thấy hay hơn ngồi giải “bài tập” rất nhiều.
e cũng mới học lập trình ngôn ngữ C, như a nói cũng sư dụng được nhưng lệnh cơ bản, nhưng để bắt tay vào nghiên cứu làm 1 bài tập thực tế thấy rất khó, không biết phải đi từ đâu, ví dụ như viết game cờ tướng chẳng hạn, cũng rất khó khăn để bắt đầu, a có thể tư vấn thêm cho e về vấn đề đó không ạ
Phải định nghĩa được khó khăn là gì mình mới giải quyết được chứ?
Đây gọi là chưa học bò đã lo học chạy. Chưa biết phải bắt đầu từ đâu thì quay lại học các cái cơ bản về lập trình về ngôn ngữ. Sao cứ phải vội vàng tạo ra sp nhỉ?
Nó khác với các câu truyện về đam mê, đó là có 1 anh đang làm tốt rồi (=> kiến thức cơ bản tốt) , bỗng dưng cho 1 cái mới không biết phải bắt đầu từ đâu => sau đó a ta mày mò và làm thành công. KHÁC NHÁ , khác là anh này có kiến thức và kinh nghiệm về lập trình rồi, giống như chuyên gia leo núi ở Everest mà gặp fanxiphang thì cũng có kinh nghiệm và kiến thức để vượt qua được.
Đừng làm mất gốc, các kiến thức cơ bản => nếu ko VN mãi chỉ làm outsource và tay chân cho lập trình thôi
nói chung là về mặt ngôn ngữ thì e cũng thấy là tạm ổn, về mặt tư duy còn kém, có cách nào luyện tư duy sáng sủa cho người lập trình không anh, e tự thấy tư duy của e rất dối
Anh nghĩ tư duy lập trình tăng trưởng theo thời gian. Em làm càng nhiều vấn đề hóc búa thì em càng có tư duy tốt hơn. Ngày đầu tiên học lập trình, việc vừa ngồi code vừa nghĩ giải thuật đối với anh là không thể. Phải viết ra giấy trước rồi mới viết lại vào code được.
Nhưng bây giờ hầu hết các công việc, thường là đơn giản, anh không cần phải viết mã giả.
e cũng phải làm như a, phải viết chi tiết ra giấy, xong đó mới code được, cái bước viết ra giấy nhiều khi nó rối rắm, 1 bài mà phải viết đến 10 tờ giấy a4 mới giải được bài toán xíu xíu. Có vẻ gian nan
Tư duy lập trình là thứ có thể luyện tập được. Em giải quyết các vấn đề ít phức tạp đến các vấn đề phức tạp hơn để xây dựng tư duy.
cảm ơn a, e cũng hi vọng là thế, giờ thấy ngu ngu ngơ ngơ nhiều lúc cũng nản, nhưng vẫn còn cái đam mê
Cho mình hỏi đó là sách gì vậy bạn?
cấu trúc dữ liệu và giải thuật
Em mai thi, cũng mới ôn 2 ngày Giải tích 2
hi, mấy môn mình thích thì mình “ôn” từ lúc mới học luôn rồi nhỉ.
học đến đâu hiểu đến đấy thì thích nhỉ.
anh đạt ơi em nghĩ , những người đi làm rồi mà vẫn làm bài tập vì họ muốn tìm ra một phương pháp tốt nhất chăng , trường em có thầy là giáo sư rồi mà vẫn giải bài tập bình thường mà
Anh nghĩ cũng có, nhưng chỉ dành cho những người đi theo hướng giáo dục hoặc đang / sắp theo đuổi một bằng cấp cao hơn?
Nhu cầu công việc không cần đến việc giải thật nhiều bài tập. Đối với người đi làm, ví dụ là Đạt, thì Đạt chỉ quan tâm đến những bài thật cơ bản đề làm quen với cú pháp khác biệt của một ngôn ngữ nào đấy. Hầu hết Đạt sẽ dành thời gian cho việc áp dụng ngay ngôn ngữ này vào project đang làm để vừa học vừa giải quyết nhu cầu công việc.
Giáo sư cần phải làm bài tập để tìm cách giải hay / dễ hiểu để giới thiệu cho sinh viên chứ. Tuy nhiên, anh cũng không nghĩ là giáo sư lại đi làm bài tập. Thường thì các giáo sư thích viết sách họ mới làm, còn không thì giao cho trợ giảng họ chuẩn bị hết rồi.
Em nghĩ code đi code lại một vấn đề để tìm ra cách tối ưu cũng hay mà :)) như em nhìn lại không biết sao ngày xưa mình code khôn hơn giờ thế =))
Tuyệt vời anh Đạt, em cũng nghĩ rất nhiều về vấn đề này
@ltd Tìm thêm bài tập rồi giải nhiều bài tập cho đến khi nhuần nhuyễn là một thất bại của giáo dục.
Câu này theo nó chỉ đúng với những ai đang học lập trình ứng dụng (applied programming) hay nói cách khác là những học sinh / sinh viên đang học nghề coding và nó mang nặng ý nghĩa sử dụng trong thực tế chứ không phải học để trở thành cử nhân hay nghiên cứu lý thuyết chuyên sâu ( và đúng là bằng cử nhân hay lý thuyết chuyên sâu hẳn là không giúp mình kiếm ra được tiền).
Đối với competitive programmer hay học sinh, sinh viên học về thuật toán, các loại lý thuyết (như graph theory, dynamic programming,…) hay nhỏ hơn là đi thi thì việc giải bài tập cho đến khi nhuần nhuyễn là rất cần thiết. Điều này thể hiện rõ khi bạn ngồi trong phòng thi ACM.
Có nhiều ý kiến cho rằng làm bài tập thuật toán cho lắm vào, luyện thi ACM cho lắm vào,… có ứng dụng thực tế gì đâu. Thực ra em có quen nhiều anh chị đang làm việc cho Microsoft, Google, hay các công ty ở Singapore… (người Việt nhé), nhờ có giải thưởng IOI và ACM-IPCP. Và thực tế, Google, Facebook cũng có các cuộc thi ACM như Facebook Hacker Cup, Google Code Jam.
Tóm lại, em nghĩ học nghề để kiếm tiền đương nhiên là cần thiết. Nhưng luôn luôn tồn tại song song “Thầy” và “Thợ” ở bất cứ lĩnh vực nào.