Codeforces and Polygon may be unavailable from December 6, 19:00 (UTC) to December 6, 21:00 (UTC) due to technical maintenance. ×

optimize_ofast's blog

By optimize_ofast, history, 4 months ago, In English

Now, I am a student in a middle school. Programming is an important interest for me, and I think my programming skills are a litte poor. So could you give me some suggestions?

My English is not very good, sorry for now.

  • Vote: I like it
  • 0
  • Vote: I do not like it

»
4 months ago, # |
  Vote: I like it +9 Vote: I do not like it

If you are talking about competitive programing, I generally learned C++ from looking to jiangly's codes. You can choose some good coders, and watch their codes for every problem you solved. And of course self practicing is very important, try to write code as much as you can.

»
4 months ago, # |
  Vote: I like it +5 Vote: I do not like it

This is all you need.

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

You have two options (which aren't mutually exclusive, but you should focus on one side first)

  • Learning new topics, of course not shunning away from advanced ones.
  • Code more, faster, more precisely.

One would ensure you hardly fold a problem. One would ensure you would wipe off every obstacle you were familiar with in a glimpse.

»
4 months ago, # |
  Vote: I like it -18 Vote: I do not like it

Improving your coding skills is an exciting journey that requires dedication, practice, and a willingness to learn. Here’s a comprehensive guide packed with resources, tips, and strategies to help you become a better programmer:

1. Learning Fundamentals

a. Mastering the Basics

Understanding core concepts in programming languages like Python, JavaScript, Java, or C++ is essential. Focus on data structures, algorithms, syntax, and problem-solving strategies. Platforms like Codecademy, Khan Academy, and Udemy offer excellent beginner courses.

b. Online Documentation and Official Guides

Make it a habit to refer to official documentation and guides. Sites like MDN Web Docs for web technologies and Python’s official documentation are invaluable resources.

2. Practical Experience

a. Coding Challenges and Competitions

Participating in coding challenges can sharpen your problem-solving skills. Websites like LeetCode, HackerRank, and Codeforces offer a range of problems to solve. Try to understand different approaches to the same problem and learn from others' solutions.

b. Contribute to Open Source

Open source projects are a fantastic way to gain real-world experience. Platforms like GitHub and GitLab host a plethora of projects you can contribute to. Start small by fixing bugs or improving documentation, then gradually move on to more significant contributions.

c. Build Your Projects

Creating your projects is a practical way to apply what you’ve learned. Whether it’s a website, an app, or a game, building something from scratch helps solidify your understanding. It’s also a great way to showcase your skills to potential employers.

3. Advanced Learning

a. Algorithms and Data Structures

Deepen your knowledge of algorithms and data structures. Books like “Introduction to Algorithms” by Cormen et al. and “Cracking the Coding Interview” by Gayle Laakmann McDowell are excellent resources. Online courses from platforms like Coursera and edX can also provide structured learning paths.

b. System Design and Architecture

Understanding system design is crucial for building scalable applications. Explore resources like “Designing Data-Intensive Applications” by Martin Kleppmann and participate in mock interviews on sites like System Design Primer.

4. Soft Skills and Community Engagement

a. Communication and Teamwork

Effective communication is vital in software development. Practice explaining complex concepts in simple terms and work on your teamwork skills. Engaging in collaborative projects and participating in coding meetups can help you improve these skills.

b. Networking and Mentorship

Join coding communities, both online and offline. Platforms like Stack Overflow, Reddit, and Discord have active programming communities. Finding a mentor can provide valuable guidance and accelerate your learning.

5. Staying Updated

a. Following Industry Trends

The tech industry evolves rapidly. Follow influential tech blogs like TechCrunch, Hacker News, and Medium to stay updated. You can also subscribe to newsletters like JavaScript Weekly and Python Weekly.

b. Continuous Learning

Never stop learning. Explore new programming languages, frameworks, and tools. Online learning platforms like Pluralsight, LinkedIn Learning, and Treehouse offer courses on a wide range of topics.

6. Healthy Habits

a. Balance and Time Management

Avoid burnout by balancing your coding practice with other activities. Schedule regular breaks and allocate time for hobbies and relaxation. Tools like Trello and Notion can help you manage your tasks and time effectively.

b. Physical and Mental Well-being

Maintain a healthy lifestyle with regular exercise, a balanced diet, and sufficient sleep. A healthy body and mind can significantly enhance your focus and productivity.

Conclusion

Becoming a proficient coder is a marathon, not a sprint. Celebrate small victories, stay curious, and never hesitate to seek help when needed. By consistently practicing and learning, you'll not only improve your coding skills but also enjoy the journey of continuous growth and discovery in the world of technology. Happy coding!

  • »
    »
    4 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Well, thank you to everyone for their suggestions. I will try to apply and improve myself. Thanks again.