Learning my first programming language :-D what should I learn?

Jester00

Senior Member
Sep 22, 2010
548
0
21
first: html is no programming language.
second: never learn vb, its shit.

learn c++, its maybe a bit hard, but its the best language and everybody uses it. learn it with a book, i have some pdfs, but i think you need it in english right?
 

Raognerrrm

New member
Apr 2, 2011
396
0
0
I would say python.
Easy to learn, easy(ish) to make complex things.
You get to see results immediately, and can change small things very easily to see what they do.
Very basic syntax, so a good introduction to programming in general.
Making interfaces can be quite infuriating, but some additional modules will help with that.
It's also completely multi-platform, if that's important to you.
The most annoying thing about python is that it's variables are interchangeable. This makes incredibly accurate typing very important.
That, and a pathetically small recursion depth (less than 1000).

What to keep in mind?
Don't start someone you have no intention of finishing. If you do, then when something difficult comes up, you'll bypass it and learn nothing.
Make sure you're enjoying yourself. If you finally fix a complex algorithm and don't feel a spurt of happiness, then something is wrong.
Comment everything. It's not very pleasant to come back to a project and forget how it all works, and there a no comments to tell you how it did stuff.
 

YouBecame

New member
May 2, 2010
480
0
0
I started with C#, and I can say that it's a decent way to get started. Microsoft has a powerful application that will help you to learn in Visual Studio 2010 Express for C#... it's not exactly called that but thats beside the point. I think the key thing to gain from your first language(s) is a handle firstly on how to make computers make decisions, how to deal with them making the wrong decisions, and then moving on to the notion of object oriented programming. C# can help you do that.

Mind you, so can Java, C++, and plenty of others. I can only really talk about C# as thats the language I learnt with.

Good luck mate :)
 

nlaq

New member
May 16, 2011
20
0
0
I have been invested in programming for the last 7 years, and have been doing it professionally for 4. I've played with many, many languages and platforms, read many books and practiced many design idioms both inside and outside of production. My current job is for developing web applications in C# - and I am often responsible for every piece of code from what constitutes my domain model to what is written to and ran on each webpage. Every day I work in C#, SQL, JavaScript, HTML and CSS (or, a derivative of said languages such as SASS, Haml or CoffeeScript).

To answer your question you have to ask yourself what your goal is. If you are truly interested in the craft of programming, and want to invest your time into the practice virtually every day my recommendations will be different. If instead you wish to use programming as a means to an end (i.e. in scripting applications such as Unity or Maya, or building basic mods) then, again, I would suggest a different route. If you are wanting to become a programmer just to say "I am a programmer" and because you have misconceptions about the sheer amount of work and dedication it takes to be a true developer in this world - then my recommendation would simply be to not try.

The first things you will need have nothing to do with programming. You must be a person who is able to take large ideas and serialize them into concepts that can be instructed of a computer. You need to be able to learn what your client's needs are, and to understand the utility of what you write has. Often times clients do not really need what they ask for - a good developer will be able to extract the true motivations of a person, and have the honesty required to suggest the proper solution. You need to have excellent (far above average, if average is to mean what one would find on their Facebook wall) written communication skills. You will need to be able to learn quickly on your own and with little direction from others. These skills aren't always something we're born with - and often times, programming itself can help you hone them. But don't ever think that these are unnecessary to become a good developer.

Finally what you will need, and what you may develop during your initial learning, is a love for the craft. Many developers (and I exclude those who do not program professionally, as I do not expect them to put the same emphasis on programming as someone who derives a paycheck from it) these days are not developers for the right reasons - and their egos and carelessness manifests itself into poorly conceived code and hardly workable solutions. The quality of most code is completely lacking, yet nobody seems to care much. A building's architecture and elegance is visible to everyone - but a poor piece of code will only directly affect the developers (though it will, invariably, and I stress this, affect the users).

Once you understand this, and understand that this is a rather serious industry that is slowly being destroyed by developers who shouldn't be - where you should start depends on your goals.

If you want to immerse yourself in development, I'd suggest to start with C++. C++ is a pretty decent language for modern development, and is used very commonly for game engines. C, it's predecessor, is also widely used for low level and embedded development. Microsoft is going to enable C++ developers more than ever with Windows 8 - so it's not a dead language at all. The reasons why I suggest this language have more to do with the way you write it and interact with the computer using it. It isn't a trivial language to learn, but it emphasizes some of the most important aspects of communicating with a machine. You will spend a lot of time in the console - and this is expected. Even though you can set up a GUI in C# in minutes, would you really understand and appreciate the process if you didn't have the proper background? C++ can give you that background, and provide a very marketable skill in the process.

