Programming - Need Advice

Don't bother with PHP or VB. These will teach you things in a bad way that could take many months or years to "unlearn".

Would you mind expanding a bit? Genuinely interested. I code exclusively in PHP for web projects and have used VB plenty in the past so am curious to know what elements are 'bad'.

I do not have an affinity for either language it's just what I used for various projects. Rip into them all you want :D
 
md85's post was great. Take his advice.

Try not to pick up bad habits if you're going to teach yourself. When I first went to uni I had no real knowledge of programming but I got better grades than other self-taught students because they picked up bad habits and were too stubborn to address them.
 
ok C++ it is, thanks for the advice guys.

I don't really think you listened to the advice!

Either start with C to learn the fundamentals, or start with C#/Java. IMO (software engineer for 8 years) you should hack about in C and then move onto C#. Java is easy to learn once you know C# (the reverse is true but I feel C# is easier to learn).
 
Would you mind expanding a bit? Genuinely interested. I code exclusively in PHP for web projects and have used VB plenty in the past so am curious to know what elements are 'bad'.

I do not have an affinity for either language it's just what I used for various projects. Rip into them all you want :D

PHP is bad because it is a combined compiler and execution engine, i.e. script. This lack of separation can mislead beginners by not teaching them the difference between compile-time and run-time errors. Which is, IMO, important. Secondly, PHP is a very BCL heavy "language" where there is lots and lots of helper functions built right into it. Beginners of programming don't need shortcuts and helper functions. They want to understand how to split a string, for instance, by themselves. They especially don't need their first introduction to what a BCL does for them with PHP's horrible non-OO flat underscore-ridden mess, either.

VB is bad because it teaches programmers to think about code in a highly verbose way; as though you can read it like an English book. When in fact the current trend with programming languages is to remove verbosity and adopt minimalism. I believe that learning VB as a first language is a bad idea nowadays. And I can say that, because my first language was QBASIC and VB3. It took several years for me to overcome the issues those languages gave me.
 
Last edited:
Just a quick questions lads.
The computer science degree course itself, wouldn't it start from the basics of programming in the first year, from the start is what im trying to say?
 
Just a quick questions lads.
The computer science degree course itself, wouldn't it start from the basics of programming in the first year, from the start is what im trying to say?

Yes it would.

They would generally start with pseudo code and gradually introduce you.
 
Yes it would.

They would generally start with pseudo code and gradually introduce you.

ok, because atm im doing my course + retaking my GCSE Maths, trying to hit those distinctions and merits while retaking my maths, doing assignments, revising its going to be hard to learn programming, but i am really really interested in it so im glad to hear that they start from the basics in the computer science degree. So i presume the course structure would be the following if you was to include the sandwich year:

Year 1: Basics of programming, from the beggining - the start of the course
year 2 : more advanced
year 3: even more advanced.
year 4: placement year

something like that anyway.
 
PHP is bad because it is a combined compiler and execution engine, i.e. script. This lack of separation can mislead beginners by not teaching them the difference between compile-time and run-time errors. Which is, IMO, important. Secondly, PHP is a very BCL heavy "language" where there is lots and lots of helper functions built right into it. Beginners of programming don't need shortcuts and helper functions. They want to understand how to split a string, for instance, by themselves. They especially don't need their first introduction to what a BCL does for them with PHP's horrible non-OO flat underscore-ridden mess, either.

VB is bad because it teaches programmers to think about code in a highly verbose way; as though you can read it like an English book. When in fact the current trend with programming languages is to remove verbosity and adopt minimalism. I believe that learning VB as a first language is a bad idea nowadays. And I can say that, because my first language was QBASIC and VB3. It took several years for me to overcome the issues those languages gave me.

Cheers for that. Agreed with VBs verbosity, I hate it.
 
Everyone has their own opinions on which programming language is the best to learn with. Some people recommend starting high-level so you get to grips with conditionals, loops etc. Others think it's best to start low-level and properly understand memory and what's going on underneath.

