What programming language would you recommend to a beginner?

#1
By way of Prolog, as one of the many meanders in another thread, the subject of programming came up and activated the version of Curiosity 0.9 that runs in my head.

What language would you recommend for somebody to learn programming and why?

Would you put pressure on them to learn Pascal? Would you Scheme to make them learn to LISP?

Would it differ if budget wasn't a constraint?

Would you recommend they dive straight into MUF and so Forth?

Curry favour with functional crowd? -or would that be too much Haskell?

What's the cruelest language you can think of? Would you Brainfuck them with Z notation?


_ mod _ :Z → ( Z\ { 0 }) → Z




n,r: Z; q: Z\ { 0 } •
n mod q = r
(
d r •< d
n = q*d + r)



C what your sharp minds can come up with.

---------------------

I am of the opinion that everybody should learn a little programming. It is a useful activity in learning to correctly articulate arguments such that a machine may correctly implement them and drawing out assumptions. At the very least, everybody should learn sufficient to thoroughly empathize with the only poem I can recite: (ahem, cough)
This Damn Computer is No Good!
I wish that they would Sell It!
Instead of Doing What I Want,
It Does Just What I Tell It!!!!!

Thank you.

As for language, Pascal is a nice starting point, although I would probably go for Visual Basic for Applications if that is available - several reasons including its utility in enhancing MS applications, its better (IMO) block structuring (eg, 'end' as opposed to '}') and wide availability. It has most of the features needed to get going and, again IMO, supports recursion - this is quite a natural way to think about many problems, although many people think recursion to be the work of the devil and avoid it like a Biblical plague.

Hmm. This might make an interesting thread in its own right.
 
Z

Zarathustra

Guest
#2
We were taught Pascal at college. I'd probably recommend C++, but it would depend on what their ultimate goals in programming were.

Being more of a web geek I mainly work in CSS, PHP and have been trying to master MySQL by writing my own forum software.
 

Fronty

Old-Salt
Book Reviewer
#3
C, or at least a C-type language (C, C++, Java etc)

Pretty standard and C itself can be compiled onto just about any type of platform. .Net/C# would be a second choice, but Objective C is taking off in the Smartphone world, so maybe that would be worth a look.

If you hated someone, make them learn Perl.
 
#5
C - because it's pretty nippy and powerful and there isn't much that can't be written in it (without being daft)
Erlang - because functional programming is hard but good to crack
Python - everyone needs a scripting language for day to day stuff
Java - great for learning OOP but pretty average otherwise
 
#6
LISt Processing (LISP), known for its strong connections to Artificial Intelligence has now been superceded by a variant for those with a speech problem. It is now called Local Intelligent Thought Holistic Programming (LITHP). I would recommend that.
 
#7
Pascal is usually taught as it's very strict in how you code stuff and so can help build some good coding practices which will be of use to a beginner. C lets you do anything you want and generally **** about with things like this from some code I wrote ages ago:

Code:
char *shellcode;
[...]
((void(*)())shellcode)();
 
#8
I'm not a developer but I've found that simple programming skills have been very helpful.

I work as a Technical Author. I'd learned a little bit of BASIC when I was a kid and it came in very handy when I wanted to write MS Word macros using Word BASIC 6 for use at work. (The handbooks I was writing included massive lists of spare parts created from the factory Bills-of-Material. I wrote a series of macros to strip out the bits I didn't want and and then format the rest. If I'd tried to do the job by hand, it would have taken 2 to 3 days. The macros did it all in about 30 mins.)

I've also done a bit of programming with Turbo Pascal, which led onto C++. I'm no developer, but I know enough about C++ to write simple APIs, if needed, for the software user guides I write.
 
#9
I’d quite like to see kids learning a little programming alongside application use in School. It doesn’t need to be much, but with the ubiquity and increasingly complexity of computer technologies it would stand them in good stead when faced with applications they’ve never come across before.

Recommended language for learning, at least for beginners: Probably a little Visual Basic or something similar. On the other hand if I was really allowed to have a free choice, but restricted in resources including time, I’d probably go for constructing simple databases in something like Dbase 3+. Very old now, yes (and DOS of course), but easy to learn, lacking in flashy distractions, sufficiently structured for the purpose and it would get across the all important aspect of data storage and manipulation, as well as a little structured thinking and logic.

I suppose it really comes down to what the result of the teaching is to be, i.e. application development or underlying principles. I’d plump for the latter which I think would be more beneficial in the long run for the majority of people.

Cruellest: Not so much in terms of outright difficulty (although perhaps close) would be 16-bit assembler (shudder).
 
#11
LISP (LISt Programming) has been superseded by a version for those with a speech impediment. It is now called Lateral Intelligent Thought Holistic programming (LITHP). I would recommend that
 
