best language to get started on real programming?

Addlcove

Fledgling Freddie
Joined
Dec 22, 2003
Messages
520
finals being done and me having loads of time now maybe I should try to learn how to code :)

keep in mind I´ve done some pretty basic VB and bash-shell scripts.

so where do I start? what languages are easy to learn?
 

EvilMonkeh

Fledgling Freddie
Joined
Dec 22, 2003
Messages
120
well... we have to ask, what do you want to make!
websites, windows apps, etc?
 

Doh_boy

Part of the furniture
Joined
Dec 22, 2003
Messages
1,007
I'd go for c# or VB. :D

VB is uber-easy and c# seems very simple and straight-forward. I'm actually liking c# a lot atm.
 

fatbusinessman

Fledgling Freddie
Joined
Dec 22, 2003
Messages
810
If you feel like going for C# - go for Java instead :p

They're essentially the same language, and you can actually get decent free dev tools for Java
 

TheJkWhoSaysNi

One of Freddy's beloved
Joined
Dec 23, 2003
Messages
187
I found delphi a good starting language. It's kinda the simplicity of VB with the power of C++.

C++ is good, but I wouldn't try it as a first language. As for C#, i've never tried it.
 

fatbusinessman

Fledgling Freddie
Joined
Dec 22, 2003
Messages
810
Yeah, Delphi is quite a good starting language - the only drawback I can think of with it is that it doesn't use what has become the de facto standard syntax used by C++, Java, etc.
 

PLightstar

Part of the furniture
Joined
Dec 29, 2003
Messages
2,103
I started on HTML and moved on to Java then to Delphi, I would say HTML was the easiest to learn for me.
 

jaba

Fledgling Freddie
Joined
Dec 25, 2003
Messages
780
Good point well made FBM! hehe.
I started on pascal, horrid thing that it was but it was simple and nicely structured. From there I went on to java which was so easy its not funny. I would say go for java as there are plenty of good books out there on it and loads of support sites java.sun.com for example. Once you know java pretty well its easy enough to move to other more powerful things such as C++. That aside once you know one language its pretty easy to pick up another language.

Hope that helps :D
 

phlash

Fledgling Freddie
Joined
Dec 24, 2003
Messages
195
As a starting language, Java provides a good structure, portable syntax and a comprehensive, well thought out run time library. It introduces good programming practises early.

You could do worse than go through the free online tutorials at java.sun.com, then try and pick up a good book, preferrably one that mentions the GOF design patterns (which are applicable to pretty much all languages, even Perl you ev1l one :)).

After that, perhaps branching out to experience the real world beyond a virtual machine would be educational, I would actually suggest plain old C (not it's evil big brother C++), just to experience the joy of pointers and the feeling of speed that can be achieved (not to mention the ability to properly toast your system!). I'd encourage the use of a un*x-like operating system for a 'proper' C environment, and less reboots when it goes wrong!

If you got on with shell scripts in bash, and have got some Java under your belt, then go for OO-Perl, or maybe Python to get more power than /bin/bash could ever dream of... another area where a good book will help loads.

Phil (who has been there too long!)
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,466
I started with C - if you're serious, start with what you're planning to use, it leads to less bad habits (and yes, Java will teach many bad C habits and vice versa) in the long run.

Which OS you learn on is largely irrelevant - when learning C you'll be writing portable code so pick what you know. It's better not to compound the difficulty of learning C with trying to learn a new OS at the same time.
 

SilverHood

FH is my second home
Joined
Dec 23, 2003
Messages
2,281
I'd go with Java, as it teaches good programming practise, and the difference between Java and the C languages aren't that different.

Delphi is also quote good, but I'd try Turbo Pascal first, and then go to Delphi (Delphi is basically object orientated pascal), as it makes things a lot easier :D

;)

If you're in doubt, do the Hello World program in each language, and see which apeals most to you.

:)
 

MrK-

Fledgling Freddie
Joined
Jun 24, 2004
Messages
5
Learning C is a good idea...

C, n.:


A programming language that is sort of like Pascal except more like assembly except that it isn't very much like either one, or anything else. It is either the best language available to the art today, or it isn't.
-- Ray Simard​

C is a great language to learn for several reasons:

1) Portable code / cross platform.
2) Teaches concepts such as memory allocation and pointers.
3) Lets you mess about with debuggers & disassemblers.
4) Almost everything else has C-like syntax and is probably written in C anyway.
5) Most major OS APIs are C-based atm.
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,466
SilverHood said:
I'd go with Java, as it teaches good programming practise, and the difference between Java and the C languages aren't that different.
Spoken like a true Java programmer.
Simple answer: No they aren't.
The syntax is superficially the same, but the way you use them is entirely different. For a start C isn't object oriented, at all, while Java forces OOP down your throat like it or not. Even C++ and Java aren't that similar. If you program C++ like you would Java you get some really bad C++ code.

