Android OS Forum banner
1 - 20 of 89 Posts

·
Android Apprentice
Joined
·
22 Posts
I see a lot of threads asking where/how beginners can learn programming. I'm trying to teach myself this as well and thought I'd share what I've found so far.

Many of the top universities offer full online courses for free. Harvard, Stanford, and MIT in particular, have a great selection of CS courses you can take at your leisure and at no charge. Check out my github link towards to the bottom for my solutions to some of these course's problem sets.

I hope this helps others like myself who'd like to learn to program on their own time AND FOR FREE!!!

-----------------------------------------
Free Courses & Lessons:
Harvard's intro to Computer Science - CS50
Harvard's Building Mobile Applications - CS76
Stanford's Intro to CS with a focus in Java - CS106A
MIT's Online Computer Science courses - HERE
More free online courses from major universities - coursera.org
Great Selection of CS courses and more - saylor.org

codecademy.com - Interactive tutorials for programming beginners.
udemy - do a search for android (offers both paid and free courses)
Android Bootcamp - in-depth video lectures on Android development
Khan Academy - Intro to computer science
Udacity - Lots of free CS courses

Lots of various free ebooks on programming and other computer topics: http://stackoverflow...ogramming-books
and more here as well: http://learncodethehardway.org/

Game development tutorials with the libgdx game framework: http://code.google.c.../VideoTutorials

Android Developer Training - https://developer.an...ning/index.html

Google Code University - Android http://code.google.c...roid/index.html
The New Boston Programming Tutorials http://www.thenewboston.com/ - Android specific HERE
Java Video Tutorials http://www.javavideotutes.com/lessons
In Depth Java readings http://math.hws.edu/javanotes/

-----------------------------------------
Practice Coding
http://codingbat.com/
http://projecteuler.net/
-----------------------------------------

MY PERSONAL SOLUTIONS TO ONLINE COURSES:

Link --> github
  • codingbat - (Java Section - completed)
  • Harvard CS50 - (completed)
  • Stanford CS106A - (completed)
  • Stanford CS106b - (completed)
  • Stanford CS107 - (completed)
*note, I'm still a beginner so take these for what they're worth. Feedback / bug reports welcome.
-----------------------------------------

MY PERSONAL RANT ON LEARNING TO PROGRAM:

In my experience, there are at least two ways to learn programming. One is to simply start reading basic tutorials in a particular programming language (C, Java, Python) while writing simple, but increasingly complicated programs. To go this route for Android development, it is very difficult. Not only do you need to learn Java, but also how Java works with the Android environment. Many people have done this though and there are a lot of tutorials for you. In particular, thenewboston.com has a nice selection of video tutorials on Java and Android. You can follow along with the videos and then use these skills to write applications of your own.

The other way to learn programming (and the way I chose after getting a little frustrated the other way), is to work through the available college courses online. These courses give you a much more broad introduction to computer science and programming. The courses teach you to code, but what they really teach you is the general theory of computer science. It doesn't matter what programming language you use or if you want to write Android apps, desktop applications, video games, Iphone apps, or radar tracking software. The concepts of computer science apply to all of these scenarios. Harvard's CS50 is the best introduction to computer science I have found, although there are plenty of others from major universities. After an intro course like CS50, you can go on to more specific courses on data structures, algorithms, operating systems, etc. This route takes much longer, but I believe will make you a better self-taught programmer in the long run. You will have a better understanding of what it takes to program and what your code is doing "under the hood". It will also give you perhaps the most important skill... the ability to quickly teach yourself new programming languages and environments. If you dedicate yourself to only one language or platform, you will be very limited in what you can accomplish, but truly understanding computer science will allow you learn new programming tools quickly.

I initially learned to program because I wanted to be an Android developer, but I have since written many applications in many different languages. Android mainly uses Java, but working through the courses and websites I have programmed in C, C++, Javascript, Python, PHP, Scheme, Assembly, and more. I have made Android apps, games, web applications, business applications, and media apps. The best part is, I'm still a beginner myself, but I feel I have already learned and accomplished a great deal with learning to program.

My last piece of advice is to go with what comes the most natural to you as an individual. There is no set way to do anything. Do what you enjoy and what keeps you interested/motivated. Look to others for help when you need it. Stackoverflow, reddit, and here at Rootzwiki, there are plenty of people willing to help. And stick to it! You will get frustrated or perhaps bored at times, but your successes and breakthroughs will be well worth it.

/rant
 

·
Premium Member
Joined
·
49 Posts
Free? From Harvard? Never knew those 2 words could co-exist?? Cool though, now I have to read.
 

·
Android Beginner
Joined
·
17 Posts
Thanks, this is just what I've been looking for!
 
G

·
Read this early right after u posted. Im actually looking at the HTML5, Android, IOS one now... its kinda cool. Videos are taking awhile to load for me tho. Shotty connection at work. Great post!
 

·
Android Beginner
Joined
·
3 Posts
Wow, awesome. Thanks for posting this. I will definitely be checking it out.
 

·
Android Apprentice
Joined
·
22 Posts
Discussion Starter · #10 ·
I'm glad this got some attention. I couldn't believe it when I found these too. I personally have completed the CS50 course so if anyone has any questions, or needs help with any of the problem sets, feel free to ask me here or in PM (don't forget about the course's Google group too). I've just begun CS76 and am working on the first problem set. You'll be surprised how quickly you will pick this stuff up once you get going.

@AirForceGeek - I download the videos and watch them offline.
 

·
Android Apprentice
Joined
·
60 Posts
Wow thank you sir. I am starting UoP online classes in the fall for software engineering and this will help me get a headstart. Thanks again.

Sent from my Xoom using Tapatalk
 

·
Supporting Member
Joined
·
26 Posts
Thanks for the reminder about these! I had stumbled onto some similar OCW courses through MIT a few years back but never got around to taking them since I was also working on my M.S. at the time... now that I'm done, I think I'll take these up!!
 

·
Prepare Your Android
Joined
·
252 Posts
Quality. Much respect for sharing this. I will be doing so, also.
 

·
Android Beginner
Joined
·
46 Posts
Thanks for these links! I personally found CS50 to be a good review of programming concepts, can't wait till I get some more time to work through the mobile app dev one though! Great find; thanks for posting.
 
1 - 20 of 89 Posts
Top