EvilZone

Hacking and Security => High Quality Tutorials => : Daemon September 07, 2012, 09:35:36 PM

: [Guide] Which Language To Start With
: Daemon 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. (http://www.codeblocks.org/) You can download the whole thing as a package with mingw.
Java - Eclipse (http://www.eclipse.org/)     
C -  Dev C++ (http://www.bloodshed.net)
Python - Python (http://www.python.org/)  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 (http://www.lazarus.freepascal.org/)
Html - Any text editor, my favorite is Notepad ++ (http://notepad-plus-plus.org/) though a lot of people like MadEdit as well
PHP- PhpCompiler (http://www.phpcompiler.org/)
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.
: Re: [Guide] Which Language To Start With
: relax 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
: Re: [Guide] Which Language To Start With
: Hub 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...
: Re: [Guide] Which Language To Start With
: namespace7 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.
: Re: [Guide] Which Language To Start With
: Hub 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.
: Re: [Guide] Which Language To Start With
: Daemon 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!
: Re: [Guide] Which Language To Start With
: Hub 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.
: Re: [Guide] Which Language To Start With
: pl0tuS September 09, 2012, 07:32:17 AM
This post should be stickied somewhere.
and +1 Daemon. Very good post.
: Re: [Guide] Which Language To Start With
: relax 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
: Re: [Guide] Which Language To Start With
: d4cXn355 24cX September 24, 2012, 01:04:52 PM
C - recommendation needed please.
Python - Python (http://www.python.org/)
As for C compiler I'd recommend Dev C++ (http://www.bloodshed.net) it's IDE and compiler Combined.
For Python I highly recommend Pyscriptor (http://evilzone.org/pyscripter.googlecode.com) it's python IDLE and Interpreter combined , very easy to use and support HTML, CSS, Javascript, PHP, and XML.
: Re: [Guide] Which Language To Start With
: HeRo 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.

: Re: [Guide] Which Language To Start With
: Deque September 24, 2012, 03:48:11 PM
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:
List of compilers, one per language:

C++ - Codeblocks (http://www.codeblocks.org/)
Java - Eclipse (http://www.eclipse.org/)   

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.
: Re: [Guide] Which Language To Start With
: Daemon 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 :)
: Re: [Guide] Which Language To Start With
: Deque 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.
: Re: [Guide] Which Language To Start With
: Live Wire 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.
: Re: [Guide] Which Language To Start With
: Daemon September 25, 2012, 07:04:43 PM
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.

Its important but not exactly a starter language lol

@livewire & HeRo
Idk if you guys noticed or not but I did specify picking a language to suit you and your needs. This post isn't trying tto force anyone to learn any one language. Its goal is to provide a selection of good starter languages with a brief description of each and a why/why not to learn it. The idea being that someone new to programming can read this thread and have an idea of which language suits their needs. I made sure to specify that no one language trumps another because you are both right, it is in the end what suits the programmer-to-be and his desires that depicts which language they start with. Thank you for your input though guys, always nice to see I'm not the only one who thinks like that :)
: Re: [Guide] Which Language To Start With
: Live Wire September 25, 2012, 08:36:56 PM
I vote that before people actually start programming, the become at flowcharting.
: Re: [Guide] Which Language To Start With
: Kulverstukas September 25, 2012, 09:22:50 PM
Very nice writeup indeed, as usual ;). +1 to Daemon.
Now I'd like to add about 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. TBH here in schools they teach Pascal.
It was my first language that I started with and I kinda still use it, because it's so easy to use... I know of a case some time ago when a keylogger on ATM machines was discovered, it was written in Delphi.
About Delphi IDE's and compilers - there are many IDE's made for it, but the ones with most attention are Lazarus (http://www.lazarus.freepascal.org/), which comes with a FreePascal compiler and both are free and open source, and Borland Delphi (http://en.wikipedia.org/wiki/Embarcadero_Delphi) is a commercial software that has its own compiler.
I have used Lazarus and all kinds of Borland/Embarcadero Delphi IDE's. Lazarus is not as perfect as commercial soft, but it's something and it's free. I personally like Delphi7 more out of all. Delphi 2010 is also nice.

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.
: Re: [Guide] Which Language To Start With
: segsyboi October 15, 2012, 12:47:57 PM
wow....... this is great.... really enjoyed it..... it's good for beginners thanks.........
: Re: [Guide] Which Language To Start With
: Deque October 15, 2012, 02:19:12 PM
When do you add the desciptions other people wrote for your guide?
: Re: [Guide] Which Language To Start With
: Daemon October 15, 2012, 07:57:50 PM
When do you add the desciptions other people wrote for your guide?

Oh snap I totally spaces it!!! Thank you for reminding me deque, I made a reminder on my phone and will do it tobight when I get home and onto a computer. So sorry about that guys!!
: Re: [Guide] Which Language To Start With
: Deque October 16, 2012, 09:34:03 AM
Nothing to worry about. I have dementia too, sometimes.
: Re: [Guide] Which Language To Start With
: Daemon October 16, 2012, 05:21:28 PM
Updated, and I'll try to do future updates as soon as I recieve them instead of a few weeks later. Sorry! >.<
: Re: [Guide] Which Language To Start With
: Dark Nebulae October 30, 2012, 10:15:23 AM
I am learning RUBY. Tell me how much it will help me in software exploitation,website hacking, software Development, website development ............
: Re: [Guide] Which Language To Start With
: Daemon October 30, 2012, 05:59:29 PM
I am learning RUBY. Tell me how much it will help me in software exploitation,website hacking, software Development, website development ............

Please tell me your joking....
My issues with that post:

1. You demand, you don't ask
2. You want ME to tell YOU what to do with it. Youe the one learning it, I'm sure you could think.of a few things if you used a few brain cells.
3.why are you even learning a language if you don't know HOW to use it? Like...I would at least know a general idea of what platform/area/etc. that a language can be used for before trying to learn it. Id suggest some more time with GOOGLE my friend...
: Re: [Guide] Which Language To Start With
: silenthunder October 31, 2012, 04:38:53 PM
Great guide. Considering I myself don't know any languages, this gives me an idea of where to start... Delphi, here I come :3
: Re: [Guide] Which Language To Start With
: Dark Nebulae November 02, 2012, 01:55:52 PM
Please tell me your joking....
My issues with that post:

1. You demand, you don't ask
2. You want ME to tell YOU what to do with it. Youe the one learning it, I'm sure you could think.of a few things if you used a few brain cells.
3.why are you even learning a language if you don't know HOW to use it? Like...I would at least know a general idea of what platform/area/etc. that a language can be used for before trying to learn it. Id suggest some more time with GOOGLE my friend...
Thanks for your suggestion,but I asked some different thing.
As in this (http://http://evilzone.org/tutorials/getting-into-the-hacker-mindset/) post, various languages and their uses in software exploitation or website exploitation are given, but I can't find Ruby.That's why I was asking.
Sorry for that post, English is not my native language.I was just asking,if it was like demanding then I am sorry.
: Re: [Guide] Which Language To Start With
: Daemon November 02, 2012, 07:13:20 PM
Thanks for your suggestion,but I asked some different thing.
As in this (http://http://evilzone.org/tutorials/getting-into-the-hacker-mindset/) post, various languages and their uses in software exploitation or website exploitation are given, but I can't find Ruby.That's why I was asking.
Sorry for that post, English is not my native language.I was just asking,if it was like demanding then I am sorry.

Ruby is a scripting language man, so it can be used like other scripting languages are used. I'm not going to say anymore cause this is something you really need to google yourself, and don't learn a language because you want to learn how to "hack" in it. You've got to learn to build before you can destroy my friend
: Re: [Guide] Which Language To Start With
: Dark Nebulae November 09, 2012, 03:27:06 PM
I want to ask one thing that why there isn't an entry for Ruby language to start with? I know it totally depends on one that with which language he should start with.
: Re: [Guide] Which Language To Start With
: Daemon November 09, 2012, 08:28:01 PM
I want to ask one thing that why there isn't an entry for Ruby language to start with? I know it totally depends on one that with which language he should start with.

Because this is supposed to be a simple guide to help folks pick a language to start with, and we already have three scripting languages in there. I didn't feel a need for Ruby as it's not as popular as Perl or Python, and most of the Ruby implementations I see are Ruby with Rails which means you not only have to learn Ruby but then also learn Rails which kinda defeats the purpose of a "beginning" language.

By the sound of it, you already know you want to learn Ruby in any case so there is still no point in adding it here. This is just designed to help provide a bit of direction for those who don't know what language they want to learn and prevent people from making "im new, I want to hack. what language should I learn" sort of posts.
Hope that clears it up
: Re: [Guide] Which Language To Start With
: somegrass November 13, 2012, 07:45:49 PM
Word of advice, don't start with python!! Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell. I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn. Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!
: Re: [Guide] Which Language To Start With
: bluechill November 13, 2012, 08:26:37 PM
Word of advice, don't start with python!! Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell. I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn. Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!

1) I learned Java first and I hate it.
2) You should start with C first.  You don't start with Calculus do you? You start with the basic algebra etc. And then learn C++ and then move on to other languages.
3) Please keep your opinion to yourself when you are clearly just stating a personal belief with no evidence to support or disprove anything.
4) The Java VM is pretty terrible, why would you ever want to use it besides true cross platform compatibility?  Also true cross platform compatibility can be accomplished through writing minimal elf loaders for every platform and then writing all your programs as plugins for the loader.  Then, you have true cross platform compatibility as well (at least for one architecture.... but that's not so bad).
: Re: [Guide] Which Language To Start With
: somegrass November 13, 2012, 09:01:13 PM
1) I learned Java first and I hate it.
2) You should start with C first.  You don't start with Calculus do you? You start with the basic algebra etc. And then learn C++ and then move on to other languages.
3) Please keep your opinion to yourself when you are clearly just stating a personal belief with no evidence to support or disprove anything.
4) The Java VM is pretty terrible, why would you ever want to use it besides true cross platform compatibility?  Also true cross platform compatibility can be accomplished through writing minimal elf loaders for every platform and then writing all your programs as plugins for the loader.  Then, you have true cross platform compatibility as well (at least for one architecture.... but that's not so bad).
1)It was just a thought
2)Both approaches are pretty much the same when you consider that when learning c++ you pretty much have to learn c before you learn object coding
3)It was obviously an opinion. I was answering which language you should learn first, unless there is some study I don't know about everyone who answers that question is giving their opinion.
4)Agreed. And, that actually sounds like an interesting approach.
 
