User Name
Password

Go Back   Planetarion Forums > Non Planetarion Discussions > Programming and Discussion

Reply
Thread Tools Display Modes
Unread 20 Feb 2008, 08:02   #1
s7n
7ish
 
Join Date: Jul 2004
Location: Melbourne
Posts: 62
s7n is an unknown quantity at this point
New to Programming

So I'm starting Uni in two weeks I'm doing a course called Computer Science which will be focusing a lot on programming. I've been doing some small programming here and there, now I want to get some hard programming done before I start Uni. My quest is where can I start exactly? Should I just start reading up on C++?

Thanks.
__________________
eXilition Insomnia NoX Jenova
s7n is offline   Reply With Quote
Unread 20 Feb 2008, 15:17   #2
Phil^
Insomniac
 
Phil^'s Avatar
 
Join Date: May 2003
Posts: 3,583
Phil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus would
Re: New to Programming

yes.
also look into c# and java
__________________
Phil^
Phil^ is offline   Reply With Quote
Unread 20 Feb 2008, 17:57   #3
Nodrog
Registered User
 
Join Date: Jun 2000
Posts: 8,476
Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.
Re: New to Programming

Depends on the course/uni; if its a software engineering based degree theyll probably want you to use something applications-orientetd like Java, but if its more computer sciencey they might want you use something like Lisp/Haskell/Ocaml instead since these are generally better for teaching abstract concepts. Your best bet would be to contact the course organiser and ask what theyd suggest . C++ is always the wrong option though, dont go anywhere near it unless someone is forcing you.
Nodrog is offline   Reply With Quote
Unread 21 Feb 2008, 03:30   #4
s7n
7ish
 
Join Date: Jul 2004
Location: Melbourne
Posts: 62
s7n is an unknown quantity at this point
Re: New to Programming

Quote:
Originally Posted by Nodrog
Depends on the course/uni; if its a software engineering based degree theyll probably want you to use something applications-orientetd like Java, but if its more computer sciencey they might want you use something like Lisp/Haskell/Ocaml instead since these are generally better for teaching abstract concepts. Your best bet would be to contact the course organiser and ask what theyd suggest . C++ is always the wrong option though, dont go anywhere near it unless someone is forcing you.
How come I should keep away from C++?
__________________
eXilition Insomnia NoX Jenova
s7n is offline   Reply With Quote
Unread 21 Feb 2008, 21:52   #5
Nodrog
Registered User
 
Join Date: Jun 2000
Posts: 8,476
Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.
Re: New to Programming

its too low-level, you will spend too much time fighting against stupid syntax and machine level stuff rather than learning proper programming concepts. C++ is only a useful language when your code has to run extremely fast, and for 99% of applications speed isnt the primary issue. If youre serious about programming then its important to learn C at some point to get an understanding of whats actually going on inside your computer, but theres really no benefit in learning C++ unless you either envision a career which requires you to do it, or are working on some very niche low level things (modern 3d games, integrated circuits, etc). Its a terrible first-language to learn at any rate, because all the important concepts get obscured by the pathologies of the language and youll just end up fighting with C++ rather than actually learning general programming skills.
Nodrog is offline   Reply With Quote
Unread 24 Feb 2008, 20:08   #6
Heartless
CRASHING BEATS 'N FANTASY
 
Heartless's Avatar
 
Join Date: Mar 2001
Location: Cold Country.
Posts: 1,912
Heartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like himHeartless is an inspiration to us all and we should try to be more like him
Re: New to Programming

Quote:
Originally Posted by Nodrog
its too low-level, you will spend too much time fighting against stupid syntax and machine level stuff rather than learning proper programming concepts.C++ is only a useful language when your code has to run extremely fast, and for 99% of applications speed isnt the primary issue. If youre serious about programming then its important to learn C at some point to get an understanding of whats actually going on inside your computer, but theres really no benefit in learning C++ unless you either envision a career which requires you to do it, or are working on some very niche low level things (modern 3d games, integrated circuits, etc).

You are mistaking C++ with C. And I would always expose people to C / Assembler first (or at least very early on) to teach them how a computer really works*. Then we can shift on and explain about abstract concepts like double linked lists, sorting algorithms and so on.

Quote:
Originally Posted by Nodrog
Its a terrible first-language to learn at any rate, because all the important concepts get obscured by the pathologies of the language and youll just end up fighting with C++ rather than actually learning general programming skills.
C++ is certainly no worse to learn than Java. Granted, you have added payload of taking care about your memory management, but in the end that is something every programmer should know about. C++ is by default not obscuring anything, even though it can be used to write fairly obfuscating code (template meta programming <3). But just because the language allows you to do something it does not necessarily mean that you should use it right from the start. There is a correct time and place for everything.

