So I've noticed quite a few topics and posts of people asking "which programming language should i learn??" and find myself surprised that EZ doesn't already have a guide for this. So, here goes! What language a newbie should learn first.
The thing about languages is
"Don't waste your time trying to find the ultimate best beginner programming language to learn, because you wont find it and will simply waste your time." (quoted from namespace7) That is the simple truth, no one language is so uber 1337 that it makes all other languages pale in comparison, if there was such a language then we wouldn't have a need for such a wide variety of languages. The other truth is that each language has thing's that it does better than others, or an OS that it works on better on, or it feels more friendly to different people. That being said, there are some general conventions when learning a new language. So first question to ask yourself would be, why do you want to know a programming language? Do you want a solid foundation so that you can be a good programmer or do you just want to be able to write some scripts that automate tasks for you? How deep into programming do you want to get? If your answer is all the way, I want to know programming like the back of my hand and be able to write anything I want, then these are the starting languages for you:-C++ : c++ was my starting language, and I couldn't be happier as it has provided a solid foundation for everything i've done since then. It leads well into most other languages, it is extremely powerful, and it is OOP (object oriented programming) which is also important to know. C++ also provides a nice foundation for learning how to think like a programmer. I've even written several python scripts without actually "learning" the language, i wrote the pseudocode in c++ then googled python syntax for it and had working code in no time at all. I personally would recommend this, then again I am biased
-Java: Java is another OOP language, and most schools teach either C++ or Java as the beginner language. JAVA HAS NOTHING TO DO WITH JAVASCRIPT. Just had to make that clear, they are two separate languages. Java is a good choice for you if you want to program platform independend applications. You can create one executable and it will work for every OS and architecture as long as a virtual machine for Java is installed (which is the case for most computers). It is often used for web development (JavaEE), mobile developent (i.e. for Android), but also desktop applications and games (Minecraft). It is one of the most popular languages, so you will find lots of libraries, tutorials, examples and support on the web. Java is not your language of choice, if you want to use a lot OS specific functionality, need tight access to hardware or have very limited resources on your device.It is one of the most used languages for teaching object oriented programming. Backward compatibility is always provided, but because of that Java shows its age and lacks some features that more modern languages offer. -C : C is debatable as a first language, I have heard some people saying it's a great way to start and others saying that it's smarter to start in another language first. The thing about C is that if you have no programming experience it can be very overwhelming, it isn't as easy to use as C++ and is NOT OOP which is an important thing to learn. I would recommend starting with c++ and then learning C once you have the foundation built, C++ makes it easy to transition into C. Now if your not that interested in learning programming in the most complete way possible, then you can safely avoid the above languages and start with some higher level stuff.-Python : Python is an amazing language, and one I would highly recommend learning. The good; it is easy to learn, it's readable, it's very powerful, it's possible to produce working code almost as fast as you can type, and it's versatile. The bad: it uses whitespace's and indentation instead of {} like most other languages, this can be very confusing at first but soon enough you'll find yourself not even noticing it. As for how powerful a scripting language like python is? People develop full on 3d games using python, that's pretty damn powerful.-Perl: Another very popular scripting language, Perl is also easy to learn and makes for some awesome quick little scripts that automate tasks for the programmer. I have no experience with Perl personally, and would love it if someone wrote up a quick little description for me to put here. I have heard that a downside to Perl is that the larger the program gets the harder it is to get it working, and one source says if his program is over 100 lines or so he then proceeds to write it in python.-Delphi: It's not used a lot these days because it is an old language, but it's an easy one. Delphi is also an OOP language, and its father is Pascal - same language, but procedural. Easy syntax, easy to learn but takes time to master it. In the end, I wouldn't recommend learning it hoping to change the world with it, but rather to have fun and as your first language it would be suitable.
All of the previous codes are able to interact with websites, however if your main focus is web programming then you might want to take a look at the following as well or instead of the previous languages:-HTML: This is the all important one to know, when it get's down to it all webpages have some sort of HTML in them and it's important to have a basic understanding of how it works. This study should also include CSS (cascading style sheets) as most websites use this these days. TBH, HTML isn't really a full on programming langauge. If anything it would be a scripting language, but those scripting languages listed above are WAY more powerful than HTML so it's kind of insulting to them to call this a scripting language. Whatever you call it though, HTML is important if you want to build websites.-PHP: PHP is the language that really makes websites work, it is vital to know this if your building websites as it would control all of your database management, and sending info to and from your server (unless your using wordpress, not as vital then.) I don't have near as much experience with it as I would like, so I can't offer a detailed description. I can say though, that PHP is incredibly powerful and a MUST KNOW for web programmers. Along with this is MySQL, which holds your actual database and performs the queries there or something like that. Again, I know very little about these two and would appreciate it if someone else could do a short write up.Miscellanous other languages:-Javascript: This is a web based language, but it's so light that I didn't feel as though it belongs more in the miscellaneous category. JS is what makes all the little popups when you visit a page, it generates your cookies, and is useful in numerous little ways. -VisualBasic Script and Batch: Or VBscript for short, it's a very lightweight scripting language for windows machines that is good for automating startup tasks or performing maintenance. This is basically the DOS version of BASH or maybe Batch is the DOS version of BASH. Either way, vbscript and batch go hand in hand in tweaking your windows machine.-Bash: Bash is what is used to automate and tweak most *nix distros, but can be downloaded and used for any of them. I have personally just started learning it, and I find it much more powerful than VBscript, though i also find it a bit harder to understand due to each command having switches that don't always make sense to your brain at first. But once you get to know it, you'll find yourself using it more and more and loving it more and more as well.These are but a few of the more popular languages out there, and ultimately the decision is up to you. However I am a firm believer in picking the language to fit your program, for example I wouldn't write a site crawler in c++ because python is much more suited to the task IMO. And by picking the language to fit the program, i ultimately have much less hassle when trying to develop stuff. As far as first languages go, just ask yourself why you want to learn it and what you will use it for then consult the list above. If your looking to do GUI based programming on windows only, you should learn visual studio. Visual C#, visual c++, and visual basic are all viable for making windows programs. WORD OF CAUTION: if you wish to become a good programmer you should avoid learning these visual languages as your first, they are designed to make programming easy, not to give you a good foundation. If you only need to write one program with a GUI and will never program again, then go for it and good luck. However no matter what you think, odds are you will program again, and by learning an OOP language or even one of the scripting languages from above, you will be a MUCH better programmer.As for VB.net.... I personally think it's one of the worst languages out there. It's ugly, it's messy, and there are really much better ways to program. However that's my opinion, and if you need something simple with a GUI and don't have time to really LEARN programming, then knock yourself out as VB.net would be best for you.Hopefully this guide will help newcomers to programming languages make a decision that suits their needs, and reduce the amount of "what should i learn" posts on the forum. Also, for any language above or any language you programmers feel should be on the list, please just write a short description along the lines of what I tried to do above and PM it to me and I would be more than happy to add it above. Please do not send me your little nitpicking about a particular program though, and keep in mind each person's mind works a different way so a language that may be easy to you could be more difficult in general for others to use and vice versa. Thanks Evilzoner's! See you around
List of compilers, one per language:
C++ - GCC compiler, which I like to use with
Codeblocks IDE. You can download the whole thing as a package with mingw.
Java -
Eclipse C -
Dev C++Python -
Python id suggest getting 2.7 instead of 3.x as it has more support from the community atm. but in the future 3.x will be the more popular one
Perl - recommendation needed please
Delphi -
Lazarus Html - Any text editor, my favorite is
Notepad ++ though a lot of people like MadEdit as well
PHP-
PhpCompiler Javascript/vbscript/bash are all written in a text editor then saved with the proper extension. Javascript is a .js , vbscript is .vs and bash is .sh
I took guesses on the PHP and Java compiler's, if anyone feels differently please PM me and I'll get them changed.