: Re: [Guide] Which Language To Start With
: bluechill November 13, 2012, 09:13:21 PM
1)It was just a thought
2)Both approaches are pretty much the same when you consider that when learning c++ you pretty much have to learn c before you learn object coding
3)It was obviously an opinion. I was answering which language you should learn first, unless there is some study I don't know about everyone who answers that question is giving their opinion.
4)Agreed. And, that actually sounds like an interesting approach.
 

Your thought was stated as a fact (an opinion without a qualifier stating it's an opinion).  I did not mean to upset you rather provide evidence contrary to your opinion stated as a fact, disproving your opinion/fact.  You also do not need to learn C before learning C++ as Java is C++ without the vast majority of the C part and you can learn Java just fine.  And yes everyone is however we all also should be providing evidence to support our views.  You have stated no evidence:

Programming with python too long will make every other language seem tedious and will make learning a new language like c++ or java hell.

Where is the evidence for this?

I started with c++ which is a great language to start with but I would probably recomend starting with Java just because most programmers really dislike Java if it isn't the first language you learn.

Where's the evidence for this?  Why is this the case?

Then, if you wan't to keep working inside the Java VM you can learn Groovy(or jython)!

What's so good about those?

If you provide answer to those then it would be an actual discussion and not one of just opinions vs opinions and eventually turn into a flame war.  A discussion is opinions backed up with facts/evidence of something typically or at least a solid argument.  Your argument is seemingly right now: "You should do this because I believe this and I seemingly have no evidence for it."  We both know you have a reason for it :) Please tell us this reason as well.
: Re: [Guide] Which Language To Start With
: Daemon November 14, 2012, 04:45:09 AM
Honestly bluechill, I'm gonna have to disagree with you about learning C before C++
C++ is more like algebra and C is more the calculus to be honest with you. C++ is much mire readable, and it allows a new programmer to get a solid foundation in proper programming techniques while also giving them an easier transition from english to code. You gotta admit, c++ is much more readable than C for someone whose new to programming.