I think it's best starting with C. You get the same kind of understanding as any other language, you just won't have to deal with things you don't need to know (such as OO). You don't need to use pointers to understand loops and functions. You don't need objects. But it will eventually expose you to the world of pointers. And once you get pointers your programming life becomes so much.. more. When you do start to use a higher level language such as C# you begin to understand exactly how a (linked) List is implemented, what it's good for, when not to use it. You'll understand what a string exactly is (because obviously one of your programs in C would be to implement your own string implementation :D).

Don't start with PHP. It has too many problems to name. Don't go anywhere near VB - it has been superseded with C#.
 
I really don't recommend learning C as a first language. It has no OO and concepts such as pointers are just confusing for beginners. It's a lovely language but not for starting out.

OP, if you're willing to part with a bit of cash I highly recommend "Objects First with Java".
 
Last edited:
I really don't recommend learning C as a first language. It has no OO and concepts such as pointers are just confusing for beginners. It's a lovely language but not for starting out.

You don't need to use pointers to learn the basics of procedural programming. C is a great language for learning the basics.
 
C is a great language for learning the basics.

The distinction between syntax errors and logical errors becomes quite blurred for beginners coding in C. It lets you get away with murder until run-time then dumps a meaningless error message (to a beginner anyway). This isn't a good learning environment. There's a reason the majority of universities don't start out with C.
 
Smalltalk.

A language designed for teaching programming. It's also so superbly simple that it makes for great everyday programming, too.

Unfortunately you'll find it is not as wide-spread as other languages like Java/C# etc. despite its clear superiority :p
 
i think i might leave it until after the course, where i hopefully will get the grades to enrol on the computer science course, why put myself through the hastle of trying to learn it by myself when in 2 years time, trained lecturers will start from the beginning, the very basics and for four years will teach it to me at university.
 
  • Pick up any good C# reference book,
  • Learn and understand the .NET framework and CLR
  • Learn and Understand OO programming
  • Understand technologies such as Web, WPF, WCF etc
 
The distinction between syntax errors and logical errors becomes quite blurred for beginners coding in C. It lets you get away with murder until run-time then dumps a meaningless error message (to a beginner anyway). This isn't a good learning environment. There's a reason the majority of universities don't start out with C.

Mine did. Went from C to C++ to Java to .NET. Currently use Java every day, .NET occasionally (although I did use it every day for 6 years), occasional Python and quite a bit of BPEL.

Looking back, I think learning C stood me in good stead - it lets you learn the basics of programming whilst removing the need to even think about OO (which, as a complete beginner, you don't need to know). The errors, whilst sometimes cryptic, won't necessarily be an issue - google/stackoverflow/etc are always on hand (they weren't when I was learning and I managed).
 
OO is something you pick up slowly after a good 3 to 4 years of programming.

Universities try to force OO down your throat whilst most people are still grappling about the basics of writing code. You can only teach the basics of OO. After that, it is up to you to fully "grok" it and start bending it to your will. OO is something that takes many many years to become fluent at because it is so far reaching, with so many different patterns, practices and frameworks that can be used to properly achieve it. Look up SOLID principles on Wikipedia.
 
OO is something you pick up slowly after a good 3 to 4 years of programming.

Universities try to force OO down your throat whilst most people are still grappling about the basics of writing code. You can only teach the basics of OO. After that, it is up to you to fully "grok" it and start bending it to your will. OO is something that takes many many years to become fluent at because it is so far reaching, with so many different patterns, practices and frameworks that can be used to properly achieve it. Look up SOLID principles on Wikipedia.

Well said, Also using an OO programming Language != writing OO Code! It is an artform that takes years to master.

Excellent recommendation re: the SOLID principals, I try and drum this into any new developer in our organisation, Also all of Uncle Bob`s books are excellent :)
 
Back
Top Bottom