Thế nào là học sâu vào một ngôn ngữ lập trình?

Khi em tự học một ngôn ngữ lập trình em chỉ dừng lại ở mức là học các câu lệnh if else,while,for,….và một số hàm cơ bản và áp dụng nó vào làm các bài tập như tìm số nguyên tô, số lớn nhất nhỏ nhất,… và tiếp sau đó là em chẳng biết học thêm gì nữa. Nên em nghỉ học tới đây rồi thôi thì học thêm một ngôn ngữ mới nữa. Nhưng kết quả cho thấy là cứ ngôn ngữ nào cũng học tới mức là các câu lệnh trong ngôn ngữ đó xong chẳng làm gì được. Học cho nhiều ngôn ngữ mà kết quả bằng 0. Nên em đã lên diễn đàn hay một group trên facebook để đọc một số bài viết liên quan tới ngôn ngữ lập trình thì em luôn đọc thấy mọi người nói là học sâu một ngôn ngữ lập trình còn hơn là học nhiều ngôn ngữ lập trình. Vậy cho em hỏi học sâu ở đây là gì?

Học sâu ở đây có phải là chúng ta phải học thật nhiều các hàm ,hiểu và áp dụng được các hàm đó vào bài toán của mình hay là học kiểu gì ạ?

Tại sao em lại có suy nghĩ học sâu là học nhiều hàm bởi vì là khi em download code trên mạng về đọc thì trong một bài toán của người ta thì luôn xuất hiện một số hàm lạ mà em không biết tất nhiên em google là sẽ hiểu ngay nhưng em thắc mắc là người mà làm bài toán này thì làm sao họ biết được nhiều hàm đến vậy có phải là khi làm bài toán đến chỗ nào không biết thì search google nên trong quá trình google thì họ biết thêm hàm đó vậy đó nên em mới nghĩ là học sâu tức là học nhiều hàm.

Qua đây mong các anh/ chị lập trình viên chia sẽ cách học sâu một ngôn ngữ lập trình của mình cho em với ạ?

Đây là lần đâu tiên em post bài nên có gì sai sót mong anh/chị bỏ qua.

12 Likes

Mình nghĩ là nên thực hành :smiley: làm project có ngôn ngữ đó. Kiểu như học công thức toán mà không sài cũng quên. Mà mình nghĩ học sâu một ngôn ngữ tức là tìm kiếm điểm mạnh và điểm yếu của ngôn ngữ đó (ví dụ như hàm này phải sử dụng trong một số trường hợp…)
p.s: sâu

2 Likes

Mình cũng đang thắc mắc vấn đề này. Theo mọi người thì học sâu ngôn ngữ C thì học tới đâu gọi là vừa đủ? Tới đâu mới gọi là sâu? Mình học bảo mật, ko chuyên về lập trình, nên cần học không ít ngôn ngữ, học C đến khi nào mới có thể chuyển sang 1 ngôn ngữ khác. Ý là C đến mức nào thì đủ dùng?

1 Like

Học xâu là học kiểu gì mà lạ thế nhỉ?

2 Likes

Học xâu là học thế nào nhỉ?

1 Like

Xin lỗi vì em ghi sai chính tả :disappointed_relieved:

Để mình trả lời khái quát cho bạn như sau:
Một ngôn ngữ lập trình có rất nhiều ứng dụng, hoặc có những ngôn ngữ chuyên cho lập trình một lĩnh vực như PHP, HTML, Javascript…
Ví dụ học C++, bạn học chuyên sâu để viết phần mềm cho Windows chuyên phân tích dữ liệu, hay bạn học để chuyên viết game, hay bạn học để viết driver…
Thì mỗi hướng như vậy, nếu bạn học chuyên sâu về một hướng, thì bạn sẽ quen xử lý các vấn đề riêng của hướng đó. Và khi bạn đọc một quyển sách C++ viết cho người ở mức độ Advance cho lĩnh vực đó, bạn có thể hấp thu được. Giống như một con người khi đủ lớn, có thể ăn cơm, ăn thức ăn cứng được.
Do đó, nếu chỉ học các từ khóa của ngôn ngữ, viết vài chương trình nhỏ, thì chỉ là cưỡi ngựa xem hoa thôi. Để nắm vững một ngôn ngữ lập trình cần thời gian dài, thông thường là 5 năm làm việc sử dụng ngôn ngữ đó.
Một người học lập trình, thường chỉ nắm vững, chuyên sâu 1 ngôn ngữ mà thôi, nhưng có thể lập trình sử dụng các ngôn ngữ khác dựa trên kiến thức họ có được từ 1 ngôn ngữ chính. Bởi bạn biết rằng, số lượng từ khóa cần nắm để lập trình một ngôn ngữ không nhiều, thường nhỏ hơn 200.

3 Likes