Its for these reasons most univetsities have c++ or java as their intro course to programming, and I read an article that shows programmers learning c++ first typically outprogram those who learned java as a first language. Ill try to find the article and link it, it was quite the eye opener.


As for java vs c++ I still think c++ wins.
1. Java's syntax doesn't translate well into C or ASM which I believe are necessary languages for any programmer to know.
2. Java seems to peomote some odd/poor programming practices from what I've seen.
3. Java may be widely used, but c++ can do anything java can and I *believe* c++ has more lower level control as to using some ASM code within a c++ program for finer control. And in order to get the same control in java it feels quite a bit.messier to me. that's personal preference though.


I honestly feel like c++ is the best starter language for anyone looking to get into programming. Its a bit of a pain to write quick scripts in due to having to call libs and such which python doesn't. But for anyone serious about bwing a halfway decent programmer I feel you should learn c++ first.

*on my phone sorry for mistakes. Ill edit/elaborate later tonight
: Re: [Guide] Which Language To Start With
: Live Wire November 14, 2012, 07:46:16 AM
I'm pretty sure that we all have our own favortie programming language. Personally, I prefer interpreted vs. compiled. But, I can do both. Both have their own place, and each is designed to do something else. Sure, you can make them do the same thing, but when you have to actually DO something with them, they each have their own strenghts and weaknesses. They were designed to work like that. How about instead of getting mired down in some stupid flame war, you start teaching people your favorite language, and start learning the others.
 
