Hey, I wan't to learn programming, or coding, but, I need a language to start with, which is not too hard, any suggestions?
Get a language that lets you Learn Programming from the highest vantage point possible. I have a particular preference for [url=http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-4.html#node_chap_1]Scheme[/url] - it's a minimal but incredibly extensible language and it's been widely used as a tool for teaching and for study into teaching. There's a dearth of libraries but actually solving problems and turning that into good code that is reusable and extensible is far more important at your stage - if you find that process fun, you're gold.
(full disclosure: I teach an afterschool activity for kids in a program called [url=http://www.bootstrapworld.org/]Bootstrap[/url] that uses it.)
C#
[QUOTE=HubmaN;26881409]Get a language that lets you Learn Programming from the highest vantage point possible. I have a particular preference for [url=http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-4.html#node_chap_1]Scheme[/url] - it's a minimal but incredibly extensible language and it's been widely used as a tool for teaching and for study into teaching. There's a dearth of libraries but actually solving problems and turning that into good code that is reusable and extensible is far more important at your stage - if you find that process fun, you're gold.
(full disclosure: I teach an afterschool activity for kids in a program called [url=http://www.bootstrapworld.org/]Bootstrap[/url] that uses it.)[/QUOTE]
I would actually prefer something more "popular".
[QUOTE=Staneh;26881580]I would actually prefer something more "popular".[/QUOTE]
Java, then. It's designed rather cleanly, has tons of libraries, has a slightly more tangible class loading system, and the same virtual machine hosts many other languages that interoperate - it won't trip you up badly, although you could have a mid-life crisis early and go for Haskell.
C# has some features that seem flung on but there's an intersection that represents features that teach valuable lessons like lambdas that Java works too slowly to add quickly, if you want. (VSC# is a pretty good environment to work in too.)
C#. Easy to write, easy to read, easy to set up.
C, just C. No quirks, no overhead, you get to see what's really happening. That's why I think it's good for learning. After that you probably should pick a higher-level language. Lua or Python work equally well. Can't vouch for Java as I never tried it.
Visual Basic
[editline]22nd December 2010[/editline]
Actually, Visual Basic for Applications (if it still exists)
[QUOTE=Staneh;26881580]I would actually prefer something more "popular".[/QUOTE]
Would you consider the Unix shell popular? That and something like PHP will teach you enough to go to something like C++.
[QUOTE=Nikita;26881765]C, just C. No quirks, no overhead, you get to see what's really happening. That's why I think it's good for learning. After that you probably should pick a higher-level language. Lua or Python work equally well. Can't vouch for Java as I never tried it.[/QUOTE]
I prefer the opposite approach - start with the language that supports the most highest level features in the fewest actual advertised features. Teaching people how to build abstractions and how to think about them (things like objects as closures - and why would I use/not use them?) also teaches them problem solving in the most general terms possible. It won't hinder you if you go down but not the opposite.
Go read up SICP and learn scheme. It'll give you a good overview of programming languages. It doesn't matter how popular your first language is, it's not like you're gonna be using your first learnt language forever.
Either that or java, yeah.
[QUOTE=PacificV2;26882100]Go read up SICP and learn scheme. It'll give you a good overview of programming languages. It doesn't matter how popular your first language is, it's not like you're gonna be using your first learnt language forever.
Either that or java, yeah.[/QUOTE]
SICP is a programming funhouse... oh god. I must finish my compiler.
Writing the metacircular evaluator was the most important thing I ever did.
Maybe i'll go for C#, just so you guys know, I do know pretty much Gmod Lua.
x86 ASM
[QUOTE=Staneh;26885306]Maybe i'll go for C#, just so you guys know, I do know pretty much Gmod Lua.[/QUOTE]
You do realise you can program in Lua?
Gmod Lua is the same as Lua but with a couple of mods
Well, i'm not really an expert with it, I only created some easy entities. I might be going into normal Lua though.
[url=http://learnpythonthehardway.org/index]Learn Python The Hard Way[/url]
Don't let yourself get convinced by the C# fanboys :V.
[QUOTE=q3k;26886555][url=http://learnpythonthehardway.org/index]Learn Python The Hard Way[/url]
Don't let yourself get convinced by the C# fanboys :V.[/QUOTE]
I'm not a fanboy - I don't even use C# for anything any more. It's just a really, really good language. I think python is a horrible first language and will teach you things which don't apply to anything else as standard practice (the same reason visual basic is a terrible first language).
[QUOTE=Catdaemon;26886897]I think python is a horrible first language and will teach you things which don't apply to anything else as standard practice[/QUOTE]
Like what? The only thing I can think of is a lack of distinction between private and public object members (and the whole ._private_member convention).
I like Python as a first (and not only) language because it offers a huge ecosystem of libraries, and is really, really friendly. No cold-blooded enterprise-oriented paradigms, you can code how you want and not everything has to be inside a class, so for a beginner there is no "magic" code. One can start procedurally, the gradually learn basics and finally actually step into OOP.
Not to mention that you can start coding in Python easily on any platform, and all you need it a text editor and Python interpreter (which of the Big Three only Windows doesn't have installed by default).
[QUOTE=q3k;26886555][url=http://learnpythonthehardway.org/index]Learn Python The Hard Way[/url]
Don't let yourself get convinced by the C# fanboys :V.[/QUOTE]
This isn't the first time you spoken against C# and yet, every time you state one reason and get a decent argument against it, you get silent until the next person comes in so you can start again.
Say why you think it's not good or shut up...
[QUOTE=Darwin226;26887197]Say why you think it's not good or shut up...[/QUOTE]
Patents. The only reason.
Python is a nice one to learn, and after you have it down it's easy to pick up a few of the other ones, however you will develop a preference for python which could be good or bad.
[QUOTE=q3k;26887217]Patents. The only reason.[/QUOTE]
Mono covers the .NET framework almost completely so I don't think it's that patented (if I am wrong, I'd like to know more) and with the part that is covered you can do almost anything.
And even if that wasn't so, that's a horrible reason not to learn it as a first language.
[QUOTE=Darwin226;26887418]Mono covers the .NET framework almost completely so I don't think it's that patented (if I am wrong, I'd like to know more) and this the part that is covered you can do almost anything.[/QUOTE]
It's not the interpreter that is patented. It's the language itself. Even if you write your own interpreter for it, you can get sued by MS for doing so. Just because it hasn't happened yet it doesn't mean it won't happen. Instead of not patenting the language, MS issued a non legally-binding "promise" in which they show how good-natured they are by "promising" to not sue you. To be perfectly honest, I don't believe them, same goes for every other corporation out there - money's more important than ideology, and if Mono (or any other project like it) becomes uncomfortable for them, they probably won't hesitate to terminate it.
[QUOTE=Darwin226;26887418]And even if that wasn't so, that's a horrible reason not to learn it as a first language.[/QUOTE]
It's a valid reason for someone who cares about how wrong the idea of software patents is. And every developer should know how ridiculous they are.
q3k don't start this shit again
[QUOTE=deloc;26887889]q3k don't start this shit again[/QUOTE]
I was asked to present my arguments, and I did. What is so wrong about that?
[QUOTE=q3k;26887569]It's not the interpreter that is patented. It's the language itself. Even if you write your own interpreter for it, you can get sued by MS for doing so. Just because it hasn't happened yet it doesn't mean it won't happen. Instead of not patenting the language, MS issued a non legally-binding "promise" in which they show how good-natured they are by "promising" to not sue you. To be perfectly honest, I don't believe them, same goes for every other corporation out there - money's more important than ideology, and if Mono (or any other project like it) becomes uncomfortable for them, they probably won't hesitate to terminate it.
It's a valid reason for someone who cares about how wrong the idea of software patents is. And every developer should know how ridiculous they are.[/QUOTE]
If you write an interpreter, which is fully compatible, then it falls under the promise. If it is not fully compliant to the specifications however, it is not covered.
And the promise is legally binding.
See [url]http://www.microsoft.com/interop/cp/default.mspx[/url]
Also related: [url]http://www.mono-project.com/Licensing#Patents[/url]
[QUOTE=q3k;26887974]I was asked to present my arguments, and I did. What is so wrong about that?[/QUOTE]
the op just wants a language to start with and you're shitting on it (once again) with your terrible and biased arguments.
[QUOTE=deloc;26888276]the op just wants a language to start with and you're shitting on it (once again) with your terrible and biased arguments.[/QUOTE]
Right, next time before I post I will ask for your permission.
Starting out with PHP was a great favor for myself. Getting to know the basics of if, for, while, classes etc. is pretty easy in PHP. It has helped me a lot learning both C++ and C.
Sorry, you need to Log In to post a reply to this thread.