JoCLee

Hello everyone, I would like your opinions on this. What should I learn after Scratch? I'm a bit overwhelmed, cause there's Stencyl, Alice, Greeenfoot, BYOB… Maybe you could share your opinions on what you've used and how you used it?
I'm kind of looking for something a little more advanced, but with the simplicity of Scratch. Thanks for reading this everyone!
P.S. Please post if you have used any of the soft wares listed.

Paddle2See

One thing you might want to check out, if you are looking for another drag-and-drop block language, is Snap

http://byob.berkeley.edu/

It was based on Scratch but designed with some more powerful features. It's still a teaching language - so practical applications may be missing - but it has some interesting features and it should seem pretty familiar

technoboy10

Yep, Snap! is pretty cool. (Full disclosure, I help with Snap! ).

If you want to get into text-based coding, I would recommend the Python programming language. It's fairly simple to learn.

Firedrake969

I'd suggest Javascript if you're wanting a text-based language, since Python's syntax just confuses me

turkey3

Firedrake969 wrote:

I'd suggest Javascript if you're wanting a text-based language, since Python's syntax just confuses me
By making Python simple, they actually made it more confusing and bizarre. And I would argue that JavaScript is more useful.

technoboy10

turkey3 wrote:

Firedrake969 wrote:

I'd suggest Javascript if you're wanting a text-based language, since Python's syntax just confuses me
By making Python simple, they actually made it more confusing and bizarre. And I would argue that JavaScript is more useful.
Eh, I like JS too, but since Python is essentially pseudocode, IMHO it's a bit easier to pick up.

technoboy10

Also you should look at the tutorials on Codecademy for JS *and* Python.

Firedrake969

technoboy10 wrote:

turkey3 wrote:

Firedrake969 wrote:

I'd suggest Javascript if you're wanting a text-based language, since Python's syntax just confuses me
By making Python simple, they actually made it more confusing and bizarre. And I would argue that JavaScript is more useful.
Eh, I like JS too, but since Python is essentially pseudocode, IMHO it's a bit easier to pick up.
pseudocode that has set syntax, which makes me really confused xD

Blueinkproductions

Python is awesome, no matter what all those haters other people say

JoCLee

Thanks everyone! I'm learning both Python and Java on Codeacademy. I think what I especially wanted to know was which Software to use instead of Scratch! Thanks Paddle2See!

turkey3

JoCLee wrote:

Thanks everyone! I'm learning both Python and Java on Codeacademy. I think what I especially wanted to know was which Software to use instead of Scratch! Thanks Paddle2See!
JavaScript, not Java

JoCLee

turkey3 wrote:

JoCLee wrote:

Thanks everyone! I'm learning both Python and Java on Codeacademy. I think what I especially wanted to know was which Software to use instead of Scratch! Thanks Paddle2See!
JavaScript, not Java
Oh yes, there's a difference, right?

technoboy10 wrote:

Yep, Snap! is pretty cool. (Full disclosure, I help with Snap! ).

If you want to get into text-based coding, I would recommend the Python programming language. It's fairly simple to learn.
My Scratch account doesn't seem to work for BYOB. How do I save my work?

Firedrake969

Yes, big difference.
I use JSFiddle.net to mess around with JS.

djdolphin

JoCLee wrote:

My Scratch account doesn't seem to work for BYOB. How do I save my work?
You can only save it to your computer, or, if you're using Snap! 4.0, create an account and save your project to the cloud. You can't upload BYOB/Snap! projects to Scratch.

goldfish678

Try this; it'll help with JS with ProcessingJS 1.4.7.

JoCLee

djdolphin wrote:

JoCLee wrote:

My Scratch account doesn't seem to work for BYOB. How do I save my work?
You can only save it to your computer, or, if you're using Snap! 4.0, create an account and save your project to the cloud. You can't upload BYOB/Snap! projects to Scratch.
Thank you for your help!

JoCLee

Firedrake969 wrote:

Yes, big difference.
I use JSFiddle.net to mess around with JS.
JSFiddle.net…
I will check it out.

JoCLee

goldfish678 wrote:

Try this; it'll help with JS with ProcessingJS 1.4.7.
Oh yes, I'm using KhanAcademy.

zeusoflightning

I would highly advise against JavaScript, if you aren't too far into it already. It has a weird syntax and extreme limitations, and is annoying to use in general. I do not think it would be easy to learn other languages after it as well. It's just really odd and doesn't have any good IDE really. It's not really worth using unless you are doing web development.

So now for me to put my opinions on other languages:

Python: Python is an interesting scripting language with clean syntax. It's not too bad, has a lot of libraries, and is good for just general automation scripts or console based programs. Aside from automation though, I don't really like it, but this one I actually think is good.

Java & C#: Java and C# are two popular and very good languages, and are very similar. They are both object oriented (they have classes- classes are an extremely important feature in anything more than a simple project!) They also are just as fast, if not faster than C++ due to JIT optimizations (you don't have to know what those are), so ignore any rumors of them being slow. They are just good languages all around really. My only issues are that Java networking sucks and it's 2d graphical bits are annoying, and a few things are more complicated than they need to be, and it is a pain to reference other languages. But libraries fix all of this (besides the cross referencing). As for C#, it's annoying because it's windows specific without mono, and mono is a pain. And it also has a few things a bit more complicated than they need to be. Don't let what I said discourage you though- they are really good languages overall and are the best place to jump to other languages from due to their similarities to the entire C family of languages, and they are pretty generic so lots of things can be carried over to almost any language.

C++: C++ has annoying syntax (although the parts taken from it in other languages are good), takes longer to write things than with anything else, and the only reason it is used is for the pointers and speed- and C# has pointers too, and all things done with pointers are replaced in other well developed languages. And for speed, this is RARELY an issue, besides for things like game engines, and you have C# and Java and such for that.

C: C is only useful for device management. Sorry. It's obsolete.

The Lisp Languages (Racket, Scheme, Clojure, Common Lisp): Lisp is amazing. You can edit the syntax, do so many things… it's just wow. It is a source of enlightenment. However you should not start with it. Learn other things then come to it or you will not be able to appreciate it or use it properly! Lisp is magical.

Scala: Scala is an interesting function oriented language that runs on the JVM. It I do not really feel like going into at this point, but you should look into functional programming in general before your mind is too solidly into procedural programming. Functional programming is extremely useful if you understand it and are in the right mindset. I was far into a procedural mindset before I used this, so I never truely did adapt to use it correctly. But I see it's usage and why it is important.

There are lots of other languages out there for use! I just brought some ones of intrest.

The overall conclusion:
- Java and C# are good for starting off and general purpose programming
- Python is good for automation, and learning too. Although Java and C# would be easier to expand upon. Really, if you learn python, you've made a good choice, but be sure to learn Java and C# soon afterward
- C and C++ are popular but are really obsolete in current usage
- Lisp is great, but come to it once you are an experienced(ish) programmer
- Scala and other functional languages are useful, but I cant really explain them

I should have covered a couple more but I've spent a good while on this already and am getting a bit bored of writing it

zeusoflightning

I actually copied the above message so I can expand upon it and edit it for later times I see questions or debates about this.