And for gods sake, start with ruby. It dont get easier.
 
**all just MY opinion
: Re: [Guide] Which Language To Start With
: Deque November 14, 2012, 12:05:49 PM
First of all: I am not interested in a flamewar. I do not discuss to win an argument, I discuss to get some insight. Best discussions are the one you can learn from. So this is the only reason I will ask you some questions.
If I get the feeling that this is getting out of hand (turning into something for the purpose of arguing) I will withdraw from the discussion, because I don't want to waste my time with this shit.

we all also should be providing evidence to support our views.

I think you can't find evidence for everything. If you could, there wouldn't be so much flamewars about which language is the best. You also didn't back up all of your statements.

Do you mind to elaborate on this:

The Java VM is pretty terrible


@Daemon:

2. Java seems to peomote some odd/poor programming practices from what I've seen.

Can you explain this a little bit?

___________________________________________

Now some of my thoughts: People should see languages as what they are: A tool to achieve something. They are no religion.
Every tool was designed for a certain task. Some are like a swiss army, designed to do everything a bit. Others fill a niche. And that is why there will never be a language that is superior to all other languages. No language can be good at everything.

During arguments people often forget about the purpose the language was designed for. I.e.: There is no need to complain about the fact that Java is bad at low level programming. It was never made for this. You also wouldn't complain that a screwdriver is bad at banging a nail into the wall. Just use the right tool for your task.

There are languages that where designed as beginner languages, designed to learn programming the first time. I.e. Basic. They are worth some consideration in this discussion. Is it good to design a language just for learning in the first place? Is it good to have bicycles with training wheels? That really depends on the person imho. Someone who needs support and fast results to keep the motivation may be better of with an easy language.
Someone who doesn't care about that, who is rather into the challenging stuff, is better off with a language that is more complicated and causes more frustrating situations, but will make you learn more as well.

So if someone asks me which language to learn first, I would ask, what for, how serious and what the personal goals are (becoming a good programmer? getting stuff done?). Only then there might be an answer that actually helps.

Here are a lot of arguments against Java per se, which makes me want to write advantages, just to balance it a little bit. But for now I will leave it like that, because that leads away from the original topic. Although I use Java a lot, it is not my favourite language. I see a lot of flaws, but I have other reasons for that than most people seem to have.

