Quy trình học lập trình

Em là sinh viên năm nhất ngành An toàn thông tin. Mọi người cho em hỏi quy trình học lập trình thế nào là tốt ạ. Học lập trình hướng đối tượng trước hay nên học cấu trúc dữ liệu và giải thuật trước ạ. Mong mọi người giải đáp giúp em. Em vừa học xong C++ cơ bản ạ

mình thấy cái này là nền tảng, nên học trước

em đã học xong C++ có nghĩa là đã học hướng đối tượng r (C++ là ngôn ngữ vừa hướng cấu trúc vừa hướng đối tượng) thì giờ em chuyển qua cấu trúc dữ liệu và giải thuật rồi lên Java.

Em có nói ở trên là em chỉ mới học xong C++ cơ bản mà anh

1 Like

Vậy thì học cấu trúc dữ liệu và giải thuật sau đó lên thẳng Java luôn ^^

Thế còn hướng đối tượng thì sao hả anh

À Cấu trúc dữ liệu và giải thuật ko cần hướng đối tượng chỉ cần cơ bản của C/C++ ( ví dụ : con trỏ,struct,mảng …v.v) sau nó học lên thẳng Java (thuần hướng đối tượng) là ổn ko cần học lại hướng đối tượng của C++ nữa e.

Em nghĩ học An toàn thông tin, tiếp xúc nhiều với Linux thì em nên chuyên sâu C++ hơn chứ anh

À em học ATTT anh cứ tưởng em học CNPM hoặc HTTT ,ừm vậy thì học ctdl trc sau đó học chuyên sâu về C++.

vậy học sâu về C++ là học về hướng đối tượng đấy hả anh

1 Like

Thực ra C++ là một ngôn ngữ vừa hướng cấu trúc vừa hướng đối tượng. Bởi vì C++ cũng có C hay mọi thứ mà C có thì C++ có hết. Mà C là ngôn ngữ lập trình cấu trúc. Các ngôn ngữ thuần hướng cấu trúc là C#, Java, Objective C, Python… Còn nhiều nữa lắm :stuck_out_tongue_winking_eye:

Cu nên định nghĩa lại và phân biệt rõ cho mình như thế nào gọi là lập trình, ngôn ngữ lập trình , cấu trúc dữ liệugiải thuật nhé :slight_smile:

Khi con người muốn máy móc (không phải chỉ là cái máy tính đâu nhé, nhiều loại máy có thể lập trình được lắm :slight_smile: ) làm một công việc gì đó, có 2 vấn đề phát sinh đó là:
1. Làm thế nào để có thể bảo được với máy là: "tao muốn mày làm việc này :slight_smile: ".
2. Chỉ cho nó cách làm (vì máy nó đâu có biết phải làm như thế nào đâu). “để làm việc này thì mày phải làm thế này, thế này này …”, “sắp xếp mọi thứ như thế này này…”, “làm cái này trước, xong rồi làm tiếp cái kia, xong rồi mới đến cái đó, xong rồi…”.
OK ! Giờ thì giải quyết 2 vấn đề trên như thế nào đây :slight_smile:

Giải quyết 1. Máy móc thì chỉ biết có 2 trạng thái nên con người đành phải học cách hiểu máy móc thôi. Đầu tiên là con người phải học cách hiểu ngôn ngữ máy, sau đó dựa trên đó mà xây dựng nên chương trình dịch, dịch từ ngôn ngữ lập trình sang ngôn ngữ máy. Các chương trình dịch sau có thể được xây dựng dựa trên các ngôn ngữ và các chương trình dịch khác đã có sẵn trước đó. Vậy là có thể hiểu nhau được rồi :slight_smile:

