A curated list of tools, resources, online courses, and more for beginners and students.
If you’re interested in the field, try things on your own! Learn Android, iOS, or web development, attend a hackathon, become a freelance developer. Or do some programming related research for a Google Science Fair. There is a world of opportunities for you to explore.
We use Android Studio, the official Android IDE, with the Genymotion emulator for our Android development.
For iOS and Mac development, we use Xcode
For web development, we use Sublime Text, Brackets, or Webstorm.
There are lots of open source libraries you can use in your projects so you don't have to make them. You can find more by searching Github.
- dynamics.js: Javascript library for physics animations
- Rebound: An Android physics library
- AppIntro: Make an intro experience for your users
- Android best practices
- Android charts
- JavaScript charts
- AndroidViewHover: Immersive user interaction
There are thousands of courses online. Sometimes it's hard to find good ones. These are some we've found to be the best.
- CS106A - Programming Methodology provides a good introduction to Java object-oriented programming and covers best practices. It is one of the largest courses at Stanford with many first-time coders enrolled.
- MIT OpenCourseWare Computer Science
- Udacity Android courses. Note that on Udacity, the individual courses for the Nanodegrees are free. You only have to pay if you want the 1:1 help they provide.
- Udemy Complete Web Developer Course often has very good discounts. A $200 course can be reduced to $15. Felix and Aditya have completed this course and recommend it for anyone who wants to learn web development.
- Bitfountain courses are also good. The Immersive courses cover a lot of relevant content.
Hackathons are a great way to get involved with the programming community, learn new technology, and not sleep for 36 hours. No coding experience required. And no, you're not hacking the government. At a hackathon hundreds of passionate people get together to design and create a web, mobile, or hardware project from scratch.
Visit Major League Hacking or ask one of us for more info.
A few in our area:
Consider applying to the Turner Fenton Development team. We build apps for the school. Talk to one of the SoftwareDev Club execs: Avik, Akshay, Aditya, Felix, or Kenny.
###Competitive Programming From Wikipedia: Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. Competitive programming is recognized and supported by several multinational software and Internet companies, such as Google, Facebook, and IBM. There are several organizations who host programming competitions on a regular basis. A programming competition generally involves the host presenting a set of logical or mathematical problems to the contestants (who can vary in number from tens to several thousands), and contestants are required to write computer programs capable of solving each problem. Judging is based mostly upon number of problems solved and time spent for writing successful solutions, but may also include other factors (quality of output produced, execution time, program size, etc.)
There are many different competitive programming contests and websites:
- International Olympiad in Informatics (the most prestigious high school programming competition)
- USA Computing Olympiad
- Canadian Computing Olympiad
- SPOJ
- Codeforces
- CodeChef
- TopCoder
- HackerRank