What programming language(s) do you think should be taught at school?

4) It places people who know it in a good position to learn C and C++.

Interesting that you say this, but why not start with C++ off the bat? I did a bit of Java in school and picked up C++ very easily in uni. The basics seem very similar. After that moving from C++ to anything else was a dream.
 
.NET isn't going away anytime soon so C, C++ and C# would be ideal, along with SQL because data is what keeps corporations alive!
 
SQL because data is love , data is life

Yes, I agree.

I did computer science at school and got a CS degree but never learnt more than select * from table join table on key = fkey.

I only do SQL now and can't bare the thought of going back in to mundane OO lang.

Data is life !
 
LOGO for the kids who can read and are just learning maths properly for the first time.

Python and SQL for high schoolers.

These should be mandatory subjects.

Comp sci should be a compulsory subject in grade 8 and 9.
in primary school you get the interest with graphical IDE's and do not focus on code based things at all,

then from there in grade 8 and 9 you do HTML and CSS, do it over two years, with an advanced class for those who excel.
the ones who excel should move on to an ancient text based language like Turbo Pascal, this will get the ground work done.

then from grade 10 to 12 you do Java and SQL.

BUT you should only be able to take it in grade 10 if you took the advanced class in grade 9 and was taught the basic principles of programming, loops, conditional logic, Arrays. ect

I strongly disagree with this everybody should learn to code mentality. Forcing something someone has no interest in will only lead to learners being miserable.
 
C.

A language that can actually be fully learnt.
 
I want to say SQL because it's easier to understand, but it's a QUERY language, not programming language.
I don't agree with that. Having worked with lots of developers of all skill and aptitude levels, I've seldom come across "good" SQL developers that can write efficient, reusable, high performance queries. I always end up rewriting queries for my devs as they tend to be too slow for production environments. I even rewrite queries my devs didn't write at my clients where my devs complain they are running too slow.
 
They're friggen teenagers. Give em python and let them write a silly cli game like Pokemon or something:

Code:
A wild TeachaDouche appears:
[1] Throw ball
[2] Leave

Option:

Save that stuff to a sqlite3 DB, let them take it as far as they can(sell the bastards, travel on a map, fight others...) and BOOM! You either have their interest or not. If not, stop wasting their time and let them go to another class (woodwork, fashion design, cooking, whatever)

And before you say it is a dumb idea, that's exactly what we did. I wrote a cli version of Zapitilsim and my friend wrote an NFS/Fast n Furious app that lets you upgrade cars and race them - all cli and a lot of random.Next() calls.

Leave the bloody theory and *** for uni if they decide to take it further.
 
Pretty much what ESR says below. Though, I disagree with the inclusion of Perl, as I personally consider that transmission line noise more than anything else.

If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site; there's an excellent third-party one at Computer Science Circles.

I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java.

There is perhaps a more general point here. If a language does too much for you, it may be simultaneously a good tool for production and a bad one for learning. It's not only languages that have this problem; web application frameworks like RubyOnRails, CakePHP, Django may make it too easy to reach a superficial sort of understanding that will leave you without resources when you have to tackle a hard problem, or even just debug the solution to an easy one.

If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)

It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.

But be aware that you won't reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.

I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.

Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.

I have had more to say about this learning process in How To Learn Hacking. It's a simple set of instructions, but not an easy one.

http://www.catb.org/esr/faqs/hacker-howto.html
 
Hmmm, I'd say javascript. Or specifically ECMAScript 6. Easily accessible, includes classes and you can run it on so many different platforms.
 
Top
Sign up to the MyBroadband newsletter
X