4 ms·
Still waiting for a code teaching site that actually explains how everything fits together. What's HTML used for? What's CSS? What's the bigger picture? What's
by justjimmy 14y ago
Still waiting for a code teaching site that actually explains how everything fits together.
What's HTML used for? What's CSS? What's the bigger picture? What's the difference between java and javascript? Why are there so many languages. What are all these terms you are spitting out? Can we get some real world analogies so we can grasp some concepts?
But every single lesson from all these startups starts with type 'this' in or 1+1.
I don't think coding lessons should start with 1+1. It should start what coding is, what the language is, why I am learning it and what I could do with it and most importantly, what is different about it compared to rest of the languages. You got Python, Java, HTML, CSS, Ruby, C+ and the list goes on. I think it'd be very beneficial to have a map, that shows every day stuff that people use and list how it was built. ie: iPhone are built on 'X', Android are built on 'Y', Websites are normally built with 'Z', but you can add 'A', 'B' and 'C' to make it even better etc.
To me, the approach taken by these sites are almost identical. And they're all missing something…
- hluska 14y agoI see what you're saying and there are some sites that do a pretty decent job of what you're saying. For example, Opera has some amazing documents on their site. The much maligned w3schools even does a pretty decent job of showing how everything fits together (in the context of web development). The problem that I see with your approach is that it is really hard to explain certain concepts to people without any experience. For example, if I wanted to explain the difference between Java and Python, I would likely have to get into the difference between static and dynamic typing. I can't think of a way to explain a type system to someone who can't write a basic program. Another concern I have is that too comprehensive a resource could actually teach bad habits. If I would have learned from one source, I wouldn't have learned how to debug via Google. I can't tell you how many times knowing how to answer questions with a search engine has saved me! Great comment though - I bet the developers love reading feedback like this!!
- rickdale 14y agoYou know, the problem is you are smart and you are not aware of how people are approaching computer programming topics. IMHO, sorta like a startup pitch, if you can't explain the difference (to a beginner) between two languages in less than 4 sentences, you probably lost them.
- russelluresti 14y agoThere's really no need to explain the differences in languages to a beginner. When you're teaching someone to code, you're not teaching them a language. You're teaching them (or should be teaching them) concepts that they can take to any language they need. You teach them logic, flows, etc - how to think in terms of solving a problem through programming.
- AlexBlom 14y agoOn top of this, once the coding starts, too many languages focus on command / effect (note: not cause / effect). This is arguably fine for basic looping and data structures. The problem is I see this knowledge break when 1) it is applied to a more difficult problem that 2) is outside of the scope of the provided loop. Spending time understanding the conceptual elements (when, where, why) before the how doesn't give immediate results, but it saves many headaches down the road and makes future tools / languages much easier to learn.
- russelluresti 14y agoActually, most of that information is unnecessary to start coding. In fact, it actually works as a barrier to entry. People who don't understand a programming language aren't going to understand the different nuances between Python and Ruby. Instead, you teach development by having people start coding as soon as possible. You get them playing with the code, manipulating values, and seeing the outcome. Once they see that they're creating something and they enjoy doing it, that's when you explain it to them. Khan Academy has taken this approach and it has proven extremely effective in getting children to start coding. It's really basic game theory - you don't have to explain the entire backstory or all the controls to get someone playing a game. You drop them in a situation and go "OH SHIT YOU'RE UNDER ATTACK - PRESS X TO ATTACK." You give them one instruction and get them hooked. After that, you can then go through the basic tutorials that explain the menu system and or what numbers mean or how you level up or whatever. But the point is to explain things to them as they need to know them and not before. The point is to get people coding as quickly as possible. If someone has to read 60 pages of introductory text, they're not going to do it. It's asking for too much up front.
- lists 14y agoI'm not sure what the research on that methodology looks like, but speaking anecdotally as someone who's teaching themself how to write dynamic websites, I find that methodology to be very unengaging. '1+1=2' and 'Hello world' console input may hook a younger mind, but I need to see a bigger picture to know whether or not this is going to amount to anything I might be interested in. I shouldn't have felt like I was willing myself through CodeAcademy at times. My time as an adult is limited, so it's important that educational products like these forge a framework for my creativity (and therefore interest) as quickly as possible. Learning piano, Norman Monath's 'How to Play Popular Piano in 10 Easy Lessons' did exactly this, whereas a lot of the material I ran into did things the classical way, which was entirely boring.
- helen842000 14y agoI agree with this. I think some attention needs to be paid into teaching people how to set up their environment outside of the browser. I mean it doesn't sound too good if you say, 'oh I've learned to use Python' and someone asks you to show them & you have to show them inside of the learnstreet tutorial as you don't know any other way. I do think it's great people are investing time and effort into this area but it just needs some context so that people can actually walk away with skills from it.