Like I said: It is not that it is slowlier than C can possibly be and that is is bad at low level stuff. That is the tradeoff you have to make in order to get the safety and portability that Java provides. You can't make a language safer without removing control from the programmer. You can't make a language highly portable and with direct low level access at the same time that squeezes every tiny bit of performance you can get. So I don't see these as real arguments. They are only important if you have a certain task to solve, but not if you want to compare languages without any context given.

As for java vs c++ I still think c++ wins.


Saying C++ is better than Java without any context (a task or a problem to solve) is also like saying a hammer is better than screwdriver.
You have to give it a context to make this sentence valid.

Personal preference shouldn't play a role when advising a language for a beginner. Sometimes I prefer Java just because I am better in it than in another language and I want to get something done without looking up everything (to cut a long story short: it is lazyness). That is personal preference, but should never be an argument for another person to use this language rather than another.
: Re: [Guide] Which Language To Start With
: Live Wire November 14, 2012, 02:13:01 PM
@Deque
 
Couldn't agree more. Thank you :)
 
 
: Re: [Guide] Which Language To Start With
: bluechill November 14, 2012, 02:41:46 PM
Do you mind to elaborate on this:
: bluechill
Blah Blah Blah removed

The Java VM meaning the Oracle VM.  The Java VM has terrible sandboxing as noted by all the exploits for it lately.  I'll admit, my argument for why the Java VM from Oracle is terrible is a little flimsy but it's from my experience but it has improved.  It used to be worse because I could crash it with simple code which should have been valid but it's improved.

Honestly bluechill, I'm gonna have to disagree with you about learning C before C++
C++ is more like algebra and C is more the calculus to be honest with you. C++ is much mire readable, and it allows a new programmer to get a solid foundation in proper programming techniques while also giving them an easier transition from english to code. You gotta admit, c++ is much more readable than C for someone whose new to programming.

The problem is that in order to learn C++ properly you need to learn C.  C++ is an extension to C.  You don't learn Calculus first which is an extension to algebra in some ways.  I'll make a better argument later, I've got to go.... :P
: Re: [Guide] Which Language To Start With
: Daemon November 14, 2012, 07:31:30 PM
@Deque
First off the poor programming practices is implied by the article.I'm trying to find.to link.

Second.java vs c++ wins in.tthe context of a first programming language to learn. Which is what my entire post was about.... I feel like you missed the point of it. I wasn't bashing on java, just pointing out why I feel its better to start with c++ than java.


@bluechill

Yes in order to understand c++ in and out you may need C first, but its entirely possible to get a good solid programming foundation in c++ before learning C as it makes the transition easier. that's how my university and most in California do it, and I feel like the students benefit from it. Even.ones who are horrible programmers were still able to quickly pick up a second language the following semester as c++ provided such a good foundation.
Keep in mind bluechill, not everyone is as smart as you and able to just jump into a new language like ASM and promptly understand it. The rest of us mortals take a bit longer to wrap our heads around things
: Re: [Guide] Which Language To Start With
: Deque November 15, 2012, 09:10:41 AM
@Deque
First off the poor programming practices is implied by the article.I'm trying to find.to link.

Would be really great if you find that. That sounds interesting.

Second.java vs c++ wins in.tthe context of a first programming language to learn. Which is what my entire post was about.... I feel like you missed the point of it. I wasn't bashing on java, just pointing out why I feel its better to start with c++ than java.

I took that into consideration, but as far as I am able to see the points given have nothing to do with teaching/learning except for the one I asked you about (poor programming practice). So I either didn't understand it right or you argue out of context.

1. Java's syntax doesn't translate well into C or ASM which I believe are necessary languages for any programmer to know.

How does any syntax translate well into ASM? C might be closer than other languages, but it also doesn't translate well. You still have to learn ASM in order to be able to read it.

For every language you will find another one that is worth knowing and that doesn't translate well into it. That's why you should learn several languages that use different programming paradigms, so you can deal with the common concepts of programming languages, read almost every language and learn them fast. One language is not enough. Most people don't even try declarative programming, which is in my opinion a bit sad.
: Re: [Guide] Which Language To Start With
: lucid November 20, 2012, 06:43:40 AM
Is this what you were talking about Daemon? It's a little paper about the "Pitfalls of Java as a first language"

