# 5 lỗi thường gặp khi luyện tập lập trình Trong quá trình luyện tập, các bạn mới học thường chỉ chăm chú hoàn thành bài tập, chứ chưa thực sự nghĩ đến việc tổ chức đoạn code khoa học hay làm thế nào để biến những kiến thức đó thành cái mình dùng được trong kỳ thi không sử dụng tài liệu. Hãy cùng Code Dream khám phá và bóc tách những lỗi thường gặp nhất trong các bạn mới học lập trình nhé! ![](https://lh3.googleusercontent.com/fife/AKsag4MOZAKWpdvruOUeS7qFozImKZHUupwZwcqSqAkqDVqyDTTQX1N18Te5Fw8WjVwphK2AZsyEpBZnQatUYS6Jk7Nvr5tORbGdHTiZRfDzQ5wN3qtDO7gH8-YMois2xAhWFmXMGEoNGtphdBm4CA6yzUf20uX1HPC-jWi4kT_E_34E7EQ5UQqcyi-7pAH4YJkxm2ZYq1Or6ftQa7-wYJi3jgupFvkVMC_08szOxRm6g-8jJ9Ejb7JAevLesNJrHSdCalzHAQIeWqGL5OI7K3YedqjEhwzM-ZNVr8h6NpEGS-nRSEFDY4soJkWSqWZf6XvgTCGLnHbmAb-ri9Juj4j5kG4fLQL07sLseaV7hCeNC1QinA0YVtUZmJm1YsY5S40Al570ElVxMF6CqeLyyDATdUQ5XM_nQulNZP8wybeFGQLP6az6TFKHu0UbtttKxlzplauogYkSkZGSZhNeLaRqar-LBN742D3fo3QsqmbZoxNeRKYD3dzyOQsp5yhwmiQloBOonBhMg09Bb2WQX50yX4hPm7ju2mzg8xJcaSYfReCS8ufIvIiGQYFqioFRvvW3ZCfkfuGDpp5pV-NubyUkJYnwuC6boi00-1Dmzgducqc3oG1aXk3tG1W_PUn4ChSYLAp6H_53Yb0x9fGENw_uVyPnQDad211Mqv1HDWfZrGX--hyE6lZIdbaK0QwXi5c1JxHIkIa4SmhMO3THdGcITAqMWmPIDxX-P1X81ZwAV2QXgJg2c3pO2ONeKdCAU31h_NBlI2hk1hI_g8UPMEZtqKtg8SGcOMVqTf_jst5Y0DVw6f_iwHxd82vCm5A6nBD0Rtn38nDw-rjMekXadDigyR0iqDLEZa-iFL2-HV9uf_atYdnyZR_hXK2IP4OMNcMcweS1EAgasbX4z1v2AyZxuUMvK7iT1WilRGDnV3WfCLIBjE3lf_lL2OTFqHX-TSIHw4SOTe7ZBB5yH-1fG9A81gfLQj7_ZbiGQToydeVtSwLNheR4iZDg7K6S9IouNqFHSf7RgOKtY7TTwNuZdiBOJxJBGfMeiqaxrzKFNmmuzBylD-nW75edLgDp5L881xcoOmHxmhvBUPuCZZPqSa67NxkwjLJ7lARsTNwfujK3jrRXEeWWcGt068m97sM8A3DmsTxO6uxvLxbYQIkOlKaUHWt0zsq6Khbz7a7WxmCamARA1hKMMjUFmHN5TI4-a9pNicrBRep1fGNVgvNfjLcyAhp-KrgWr7_GmxMoww-zLZsseaeyXFkDZ8fieawapRKEha0zdDnLhhSq5zlZsHJNMxCVxPytyJYQeodsXgTzl2J0j-qL-WLCQrl_qlP8f3_irEfsQ1I7KGGI-LgwoeBz3547SgBpsqBQ4IQvaz_W2FeIIjDi29U5OEnRaMWXNlFc5tKZtOpqprXKnZzU1VdHLjGFRGqbFVSYRiUfS-AFU9bDwqvlWUuMJRiMirHkHmabvX2LmbtjaIBmlHMYMw3tWra9pZQlm9ggP65dlbpTZpuqQ8HqLHX9B9Gubm6f7ZNhZKofPD8nwpzjWmUmTjHa9h1yDWkoMKaFsb7-0YIlmBZ2wdMD2MoSc_LWXAMo_3-L7jCQyKjXw79PbRzLIUfPBQOMpfYteBBnGA26WtFi3xp5fdc8QKoz4MqiFms9I0X6SJdFaX0FblRfuQgEBJ4Mv5DTD3sce87FMtkBqbQTpQCXblAxXKkDW1Hz7RM-UVbh6WyzPPCTlYqVXtZ7lgtdv_3gyaHB=w2498-h1304) ## Copy - paste code có sẵn Cảm giác sử dụng code có sẵn để làm bài tập khiến cho các bạn mới học cảm thấy sung sướng vì đã hoàn thành bài tập. Sau này mình nhận ra việc copy - paste quá nhiều sẽ rất hại cho chính bản thân các bạn ấy. Các bạn thường không thể nhớ thuật toán một cách trọn vẹn, cứ mỗi lần làm là lại phải search lại lần nữa, rất mất thời gian. Các bạn cũng không hình thành được phản xạ tốt khi bước vào phòng thi, nơi mà bạn không được chép code từ bất kỳ đâu khác ngoài từ bản thân mình. Vậy nên, đừng chép code trên mạng hay của người khác một cách vô thức nhé! ## Cố gắng "thuộc lòng" code, thuật toán Một lỗi rất rất nhiều bạn mắc phải khi mới bắt đầu học code đó là học thuộc một dòng code hay một thuật toán nào đó để chương trình chạy được. Đừng làm như thế các bạn ạ. Dù các bạn có code đúng nhưng không hiểu bản chất của những cái mình đang viết thì những cái mình thu lại cũng bằng 0 mà thôi. Không có gì phải vội đâu các bạn, những Coder top thế giới bây giờ cũng có khởi đầu giống các bạn. Hãy chậm lại, học một cách chắc chắn để bản thân mình hiểu code cũng như thuật toán chúng ta dùng. ## Hàm quá dài *Đã bao giờ, sau vài tháng làm một bài code, bạn đọc lại bài code của mình và không hiểu mình đã làm gì? Có khả năng, bài code bạn viết hồi đó đã không đủ sạch.* Nếu một hàm bạn viết phải thực hiện quá nhiều tác vụ, có khả năng, bạn đang mắc phải lỗi này. Nếu một chuỗi tác vụ được thực hiện lặp lại từ hai lần, hãy viết thêm hàm cho nó. Thông thường, trong C++, một hàm (trừ hàm main hay hàm thực hiện tác vụ chính), thì 25 dòng là giới hạn chấp nhận được. Đối với những hàm thực hiện tác vụ chính, có thể chia ra thành các chuỗi công đoạn khác nhau và thêm comment giải thích công dụng của từng chuỗi công đoạn nhé. ## Dùng sai tên biến và tên hàm Tên biến cần được đặt dễ hiểu nhất có thể. Như đã nói bên trên, bạn không muốn gây rối cho bản thân trong tương lai, bằng những tên biến không có nghĩa: "meme", "buh", "lmao", ... Cách dễ nhất để đặt tên cho một biến: - Đặt tên biến theo tên biến cho trong đề bài - Đặt tên biến theo cộng dụng của nó. Chẳng hạn: `vector<int> indexList;` để biểu diễn một danh sách gồm những chỉ số của một mảng nào đó - Đặt tên cho những biến tạm: `flag` (cờ hiệu), `guard` (lính canh), ... tùy theo kỹ thuật biến tạm của bạn. ## Code trực tiếp trên trình chấm Trình chấm không có nhiều chức năng hỗ trợ như trên môi trường lập trình (IDE) của bạn. Nhiều bạn vì ngại cài đặt IDE, hoặc quá "tự tin", nên đã viết thẳng bài làm của mình lên trên web chấm. Đây là hiện tượng thấy ở số khá ít các học sinh, nhưng đa phần trong số những học sinh này, các bạn ý đã mất nhiều thời gian hơn cho những lần nộp bài bị sai, so với việc dành thời gian cài môi trường lập trình trên máy mình và dùng được mãi mãi. Các bạn có thể tham khảo [bài viết này](https://www.facebook.com/codedreamedu/posts/259484820229881) để tìm cho mình một môi trường lập trình tối ưu nhất!