Resources

Helpful Information For Competitive Programming.

Contents

Beginners' Quick Start Guide

Welcome to the world of programming! With the growing industry in computer science, more and more people are interested in this subject. This guide is to help you warm up to the idea of computer science and get started with whatever you want to do. Here, in computing team, we will be emphasizing on one aspect of CS: competitive programming.

1. Choose a language.

Coming into this club, you probably have already taken AP Computer Science A (it's fine if you haven't). APCSA has introduced you to the world of Java, a prominent programming language. If you are comfortable with the way Java works, then you may continue with it. Java is also recommended because most of the members are familiar with Java, so if you ever need assistance, we can help you. However, if you don't enjoy Java, or you are still not familiar with it, then there are plenty of other programming languages available. Currently, the ones supported by ACSL are C++, Java and Python. This is the most restrictive list, as other programming contests will support these and more.

2. Choose an IDE.

An integrated development environment (IDE) is the primary space for a user to write their code. However, with the numerous IDEs out there, you must make a choice. This, surprisingly, seems to be the hardest step for some of our members. Choose an IDE that you will be comfortable with, and one that works with your programming language. For example, Eclipse is the one we are introduced to in APCSA, but in all honesty, who likes Eclipse (except Anmol)? Below is a list of preferred and NOT preferred IDEs.

Preferred Downloadable IDEs:

Preferred Online IDEs:

If you are using online IDEs, make sure to keep your code private during contests (you have to pay for privacy in repl.it, watch for that).

NOT Preferred IDEs:

  • Google Docs
  • Notepad
  • Microsoft Word
  • Loose Leaf Paper (???)

3. Learn Your Language.

After setting up your environment, you will not magically learn how to code everything. Learning a coding language, just like learning a spoken language, takes time. Start out how you would in a typical CS class: print out "Hello World!". Then, learn how to use loops, lists, arithmetic, etc. There are plenty of resources to help with that:

  1. Google (nameably StackOverflow and GeeksforGeeks)

This is not a joke. Google is your best friend. If you are ever coding and you don't know how to do something, Google it! For example, if you're learning C++ and you don't know how to print something out in the terminal, then Google "How to print something in the terminal in C++". You're pretty much guaranteed to get an answer. I learned most of Java this way.

  1. Read a book!

Although this is boring, a book from the library could cover most of the language knowledge you need, and unlike Googling, it can cover all the information, not just bits and pieces on a need basis. There are plenty of coding books in the 95th street library, upstairs and in the far back near the "Silent Room".

Resources NOT recommended for learning a coding language:

  1. Duolingo

Although Duolingo offers a variety of languages, some which aren't even spoken in the real world, they do not offer lessons on programming languages.

4. Practice!

Using our Resource Page, you can find different sites to practice competitve programming, solve problems ranging from simple to insanely difficult. Practice also takes time, but the more you practice, the better you will get.

Good luck on your journey, and we hope to see you at our next meeting!


Authors: Daniel Li