This forum is in archive mode. You will not be able to post new content.

Author Topic: [Guide] Which Language To Start With  (Read 28230 times)

0 Members and 2 Guests are viewing this topic.

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
[Guide] Which Language To Start With
« on: September 07, 2012, 09:35:36 PM »
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.
« Last Edit: October 16, 2012, 05:20:37 PM by Daemon »
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline relax

  • Sir
  • ***
  • Posts: 562
  • Cookies: 114
  • The one and only
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #1 on: September 08, 2012, 12:28:54 AM »
Great guide think this will be useful for people.
an idea would be to also cover the biggest IDE programs for each language.
Just an idea :P

Anyway great share

Offline Hub

  • Peasant
  • *
  • Posts: 57
  • Cookies: 2
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #2 on: September 08, 2012, 07:38:31 AM »
Great guide, very informative. You should considering adding more languages to it. Even if the language is not very effective compared to the rest, you should put some brief descriptions on languages you *shouldn't* start with. That way people new to programming wouldn't be confused when they see a thread about Ruby,Batch etc...
"Can you imagine what I would do if I could do all I can? "

"Opportunities multiply as they are seized."

"Be extremely subtle, even to the point of formlessness. Be extremely mysterious, even to the point of soundlessness. Thereby you can be the director of the opponent's fate."

-Sun Tzu

Offline namespace7

  • Sir
  • ***
  • Posts: 561
  • Cookies: 115
  • My Brother's Keeper
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #3 on: September 08, 2012, 12:08:50 PM »
It is a good quick guide, but I don't think you need to add more languages because that might just confuse beginners. The more choices you give them, the longer it will take them to decide.
After all, the title of this guide is not "A guide to all known programming languages", but rather it is called "Which Language to Start With" meaning that there is no point to overwhelm newcomers with too much information.
"A programmer’s greatest enemy isn’t the tools or the boss or the artists or the design or the legacy code or the third party code or the API or the OS. A programmer’s greatest enemy is getting stuck.
Therefore a crucial step to becoming a better programmer is learning how to avoid getting stuck, to recognize when you’re stuck, and to get unstuck." -Jeff Wofford

Offline Hub

  • Peasant
  • *
  • Posts: 57
  • Cookies: 2
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #4 on: September 08, 2012, 03:47:46 PM »
It is a good quick guide, but I don't think you need to add more languages because that might just confuse beginners. The more choices you give them, the longer it will take them to decide.
After all, the title of this guide is not "A guide to all known programming languages", but rather it is called "Which Language to Start With" meaning that there is no point to overwhelm newcomers with too much information.
Knowledge is power. Knowing which languages are available, yet not recommended is still an important piece of information.
"Can you imagine what I would do if I could do all I can? "

"Opportunities multiply as they are seized."

"Be extremely subtle, even to the point of formlessness. Be extremely mysterious, even to the point of soundlessness. Thereby you can be the director of the opponent's fate."

-Sun Tzu

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #5 on: September 08, 2012, 08:35:24 PM »
Knowledge is power. Knowing which languages are available, yet not recommended is still an important piece of information.
It is a good quick guide, but I don't think you need to add more languages because that might just confuse beginners. The more choices you give them, the longer it will take them to decide.
After all, the title of this guide is not "A guide to all known programming languages", but rather it is called "Which Language to Start With" meaning that there is no point to overwhelm newcomers with too much information.
Both valid points, however I do believe that namespace7 has a point in limiting the languages I mention. Though I will probably write a short blurb stating that there are many other languages that should be avoided as a first due to X, Y, and/or Z. So people know they exist, but telling them they should stay away if their just starting.

@relax, awesome idea. idk why i didnt think of that lol. I'll be putting that in today :)

Thanks for the feedback guys!
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Hub

  • Peasant
  • *
  • Posts: 57
  • Cookies: 2
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #6 on: September 09, 2012, 05:34:49 AM »
Both valid points, however I do believe that namespace7 has a point in limiting the languages I mention. Though I will probably write a short blurb stating that there are many other languages that should be avoided as a first due to X, Y, and/or Z. So people know they exist, but telling them they should stay away if their just starting.

@relax, awesome idea. idk why i didnt think of that lol. I'll be putting that in today :)

Thanks for the feedback guys!
Glad to hear it, look forward to seeing your update.
"Can you imagine what I would do if I could do all I can? "

"Opportunities multiply as they are seized."