I do, however, agree that in the end it is more boiling down to what one wants to achieve first. There is no absolute right, nor total wrong when it comes to learning a programming language, it all just depends upon your goals.
Want to develop ordinary applications? Go with Java / C# / C++.
Want to do some funny scientific stuff? Go Haskell / Python and the likes.
Want to push hardware to its real limits? Go C / ASM, and make sure you get good understand of the operating system and hardware of your targetted device.

Or do it like Knuth and use some fictional architecture to not have such stupid discussions about programming languages :-)

*Especially because it shows that a computer's resources are actually fairly limited, and that a computer is only good at following your instructions.
__________________
Ią! Ią! Munin F'tagn! - [*scendancy]
Heartless is offline   Reply With Quote
Unread 26 Feb 2008, 18:15   #7
Hebdomad
I ♡ ☠
 
Join Date: Oct 2006
Posts: 834
Hebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus would
Re: New to Programming

You need to learn about ASM and C to understand how your computer works. C will teach you memory management. ASM will teach you about processor cycles.

You need to learn about functional programming to understand how to use first-order functions (which means you treat functions as you would ints, characters and strings) as means of abstraction. Lisp, Scheme or Haskell are good for this. Although Python, C# and Java 7 (6?) (when it's released) all give you the ability to use functions as first class objects (they're also called closures), so you could learn it via those languages; although as they don't force you to program in a functional style you may default back to stateful (object orientated) programming which would defeat the purpose.

You need to learn about object orientated programming to understand how to manage state (data) in your programs. At this point you will realise the real benefit of functional programming, which is bereft of state in the conventional sense.

I realise I haven't really explained this well to a newbie. But two things 1) C++ forces you into its dogma which hinders your productivity (what nodrog said) 2) use python - you can code in object orientated or functional style, but you need to actually understand them both before (or during) you code to really use it as a teaching aide.

You can learn to code and you can learn to create programs. Most courses teach you to code, not to create programs. They teach you how to do something, not why.
Hebdomad is offline   Reply With Quote
Unread 28 Feb 2008, 09:02   #8
s7n
7ish
 
Join Date: Jul 2004
Location: Melbourne
Posts: 62
s7n is an unknown quantity at this point
Re: New to Programming

Firstly I would like to thank everyone for their input. This week I have been doing the Orientation program, and it seems that Java is the language we will be learning through first semester.

I will be studying this, but on top of this I will be going through things mentioned in this post. Mostly likely ASM and C just to get the basic understanding of the inner workings of the computer.
__________________
eXilition Insomnia NoX Jenova
s7n is offline   Reply With Quote
Unread 8 Mar 2008, 20:46   #9
Hebdomad
I ♡ ☠
 
Join Date: Oct 2006
Posts: 834
Hebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus wouldHebdomad spreads love and joy to the forum in the same way Jesus would
Re: New to Programming

Oh dear god, Java.

Please bear in mind, in Java there's tendency to start making GUIs as fast as possible without understanding underlying programming algorithms - like binary search and linked lists - and how to design programs - for instance, I doubt you'll ever wonder if inheritence is the best solution to whatever problem you're presented with.

Also, there is one thing with Java: it's 70% boilerplate code. Bare in mind, that in many other languages you're not expected to jump through as many hoops as Java requires.

Finally, learn ASM until you realise how your processor is being used. Learn C until you realise how your memory is being used.
Hebdomad is offline   Reply With Quote
Unread 10 Mar 2008, 16:17   #10
Nodrog
Registered User
 
Join Date: Jun 2000
Posts: 8,476
Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.Nodrog has ascended to a higher existance and no longer needs rep points to prove the size of his e-penis.
Re: New to Programming

I really dont see any benefit in learning ASM unless youve been programming for a while, but if youre going to do it then learn something coherent like MIPS rather than x86, and study it as part of a computer hardware course in general rather than on as a 'language' on its own. But seriously, dont study ASM if youre new to programming: C is as low-level as you need to go, and even that is too low level imo till youve grasped more fundamental concepts. This is a farily popular book on computer hardware/asm that uses MIPS though, but you really dont want to read it at this stage.

Last edited by Nodrog; 10 Mar 2008 at 16:25.
Nodrog is offline   Reply With Quote
Unread 11 Mar 2008, 16:16   #11
[DW]Entropy
Ent|lunch
 
[DW]Entropy's Avatar
 