Không cần thiết phải nhớ tất cả các hàm, api của nó. Cái này có thể tra cứu reference, manual của ngôn ngữ lập trình hay của framework đó. Thực hành nhiều thì sẽ nhớ thôi.
Bạn chỉ cần nắm rõ cách thức xây dựng cái bài toán(web, phần mềm,…) đó gồm những bước nào, quy trình làm ra nó ra sao và cảm thấy bản thân mình còn thiếu thứ gì cần bổ sung để từ đó triển khai ứng dụng 1 cách hợp lý.
Học lập trình quan trọng là tư duy giải quyết bài toán đó ra sao chứ không phải cứ nhớ thật nhiều, học vậy máy móc lắm. Còn quá trình để mà chuyên sâu(master) một ngôn ngữ hay một công nghệ nào đó đòi hỏi quãng thời gian rất dài (có thể 5, 10 năm gì đó).

2 Likes

“học sâu” nghĩa bạn có thể hiểu rõ NNLT, và điều khiển được nó. Thích làm gì với nó cũng đc. Chứ không phải học sạch các function là học sâu. Điều đó con vẹt làm cũng đc.

3 Likes

Mình đang hiểu bạn đang muốn học kỹ càng một ngôn ngữ. Để master 1 ngôn ngữ trước hết bạn cần học đủ về ngôn ngữ đó bắt đầu với data type, sau đó là các function cơ bản thao tác với các data type đó. Sau đến các anonymous function, magic funtion, autoload function… Tiếp đó là các thao tác IO với file, với CSDL, với cache…
Nếu ngôn ngữ hỗ trợ Oop thì làm oop. Tiếp đó tìm hiểu các extension của ngôn ngữ rồi đến các thao tác với client server, cũng như webservice. Mới liệt kê qua vậy thôi đã mỏi tay rồi

2 Likes

cứ làm lập trình liên tục 10 năm, có đc nhiều sản phẩm, kiếm được nhiều tiền, trong lòng cảm thấy đam mê và nghiên cứu nhiều, sẽ biết thế nào là sâu với nông.

không có khái niệm học sâu một ngôn ngữ lập trình.

  • khi nói học một ngôn ngữ lập trình là mình chỉ học cú pháp ngôn ngữ đó, viết làm sao cho máy tính hiểu và chạy được.
  • Lập trình là ứng dụng ngôn ngữ lập trình và kiến thức chuyên ngành mình theo đuổi để giải quyết vấn đề của mình, viết chương trình để máy tính thực thi ra đúng kết quả mong muốn.
  • Khi còn học ở trường thì em học về ngôn ngữ lâp trình là luyện kỹ năng logic, kỹ năng giải quyết vấn đề, áp dụng kiến thức toán học, vật lý và các hàm được ngôn ngữ đó hỗ trợ để giải những bài toán đó.
    @Kevin : đọc tới đây thì em sẽ hiểu ngôn ngữ lập trình chỉ là công cụ để áp dụng những kiến thức về bảo mật, những thuật toán mã hóa. Nên anh nghĩ bước ban đầu em nên biết căn bản C (bao gồm cú pháp, những hàm hỗ trợ liên quan đến bảo mật). Sau này khi làm chuyên sâu đến bảo mật thì tùy lúc đó sẽ có thể sử dụng ngôn ngữ lập trình khác.
4 Likes

nhiều ý kiến trái chiều quá :frowning: mong có chuyên gia vào đây để gỡ rối ạ :frowning:

@ltd: bạn đạt cho thêm ý kiến để các bạn tham khảo. ^^

theo m nghĩ ko có khái niệm học sâu hay không mà chỉ là bạn biết nhiều hay biết ít về nội dung của một loại ngôn ngữ lập trình vì kiến thức lập trình rất rộng ko chỉ vững về ngôn ngữ để đạt được kết quả yêu cầu mà còn phải tối ưu về cách xử lý câu lệnh liên quan đến bộ nhớ, giao diện… Khả năng tìm hiểu, va chạm vs các kiến thức đòi hỏi trong quá trình thực hành nhiều sẽ giúp bạn vỡ ra nhiều đặc điểm, tính chất, cách sử dụng, ứng dụng về 1 nội dung nào đó của ngôn ngữ, tăng khả năng tư duy khi giải quyết 1 vấn đề, dần dần giúp bạn lưu nó vào bộ nhớ dài hạn của não. Để có được những điều này trước tiên bạn phải có 1 kiến thức nền tảng cơ bản thật tốt nghĩa là hiểu sâu, hiểu kĩ đc câu lệnh, các giải thuật cổ điển, so sánh giữa các dùng các biến,từ khóa, loại lệnh, các giải thuật… không nhất thiết là bạn phải nhớ nó mà bạn phải hiểu đc cái ý tưởng và từ ý tưởng đó bạn phải xây dựng được giải thuật,. Khi bạn thực hành nhiều + quá trình tìm hiểu bạn sẽ có những cách suy nghĩ, cách hiểu sâu hơn, phản xạ nhanh hơn biết vận dụng, tối ưu… thì khi đó ng ta gọi là hiểu sâu chứ ko có học sâu. Học là để m xây dựng cái cơ bản vì chưa biết!

1 Like

Hay bác @GaCongNghiep nghiên cứu thêm tài liệu của ngôn ngữ đó mà thuộc loại trên beginner á, với cả tự nghĩ ra project, hoặc clone project nào đó ,… :blush:

Chưa được 10 năm thì chán con mẹ nó lun rồi, vì bạn ở đây bảo là cái j cũng sơ sơ thôi mà

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