Thảo luận về lập trình có hiệu quả: Làm thế nào để học lập trình có hiệu quả?

Tâm lý nhiều người ban đầu mới học lập trình cứ thích dùng 1 cái tool hoành tráng (full chức năng, key-crack đầy đủ, blah blah…) để code mới chịu, mặc dù chả bao giờ dùng hết được tính năng của nó. Dùng cái notepad thì bảo cùi mía, không chuyên nghiệp, mà mới đầu lập trình thì code, project đã có gì đâu mà phải IDE quản lý.

Mình cũng thuộc trường phái không thích dùng IDE. Ban đầu thì cũng bị ảnh hưởng bởi cái tâm lý trên kia, sau này editcode bằng TextEditor compile-debug bằng command line, makefile này nọ thấy cuộc đời hay hẳn lên. Thích nhất mấy console based text editor như vi/emacs, làm hầu như mọi thứ được trên đấy.

3 Likes

theo mình thì việc dùng IDE hay không thì không quan trọng.
Vì IDE chủ yếu là giúp nhắc cho bạn những hàm(hàm do mình viết) cần xài, những API có sẵn trong ngôn ngữ đó.
Lập trình viên chỉ nhớ những API mình hay dùng thôi.
Quan trọng nhất là viết code. Đồng ý chủ thớt về điều dưới

Nhưng khi code bị sai hay chương trình bị sai thì chịu khó debug để tìm ra lỗi. Để mình biết là logic mình làm sai chỗ nào hay dùng không đúng API hay sai cú pháp. Chứa không phải là thấy chương trình không đúng là lập tức đưa lên mạng nhờ giúp đỡ.
Muốn lập trình hiệu quả và nâng cao trình độ lập trình của mình thì phải chịu khó debug tìm lỗi.
Lý do mình hỏi câu hỏi dưới.

1 Like

Nhắc như vậy là quá nhiều cho người mới học lập trình rồi đấy. :smiley:

Ai bảo là để hiểu rõ cách compile bằng command nhỉ, hiểu cái câu lệnh đó để làm gì. :smiley: Vấn đề quan trọng nhất của người mới học là nắm syntax nhớ câu lệnh, nếu dùng IDE có nhắc lệnh, auto-complete và highlight thì nó sẽ khó mà nắm được. Mới học thì chưa cần khỏe vội, cực trong lúc học thì ra làm mới khỏe, hay là bạn muốn ngược lại nhỉ.
Còn về phần debug, mình thích dùng những thứ chỉ chuyên để debug như gdb, chứ ít khi nào dùng IDE lắm :wink:

Xin lỗi bạn chứ nhắc đc cái strtok( char * str, const char * delimiters ) thì làm gì lòi ra đc mớ đằng sau mà quá nhiều? :?
Mà nó ko học, nó ko biết hàm đó thì lấy gì mà gõ ra để gợi ý nhỉ?

auto-complete thì liên quan gì nắm syntax và câu lệnh?
Syntax highlight giúp code dễ nhìn hơn thì liên quan gì đến nắm đc syntax và câu lệnh nhỉ? :confused:

3 Likes

Em đang học Java - Android. Vì em k theo trường lớp nào. Nên cũng chỉ tự tìm hiểu . Em cũng hay ứng dụng nó luôn vào thực tế làm app. Có nghĩa là app này cần cái gì thì mình sẽ tìm hiểu nó. Làm thế nào để giải quyết vấn đề này. Thường thì trên stackover và google vài link là ra luôn. Em cũng có hiểu code… biết được tại sao họ lại dùng thế này. 1 vài trường hợp mới thì em vẫn chưa hiểu đc, nhưng hầu hết là hiểu. Chính vì lẽ đó mà em chỉ copy paste 1 cách máy móc vào để giải quyết vấn đề của mình. kèm thêm vài câu comment để lần sau đọc lại còn có chút gợi nhớ. Chỉ vài ngay sau là em lại quên hết. Lần sau gặp vấn đề tương tự lại phải tìm lại link đó. rồi lại đọc lại cho nó hiểu. copy - paste. Nó cứ theo quy trình như thế. Một vài cái cơ bản sử dụng nhiều thì nó quen. Còn đâu trong đầu chỉ mang máng thôi.
Em lại cứ tư duy là học 1 ngôn ngữ lập trình cũng như học tiếng vậy. Như bọn trẻ con học nói. Ban đầu cũng có biết gì đâu. Chỉ bi ba bi bô theo bố mẹ. lặp đi lặp lại nó thành quen. chứ đâu học cú pháp, cấu trúc gì đâu…
Các anh có thể cho em lời khuyên liệu em có đang đi đúng hướng không ạ?

Cách của bạn thì bạn vẫn học được, nhưng sẽ mất rất nhiều thời gian, bạn có thể hiểu kết quả của dòng code đó nhưng hầu như sẽ không hiểu được bản chất của nó. Code bạn dùng có thể chạy, nhưng không chắc sẽ tối ưu trong tất cả các trường hợp.
Mình không học Java, nhưng mình cũng từng tự học Javascript như kiểu của bạn bây giờ, và rất rất hối hận vì khoảng thời gian hoang phí đó.
Hãy nghiêm túc học từ đầu, tuyệt đối không được copy-paste code.