C is much more similar to pascal than Java (syntax notwithstanding).

I agree with what MrK said also. It's worth noting that C is probably the most portable programming language in existance currently.
 

Cyradix

FH is my second home
Joined
Dec 22, 2003
Messages
2,128
Assembler!!!
I remember writing a text editor in assembler in school.... those were the days ;)
 

phlash

Fledgling Freddie
Joined
Dec 24, 2003
Messages
195
Horses for courses here people..

C is great (IMO) if you want almost(*) full control of the machine, a free development system (GNU) and no need for big run time environments. The language is very portable, but the run time libraries can vary a good deal from say an embedded system to an X-Box to a Solaris platform... and binary compatability is a non-starter so true portability is only obtained in open source development.

Perl is great, if you want dynamic code generation (eg: eval), good abstraction from the underlying platform, and a rich set of run time libraries that give you rapid prototyping of your ideas. If you want a write a low memory footprint, multi-threaded 24/7 server however, it probably doesn't fit the bill.. it also needs a medium->large run time environment (depending on the number of modules you use)

Java is great, if you want to learn OO design and programming techniques (esp. for larger systems or distributed systems), a free development system (Netbeans, Eclipse), good abstraction from the underlying platform, a well-thought out set of run time libraries, binary portability with obfuscation so you don't have to ship source and you don't mind the 30MB run time environment, or the noticeable performance hit of a virtual machine.

.NET - pretty much the same as Java... but a choice of languages, which might appeal if you want to stick with something you are familiar with (eg: VB).

(*) full control of course needs serious ASM coding :)
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,466
The C standard library is actually very portable. You'd be hard pressed to find a system that doesn't support the bulk of it (xbox certainly does for instance).
Also, there's very little you need asm for that C can't do, and most C compilers support inline asm. ;)
 

Louster

One of Freddy's beloved
Joined
Dec 26, 2003
Messages
882
Plus! The C for Dummies books are some of the only well-written "... for Dummies" books I've come across. So yeah.
 

rynnor

Rockhound
Moderator
Joined
Dec 26, 2003
Messages
9,353
If you want a real understanding of whats going on behind the scenes you should start on one of the low level languages such as C - if you just wanna cut to the chase go for C++ if you have the cash or can beg/borrow/steal a decent C++ kit or Java if your skint.

Personally I would advise the C/C++ route - these languages are the key to nearly all PC programs and the work opportunities are infinitely diverse.

I guess you could say I am neutral on this stuff as I've always been a mainframe programmer but I have worked with a lot of pc programmer's over the years (and even dabbled a bit myself) so I think I have a fair idea of the market.

Whatever you decide - welcome to the world of programming!
 

Oidche

Fledgling Freddie
Joined
Jun 22, 2004
Messages
41
When you're new to programming, don't start with C or C++. If you make mistakes, bugs are very hard to find, much harder than C# or Java which just give to a stackstrace instead of a 'core dumped'.

I suggest either Java or C#, and I'd go for C# because the API is a bit more 'logical' (Console.Write anyone?) and it has more features.
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,466
Oidche said:
When you're new to programming, don't start with C or C++. If you make mistakes, bugs are very hard to find, much harder than C# or Java which just give to a stackstrace instead of a 'core dumped'.
Here in the real world we have debuggers (VC++, gdb, etc.) that can give a stack trace when your program crashes. They're quite handy. Programming without a debugger is like trying to find an electrical fault by just touching stuff till you get electrocuted.
 

Oidche

Fledgling Freddie
Joined
Jun 22, 2004
Messages
41
Danya said:
Here in the real world we have debuggers (VC++, gdb, etc.) that can give a stack trace when your program crashes. They're quite handy. Programming without a debugger is like trying to find an electrical fault by just touching stuff till you get electrocuted.

True. I'm a bit biased here because that's exactly the way they tought us C++ in university. But that's not the only thing, garbage collecting is your friend <smiles>
 

Danya

Fledgling Freddie
Joined
Dec 23, 2003
Messages
2,466
It's not my friend. :p
Besides - if I wanted GC, I could use a GC lib for C/C++. That's the nice thing about them - you can choose what you want to use and what you don't want to use, very little is enforced.
 

LordjOX

Part of the furniture
Joined
Dec 22, 2003
Messages
3,886
I've recently started Java as it is what i study (gonna study it for the next 3 years)
I find it easy to understand, altho I dont have enuff experience with it to give pros and cons
 

Users who are viewing this thread

Top Bottom