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 trialRon L
6,463 PointsIs it appropriate to bring in IF/Else statements into an Introduction to Programming
By this I mean, bringing in IF/Else without explaining it prior to the task. Granted, I understand IF/Else but I see this a lot where certain expressions or statements that are not part of the core tutorial (and were not previously explained) are brought into the lesson when explaining some other item.
When this happens, it increases the chance of the user not grasping what is being said about the topic, such as null and undefined, because they are also concerned (distracted) about the IF/Else statements.
10 Answers
James Barnett
39,199 PointsRon -
You might be interested in checking out the new JavaScript Basics course.
Richard Boothe
25,204 PointsRon, the concepts inherent in programming in general can be extremely abstract, and while I understand the needs of the students' needs to grasp all concepts, their are often situations that call for "bigger picture theory". The same approach applies to the concepts of mathematics. Sometimes, while investing time in learning advanced concepts in Calculus, or Linear Algebra, it is advised to acknowledge that there is a general assumption that the math is correct before breaking down every facet of the equation. Understanding the broader idea is also necessary in programming, and assuming that the code the instructor is telling you is necessary, in order to provide a bigger picture so that the more minute details can be explored later and thus mastered.
Richard Boothe
25,204 PointsHey I'm not a guru at Javascript or jQuery, I'm just a student of Treehouse trying to learn like everyone else here. But Jon Duckett, the author of JavaScript and jQuery: Interactive front-end web development, would say the exact opposite of your last sentence. And I can only assume he knows more about programming than myself, or you, or the majority of people in this industry. Just my thoughts. Best of luck.
Britton Zirkle
Courses Plus Student 15,005 PointsI am sure that anyone qualified to write a book about a particular subject was, at some point, a beginner in the subject and thus has the experience to know what it is like to have been a beginner - probably at a time when there were far fewer resources available to learn from. I consider Jon Duckett's books to be highly valuable and educational and have learned a great deal from them. I read a lot of rants in the JavaScript forums about the material, poor quality of teaching, etc... The material is being broken down in its simplest forms. When something is introduced that is not covered in detail, patience has shown that it will be covered in detail at a later time. Learning to program is much more complex than learning to write markup. There are lots of abstract and intangible concepts that can be a challenge. I think a lot of people get stuck on the paradox of being abstract and intangible and still very logical and out of the frustration of being stuck, blame the material, the teacher, or the school. There is very much a DIY nature to programming and at the end of the day, the best way to learn and progress is to take the information presented and mess with it, change it, make your own examples, apply it to situations, and do additional learning and research from outside sources.
I dont mean to sound like a jerk as we are all here to learn, but I just see a lot of complaining in a lot of the forum questions. It would be great to see someone take their frustration and direct it out in a positive manner along the lines of "if you're struggling with the materials or teaching, here are some ways to help..."
That being said, here are some ways to help bridge some of the gaps that people may find in the materials: read books (Jon Duckett's books are great as is Tim Wright's), write a pre-set number of for loops, while loops, objects, and conditional statements each day, pick a topic and write a white paper on it - anything you can't fully explain is something you should research and practice until you can, blog about your experiences in learning, take the information from the JavaScript courses that you are struggling with and apply the concepts to the websites created in the HTML and CSS courses or to the websites you have created on your own, join a meetup group and look for a mentor, become a mentor, teach your kids/spouse/friend/whoever what you have already learned.
Ron L
6,463 PointsI am sorry Britton, but you are mistaken. If you take a moment to realize the common issue that programmers face when developing an app, they have trouble because they are not the user. Programmers and users think differently, which is why there is such an emphasis in creating proper UI. If programmers already knew how the end users were going to use the apps (or programs, etc.) then there would be no need for companies to do research on how users use the app.
Unless a program, or book such as Duckett's, has the students actually build sites or apps, then all of the teaching and videos add up to a waste of time. Ask any programmer, they will tell you, the best way to learn is to build. Watching videos and reading a book does not help someone learn (no matter how pretty the pictures are) unless the videos and books are used in conjunction with actually practically applying what was just taught.
If you call people's negative comments on a book or video/tutorial "rants" then so too are the SMEs and end users who are "ranting" when they try to use a new program developed by the company's IT genius only to find the program is not intuitive and only functions when one is thinking along the lines of he who built it. ...ever wonder why coders are notorious for not putting in documentation in their code? Because A) they think everyone else should intuit what the code says or B) they are too lazy and want to get back to gankin' noobs in Azeroth battlegrounds.
I do not think it is a stretch to say that companies are plagued with legacy code with no documentation from the old coder and nobody knows what the heck the code does or says. This is precisely what I am saying. Programmers might be experts, but being an expert is not qualification for being a teacher. Coders need to listen to the end user or end up being the target of rants. Just because "The material is being broken down in its simplest forms" does not mean it is automatically legitimized as quality teaching content. If it is missing a practical application that is repeated and built upon, it is a waste of time.
Ron L
6,463 PointsKevin, you stated "If someone is going to skip the recommended intro course it should be expected that they understand these foundational concepts." But you also said, "It says in the Foundations course that it is recommended that you have some knowledge of programming and even recommends Introduction to Programming be taken."
So, essentially, whether you skip the "Introduction to Programming" or you continue with the the intro course, you should still know stuff like If/Else, and I presume For and While loops along with Arrays.
If that were the case, then I suggest the course not be called "Introduction to Programming".
Or, better yet, that Treehouse bring up If/Else AFTER they've already been taught. I now see that If/Else, and Loops, are covered in the next course under Control Structures. I know that tutorials like Treehouse (Code School, Code Academy, etc.) like to bring in concepts before their time, and the lecture begins with, "well, just ignore that for now, and focus on what I'm really trying to tell you," but unfortunately, the entire lesson is expected to work with the If/Else yet the user is expected to "ignore that statement behind the curtain."
I just think that if a tutorial is going to introduce, or bring in a statement or new piece of code that it is then explained so that it can then be properly used. Otherwise it's just one more question mark that the user might have floating over their head where they then have to pause the video, Google the term, try to teach themselves the term and then go back to the tutorial and incorporate both the taught and untaught term.
Kevin Marshall
3,561 PointsYour post is linking from JS Foundations course so that is where I assume the issue came up. In the Intro course I could see how that could be confusing.
Ron L
6,463 PointsThanks for responding Richard.
I apologize if this sounds arrogant or flippant or petulant, because it's the last thing I want to be perceived as.
One does not need to learn Portuguese before one can understand an answer to an English question and you don't use words like "res ipsa loquitur" when teaching second graders how to read. You don't skip steps because doing so detracts from the student's ability to absorb the material that is being taught which is why I don't think it is prudent (or helpful) to bring in a statement (which is its own tutorial series: see JS Basics > Making Decisions with Conditional Statements) when teaching a lower level concept.
If one's goal is to be a good teacher, it would behoove the teacher to listen to his or her students when they are giving feedback about the lessons, assuming one is dealing with students who genuinely want to learn. Successful communication requires more than just a unidirectional message coming out of one's mouth in an endless stream. The message must also be received by a recipient.
If an expert just wants to listen to them self talk, then the expert can ignore any criticism of their lessons and continue speaking. However, it would be prudent to take into consideration what the recipient's experience is. It is quite probable that even though one is an expert in a subject, it isn't automatically inferred that one is also a good teacher.
So, I do not want to sound arrogant when I say this nor do I want to sound like I am criticizing Treehouse; I am not. I have used Code Academy, Code School, Thinkful and other online tutorials, courses, etc. ad nausium and have found Treehouse to be the best at online teaching. But, this issue (among several others) is systemic.
Even though I appreciate you responding, I have to disagree when I say your "bigger picture theory" is not the goal when the title of the course is "Introductory Programming." Bigger picture theory comes later after the fundamentals are firmly in place.
Ron L
6,463 PointsI am sure he would; I have his book right here next to me. The one thing he is not an expert at is what it's like to be a beginner. The book is an excellent resource, but doesn't help teach JavaScript. It is lacking.
Richard Boothe
25,204 PointsFair enough. All the same, best of luck on your journey! I know I need all the help I can get!
Britton Zirkle
Courses Plus Student 15,005 PointsRon L,
Your complaint was with the organization of the content and specifically with the inclusion of conditional statements in an introductory class. When you refer to the user in your original post, one would assume you are referring to the student who is in fact trying to learn to think and approach things from the mindset of a programmer. When you said that Jon Duckett was not an expert at being a beginner, you were not making any obvious reference to users of apps. Your response to my post attempts to change the entire focus of your original post from a questioning complaint about the content of a lesson to something very different. Given that and some of your other comments to other responders, it appears your end game is simply to argue your point. Your responses here come off as exactly what you said you didn't intend to be perceived as, but to each his own. Best of luck to you.
Ron L
6,463 PointsThanks Britton,
You have reminded me to add coders and IT peeps, atop those who wish to discuss politics and religion, to stop attempting to have dialogue. Your cup is full, there is no room for constructive critical input, hence the IT/coder stereotype. You win Britton. I'm checking out. Have a nice day.
Kevin Marshall
3,561 PointsKevin Marshall
3,561 PointsIt says in the Foundations course that it is recommended that you have some knowledge of programming and even recommends Introduction to Programming be taken. I think If/Else would be a very fundamental idea to grasp. If someone is going to skip the recommended intro course it should be expected that they understand these foundational concepts.
I do however see your point. The student that is confused by these concepts should see that they could benefit from some additional resources or be able to ignore the extraneous information and learn about it when it comes up later in the course.