4 Likes

Vầng, bạn học theo kiểu trẻ em học ngôn ngữ thì sau 1 năm sẽ biba bibô. Sau 3 năm mới nói được vài câu dài. Sau 10 năm mới thành thạo ngôn ngữ. Nên nếu bạn không cần gấp gáp và đủ kiên nhẫn, bạn cứ yên tâm theo cách đó để học lập trình đi nhé.

Thì cả 2 đều là Language mà :))

Mình thấy bạn học như vậy không hiệu qủa đâu, cho dù bạn biết cách hoạt động của nó nhưng không nhớ cú pháp của nó thì sao bạn có thể dùng nó.

Mình đâu có đề cập gì đến cái lệnh này nhỉ, ok cứ cho là bạn phải đọc qua mới biết, xong đọc qua biết nó làm gì rồi, xong vào IDE bấm strtok, cái nó auto-complete hết luôn, sau này lúc không có IDE, chả nhớ cú pháp đó ra sao, tất cả những gì bạn nhớ là: chức năng và strtok (đôi khi chỉ cần strt, strto và ctrl + space). :smiley:

auto-complete thì đã nói ở trên, highlight thì nếu bạn gõ sai, câu lệnh không đổi màu, biết sai luôn, mà biết luôn như thế thì chả nhớ được. Đọc kĩ tất cả những gì mình nói từ đầu đến giờ (đầu thread) + hiểu rồi hẵng reply, còn không thì mình không trả lời đâu :wink:

1 Like

Mình chưa có chút khái niệm gì về lập trình ngoại trừ năm 11 được học sơ về Pascal và thấy nó rất khó nhưng không biết lý do vì sao mình lại chọn ngành CNNT và ngôn ngữ đầu tiên mình tiếp cận chính là C, nghe mọi người nói học C tốt nữa dễ chuyển sang ngôn ngữ khác mà bây giờ chương trình dạy ở trường vẫn là C/C++ vậy mình có nên học thêm ngôn ngữ Python hoặc Ruby ,chưa bao giờ biết tới luôn.

Học không bao giờ là thừa bạn à :smile:, vấn đề là học sao cho hiệu quả mà thôi, tới đi :wink:

Giờ chắc phải lo học C/C++ cho qua môn trước rồi tính sau lỡ rồi phóng lao theo lao,mỗi người chọn cho mình 1 điểm để bắt đầu.

Mình thấy mấy công cụ IDE cũng khá tốt đó chư. Cơ mà mình cũng chỉ dung đến sublime text, hệ thống nhắc lệnh ngon bá đạo, nhiều lúc mình quên cú pháp lệnh, nó nhắc cho mình nhớ cung tốt chứ nhỉ :slight_smile:

1 Like

Với cả mấy cái IDE thì trên mạng có đầy, lại nhẹ nữa, từ notepad++ đến sublime text, lo gì không có xài :)) qua máy lạ thì down về mà code hoặc dùng bản portable trên USB của mình cũng được. Trừ khi bạn phải code ra giấy trong giờ kiểm tra thôi chứ code máy thì autocomplete giúp tang tuổi thọ cho lập trình viên nhiều lắm :))))))))

1 Like

Thì có ai bảo IDE không tốt đâu, nó chỉ không thích hợp cho người mới học thôi, sẽ làm cho họ bị phụ thuôc.

Vấn đề ở đây không phải là có IDE hay không, cứ tưởng tượng code là nấu ăn, IDE(và một số text editor cao cấp) là nguyên liệu được xử lý sẵn còn text editor bình thường là nguyên liệu raw(thô, sống) cả 2 thứ đều có thể chế biến được món ăn như nhau, nhưng bạn sẽ không trở thành đầu bếp giỏi nếu không biết sơ chế nguyên liệu được, học gì làm gì cũng phải bắt đầu từ cái cơ bản. Phương châm của mình là: “Khổ trước sướng sau”.
P. S: Nếu không đồng ý với ý kiến của mình thì bỏ qua đi, mỗi người một suy nghĩ, cái thread này mình nói cũng khá nhiều rồi. :stuck_out_tongue:

1 Like

nhân tiện cho mình hỏi triệu chứng “nay code ngày mốt quên” có nguy hiểm ko. :stuck_out_tongue:

Công nhận :’( không có IDE chắc ngóe quá =))

hì hì, theo như ví dụ bạn thì để nấu đc món gà thì có mấy đầu bếp xắn tay cắt tiết, toàn mua hàng chế biến sẵn cả bạn ah. Đó người ta gọi là sự chuyên môn hóa, nâng cao năng suất làm việc, thế giới bây giờ người ta phát triển theo hướng đó cả rồi bạn. :smile:

1 Like

Bạn nói về đầu bếp nào thế? Đầu bếp nếu mà muốn phục vụ buổi trưa hoặc chiều thì họ phải xử lý nguyên liệu từ buổi sáng đấy nhé, phải tự đi chợ luôn nhé.
Vấn để ở đây là dành cho người mới học, nắm syntax cơ bản đã rồi thì dùng IDE gì mà không được.

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