Try reading [url]http://www.lua.org/pil[/url] and try scripting for GMod or something until you get the hang of programming
[QUOTE=ROBO_DONUT;31323062]I have a feeling that any such sticky would be skewed towards whatever language/platform the author is currently infatuated with.
There really is no such thing as a "newbie" language, and different people have different learning habits, needs, and existing knowledge to draw from.[/QUOTE]
That's why we standardise it! All these threads are skewed towards whatever language people like anyway. Any thread like this should state that people can start from any language that they fancy, cause that's pretty much true.
Then you just have an objective description of each language, and a couple of links to the best online/book/video tutorials for each language. Perhaps pushing people towards some of the more managed languages like C#, Java and Python.
[QUOTE=yumi_cheese;31438697]Perhaps pushing people towards some of the more managed languages like C#, Java and Python.[/QUOTE]
This is pretty much exactly what I mean. I still think C is a really great place to get started. These newer languages aren't by any means simple or small. You pick up Java, C#, or even Python and you've got a whole mess of constructs, algorithms, and paradigms at your disposal with no real direction whatsoever. C, on the other hand is strictly procedural and has only a few very simple datatypes. It doesn't have eighteen different types of casts like C++. Yeah, you have to do a little extra work yourself, but you've got only a few simple, pretty much self-explanatory, tools. I just don't recommend C very frequently because I've realized that I'm probably really, really weird.
[QUOTE=ROBO_DONUT;31439494]This is pretty much exactly what I mean. I still think C is a really great place to get started. These newer languages aren't by any means simple or small. You pick up Java, C#, or even Python and you've got a whole mess of constructs, algorithms, and paradigms at your disposal with no real direction whatsoever. C, on the other hand is strictly procedural and has only a few very simple datatypes. It doesn't have eighteen different types of casts like C++. Yeah, you have to do a little extra work yourself, but you've got only a few simple, pretty much self-explanatory, tools. I just don't recommend C very frequently because I've realized that I'm probably really, really weird.[/QUOTE]
I'd prefer to learn from something simple and then move up.
In the real world, I'd much rather prefer doing the several years in school that people go to, instead of being handed a book containing a very small reference to the grammar rules, and a extremely trimmed down dictionary.
[QUOTE=Kirth;31433485]
Programming is about a whole lot more than just using a programming language.[/QUOTE]
I agree completely, learn to program, don't learn a language.
The problem with C is that there are so many traps, that a beginner could easily become frustrated because they don't know why something won't compile, or worse, seg faults. I wouldn't ever want to explain pointers and references to someone who doesn't even know about loops, let alone debug tools.
On top of that, teaching programming in most OO languages is exactly the same as a procedural language, until you get to the OO part itself.
You probably feel that way because you didn't start with it.
It is really, really straightforward. A pointer points to a byte in memory. Adding to a pointer moves to the next item in memory. The asterisk retrieves the item there. Types only tell the processor how many bytes to retrieve and how to use them. Array notation is just shorthand for these simple operations.
It's [i]literally[/i] elementary school stuff here. Basic arithmetic and the computer equivalent of street addresses. It's only difficult because people perpetuate the idea that it's difficult; sort of like mathematics. A lot of math is really simple, but because students are conditioned to be intimidated of math they sort of set up this little brick wall for themselves. Is it [i]actually[/i] difficult? No. Can you make it difficult for yourself? Yes.
Attitude is everything.
My personal experience was giving up on programming after becoming frustrated when I couldn't get things to work, and couldn't fix it, didn't have anyone to ask for help either, afterwards I HATED programming, and it wasn't until late in my uni degree, did things like OO and pointers click and I started loving it again. In the mean time I wasted 4 years not programming things, and doing things I didn't enjoy.
yes pointers are fairly simple, but you have to know what pointers are, pointer arithmetic, dereferencing, buffer overflows, null termination, passing by reference, and seg faults.
All things that can easily be skipped allowing the person who is BRAND NEW to programming to actually get things done quicker. I'm not saying that someone shouldn't ever learn programming by starting with C, just that I think it's easier, and you get quicker results (providing motivation and encouragement) if you learn without all the extra things you need to be aware of/know.
Which is why I recommend Python to [i]most people[/i]. Because [i]most people[/i] are like that... but not [i]all people[/i]. So I see no reason to discourage [i]all people[/i] from starting with C when there is at least a small minority who would be better served by learning things from the ground up.
I did state that the thread should include info/resources for whatever programming language they want to do, and just encourage them towards some of the managed (and OO enforcing) languages :P.
[QUOTE=yumi_cheese;31441781]I did state that the thread should include info/resources for whatever programming language they want to do, and just encourage them towards some of the managed (and OO enforcing) languages :P.[/QUOTE]
I like C++ because it doesn't force you to use OOP. Makes it easier to learn basics like variables, conditional statements, syntax, etc...
As you advance, you quickly see the need for OOP, and then learn to follow it religiously. That's how it was with me, at least.
Some will argue that you should start straight away with the principles of OOP, but I know that a completely new learner won't even begin to understand what that implies until he learns the basics.
VB.Net ?
:v:
Actionscript 2 or 3.
I was doing AS2 when I was 11.
This seems like the right thread to get a quick opinion in;
I'm currently doing a software course, learning C# in the Visual Studio environment as well as HTML (laugh it up, but I've never used HTML before now), and soon Java and PHP.
What other programming languages would be good to transition to/worth picking up once I've completed the course?
Learn how a computer's file system works, how memory works, learn how sockets and networking programming works. Those things are important. Not how to declare a variable in one of the 54 languages you 'know'.
Yeah, get the most basic concepts down, they work for pretty much any language and will be required in most of the languages. It's not the implementation that matters when dealing with these things, just the concept of how things work.
Once you understand a concept, you can (most likely) implement it anywhere.
I can see the benefits of what you two have suggested, I think I'll definitely follow up on that.
Right now I'm in the early stages of constructing a "computer" in minecraft, so I'll definitely be reading up on the basics of hardware-level computer functions.
As for networking protocols and such, I've never been sure of where to even start looking...
[QUOTE=Error_404;31505046]I've never been sure of where to even start looking...[/QUOTE]
I think [url=http://stackoverflow.com/questions/210738/networking-in-net-c]this[/url] should help you.
[QUOTE=Kirth;31505298]I think [url=http://stackoverflow.com/questions/210738/networking-in-net-c]this[/url] should help you.[/QUOTE]
Thanks, I'll have a read over that tomorrow.
While we're at the topic of different programming languages, does Java have manual memory management? I know Java is a managed language, does this mean I don't need to manage memory?
[QUOTE=Within;31505491]While we're at the topic of different programming languages, does Java have manual memory management? I know Java is a managed language, does this mean I don't need to manage memory?[/QUOTE]
When you write programs in Java you generally don't need to worry about managing the memory yourself. Though that doesn't mean Java doesn't have memory management pitfalls comparable to unmanaged languages (more on Java mem leaks [url=http://www.ibm.com/developerworks/rational/library/05/0816_GuptaPalanki/]here[/url])
Whereas C# offers manual control of the Garbage Collector & unsafe/unmanaged code, things are a bit different in Java. If you want to do the same with Java, I believe you'll be looking at 3rd party implementations such as [url=http://code.google.com/p/jmalloc/]jmalloc[/url]
Thank you for enlightening me.
Sorry, you need to Log In to post a reply to this thread.