You might find this interesting Deque - http://upload.evilzone.org/download.php?id=9459979&type=rar
: Re: [Guide] Which Language To Start With
: Daemon November 20, 2012, 07:04:51 AM
Is this what you were talking about Daemon? It's a little paper about the "Pitfalls of Java as a first language"

You might find this interesting Deque - http://upload.evilzone.org/download.php?id=9459979&type=rar (http://upload.evilzone.org/download.php?id=9459979&type=rar)

Not the exact article, but the excerpt about the Texas A&M school was from the article I read. I seem to remember reading it as a webpage, just a short article. But that's essentially what his article boiled down too (searched the webs just now and still couldn't find it, maybe I have a memory leak :P )

And he has a valid point, Java is a great language and has it's uses, just not as a first language to learn lol

Also from this guy (dudes got some great papers):
http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext


His personal website here:
http://www.stroustrup.com/

Thank you lucid for finding this <3
: Re: [Guide] Which Language To Start With
: Deque November 20, 2012, 02:16:10 PM
Thanks to you both for providing article and links. :)

Edit: I read the paper that lucid uploaded and I think it is pretty good. This is probably the essence:

a competent
programmer is comfortable with a
number of different languages and that the
programmer must be able to use the mental
tools favored by one of them, even
when programming in another. For example,
the user of an imperative language
such as Ada or C++ must be able to write
in a functional style, acquired through practice
with Lisp and ML1, when manipulating
recursive structures. This is one indication
of the importance of learning in-depth a
number of different programming languages.
: Re: [Guide] Which Language To Start With
: rasenove December 23, 2012, 06:28:51 PM
I have a few questions:

1. How do you judge if a language is powerfull or not? 
2.Wats the fiddsence between script and program language?
3.If i want to learn c++, then witch program should use. I have visual studio 2012, will it do?
4. Will visual studio be enough to program in java ,c ,c++
: Re: [Guide] Which Language To Start With
: namespace7 December 23, 2012, 07:07:49 PM
1. It is powerful in relation to a specific problem if it can be used to solve that problem effectively and efficiently.

2. There is little difference theoretically. A scripting language IS a programming language because it IS a type of programming languages. In many cases you can use both scripting and compiled programming languages to achieve the same result. However, each programming language has its strengths and weaknesses and hence some are better then others for a specific task. For example it is better to use a scripting language like PHP to write a web application for your website and to use a compiled language like C++ to create a console video game.

3. If you want to learn C++ you can use one of many C++ IDE's like DevC++ or Eclipse or Visual Studio 2012 if you want to build windows-only graphical applications. Just google free C++ IDE and you will get a ton of results.

4. I personally don't use Visual studio so I wouldn't know if it supports java. But don't worry, there are TONS of free software that will enable you to compile, link and debug programs in any language. Check out Eclipse, Netbeans, DevC++.

Good luck and don't hesitate to ask any other questions.
Just one tip: don't spend countless days trying to find the best language or programming environment. Just get a good book on a programming language, download a free IDE for that language and start learning. And then just practice, practice and one more time practice. Don't jump from one thing to the next like a frog before learning at least enough to do something useful.
: Re: [Guide] Which Language To Start With
: Daemon December 27, 2012, 12:24:00 AM
@rasenove
Check out the tutorial for the IDE, I posted codeblocks and I would recommend that one for C++ and it comes with the GCC compiler included. And no, visual studio does not support java, you would need eclipse or something for that. Check the Visual Studio documentation to see what all it supports, thats something you can find yourself man ;)

As for the rest, namespace7 said it all. Thank you namespace7 :)
: Re: [Guide] Which Language To Start With
: techb December 27, 2012, 01:06:58 AM
Discussion up until now TL;DR.

I started with Python, which is great for anyone. But I would really recommend starting with C. I really wish I started with C, but for PC level stuff, Python is a good intro language. So Python if your half serious or want to get into something quick, but C for those who are really serious.
: Re: [Guide] Which Language To Start With
: Kulverstukas January 13, 2013, 08:00:36 PM
Damn. Why isn't this stickied yet?

