30/09/2018, 20:16
Tự học lập trình - Thuật toán hay Ngôn ngữ
Mình hiện đang tự học C++ qua sách và tài liệu trên mạng (C++ Primer và pirate bên Pluralsight). Hiện nay mình đang phân vân không biết học tiếp ngôn ngữ hay chuyển sang học toán lập trình trước. Mình lớp 10, bài vở trên lớp cũng khá nhiều, lại còn luyện IELTS nữa ( 6.5 rồi cố lên 7.0 xin học bổng ) nên khó học song song hai cái được. Nếu học về toán thì mình nên bắt đầu từ đâu? Xin các bạn/anh/chị/em đi trước có kinh nghiệm chỉ giáo.
Bài liên quan
học trường chuyên hay trường thường vậy em
Thuật toán là chết, ngôn ngữ là sống. Cứ việc cày thạo nhiều PL vào rồi cày Algorithm sau cũng đc
học tốt thuật toán đi đã ! học đến đâu thực hành bằng ngôn ngữ luôn đến đấy nhé em ! hơn nữa trang mạng này đa số là người chuyên khá sâu về CNTT ! Hơn em khá nhiều tuổi đời nên lần sau nếu có thì đừng nên xưng hô là mình
Ngôn ngữ chỉ là công cụ thôi, có 10 công cụ hay 1 công cụ ko quan trọng, quan trọng là dùng công cụ đó làm gì thôi. Viết một web brower có thể dùng C++, C#, GTK, Java, nodejs, python đều được nhưng vấn đề là biết cái web brower hoạt động thế nào để viết đc, tối ưu,… thì mới là vấn đề mấy cuốn thuật toán bán ngoài hiệu sách chủ yếu toàn nói về sort, queue, stack,… ( thực tế mình ko học nhiều mấy cái đó ), thực tế nó cũng quan trọng nhưng nếu hiểu thuật toán đơn thuần là toán học như thế thì ko ổn, theo mình thuật toán nó là công nghệ, học C++ rồi, học Qt để tạo giao diện, Android hay IOS để thêm mảng mobile, rồi cày thêm mạng máy tính, computer science ( càng gần phần cứng càng tốt, bạn càng hiểu rõ hệ thống ), rồi tiến tới tìm hiểu xem mọi công nghệ xung quanh nó hoạt động thế nào, nên tìm hiểu ở mức low-level, vì những cái đó mới tạo nên công nghệ, mới cần chất xám. Vì vậy học thuật toán thì rất khó tự học, nhưng IELTS 6.5 thì được cái lợi thế rất lớn rồi, bạn có thể tự vọc đc mọi thứ, nhưng nên có định hướng, hướng dẫn của những ac có kinh nghiệm.
Tất nhiên là thuật toán trước, nhưng mà còn đang đi học rồi phải ôn luyện nhiều thứ thế kia thì khả năng sẽ nản khi học thuật toán. Vậy nên là dành nhiều thời gian cho thuật toán đi ( bỏ học văn hóa đi ). À mà bỏ học văn hóa thì gia đình em có mà giết em mất. Thế nên học ngôn ngữ vậy mà học ngôn ngữ mà không biết thuật toán thì học làm gì. Thôi nghỉ =))
Nếu là một người đam mê toán học thì e nên học thuật toán trước. Còn nếu đã ngán toán đến óc rồi thì cứ học ngôn ngữ đi xong rồi giải thuật toán bằng code luôn cho nó khỏi ngán :v
Quỳ :v :))))))))))))))))))))))))))))))))))
Thuật toán đi bạn ơi, cái này quan trọng hơn, mình cx mới lớp 10, thời gian còn nhiều, mấy cái sau có thể học rất nhanh khi đã chắc thuật toán
Theo kinh nghiệm của anh thì em nên học thuật toán.
Ngôn ngữ lập trình giống như ngôn ngữ tiếng nước ngoài như tiếng anh, tiếng pháp…
Ngôn ngữ lập trình chỉ cần học khoảng 1 tháng - 3 tháng là biết rồi.
Cái quan trọng là biết cách sử dụng ngôn ngữ đó .
Vậy làm sao có thể sử dụng được 1 ngôn ngữ lập trình ?
Chỉ có một cách là thực hành ?
Vậy thực hành bằng cách nào ?
Bằng cách viết chương trình sửa dụng các bài toán đã học ở cấp 2 hoặc cấp 3 bằng ngôn ngữ lập trình.
Ví dụ:
Em học ngôn ngữ C++ từ 1 - 3 tháng.
Rồi ngồi nghĩ ra hoặc lấy bài toán trong lớp ra viết.
Ví dụ về bài toán
Có thể chuyển đổi đơn vị từ m sang cm, dm, mm. cho người ta chọn lựa đơn vị chuyển đổi.
chuyển đổi tiền tệ từ tiền việt nam sang tiền mỹ, tiền anh, tiền sing …
chứng minh biểu thức hay hằng đẳng thức…
Học về toán thì bắt đầu từ kiến thức cấp 2, cấp 3.
Đại khái như
Lưu ý: ở cấp 3 thì môn tin học nên là môn ngoại khóa giúp luyện tập trí não không nên tập trung vô nhiều. Tập trung 4 môn toán, lý, hóa và anh văn.
Thuật toán mới là xương sống, ngôn ngữ thì thay đổi thường xuyên, nay sống mai chết là chuyện bình thường.
1 vote cho thuật toán.
Chi tiết quá. Thật là những chỉ dẫn hữu ích của tiền bối đấy chủ thớt ạ. Mình chả hiểu thuật toán hay ngôn ngữ là gì mà đọc còn thấy hợp lý hihi.
@Ta_Ta_Goo Trường thường thôi anh ạ, mà lớp chọn
@masoivn @Viet_Anh @vanthanhntqn @nguyenthedan @minh_ngo @hung12301
Các anh có thể cho em biết lộ trình hướng đi hay tài liệu về thuật toán được không? Em không biết học thuật toán thì cần bắt đầu từ đâu hay đi như thế nào. ?
Em kiếm trong diễn đàn của mình.
Với từ khóa cấu trúc dữ liệu hoặc thuật toán.
Có mấy bạn đã đưa tài liệu lên rồi.
Lộ trình:
Học Căn bản về C++.
Kiếm mấy bài toán cấp 2 - cấp 3 rồi viết trên máy tính.
Đọc cuốn Cấu trúc dữ liệu.
Xong thì đọc cuốn Thuật toán.
Em nên coi mấy clip của anh Đạt(@ltd) về C++. Để hiểu biết thêm.
Thuật toán và ngôn ngữ là 2 cái song hành. Thuật toán tốt hình thành trên sự hiểu biết cặn kẽ về ngôn ngữ.
=> Phải học song song cả 2.
em có thể đọc tài liệu chuyên tin dành cho thpt ! tìm đọc hết 3 quyển nhé ! rồi từ đấy code bằng C++ những bài tập trong đó
Một số môn cần học
Cơ sở lập trình, cơ sở dữ liệu, cấu trúc dữ liệu và giải thuật, lập trình hướng đối tượng, phân tích thiết kế giải thuật, phân tích thiết kế hệ thống thông tin.
Học ngôn ngữ khoảng 40%, học thuật toán khoảng 60%.
Sở dĩ mình nói như vậy tại vì trong lúc học thuật toán, bạn phải code, và khi code có thể bạn sẽ học thêm được nhiều hàm khác của ngôn ngữ.
Bạn vừa code thuật toán vừa kết hợp đọc cả trang cplusplus.com để đọc về C++ STL. Học thuật toán theo sườn của cuốn Giải thuật Lập trình của thầy Lê Minh Hoàng, trong vòng 1 năm có thể nắm đc >50% cuốn đó.
Mua bộ The art of Programming về mà đọc, nếu em hiểu được 1/10 số đó thì tạm gọi là đắc đạo
thuật toán trong lập trình nôm na là phương pháp giải quyết 1 vấn đề bằng phương pháp tính tính, bạn học stack, queue hay là danh sách liên kết rồi các thuật toán sắp xếp rồi cây nhị phân, giải thuật tìm kiếm theo chiều sâu chiều rộng đủ cả nhưng quy về 1 cái cuối cùng là khi ra ngoài làm việc, cách bạn giải quyết bài toán thực tế như thế nào cho phù hợp.
Đề bài là cho số chuyến xe khách có thể chạy tối đa trong 1 tháng là 30 chuyến. Làm thế nào để biết được xe đó thực tế đã nghỉ bao nhiêu chuyến tính đến ngày hiện tại đang xét. biết số chuyến đã chạy của xe là 4 chuyến.
Cách bạn giải bài toán trên chính là cách bạn áp dụng thuật toán vào trong lập trình. Nó không cần áp dụng các giải thuật cao siêu hay phức tạp gì cũng không cần quan tâm ngôn ngữ sử dụng có thể làm những gì. Vậy nên thuật toán là cái giúp bạn rèn luyện tư duy còn ngôn ngữ chỉ giúp bạn thực hiện ý tưởng về thuật toán đó cho máy tính hiểu.
Vậy nên hãy rèn luyện tư duy, Đọc thêm sách về giải thuật cũng giúp bạn nâng cao khả năng tư duy nhưng đọc sách về ngôn ngữ sẽ giúp bạn biết cách tận dụng ngôn ngữ đó để giải quyết bài toán nhanh hơn, ngắn hơn so với việc chỉ dùng các vòng lặp rồi if else đơn thuần,
Chúc bạn học tốt