The Student Room Group
I was told by many profs on open days that it is best to go to uni with a limited knowledge of the langauges to be able to learn them properly :smile:
Reply 2
I think you better start from the begging, I believe starting to learn a non OO language might be good fro beginers but dont be dissapointed when you enter uni and find out that all your extra work isnt used.

VB isnt OO and is too primitive for most applications, i reccomend java but it takes still java is a scripting language not a compiled one so that might limit you in some ways.

Learn Basic style languages for fun and to learn the basic concepts but if you want to be serious C# is the futre tough c and c++ may interest you more as there are more tutorials on them on the net
Reply 3
Thank you for your replies. I'm not literate, completely, when it comes to scripting languages. What do you mean by '00' languages?
Reply 4
'OO' stands for 'Object-Oriented'. An object-oriented language essentially allows you to define your own variable types, or 'classes'. Every class has a set of data members, which are variables local to the object, and a set of member functions that manipulate data members. The key is that data members can themselves be objects. The result is that we can either use objects in our code as things like data structures and so on (object-aided programming), or we can actually build our program out of objects.

Consider for example an action game. It's going to be much easier to keep track of (say) enemies with an OO approach - each enemy is an Enemy object, probably stored in an array with all the other enemies. If we don't have that, then we're going to end up with something a lot messier and harder to maintain.

As for what language to start with:

C is widely used, but mostly in system applications (stuff like compilers, operating systems etc.) It's also pretty difficult to learn - it's basically as close to assembly as you can get. Steer clear of it for now - if you pick the wrong guide, you'll teach yourself a lot of bad habits.

C++ is basically an extension of C. It's much more widely used (since it supports object-oriented programming), especially in applications like games. Some of the nasty things in C (like memory allocation) have been cleared up a bit, but it's still probably one of the worst languages to learn with. An extremely useful second language, though.

Java is pretty widely used as well. It's completely object-oriented, and it's generally considered quite a good language to learn with. As omaremad says, it's an interpreted language, but apparently the performance is now on par with most compiled languages. The other good thing about it is that it's completely portable - code written for (e.g.) Windows will work on a Mac, any Linux distro, Solaris, basically anything that can run the interpreter. It would be a good choice, although it's missing a couple of useful features for OO work (like operator overloading), and it's difficult to write non-OO code.

VB I basically know very little about, except by reputation. Note, though, that its reputation is that it eats babies. Also note that it's designed to work with Windows, so you can't even use it if you're on a Mac - never mind portable code!

I would recommend Python. It's ostensibly a scripting language, but it's been used in major applications before (like Bittorent) with good results, and it's growing. It's also deceptively powerful - it's a high-level language, so you lose a little functionality, but there are also a lot of things you can do in Python that you can't (easily) do in C++. It supports OO programming, but it's also very easy to program procedurally and functionally, which is good. It's generally considered one of the best languages to learn to program with, and I'd agree with that. Also, the name was derived from Monty Python - that's a big plus. :biggrin: If not Python, then Java.

I'd recommend this guide to start off with - it's available in Java and Python, and it's free. If you want to look into things more seriously, for Python I'd recommend this site (more complex, but covers a lot of stuff the last guide doesn't). For Java, I'd recommend a recent edition of Deitel's "How to Program Java". It's expensive as hell (£40!!!), but well worth it if you can get a copy off eBay.
Reply 5
Good thing you reccomended python, its the best way to get into writing clean code other wise the interpreter whips you XD

I still reccomend c# but java is good

get C# and a free ide off microsft (no compilor though thats for the full version so you cant write an OS with c# without the paid version)

There are load of tutorial videos as well.

c isnt too bad bu yes its a bit slack in some things and good c code can be crap c++ code bc c++ is pickier in casts and stuff
Do what I did and learn the real basics first. 1st generation and 2nd generation languages like binary and assembly! They're a laugh and helped me get a better understanding of how programming works and the basic principles.

Otherwise - look at what languages you'd be doing in uni!
C# is very good, but it's easier starting off with procedural languages, eg. Pascal. Binary and assembly are scary to start off with - it requires a lot of work to get anything working, so I'd start with something higher level if I were you.
Reply 8
Assembler is just sick, it IS not good for learning esp with the move fowards to interpreted/just in time lanuages.

I program ARM and shader asm and i dont like it, but why do i do it? to get things computed quickly(or to make sure the compiler isnt producing garbage) or to acess sepcial hardware.

wrtting

LDR blah,blah;
MUL bah,blah,blah;

wont teach you anything its just breaking down the big picture into step by step instructions, imagine coding a game and having to write the variable names for every enemy :p:

Dont not learn asm till you need to, you wont need asm for pc cpu programming nowadays anyways since the compilers are smarter than humans now.
Reply 9
I've never used C#, and I know nothing about C#, so I won't talk about it except to say that you can get a free IDE for just about any language these days!

I'd very much recommend against assembly, though (and, by extension, machine code) since it's very difficult to actually code anything in larger than "Hello, world!" (even in performance-intensive applications, it's only used to write small functions - the rest is done in a high-level language), it's incredibly easy to get into bad habits, and (as dragons_circle points out) it's very scary.

EDIT: omaremad just said it better than I could!

Looking to see what languages you're doing in university might be a good idea, but check whether the universities actually want you to learn those languages first! Cambridge, for one, starts off by teaching a very obscure language called ML on the grounds that no-one will know it already.
Reply 10
My A level course was based mostly in VB (alot of colleges go with Pascal instead, though i'm glad mine didn't). Seemed like a perfect beginner language to me. Don't try to run before you can walk :smile:
Reply 11
Was that VB6 or VB.net? To be honest I don't think much of VB6 but I suppose it's as good as anything for the absolute basics. VB.net is actually quite good but ultimately pointless since it's pretty much just an alternate syntax for C# for people who are used to VB6.
Reply 12
C++ all the way most of the time you will be programming in an oo way anyway.
Reply 13
My advice would be, don't learn it! Maybe read up on the fundamentals on what programming is and what types of languages there are but other than that, I wouldn't do any. You're going to uni to learn that stuff, there's no rush and you might pick up bad habits whilst learning by yourself :smile:
Reply 14
I wouldn't worry about learning a language before starting uni. York teaches everyone a language called Scheme that a lot of people will have never come across to ensure that everyone starts from a level playing field.

And whatever you do don't learn to program using assembly language. There's no point. If you're using assembly properly then programs you create in it will be built using a totally different set of tricks and techniques. While its interesting to learn/use it once you've mastered a language or two and is very fun to do as part of a module don't attempt it as a beginner. You'll just confuse yourself.
Reply 15
In preparation for University, definitely Java and C++ :smile:
Reply 16
Soulfish

And whatever you do don't learn to program using assembly language. There's no point. If you're using assembly properly then programs you create in it will be built using a totally different set of tricks and techniques. While its interesting to learn/use it once you've mastered a language or two and is very fun to do as part of a module don't attempt it as a beginner. You'll just confuse yourself.

Good points. Assembly language is totally different from high(er) level languages. In this day and age, I doubt anyone uses assembly for anything substantial anyway. It's only really used for performance tweaks and basic low level operational behaviour. It's not neccessarily a bad idea to know a bit about assembly, but think of it as something seperate from programming.

Latest

Trending

Trending