#12
For those aspiring to writing games, I'd suggest that they learnt 6502 assembler on a VIC-20; to learn how to write tight, functional code to produce addictive games with intense game-play. In 3.5Kb of RAM. Then let em have a C64.

For those wanting to write anything else. FORTRAN, or COBOL. Write all programs out first, then submit complete with a flowchart, variables list, and a paper-dry run expanding all variables and strings, listing output, and so on.

No reason, simply because I'm old and that was how it was done back when we had real programmers, and computers were kept were they belonged and knew their place. And you had to ask for CPU time.
 
#13
I would also jump on the bandwagon and learn C/C++. The thought being it's a fairly easy jump then to learn J++ and C#. Plus it's not a lot of challenge then learning basic or VB6.

However, if you really want to impress with esoteric knowledge then you could learn to code in OOK (So easy they say a monkey could do it)
 
#14
Actually, the first thing I'd make anyone learn is...

DOCUMENTATION

Hardest language in the world, that one. Must be - very very few people use it.
 
#16
However, if you really want to impress with esoteric knowledge then you could learn to code in OOK (So easy they say a monkey could do it)
Actually, monkeys can't learn it, not all primates can either - it takes a really great ape to do that.

As an aside, I believe there's new Object Oriented version coming out - keep your eyes open for Ook#.
 
#17
For those aspiring to writing games, I'd suggest that they learnt 6502 assembler on a VIC-20; to learn how to write tight, functional code to produce addictive games with intense game-play. In 3.5Kb of RAM. Then let em have a C64.
Z80. Nascom 1. 2 KBi. I rewrote the screen driver to free up most of the 256 bytes left unused by the shoddy screen scrolling routine - as well as the massive increase in available RAM, I got 16 (overlapping) windows to boot!

Aye, them were days when the famous "I can write that routine in < x bytes" game wasn't just fun but necessary.

For those wanting to write anything else. FORTRAN, or COBOL. Write all programs out first, then submit complete with a flowchart, variables list, and a paper-dry run expanding all variables and strings, listing output, and so on.
Am I allowed punched cards? I hope you mean nothing later than FORTRAN IV and not any of the Johnny-come-lately upstarts. :evil:

Although, I have to confess I preferred the mighty Algol 68R.

No reason, simply because I'm old and that was how it was done back when we had real programmers, and computers were kept were they belonged and knew their place. And you had to ask for CPU time.
... unless, ahem, you happened to be proto-hacker and somehow found yourself in possession of your professor's account details or had the photos of the computer operators' party (yep, there was a girl at one of them - she'd obviously wandered into the room by accident, but hey, account time's account time and blackmail's blackmail :twisted:)
 
#18
Z80 myself as well, fun discovering that SLL was actually there except it didn't quite work properly (stuck a 1 in bit0 rather then a 0) and that you could split the IX and IY registers into 2 8 bit halves. Aaaaaand how the hell do I remember that? ;-)
 
#19
Definately not ADA

Strong typing is for people with weak minds!
 
#20
Z80. Nascom 1. 2 KBi. I rewrote the screen driver to free up most of the 256 bytes left unused by the shoddy screen scrolling routine - as well as the massive increase in available RAM, I got 16 (overlapping) windows to boot!
The Nascom had windows??? I remember it, and remember one turning up at the local computer club. Have ancient issues of PCW, Computing Today, which features it... must go dig them out.[/QUOTE]

Aye, them were days when the famous "I can write that routine in < x bytes" game wasn't just fun but necessary.
When CRAM was a utility which did exactly what it said :) And it - or a flavour thereof - appeared in just about every magazine's "readers programs" submissions for <insert brand> of computer!

Am I allowed punched cards? I hope you mean nothing later than FORTRAN IV and not any of the Johnny-come-lately upstarts. :evil:
I expected nothing less. All programs to be submitted to a data entry operator, for batch processing. Results will be returned with a 48hr turn around. Paper tape may be used for local storage during "off-line" development if a dumb terminal is available.

... unless, ahem, you happened to be proto-hacker and somehow found yourself in possession of your professor's account details
I still remember ours - LOGIN: QT Password: SUZIE5 Discovering the ICL2903 command system was useful, DSAVE with parameters to store our programs (or better still, 'philez') in the area for other schools, for example. And after the first humongous phone bill, learning how to "box" with a 2280Khz tone down the acoustic coupler, before reaching out to new found friends in the US. And then later for using when we had a PET at school. Then an RM480Z.

or had the photos of the computer operators' party (yep, there was a girl at one of them - she'd obviously wandered into the room by accident, but hey, account time's account time and blackmail's blackmail :twisted:)
NO WAY! A !!!FEMALE!!!
 

Similar threads

Latest Threads

Top