Most of the problems you've listed become easy the more familiar you are with data structures. This is a more common problem for anyone outside the SV/SF bubble and I wouldn't worry. Just start doing homework and you'll be fine.
Once you're done with data structures, I would start checking out design patterns: http://shop.oreilly.com/product/9780596007126.do
Hope it helps
You have the ability to write some code! If you want to get a jumpstart, you should take the princeton algorithms course (for free!): https://www.coursera.org/learn/algorithms-part1
Or read the textbook by sedgewick that accompanies the course. https://algs4.cs.princeton.edu/home/
There is very little math in there - it may take some elbow grease and mentorship to help to convey some of the ideas - but I believe that you could implement and solve most everything in there. That was my path - I had a teacher at the age of 14 who would explain to me how different algorithms worked and I would go and implement them. Drawing a circle (in memory - it was in C!) or sorting a list (we did bubblesort first IIRC!)
I think you could do it! I believe in you! The course material is approachable - much more so than basically every other algorithms/data-structures material I've found. it may take you some time but you'll be soooo far ahead with your thinking about code.
If you ever start working with Object oriented languages like Java, another book that may help you when you've gone down the road a bit is the Head First Design Patterns book. http://shop.oreilly.com/product/9780596007126.do
It's very easy to read, mostly pictures. It is made to be very easy to read (all of the books in that series are so look around at them.)
It's helpful to do both - code and also take in some material, but at 12 I imagine some of the material may be a bit daunting. You're doing really well - keep it up.
There are several other books that have tried to explain the GoF's Design Patterns in either an easier to approach manner, or in the context of a specific language they have tried to explain where new design patterns have emerged or the original patterns had mutated.
A couple of those worth checking out are
"Head First Design Patterns"
"Design Patterns In Ruby"
I recommend the Head First Design Patterns book if you're not turned off by the less-than serious nature of it. I really did not like the book at first glance, but after actually working through some of it as instructed I enjoyed it and really developed a solid understanding. Simple examples like Vending Machines and Washers really helped me, I still use them in my head when thinking about problems.
Design Patterns are not always the best solution and forcing them on problems can make things worse, but as far as teaching Java I really recommend it.
I also recommend learning about Test Driven Development as previously suggested, we use JUnit4 to teach our undergrads at my university. There are also other methods of testing besides TDD, but I feel it was the easiest to help students.
Oh dear God, that's the last thing he should do. That book is so incredibly dull. It makes Death Valley look like a lush rain forest.
Might I suggest Head First Design Patterns  as a good introductory alternative that won't sap his will to live.
Do not jump in with the GoF Design Pattern book. :)
Essentially to get the best from people you need to give them
I suspect from your question that you are most interested in
focusing on Mastery, specifically how to help them make progress towards it.
I found Pragmatic Programer to be a pretty good general resource. http://www.pragprog.com/the-pragmatic-programmer
Outside of that I'd second the other comment here taking about Design Patterns - I think that the Head First book http://oreilly.com/catalog/9780596007126 is a great introduction
Day to day, finding ways to give to really quick feedback is important, code review and general collaboration with the others will really help.
Get dozens of book recommendations delivered straight to your inbox every Thursday.