"Be extremely subtle, even to the point of formlessness. Be extremely mysterious, even to the point of soundlessness. Thereby you can be the director of the opponent's fate."

-Sun Tzu

Offline pl0tuS

  • Knight
  • **
  • Posts: 320
  • Cookies: 22
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #7 on: September 09, 2012, 07:32:17 AM »
This post should be stickied somewhere.
and +1 Daemon. Very good post.


--Approved future mod :D --Factionwars

Offline relax

  • Sir
  • ***
  • Posts: 562
  • Cookies: 114
  • The one and only
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #8 on: September 09, 2012, 09:36:16 AM »
i would recommend netbeans for java
and Wing for python
dont know if wing is big or there is a better but ill use it because it has autocomletion

Offline d4cXn355 24cX

  • /dev/null
  • *
  • Posts: 12
  • Cookies: 3
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #9 on: September 24, 2012, 01:04:52 PM »
C - recommendation needed please.
Python - Python
As for C compiler I'd recommend Dev C++ it's IDE and compiler Combined.
For Python I highly recommend Pyscriptor it's python IDLE and Interpreter combined , very easy to use and support HTML, CSS, Javascript, PHP, and XML.
« Last Edit: September 25, 2012, 09:11:51 PM by Kulverstukas »
This is it....This is where I belong.. The world of electronics and electrons

Offline HeRo

  • Peasant
  • *
  • Posts: 76
  • Cookies: 1
  • -HeRo
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #10 on: September 24, 2012, 02:25:20 PM »
Great share man. Personally, I learned HTML first. I was an elementary drop out (seriously) and had to taught my self the way of life hahaha. From there I learned CSS, then as I move to designing wordpress templates, I leart PHP. And today, I'm currently learning C and C++.


What I suggest them before choosing their first language is to think what they really want to code, from there do a research on which language can make your plan possible. Mine just happened to web developing. Trust me, don't force yourself to learn something because others suggested it, rather, learn it becase YOU want to.


Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #11 on: September 24, 2012, 03:48:11 PM »
Quote
Trust me, don't force yourself to learn something because others suggested it, rather, learn it becase YOU want to.

I agree, but the problem is that people often do not know what they want. Especially a beginner can't know what he likes unless he tries it out. Because of that it is sometimes good to just start somewhere. Pick a language where you get a lot of support (friends, tutors, teachers, tutorials) and learn what it is like to program. Afterwards you may have an idea what you want and what you like, because you see what you can do with that language and what you can't. But usually you will have to try a few languages in different programming paradigms to find out and that takes a few years.

Edit:
Quote
List of compilers, one per language:

C++ - Codeblocks
Java - Eclipse   

Those are no compilers, but IDEs. Some Java compilers are javac, GCJ and ECJ (which is used by Eclipse). A C++ compiler is GCC.
A usual text editor is also not a compiler.

I can give a you description about Java.
« Last Edit: September 24, 2012, 04:01:16 PM by Deque »

Offline Daemon

  • VIP
  • Baron
  • *
  • Posts: 845
  • Cookies: 153
  • A wise man fears a gentle mans anger
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #12 on: September 24, 2012, 07:25:56 PM »
Wow what a noob mistake if me, ill fix that to read IDE tonight >.<
Would love the java write up too, ty deque :)
This lifestyle is strictly DIY or GTFO - lucid

Because sexploits are for h0edays - noncetonic


Xires burns the souls of HF skids as a power supply

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #13 on: September 25, 2012, 11:01:55 AM »
You got a PM.

I think assembly is important too, but I am sure there are people here that can write a better description for it than me.

Offline Live Wire

  • Knight
  • **
  • Posts: 189
  • Cookies: 4
  • Up on your Net
    • View Profile
Re: [Guide] Which Language To Start With
« Reply #14 on: September 25, 2012, 12:13:30 PM »
What I suggest them before choosing their first language is to think what they really want to code, from there do a research on which language can make your plan possible.

I agree with HeRo. Don't learn a language you don't need just because it's recomended. Personally, I started in batch because I wanted to screw with my friends. Figure out what you want to make, learn how to make it, then find another project. Then you start getting good at everything, not just one thing.
 
*shrug* That's what I do.
 
 
*also, the best ide ever created for python/perl is gedit. End of story.
« Last Edit: September 25, 2012, 12:14:54 PM by Live Wire »
"There is no right or wrong, there is only fun and boring."

 



Want to be here? Contact Ande, Factionwars or Kulverstukas on the forum or at IRC.