Giải quyết 2. Khi muốn máy làm gì đó cho mình thì bắt buộc mình không làm ra được kết quả thì cũng phải biết phải làm như thế nào để ra kết quả, để còn chỉ cho máy nó làm chứ :). Chuyện này lại nảy sinh ra các vấn đề : Dữ liệu mình có là gì?; Tổ chức dữ liệu như thế nào cho hợp lý?làm thế nào để xử lý dữ liệu ấy để cho ra kết quả, dùng giải thuật gì đây? Đồng thời với đó là Cách tiếp cận để giải quyết vấn đề một cách hiệu quả..
Ví dụ đi, nói nhiều quá rồi đấy :smirk:
Cần là có, ví dụ: Cu cần nấu một bữa ăn gồm các món canh cải, trứng ngải cứu và bò xào cần tây :slight_smile: Ok ! bắt đầu nhé :slight_smile: Hãy xem ta có gì nào :slight_smile:
Nguyên liệu để nấu : Rau cải, trứng, rau ngải cứu, thịt bò và cần tây.
Xử lý nguyên liệu như thế nào đây: Rau thái hay để cả cây, để riêng vào 3 rổ hay để chung ??? Thịt thái ra hay để cả tảng, thái nhỏ hay thái to??? hay đại loại như trứng đạp vào bát hay vào đĩa hay đập thẳng và chảo, thôi hay là đập vào cái đĩa thịt mới thái nhỉ :kissing_heart:kissing_heart::kissing_heart::…
Nhiêu đó thôi đã thấy mệt rồi :joy: thôi cố lên :slight_smile: sắp được ăn rồi :slight_smile:
Xong hết nguyên liệu rồi đó, giờ làm sao để nó chín, đúng món và có thể ăn được đi :smirk:
Yên tâm đi, ta có nguyên lý làm chín thức ăn bằng nhiệt và công thức nấu ăn mà :slight_smile: tuyệt vời !!!
Nhưng giờ nên nấu từng món một hay là chuẩn bị sẵn hết nguyên liệu để nấu cả một lượt đây ? Chuẩn bị lần lượt mỗi thứ một ít rồi lại quay lại hay là chuẩn bị từng loại một rau rồi tới thịt rồi tới trứng đây? Làm sao thì nhanh hơn, hiệu quả hơn đây ???
Nấu ăn sao loằng ngoằng thế trời !!!
Kiếm người yêu luôn và ngay thôi :v

Vậy đấy, chắc hẳn giờ Cu cũng hiểu được dù cho Cu có tiếp cận công việc theo cách nào thì mình đều phải làm những điều căn bản, cốt lõi để ra được kết quả rồi chứ :slight_smile:
Khi một ngôn ngữ lập trình được hình thành thì không phải đơn giản là một ngôn ngữ mới được hình thành mà đã có một ý tưởng mới, cách tiếp cận vấn đề mới được hình thành, và ngôn ngữ đó đại diện cho tư tưởng đó, cách tiếp cận đó. Hướng cấu trúc, Hướng đối tượng hay Hướng thành phần và những ngôn ngữ đại diện của nó chỉ là cách tiếp cận, nhìn nhận vấn đề.

Học An toàn thông tin thì Cu cần học những ngôn ngữ cơ bản sau: Asembly, C, Python và JavaScript (không phải Java đâu nhé), những ngôn ngữ khác sau này nếu cần thì học sau. Nhưng nhắc lại một lần nữa chuyện học Cấu trúc dữ liệu và giải thuật là bắt buộc vì Cu có lập trình bằng ngôn ngữ nào cũng phải dùng đến :slight_smile:

Giờ thì hi vọng Cu đã có thể phân biệt được mấy cái ở dòng đầu rồi nhỉ :))))
Chúc Cu học học vui vẻ :)))

2 Likes

Dạ. Em cám ơn anh nhiều ạ

1 Like

bác nói ngược k thế bác ơi??

Em học Mạng máy tính và truyền thông dữ liệu thì nên học CTDL&GT hay hướng đối tượng C++ trước ạ? Em cũng muốn hỏi là có nên học hướng đối tượng C++ hay lên học Java luôn ạ ?

Mình chưa có quy trình nhưng có các cách để lập trình hiệu quả. Bạn tham khảo nhé: https://www.youtube.com/watch?v=Nv6zUzdJNlw

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?