• Coding
  • What's a good beginner coding language, and where to start?

@kareem: Anyone can. Haven't tried it yet. Still playing every now and then with HLSL shaders..
EddieEC wroteSome of you posted about me going to be a Web developer and no need to use C. I am not just going to be a web developer. So all of you are confusing me with what to start with. Some are suggesting HTML CSS and JavaScript, others C and others python.
Will you please make up your minds ;P?
I need you to state which language I should start with and your arguments.
It depends on what you want to do.

If you want to go for web development, then start with HTML/CSS/JavaScript
If you want to develop software then go for C or Python (Python is easier like rahmu said, but then you'll need the discipline of forcing yourself to learn something much more complicated like C, your decision).
By the way, I also like C# it's a very nice language. Easy and fun. Consider this one too.

I guess that sums up your choices.
Which direction would you like to start with?
If it is Web development, you better go the PHP/MySQL/HTML/JS/CSS path (especially if you're alone).
If it is Windows Forms development, you better go the C# path; or as possibly the Java path.
If it is embedded you gotta follow the platform rules (Objective-C for iPhone, Java for others, C++ for some Nokia's)..
If it is kernels (linux) and drivers (most OSes).. You will most probably need to learn pure C.

Learning in one direction will teach you how to write code generally. Algorithms and more nasty academics come along in a parallel mode (kind of like English and Math back at school.. You learn the math, you speak it in English.. kinda)

The most productive and efficient platform to generally learn programming with would be a Windowing Application, or if you like text, a console Application. Do it using a platform condoned language (.Net for windows, Objective-C for Macs).

No one with a sane mind will tell you study this and claim it's the king. Bjarne Stroustrope himself (creator of the C++ Standard) avoids comparing languages for the reason that no man can really be invested enough in two languages to give a fair judgment. So I may tell you this language is good, but don't think my words are carved in stone.

If you need to be told what to do: Start with C#. It's cool and the development environment is nice.
arithma wrote@kareem: Anyone can. Haven't tried it yet. Still playing every now and then with HLSL shaders..
You donwload the SDK from Nvidia's website but the prob is that my gpu is AGP and my PC is too old so i wont be able to do anything. + i am not a programmer.
EddieEC wroteSome of you posted about me going to be a Web developer and no need to use C. I am not just going to be a web developer. So all of you are confusing me with what to start with. Some are suggesting HTML CSS and JavaScript, others C and others python.
Will you please make up your minds ;P?
I need you to state which language I should start with and your arguments.
We all come from different backgrounds and have different opinions on the matter. None of us is 100% right and none is 100% wrong (except maybe the guys pushing .Net :P ).

We gave you a lot of info on this thread. It is really up to you to make up your own mind. We are not going to do the work for you. And most, if not all of use, gave you our arguments. You cannot ask for more.

Use Google. Try to read some code. Find the languages we gave you, and get a feel for them. At one point you will find a language that suits you.

Have fun coding too ;-)
The problem is that I need the right language to start with, so I could be comfortable with learning the others.
EddieEC wroteSome of you posted about me going to be a Web developer and no need to use C. I am not just going to be a web developer. So all of you are confusing me with what to start with. Some are suggesting HTML CSS and JavaScript, others C and others python.
Will you please make up your minds ;P?
I need you to state which language I should start with and your arguments.
Maybe this will clear things up.
PHP, or ASP is definitely what you need. And of course HTML, CSS and jQuery (if using PHP).
I think ASP is faster to code then PHP.
I said C because look what happened to me: I started with PHP and it is so easy compared to C that I never found the courage/time/patience/motivation to learn proper C. And that bothers me because most programs are written in C (it doesn't mean that it's the perfect language though, it just turned into some sort of standard), so I am kinda "stuck" in the realm of web development, and cannot claim to work on something else. But maybe if the need arises, for example for mobile app development, I will be able to learn C. Hopefully.
I thought C was a smart choice for you, because I thought you will be able to learn 2 things at the same time, web dev and C programming. But why bother...
Thanks for your post rolf, it actually cleared up some things. I'll get into C.
rolf wrote(it doesn't mean that it's the perfect language though, it just turned into some sort of standard)
You are right, C is not a perfect language, but there is a reason why it has become a standard.

* Historically, it was the first mainstream language to give high-level abstraction layers.
* It still provides access to low-level functions for optimization.
* It is a compiled language which gives it a huge performance boost compared to other interpreted languages.
* It has an almost infinte set of libraries that allow to do virtually anything.


However, like you said it's far from perfect and here are (in my opinion) its main flaws:

* Difficult to read, write, learn, understand, ... When you are not struggling with the syntax of the language you are optimizing your manual freeing of memory.
* Compiled binaries, so forget about portability.
* The gain in performance is sometimes (most of the times) superceded by the loss in productivity.
* Modern computers do not require C low-level optimization, except for heacy CPU-demanding applications.
* Bad handling of arrays and strings.
* Strict typing. That's old school.
* No dynamic arrays (don't mention linked lists or stacks ...).

I used C exclusively during my first two years of programming. Learning Java after that was a great relief. I remember loving the way Strings, Vectors and general Arrays are handled.

I understand you having troubles to learn C. However I think you'd have much less troubles learning Java, Python or even C# (ARRRRGH!!) for general purpouse programming.
C# is simply amazing. The syntax is very easy to learn and very readable. I might get back to it during the summer...
I am interested in Java but don't like what comes with it, namely the JVM.
If you want the advantages of C which rahmu listed in addition to the disadvantages as advantages and many more..., have a look at Delphi. IMO it's simply the mother of all languages. I tried and know a bunch of languages, but i really liked Delphi, and i still heavily use it.

It compiles native windows binaries, but a new version is coming out this year that compiles to Linux, Windows and Mac.

By the way the most popular Delphi IDE (From Borland/Embarcadero) isn't free, but you can have a look at Free Pascal and Turbo Pascal.
I started w c++ last year, and im really enjoying it. im not that much of a programmer (yet!) but till now i really like the logic behind this thing. it has a somehow steep learning curve (especially graphic intensive apps), but u can see results as soon as you start. and, most importantly, i feel like it gave me a big push in the logic of programming, for since then i've learned c# and java, and it was 'relatively' very easy for me to understand how they work.

comparing to java and c# - IMO- its much harder. you have to build most of the stuff u get in java and c# yourself from scratch, but the advantage is that you will build them to your needs, and you will be fully in control of how your apps work and feel.

Again, im no experienced programmer, but thats just how i feel (till now at least).
IMO Java can be a good language for beginners as long as you don't rely much on the APIs and try to build most of the pre built functions and structures yourself, then you would be learning right. But still it would be easier and error proof on the level of errors, exceptions, and garbage collection. C is great for beginners but I find it dangerous if you don't keep an eye on everything you are doing and keep an eye on what error you may be facing as there is no VM to manage any uncaught exception and save the day by just exiting from the program.

For example in C if an array's index gets out of bounds(which is easy for a beginner to commit) it may cause serious problems, but in Java once the exception happens the program would stop executing and won't allow the program to go out of it's limitations. Java programs are surrounded by a strong sandbox, which IMO is helpful for beginners and helps them to focus more on the solving the problem at hand.

Just my 2 cents.
So I'm getting this feeling I should start with Java?
I'll see what both offer and start with something easy. It's my first programming language, don't want it to be too hard.
What about Python or Ruby as a beginner language?
So I'm getting this feeling I should start with Java?
I'll see what both offer and start with something easy. It's my first programming language, don't want it to be too hard.
What about Python or Ruby as a beginner language?
Python can be very good to you too IMO, refer to rahmu's post previously.
So I got this good eBook about Python, which teaches you how to program in whatever language, and what to do, and also teaches you Python stuff.
I learned Python with the excellent a Byte of Python book. I think it could be great for beginners because the author explains intensively through examples.
It's available for free download on the web (google)