Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Local Development Environments Exploring Your IDE Honing Your Skills

I'm not too much in agreement with this logic... So, I feel I have wasted a bunch of time, but Treehouse got money...

What I am talking about is finally getting started using IDEs. I can completely and honestly see the logic of trying to start off with something VERY basic, and build up from there (such as what we did with starting with only using console applications with no IDE whatsoever). In a very, very, small sense I can agree with that decision, even with the argument made by instructors that there might be just too many higher end stuff that can be "distractions".

However, to me it makes more sense to specifically choose an IDE that you will be teaching students on, create a short or full length course on all the ins and outs of the chosen IDE and how to work it (Microsoft Expression Web 4 and the rest of the suite did this in a book, with project files so you knew what you were doing even if you didn't understand HTML and what not), and THEN start with the Java basics utilizing intelliJ, or whatever IDE Treehouse has chosen to use for instruction. There is some good practice to be had doing some of the work in Workspaces, and then importing it to intelliJ.

And just a side note about Workspaces... It works well for what it does, and I enjoy using it, but myself, along with MANY other users that I have seen comment get some MAJOR frustrations out of the whole Workspaces world. The two main ones are the fact that you are limited to how many Workspaces you can keep, and then there are those instructors (such as the one teaching Full Stack JavaScript, I believe) that make you open a NEW Workspace for each video!

IF we WANTED to keep any of our work in Workspaces for nostalgia, or just to constantly come back and tinker on, that gets pretty hard when trying to advance and constantly having to add more and more to the limited number we can keep. There IS a LOT of deleting that must happen. Going ahead and using the IDE from the beginning can get rid of that issue since there will be no limited space barring the user from keeping what they want to. But, I digress...

So, basically what has happened is we have learned a handful of Java, some about console applications, learned some about how to use Workspaces, as well as the useless REPL and JSHELL getting in the way of learning actual Java (I only mean both of those are almost useless to a complete Java beginner that needs to focus on the language, and not some random tool they might or might not ever use (clearly, almost all folks that go on to become Java programmers will be using an IDE of some sort, and the IDEs that I have tinkered around a bit with have a "console" in them for using console applications which is exactly what we have been doing up to this point).

Most importantly from all of this is that I can honestly say that MY learning experience on Treehouse has been stifled at certain points because of this particular chosen order of the subject matter, and the methods they are being taught to us. It is also not just me as I have seen several other users post about having to go back over videos multiple times, or they feel really good up to a point and then hit a block.

While there is no getting around it, a LOT of users pass Code Challenges and quizzes solely by posting a question in the forum for someone answer and supply the answer code that works, or worse, they go copy/paste the question into a Google search to find what someone else posted for an acceptable answer. I am guilty of this, and any quick search through the question forums and on Google can exhibit this.

By ANY metric, this is NOT good and does not show that Treehouse is putting out a quality product. I am not a lazy person that likes to cut corners, so I know there are many others out there that are also not lazy and like to cut corners. I am here to LEARN. I am paying money to LEARN. While some people breeze right through how Treehouse does it, and you can't have a one size fits all, I think that with any diligent research, you guys will find that people really are not learning and retaining and just passing because of copy/paste.

In my opinion, this is a direct result of how Treehouse has chosen to prioritize, or order how things are taught on here. To be honest, this is not a "great" product (as it stands), and I would shudder at rating the Pro level and the Techdegree.

I think that if we would have started the Java track out with a course explaining how to use intelliJ, a brief lesson on Workspaces, and then moved on into Java itself immediately following, and leaving REPL and JSHELL for their own standalone lessons or "Workshops", the learning would have been much more efficient and the new knowledge retained at a LOT higher of a rate. Not just for me, but for everyone.

So, while I understand all the "WHYs" certain Instructors have said they were waiting till later to dive into IDEs and the sort, can Craig Dennis tell me why him, his team, and maybe why Treehouse made the decision to do like this when it seems like things so easily lose steam how they are? I mean, a lot of this really does resemble "putting the cart before he horse".

Even if the answer is, "My bad Mike. We here at Treehouse are a private company and we have to focus on making profits, so since this IS a subscription based revenue stream, we are somewhat okay with things taking a bit longer to stick in so that you keep going back to watch videos, and ensuring we get another month subscription paid out of a user."

Lol honestly, I would be totally okay with that kind of response. I'm going to stick around regardless because I like Craig Dennis and a couple of the other instructors, and don't think that I'm writing an angry letter. I'm in good spirits and just thought I would ask what has been on my mind for a good bit now lol.

Thanks for everything, guys. Love the site.

Yes, it is very long, but I really it has been something on my head for a good bit now and really would like to have a conversation with an Instructor about it. Just to gain a better undertstanding, and maybe find out something I don't know.

4 Answers

Ronald Lira
Ronald Lira
12,217 Points

Michael Stedman, wait until you apply for a real job in software development, then a lot of thing will make sense. Big tech companies do not even use a computer for interviews, all you have is a marker and a whiteboard. Nothing is checking your syntax, spacing, spelling, etc. It is just you and the board. IDE are good for productivity, but very bad for you to learn real coding, you become very lazy. If you ever want to be a good programmer you have to think like a compiler. And yes, that includes not using debuggers....., debug yourself, use print statements, go deep into the code!

Again, I am not against IDEs, but I believe it will pay a lot more to learn the hard way first. Then, when you get a nice job, and the focus is on productivity, go ahead and use your favourite IDE (and even then, some googlers will go and use the pure raw interface/compiler).

Ronald Lira hey, man. Thanks for the answer that came from that direction. I think that my original intent was just to learn the stuff as a new challenge, and not really as a career thing. But looking at it all from the prospective you put it, it does make a lot of sense. My lack of programming experience definitely displayed itself in that I somehow had the impression (from random Google and YouTube searches) that pretty much all programmers used IDEs and such. I knew that to use and IDE, you needed to know the actual code, but I just had this mental image that IDEs was almost just as important as the code itself. So, I guess I didn't grasp entirely why things took this long for and IDE to be introduced (aside from it being mentioned early on that learning an IDE could get in the way or confuse the learning of the Java).

With Craig Dennis saying what he did in his response, and your response, things are a bit more clear on the direction of movement. Thanks for the answer. I wish I would give both of you the "Best Answer", but since Craig is a staffer, I'll give it to you lol.

Craig Dennis
STAFF
Craig Dennis
Treehouse Teacher

Hi Michael Stedman

I have already responded in another thread about JShell. Maybe this will help? This is the JEP or Java Enhancement Proposal for JShell. You will be seeing it a lot with Java 9. It is literally intended for learning, I don't really know what else to say about that. I didn't make that decision, it's the official suggestion from Oracle and the developers of the Java language. Other languages have this too, and it works great. You are very opposed to it, I do not understand why. I haven't heard this from anyone else. I don't know what else to tell you, other than maybe submit a proposal to have it removed from the language. But I have a feeling a lot of people are going to find it useful, just as they have in other languages. I'm sorry you find it distracting.

In regards to the style...there is a statistic that states more than 50% drop-out between attempting to install Java and get an IDE to get started coding. Half of the people that attempt to get started coding never even begin due to installation problems. In order to tackle that dilemma I decided to use our existing tool, workspaces. We had to do a ton of work to make that happen, because it is in the best interest of students, so that they do not get lost in installation world, and start coding right away.

Once you are ready, I believe you can start answering the prompts you are given, but imagine half of those little intention actions in IntelliJ. They would not make sense. It's not distraction, it's avoiding confusion. Personally I believe that this is much like learning math, if you learn it the hard way, you appreciate and understand the shortcuts. I do discuss this game plan in the beginning of Java Basics, maybe it was not clear enough for you.

With regards to workspaces, you can save them. File >> Download Workspaces. Then you can have "backups". They are great because you can launch exactly what I have without having to learn Git...which is coming up by the way. They are all incremental steps that I thought about, and planned out. Specifically with it in mind for you to absorb as much of the language as you can.

I get a ton of positive reinforcement on this concept, from college students to those applying for jobs. I heard a great story about a horrible situation where someone was asked to write Java in their interview without an IDE. Guess why they were able to do that...

Code challenges are challenging, I'm glad you are sticking with it. The more you have to recall the better. I wish that the answers weren't just posted there in the forum, but we don't have a hint feature currently. You will gain a lot by trying to recall the information from the video. I space them out as the lessons grow, so they get harder as the course progresses, because you are recalling information, making your memory stronger. There is a method to what might seem like madness. We also plan on introducing more videos on learning how to learn and why we do things the way we do.

I appreciate your feedback, and hope that I answered your questions. There is a plan in the works to break apart Java Data Structures and get the IDE in place before generics (or parameterized types) are introduced. The problem in the beginning was getting more content out. In order to cover the Java Collections Framework we had to prep a bunch of information, and in hindsight it's too much. I plan to break that monstrous course into about 6 and intro IntelliJ somewhere in the middle of that.

Anyways, I hope you enjoy the dunk video in this course, I dedicate it to you. ;)

Craig Dennis Thanks a million for the in depth answer. Lol I am sure that my question/comment caused a lot of eye rolling from staff and students, and I hope that nobody took it too seriously. After all, I am by no means a professional in all of this and really only started out on all of this as something to learn and challenge myself on something new, but now have the idea/goal of turning this into something for side work, or maybe even more if I get it all down as good as you.

Honestly, my whole reaction to things was just purely out of being impatient and just frustration with little things. I push myself pretty hard, and I hated having to search for answers. Now that it isn't so late at night, and I haven't been sitting and looking at the screen as long as I was at that point, I was being ridiculous and wanting to jump ahead lol. I also tend to sound a bit gruff and harsh, but that is just the veteran in me (minus the cuss words lol).

I really appreciate what you do, and your patience with questions like mine. I'm still plugging away at it all, and not going to drop out of it.

Craig Dennis
Craig Dennis
Treehouse Teacher

I appreciate the feedback, and your service! Also thanks for editing out the swear words ;)

As you can see, I just let it roll off, thank you for your thoughts!

Josh Stetson
Josh Stetson
12,347 Points

In my opinion, whatever number of people quit after getting stuck installing Java and an IDE then it's a pretty good sign those people should do something else for a career anyways.

Andy Stevens
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Andy Stevens
Front End Web Development Techdegree Graduate 20,417 Points

I love the fact that you learn the "hard way", IDEs do a lot of the work for you and as you state you're not lazy and wish to learn. Therefore, logic dictates (for me anyway) you should study and understand the core concepts before installing an IDE and effectively be given the answers.

In an interview, I was directed to a flip chart given a marker and provided with an A4 sheet of paper that presented me with a coding problem. I had to write out free hand on the flip chart my solution. This is pretty standard and as such I appreciate Craig Dennis and everyone at Team treehouse for designing and running the course in the way they have.