Only in so far as being the first language for people to learn.
Prototying Object Oriented programming is far more powerful (and correspondingly much harder to learn how to write proeprly) than classical object oriented languages.
C++ and Java are back end programing languages.
I think schools would teach JS more because it’s a front end programing language. Being on the front end, it makes it more visual. I’m guessing that probably makes it a bit easier to teach and makes for a better beginners language.
Well, unless you’re going use machine code then you’re always using some form of abstraction. You just need to decide what’s the best abstraction to use. I think Ruby is a very beginner friendly language that is great for learning to program.
You only need Sinatra if you’re going to be teaching some back-end web development (and if you’re doing that then surely you will have to use some sort of ‘framework’). I don’t think Sinatra is a confusing level of abstraction because it exposes the HTTP process so aids understanding. You can start with GET requests and build up to some simple POST requests then introduce a database backend with that uses REST. I don’t think you could get simpler or better than Sinatra for teaching back end web dev.
That’s not really what I mean, of course i’m not proposing teaching machine code. I mean abstractions away from what it is going on with the language, i.e. frameworks. I sometimes feel that layering these dependencies hides from beginners what is happening before they understand.
For complete beginners, even concepts like ‘HTTP’, 'GET, ‘POST’ etc mean nothing. I am basing this on personal experience.
@oddz Does something being ‘terrible’ technically and structurally make it a bad choice to learn if it motivates people to understand and then discover these things themselves.
IMHO these sorts of discussions are what put beginners off, especially when they’re enjoying such a language and getting things done with it.
I’m a bit late to the party, but I saw a scratch demo the other day, and for complete beginners it did look super cool. My main concern would be that the next step would be a big leap, i.e. going from visual to realising that for ‘real world’ you have to do a lot more. Could be good for prototyping though.
Personally I’d just choose a language that you yourself are comfortable with and go with it. As many people have said already the important thing is to teach the concepts of programming and these can be transferred to other languages anyway. For me, it was Ruby that I found to be the easiest language to follow as it seemed to have a lot of methods that could be written as you would speak them in English.
I realise HTTP concepts are hard for beginners and I wouldn’t start there (just simple HTML pages), but if at some point you are going to teach back end stuff then surely you’ll have to teach them about how it works, so you couldn’t really avoid teaching them about GET and POST requests. Is there a backend language where you don’t need to know about them? If you are teaching it then I think Sinatra makes it very easy to follow what is going on in the background with a fairly easy to use language. There are other frameworks that do a similar thing as Sinatra in other languages too, so you wouldn’t be limited if you didn’t teach Ruby as the programming language.
This is the course I put on SitePoint that was aimed at beginners. It might be worth having a look at some of the topics to see if it’s anything like what you’re trying to do…
I think that’s probably the best advise. The person teaching the language needs to know it well in order to be able to teach it properly. There is nothing worse than someone trying to teach a language where they don’t know it properly themselves.
What I have found is that programming language break up into groups based on the type of language they are - procedural, reporting, rules based, classical object oriented, prototyping object oriented etc - and that once you know one language of a given type that learning other language of the same type is rather easy as they do the same things the same way just using different commands. Learning a new type of language is harder as then you need to learn how that type of language works (not quite as hard as learning your very first language but closer to that than learning an additional language of a type you already know).
@daz4126 I agree too, I think clarity, understanding and passion are likely the things you need most to teach best.
Plus a healthy dose of not assuming anything and understanding others perspectives.
Definitely! Would love to hear how you get on!
This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.