/me saved the day!
: Re: [Guide] Which Language To Start With
: 0poitr January 13, 2013, 08:42:04 PM
I think, IDEs hinder or just hide the natural way to code and compile. They sure make things quite easier with auto completion and stuff but the classic way to code in a text editor and then compiling it with a standalone compiler is just, well.. classic. Unbeatable. I've seen my friends code in IDEs, press a button and tada! a terminal opens up for input. They never get to know how it actually happens. Preprocessing, compiling, linking .. they miss it all.

So, I'll recommend anyone to code in a simple text editor which supports syntax highlighting and auto-indentation. e.g. vim, scite, notepad++
For compilers, there's the industry standard gcc (*nix) and minGw (win).

As for me, I've started learning to code in C and am genuinely loving it. I know a bit of bash and autoIt. But programming in C is a different joy altogether.
: Re: [Guide] Which Language To Start With
: namespace7 January 13, 2013, 09:29:43 PM
I think, IDEs hinder or just hide the natural way to code and compile. They sure make things quite easier with auto completion and stuff but the classic way to code in a text editor and then compiling it with a standalone compiler is just, well.. classic. Unbeatable. I've seen my friends code in IDEs, press a button and tada! a terminal opens up for input. They never get to know how it actually happens. Preprocessing, compiling, linking .. they miss it all.

So, I'll recommend anyone to code in a simple text editor which supports syntax highlighting and auto-indentation. e.g. vim, scite, notepad++
For compilers, there's the industry standard gcc (*nix) and minGw (win).

As for me, I've started learning to code in C and am genuinely loving it. I know a bit of bash and autoIt. But programming in C is a different joy altogether.

Very good advice. Its very important to understand how the source actually turns into binary and how all the libraries are included and so on.
All beginners who are starting out should do this.

However once you starting working on big projects with thousands of files and several devs then IDE is the only way to go. But of course for short little programs there is no advantage of an IDE over a text editor with syntax highlight and separate compiler.
: Re: [Guide] Which Language To Start With
: 6NavI May 05, 2013, 12:14:05 PM
learning C++ but every time i write codes involving <strings>, they compile very well and build well......but on running the code it, windows explorer notifies me that the program has "stopped working". Can some one help me out here
: Re: [Guide] Which Language To Start With
: rasenove May 05, 2013, 12:21:46 PM
learning C++ but every time i write codes involving <strings>, they compile very well and build well......but on running the code it, windows explorer notifies me that the program has "stopped working". Can some one help me out here

make a post of your problem and give up some code snipts so we can see whats wrong. Dont post it here tho, make a new topic in the c, c++ board.
: Re: [Guide] Which Language To Start With
: 6NavI May 05, 2013, 03:33:20 PM
thanks......@rasenove
: Re: [Guide] Which Language To Start With
: xXGreenXx90 July 12, 2013, 03:47:24 PM
Thanks for informative tutorial!  Is there any good site to start learning programming on because my college classes don't start for another year.  Also how do you remember code without forgetting it over a period of time?  I began with PHP and I had trouble remember is unless I practiced for 5 hours a day.
: Re: [Guide] Which Language To Start With
: Kulverstukas July 12, 2013, 06:27:08 PM
Thanks for informative tutorial!  Is there any good site to start learning programming on because my college classes don't start for another year.  Also how do you remember code without forgetting it over a period of time?  I began with PHP and I had trouble remember is unless I practiced for 5 hours a day.
http://evilzone.org/general-galactica/coding-language-knowledge-getting-rusty/
: Re: [Guide] Which Language To Start With
: Traitor4000 July 10, 2014, 10:51:00 PM
I disagree that javascriot only does little things. It is a very powerful language. It is especially interesting to use for client side attacks via xss etc. Look in to javascriot it can do more than you think.
: Re: [Guide] Which Language To Start With
: Reynald March 05, 2015, 04:09:06 PM
i ever heard ppl talking about low-level language and high-level language
and they said if you mastered the Low-Level language , you will be trully understood computer and all of it's work
is it true?
: Re: [Guide] Which Language To Start With
: jes9ter April 17, 2015, 12:52:18 PM
Gj and thx on the guide namespace7. It really helped me start.