From C++ you can move into pretty much anywhere. If you like embedded development, you practically already know C. If you want to move to Windows application development, C++ itself is good, although currently C# is the better language for that (again, Windows 8 may change this). C#, ontop of the ASP.net platform and ASP.net MVC framework, is a good choice for web application development. You'd pretty much be free to choose your path at that point, and you'd have the knowledge and experience to make the right choice.

If instead you wish to be a scripter and simply have the capability to interact with the software written by others - C# isn't a bad choice. C# is a very decent and modern language - though I doubt that as a scripter you would be exploring the many paradigms it exposes though it's versatile syntax. However, it will give you a good background for the basic concepts of programming, and would open yourself up to Unity development. Moving from C# to a "true" scripting language is trivial.

I would venomously advise against VB/VB.net. It is a terrible language that encourages ignorance and teaches bad practices. It is targeted quite specifically for non-programmers, and as such, it suffers. I would also advice against Java. Java is a decent language, but it's quite simple and bland. It's clearly designed for average developers who aren't interested in the advanced and powerful paradigms exposed by a language like C#. That's not to say that many great developers don't use it - they certainly do. But I simply wouldn't recommend it as a language to learn first.

Again - if you do not have the intention of taking this seriously, then simply don't bother. You started this thread, which is an indication that you want to explore it - and I encourage that. My last comment is simply trying to emphasize the time requirements it takes to be a good developer. Anyone can learn how to write garbage code in a matter of days. But it takes true dedication and effort to get to the point where another developer would take you seriously.
 

Buzz Killington_v1legacy

Likes Good Stories About Bridges
Aug 8, 2009
771
0
0
Hauntghost20 said:
Does VB cost money? Because i am interseted myself.
Microsoft offers free downloads of Visual Basic 2010 Express here [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express]. It doesn't have some of the features you'd get in a full retail version, but honestly, if you're just learning the language, you won't need them for a good long while.
 

chuketek

New member
Sep 28, 2009
70
0
0
intheweeds said:
dillinger88 said:
Qitz said:
Lots of great advice. Just to add my own advice, bookmark the website http://w3schools.com/ it comes in handy A LOT when you need to remember what the hell that function was, or what it did. Specially when you get into the fun shit like PHP and MySQL. Nothing like having PHP tell you the errors 6 lines below the actually one because that Semi-colon DIDN'T WANT TO BE ON THAT SPOT!
Semi-colons are the bane of new programmers until you learn that "Compiler found OVER9000 errors" basically means, "you missed a colon somewhere, I'm not telling you where though. trolololol!"
This is hilarious! I imagined trying to compile and having a little troll face pop up in the window over top of a wall of red text.
Literally laughed out loud
 

Aardvark Soup

New member
Jul 22, 2008
1,058
0
0
CyberSkull said:
For programming, start with C. Despite what Microsoft would have your believe, C is the foundation that pretty much every OS and device is built on. With C you will learn not only the basics of programming but also a good foundation in how computers work.
I highly disagree that C is a good place to start programming. C is an aged (not object-oriented, no generic data structures, no exceptions, no build-in support for concurrent programming, etc...), very error-prone and unforgiving language (forget to check errno after calling a certain function => undefined behavior, access an array element that is out of range => undefined behavoir, accidentaly use memory you already dealocated => undefined behavior, use an otherwise invalid pointer => undefined behavior).

Besides, these days most things are with high-level languages, and if you need the performance you could just as well use C++. And if you do use C small errors can very easily lead to security vulnaribilities.
 

CyberSkull

Regular Member
Sep 28, 2007
17
0
11
Aardvark Soup said:
CyberSkull said:
For programming, start with C. Despite what Microsoft would have your believe, C is the foundation that pretty much every OS and device is built on. With C you will learn not only the basics of programming but also a good foundation in how computers work.
I highly disagree that C is a good place to start programming. C is an aged (not object-oriented, no generic data structures, no exceptions, no build-in support for concurrent programming, etc...), very error-prone and unforgiving language (forget to check errno after calling a certain function => undefined behavior, access an array element that is out of range => undefined behavoir, accidentaly use memory you already dealocated => undefined behavior, use an otherwise invalid pointer => undefined behavior).

Besides, these days most things are with high-level languages, and if you need the performance you could just as well use C++. And if you do use C small errors can very easily lead to security vulnaribilities.
Another point that I forgot to make is don't learn programming on your own! Take a class, it will be easier on you and you won't have to unlearn any bad habits that you will get by being self taught. When you are well along in a language or two and have a good grasp of good programming practices, then you can go off on your own and learn new languages. But please don't start on your own. Too many people get really messed up that way.