// Disclaimer: I am a total nerd!
codingbat.com
The backstory:
I have an incredibly talented brother & sister who have been working on developing apps for both Apple & Android products. When I am at home with them, I always see them working and am intrigued, but my music education degree didn't exactly teach me enough to follow along with what they are doing. Naturally...I asked them if I could start to learn some coding basics (did I mention that my brother also teaches high school computer science?)!
I've worked on some high-level pseudo-coding with them in that past (basically figuring out the logic) and done some block-based coding, but what I really didn't have is any background writing actual code in text. I've been through some different tutorials, but they are so spoon-fed, I get frustrated with them and forget everything I've learned after a week.
In short, I wanted something that would:
1) Actually get me writing code, and
2) Gave me a bit of a challenge, so I could LEARN and not just regurgitate the information.
After talking with my brother, we decided it would be easier for me to learn just one language at first, and since I have an Android phone and a PC, it seemed logical for me to learn Java (Android) rather than Swift (iOS).
Enter codingbat.com!
Here's what I love:
1. This site doesn't look fancy, but it has both challenges and help articles/videos right there.
2. After you write some code and submit, it runs a series of tests, and tells you which ones pass/fail. This is very helpful for tracking down your errors!
3. For the most part, this site doesn't give you the answers! Some example problems provide answers, and sometimes hints are provided, but mostly, you have to figure it out yourself.
4. The challenges go in a logical order, so you are not asked to do ten new things at once, but they throw in new twists each time, so you are not just repeating the same thing over and over.
5. You can create an account to save your progress, and even link it to a teacher's account (or a brother's account...just saying...) so that they can see your progress as well.
6. This site is built for both Java & Python. I am learning Java, but you could use it for Python as well.
7. It's working! I'm getting more comfortable with writing with proper syntax, I'm completing some challenges, and I'm getting stuck and researching to work through my issues. All of this means I am learning!
App development, here I come...
//Just kidding. I'm just getting started. But it's a step in the right direction!