What language?
Author
Discussion

dannyboyo

Original Poster:

2,392 posts

303 months

Monday 19th July 2004
quotequote all
I've decided I'd like to try my hand at a bit of programming, but it's been a while and I'd like some advice on (in your opinion) which is the best to start learning?

To fill you in, I'm pretty technically minded anyway, and as a job a major part is sorting other peoples (or companies) PCs out for them. I'm up on the hardware and software side of things, but feel it's time to delv a little deeper.

This will only be for my own entertainment BTW.

I've just been reading up on the basics of Perl and that seems reasonably logical to use, right??

Cheers in advance

Dan

Matt_T16

3,402 posts

273 months

Monday 19th July 2004
quotequote all
If your just starting out and want something useful but not too indepth then have a look at Visual Basic. Can be handy to write front ends for Access and SQL databases as well as other small scale bits and bobs. Its also rather easy to pick up.

Matt

BrianTheYank

7,585 posts

274 months

Monday 19th July 2004
quotequote all
I did visual basic last year in school and it was a great place to start. It really gives u a good grasp of the basic fundamentals of programming and as easy as it seems to be, it still makes you think.

Pigeon

18,535 posts

270 months

Monday 19th July 2004
quotequote all
C.

trooper1212

9,457 posts

276 months

Monday 19th July 2004
quotequote all
I'd start with a scripting language, something like Ruby and go from there.

lanciachris

3,357 posts

265 months

Monday 19th July 2004
quotequote all
Youre all wrong. any OO language is the place to start. Java is an easy teaching language, if not all that widely used commercially, maybe c# would be a better option.

plotloss

67,280 posts

294 months

Monday 19th July 2004
quotequote all
Developed anything before?

Try a bit of vbScript to become comfortable with the object.thing syntax.

Then Windows API's shouldnt be an issue!

C# and J2EE are probably the safest technologies moving forward. The limit with C# though is that there will be probably only ever be a CLR for the Windows platform. J2EE is powerful but wordy.

Good luck!

gopher

5,160 posts

283 months

Monday 19th July 2004
quotequote all
I would go for c#, the framework is free and you can code using notepad. A good new OO language which is catching on very quickly, interesting read here :-

www.webservicespipeline.com/news/23900832

There is the c# express version currently in beta 1 but seems stable from what I've used of it, with built in intellsense and a good programming environment.

http://lab.msdn.microsoft.com/express/

The only main parts of this environment missing from the full blown vs.net is the lack integrated source control, remote debugging, and class designer (new in vs 2005) but you still have all the features of the full class library.

Differences here

http://lab.msdn.microsoft.com/vs2005/productinfo/productline/default.aspx


HTH

Paul

gopher

5,160 posts

283 months

Monday 19th July 2004
quotequote all
plotloss said:
The limit with C# though is that there will be probably only ever be a CLR for the Windows platform. J2EE is powerful but wordy.
Good luck!


the mono project is well under way..

www.mono-project.com/about/index.html

so there is hope for those who don't like MS

cheers

Paul

plotloss

67,280 posts

294 months

Monday 19th July 2004
quotequote all
Thats interesting, thanks.

I had heard of a CLR for Linux and thats interesting in my line because we can now run Linux natively on the iSeries so there is a chance to move the back end to C#.

No real reason to you understand, but handy to be able to know it can be done...

JonRB

79,490 posts

296 months

Monday 19th July 2004
quotequote all
lanciachris said:
Java is an easy teaching language, if not all that widely used commercially
You're joking, right? When I search for C++ jobs on JobServe I have to throw out a depressingly large number which ask for Java / J2EE in addition to C++. Bit of a problem as I haven't got round to learning Java yet.

In addition I know at least 3 other contractors who make their living out of writing Java.

dern

14,055 posts

303 months

Monday 19th July 2004
quotequote all
lanciachris said:
Java is an easy teaching language, if not all that widely used commercially, maybe c# would be a better option.
Nonsense. I've been writing java commercially for 5 years, it's used all over the place. It's easy to learn the syntax because the language and IDEs can be downloaded for free and there are some really good tutorials on sun's website however unless you want to be just another coder, don't neglect the OO analysis/design side.

Regards,

Mark

zumbruk

7,848 posts

284 months

Monday 19th July 2004
quotequote all
Guys, guys. This bloke wants to *learn* programming. C#, Java, C++, Ruby, whatever are *way* too big. There's a huge learning curve associated with all of them - trying to learn syntax, OO metaphors and any IDE (Microsoft's so-called "Visual" environments.)

