Suspicion Confirmed? Craig Dennis you are not a Java Developer are you?
As I have been working my way through this course I have consistently gotten the feeling that you are learning along with us. You don't seem to be terribly comfortable with this language. More like you learned another language and since most computer languages are relatively translatable, you are just sorta hacking this together as you go. I understood the point of showing students that its ok to go to the web and read the Java documentation to learn how to solve certain problems but you do it quite a lot. That combined with the fact that you repeatedly just toss in new things like "Writer" to name just one example from this video without really explaining what is and what it does and it leaves me feeling that this course is less for a truly beginner programmer and more for someone who already has a working grasp of another language and is merely learning how to translate that into Java. Then you seem to confirm my overall suspicion when you make the comment "When I was looking for the best way to write to a file I found this..." Why don't you know the best way to write to a file? I appreciate your hard work in making this available as I would not have joined teamtreehouse if Java were not on the course list but come on. If this is not your "native" language get someone who is a real Java Pro to teach this class. At this point we are about 3/4 or more through this course and while my understanding of Java has grown substantially I feel like we have just blazed through a ton of concepts without ever really solidifying and working with the each one to fully understand it. The exercises at the end of each lesson are good but you don't teach a kid the concept of addition then have him do one addition problem as test of his understanding and then just move on to multiplication. So extra exercises along the way would have been nice. Like homework that is not required to go to the next step but gives one the opportunity to really apply what has been taught in the lesson so that it can be fully grasped before moving on. I dont mean to sound overly critical and maybe its just me, maybe I am just dense, or maybe this is just the nature of online learning. Hopefully by the end of this course it will all be brought together as I am looking forward to moving on to the Android Development track.
The best way to learn is by working on your own projects. The exercises are good for testing your understanding of what's covered in the videos, but actually applying what you've learnt is when it really starts to make sense.
Everything you create will have its own unique set of problems, so you can't really make a course that covers every situation. You can however, use the courses as a reference/starting point for a project.
Lots of programmers learn different languages and I don't think there's anything wrong with not knowing how to do something. Even the best programmers spend a great deal of time looking for answers in the docs and on google. As you said your understanding has grown substantially so he must be doing something right.
Hope this helps :)
Craig DennisTreehouse Teacher
Before that I ran my own company and I had many clients who were running Java, mainly in the Lotus Notes world. Before that I worked for a couple of agencies, where I did all sorts of programming, like C#, PHP, Perl, ASP.NET, and even, yikes, ColdFusion. Here was were I really learned Java, I've worked on probably 20+ Java backed sites and maintained hundreds more. So yeah, I've done Java development. I don't think I'd limit myself to that title though.
What is new to me is teaching Java. Java is a large verbose language, and I am constantly surprised at how not beginner friendly things are, especially the documentation. I'm enjoying the challenge.
As far as the statement about writing a file that you brought up, that's fair, I don't think I've ever written Java code specifically to do that. I mean outside from my intro to Java class in college and that was many moons ago, I've always had a database, so therefore I looked for the current best practice. You don't do much file writing in Java web or Lotus Notes development, and even so, I'd still make sure I was using the most up to date patterns and techniques, before teaching it.
The good news is we have also hired an additional Java teacher Chris Ramacciotti . He's coming live and direct from the Java world, but I can't promise he doesn't know other languages. ;) Expect some awesome workshops coming up real soon.
We're working on the issue on how to get more exercises in front of you, and I try to make sure I make you recall what I taught you early on, just to make sure it's sticking. But I do agree, it would be nice to get more projects out there. I just finished filming the last course on the Learn Java track. With the tools in place I think there will be plenty of practice ideas to work on. I'll make sure to ping you when we put those together. You'll enjoy the Android track and there are lots of applications there that you'll build there.
Side note, I'm also using Treehouse to learn Ruby, as the site is written in it, and I'm enjoying the Swift track as well. Not sure if learning those will make me less of a Java Developer. I hope that you too will not just limit yourself to the Java language, there's a lot of great thinking and patterns out there.
Hope this didn't come off defensive, I appreciate the opportunity to explain myself, and I also appreciate your concerns. Thanks for being open!
Are there any recommendations out there to a freshman in highschool who needs some help understanding these videos?
Colby Wise3,165 Points
Craig you're a stud. This course is helping me acid prep for my MS in comp. sci. Great intro despite it not being perfect yet!
David Franco1,014 Points
I was actually Googling Craig to find out the exact process in which he learned, so I myself can learn more effectively, but now I don't have to - since he just explained in this post. Great, thanks!