Resources for Learning How to Code

Frequently asked questions

Where do I start?

We recommend learning Python first, as it is easy to learn, but also powerful. If there is a specific device you want to target, look at the table below to see what you can do with a few languages.

What do I do when I get stuck?

One thing you can do is ask someone at the club meeting for advice. Another thing you can do is look for an answer or submit a question on stackoverflow.com. StackOverflow is a popular website that helps answer all your questions.

How do I get better?

The only way that you can get better is by practicing. Practice by coming up with a goal, and write a program to accomplish it. It does not matter if someone has already written a program to do it, you can challenge yourself by making your own. Challenge yourself by writing something that you can not currently make. When you get stuck, refer to the "What do I do when I get stuck" question. If you need ideas, this site has a list of some.

Which language should I learn?

This is not a complete list of every platform and every language. If what you want to write programs for is not on here, then you need to do your own research. Considering adding to this page if you do.

Target Commonly used language(s)
Desktop apps for Windows, OS X, and Linux Java
Websites or webapps HTML, CSS, and JavaScript
iOS apps Objective-C or Swift
Android apps Java
2D games JavaScript or Python
3D games C++ or C#
Command line programs C or Python
Windows only applications C# (C Sharp)

List of resources by language

Java

Documentation

Java is a popular programming language. It is used to write programs for Windows, Mac OS X, Linux, Android, and more. It is also the language used in the AP class.

Websites for learning Java

The official Java tutorial

We recommend doing Getting Started, Learning the Java Language, then Essential Java Classes. After you have done those 3, branch off and learn things as you need them.

Books for learning Java

Oracle Java Ebooks

Free books for learning Java.

Python (Recommended for beginners)

Documentation (Python 3)

Documentation (Python 2)

Python is a programming language that is easy to program with, but it still powerfull. It is great for people who are new to computer programming.

Websites for learning Python

Codecademy Python tutorial

Codecademy is a great resource for learning Python.

Swift

Swift Standard Library Documentation

iOS Platform Documentation

Mac OS X Platform Documentation

watchOS Platform Documentation

Swift is a programming language that was recently created by Apple. It is the replacement for Objective C. It is what is used to write apps for iOS and Mac OS X. It has the power of a language like Java and is comfortable to work with like Python.

The Swift Programming Language

Switft learning resources

Objective-C (Swift is recommended instead)

iOS Platform Documentation

Mac OS X Platform Documentation

Objective-C is a programming that is exactly as it sounds: C with objects. The language is built on top of C, and you can even use C code along side Objective C. It's use has declined significantly since Apple replaced it with Swift in June 2014, and we do not recommend learning it.

Programming with Objective-C

Sources used to put together this page