Join Date: Oct 2006
Location: Liverpool
Posts: 539
[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold[DW]Entropy is a splendid one to behold
Re: New to Programming

if its anything like the course i took the java will be as far as you go. In the second year we took on advanced OOP. But none of the modules covered any other programming languages. I was forced to take C++ for my final year project which sucks due to what Nodrog said. Don't be coerced into doing it. Pick your own based on other peoples opinions and what you feel comfortable with
__________________
[F-Crew] - You know when you've been [FC]uked

"Don't tell people how to do things, tell them what to do and let them surprise you with their results."

"Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile"
[DW]Entropy is offline   Reply With Quote
Unread 13 Mar 2008, 10:03   #12
s7n
7ish
 
Join Date: Jul 2004
Location: Melbourne
Posts: 62
s7n is an unknown quantity at this point
Re: New to Programming

I've just found out that we are going to study ASM and also SQL. Just want to thank everyone again for their contribution
__________________
eXilition Insomnia NoX Jenova
s7n is offline   Reply With Quote
Unread 15 Mar 2008, 18:00   #13
Structural Integrity
Rawr rawr
 
Structural Integrity's Avatar
 
Join Date: Dec 2000
Location: Upside down
Posts: 5,300
Structural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriend
Re: New to Programming

Quote:
Originally Posted by s7n
I've just found out that we are going to study ASM and also SQL. Just want to thank everyone again for their contribution
Is that it?
ASM and SQL hardly make a coherent course. They are worlds apart.

I see the question about "which language to learn" asked quite often on beginners forums, and there is no really good answer to this. The reason is that you need to "use the right tool for the right job". And there are thousands of tools in CS, each of which is good/better at a particular thing.
If you want to learn to create web pages, then learn HTML, CSS and any server-side scripting language. If you want to create fancy application GUIs then learn C#/.NET3.0 and WPF. If you want to write applications for embedded 16-bit platforms then learn Assembly/C.
So you want to learn how to do programming... sure... I can teach you what "if" and "else" constructs do, or how a "while" loop works. And you don't have to learn ANY language for that.

So every language has its own strengths and weaknesses. And if it's the right language for you to learn depends on what you want to make.
If you need to have good memory control and want to be close to the OS/platform for performance reasons, or because the platform doesn't allow otherwise, then go for C/C++
If you venture in the realm of Java/C#/VB/Python low-level things are mostly hidden for you, which is, arguably, a good thing. These languages are good at quickly putting together an application without having to worry about things like platform or memory.
PHP, ASP, HTML and CSS are your weapons of choice for creating web pages.
SQL is glue between any of the above and a database.


Quote:
Originally Posted by Hebdomad
You can learn to code and you can learn to create programs. Most courses teach you to code, not to create programs. They teach you how to do something, not why.
I disagree with most of Hebdomad's other statements in this thread (the "you have to learn..." ones) but this is more true than anything else. I didn't learn to write applications until I finished school and started to work in the industry.
At work I'm also working with student's code (I write prototypes for research, and some of the research is done by thesis students), and it often looks like they didn't have a clue what they were doing when they came up with their application structure. I can't blame them of course, I produced an even greater mess when I was still at school.

Just, if you want to learn to create applications don't just open up a book about a programming language and read it from start till end. It won't teach you anything. At least not how to write great applications. You have to actually do it.

If you can tell me what you want to make I can try to tell you which languages may suit your needs. If you don't want to make anything, then just open up a random programming language book that tells you about "if" and "else" constructions and "while" loops, it won't matter. The concepts are mostly the same accross languages.
__________________
"Yay"
Structural Integrity is offline   Reply With Quote
Unread 15 Mar 2008, 19:04   #14
Phil^
Insomniac
 
Phil^'s Avatar
 
Join Date: May 2003
Posts: 3,583
Phil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus wouldPhil^ spreads love and joy to the forum in the same way Jesus would
Re: New to Programming

Quote:
Originally Posted by Structural Integrity
If you venture in the realm of Java/C#/VB/Python low-level things are mostly hidden for you, which is, arguably, a good thing. These languages are good at quickly putting together an application without having to worry about things like platform or memory.
PHP, ASP, HTML and CSS are your weapons of choice for creating web pages.
SQL is glue between any of the above and a database.
Also look at jsp/servlets if you are using java already as part of the course for developing websites.
Ultimately, you have to use the right tool for the right job and the choice of what the right tool is, is down to you - the developer at the end of the day.

Things like data structures and design patterns might also be an idea to read up on later on to improve your coding.
__________________
Phil^
Phil^ is offline   Reply With Quote
Unread 15 Mar 2008, 20:07   #15
Structural Integrity
Rawr rawr
 
Structural Integrity's Avatar
 
Join Date: Dec 2000
Location: Upside down
Posts: 5,300
Structural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriendStructural Integrity needs a job and a girlfriend
Re: New to Programming

Quote:
Originally Posted by Phil^
Things like data structures and design patterns might also be an idea to read up on later on to improve your coding.
As a sidenote, if you want to make another leap in your OO coding style then take a look at the online "Code Smells" course by Josh Kerievsky.
It teaches you how to spot "code smells", which are (put very simply) programming constructions that deteriorate code quality. Personally I found this course quite an eye-opener and is IMO well worth the investment.
__________________
"Yay"
Structural Integrity is offline   Reply With Quote
Reply


Thread Tools
Display Modes

Forum Jump


All times are GMT +1. The time now is 18:20.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2002 - 2018