He'd be better off with VB or Perl.

(Besides, C++ is an evil bletcherous bag hung on the side of 'C', and C# is just a political spoiler for Java, since Sun wouldn't let Microsoft "embrace and extend" it.)

dern

14,055 posts

303 months

Monday 19th July 2004
quotequote all
zumbruk said:
Guys, guys. This bloke wants to *learn* programming. C#, Java, C++, Ruby, whatever are *way* too big. There's a huge learning curve associated with all of them - trying to learn syntax, OO metaphors and any IDE (Microsoft's so-called "Visual" environments.)

He'd be better off with VB or Perl.
It depends what his goals are, does he want to learn to develop software or does he want to knock up the odd utility for himself. Java or C# for the former or Perl/Python for the latter. I wouldn't say doing a bit of perl would really prepare you for the proper stuff except it would teach you what variables are and you can learn that with Java. Software development is not an easy thing to learn. I'm still learning after 5 years education and 14 years commercial. Anyone who says that they know it all after spending a few months knocking up some perl scripts is deluding themselves. Pick your goal and work towards it is my advice.

Mark

anonymous-user

78 months

Monday 19th July 2004
quotequote all
zumbruk said:
Guys, guys. This bloke wants to *learn* programming. C#, Java, C++, Ruby, whatever are *way* too big. There's a huge learning curve associated with all of them - trying to learn syntax, OO metaphors and any IDE (Microsoft's so-called "Visual" environments.)

He'd be better off with VB or Perl.

(Besides, C++ is an evil bletcherous bag hung on the side of 'C', and C# is just a political spoiler for Java, since Sun wouldn't let Microsoft "embrace and extend" it.)
I disagree. Why learn to drive an automatic before going on to re-learn in a manual (bad analogy I know, but trying to add some sort of PH reference... ).

My point being that VB especially will teach some bad habits (e.g. procedural programming) that are just not necessary. Much better to start with a proper OO language - Java is perfect for this as it's pure OO. I learnt Java in notepad and now even though it's my primary development language tend to mainly use JEdit and Ant, so you don't *have* to learn the IDE and so on first.

A good book to cover the basics of OO and another to introduce the syntax of Java. Then away you go, learning each new package bit by bit.

ATG

23,123 posts

296 months

Monday 19th July 2004
quotequote all
Whatever your long term objective, you need to start with a language and a development environment that let you see the woods for the trees. If you are constantly wrestling with minor syntax problems in your code or the configuration of your environment, particularly if you don't have anyone to ask for help, then you are stuffed.

You need to build up the concepts starting at the most fundamental; variables, expressions (arithmetic, logical, string), looping, branching. Next step would probably by function declaration and invocation, followed by classes and objects.

VBA as embedded in Excel, Access, Word, etc is not a bad place to start. For a start, you've probably already got it installed on your PC. It is easy to use, easy to learn, and fairly easy to produce simple solutions for real-world problems. It is not the most elegant language in the world and many of the solutions produced in it are unreliable cack (don't blame the tools, blame the user).

VB allows you to write stand-alone applications, COM components, but is essentially almost identical to VBA in terms of its use as a basic teaching tool.

A good alternative language is Python, in particular when used with the PythonWin development environment and windows extensions. It is free, multiplatform and has a lively user group www.python.org. It is also a surprisingly elegant language. You aren't likely to outgrow it, whereas you will outgrow VB quite quickly.

lanciachris

3,357 posts

265 months

Monday 19th July 2004
quotequote all
Okay, so java is widely used, but i chose not to pursue it adter my degree learning it, instead learning .net stuff in my job

pmanson

13,388 posts

277 months

Tuesday 20th July 2004
quotequote all
I've been taught Java at uni as its seems you can take most of the language skills you learn and then transfer them to other language quite easily.

rebelstar

1,146 posts

268 months

Tuesday 20th July 2004
quotequote all
My advice it to learn an interpreted language. These days, this often means a scripting language. You'll be making a lot of mistakes and there will be much trial and error, so you don't neccessarily want to spend half your time compiling. If it can do graphics easily, then this is a bonus as I always find this to be immediately rewarding, fun, and keeps me interested.

Java, C and so on - good languages and the right ones to be fluent in if you're looking for a job, but not always the one if you want to dabble.

JonRB

79,490 posts

296 months

Wednesday 21st July 2004
quotequote all
The trouble with learning by dabbling is that you will turn into a sloppy programmer with bad habits and write crappy, convoluted, inefficient and hard-to-maintain code.

Which I guess is ok if you never intend to progress beyond dabbling.