Stop Microsoft

Miscellaneous => Programming & Networking => Topic started by: dmcfarland on 25 November 2005, 21:16

Title: Learning programming-where to start
Post by: dmcfarland on 25 November 2005, 21:16
Happy thanksgiving all. I want to learn how to program. I dont know a thing. Ive only had experience with modifying batch, config.sys, ini and some registry keys. Other than that I dont know a thing about programming or writing code. I am primarily a hardware guy, a little networking, software and ms software, and so on.

Where do I get started? How do I crawl first so I can walk and later on run. What do I start out with? Is it something like HTML, or perl?

Whats the best course for a programming newbie thats pretty much starting from scratch?

Thanks :thumbup:
Title: Re: Learning programming-where to start
Post by: TheQuirk on 25 November 2005, 21:51
Anything you want, really. Just buy a book from your local book store and start going through it. Once you're done, start working on more interesting things.

Personally, I would recommend Python (http://python.org/). It's free and popular, and the website has a guide which will teach you all the basics.
Title: Re: Learning programming-where to start
Post by: H_TeXMeX_H on 25 November 2005, 21:57
Yup, python is probably the best language to start with ... and they have tutorials for non-programmers (http://wiki.python.org/moin/BeginnersGuide/NonProgrammers?highlight=%28BeginnersGuide%2F%29) :thumbup:
Title: Re: Learning programming-where to start
Post by: worker201 on 25 November 2005, 23:23
ESR also recommends Python, but as a second language.  First is HTML - if you can't make a web page using vi, then you aren't ready to program.  Personally, I kinda like JavaScript, because it is so useful, and it is an interpreted language, so you can just open your browser to test your programs.
Title: Re: Learning programming-where to start
Post by: dmcfarland on 25 November 2005, 23:45
Isnt htlm a markup langauge? I hate VI. I would rather use emacs or write it up in Open Office, save as text and insert the html tags afterwords.

HTML is a lot of memorization.
Title: Re: Learning programming-where to start
Post by: cymon on 25 November 2005, 23:48
Everything is a lot of memorization. You can't just open up gcc and type whatever the hell you want. You memorize the functions, objects, and you learn how to use them.

You can get some free programming ebooks on Java and C++ from mindview.net
Title: Re: Learning programming-where to start
Post by: solemnwarning on 26 November 2005, 00:04
Code: [Select]
#!/usr/bin/perl

print("Perl pwns all non-compiled languages! :D\n");
Title: Re: Learning programming-where to start
Post by: Pathos on 26 November 2005, 01:13
There is only one programming language: C++

Don't bother with HTML, thats not a imperative.

beaver, kate, kedit, gedit are all reasonable code editors.

get MinGWStudio once the bandwidth exceeded error goes away, its the most beautiful IDE ever.

http://www.parinyasoft.com/mingwstudio.html

There are plenty of free C++ resources but there are a lot of tricks to learn.
Title: Re: Learning programming-where to start
Post by: muzzy on 26 November 2005, 02:53
The government of Muzzylandia cannot recommend C++ to a complete newbie. It has way too many newbie traps and problems, and its abstractions tend to leak to machine level in every implementation of it so you need to understand a lot more than just the programming language when your program doesn't work and you need to fix it.

Python is fine, even though I find the indentation issue to be unholy.
Title: Re: Learning programming-where to start
Post by: solemnwarning on 26 November 2005, 02:54
Quote from: muzzy
The government of Muzzylandia cannot recommend C++ to a complete newbie. It has way too many newbie traps and problems, and its abstractions tend to leak to machine level in every implementation of it so you need to understand a lot more than just the programming language when your program doesn't work and you need to fix it.

Python is fine, even though I find the indentation issue to be unholy.


perl :P
Title: Re: Learning programming-where to start
Post by: Pathos on 26 November 2005, 14:14
Quote from: muzzy
The government of Muzzylandia cannot recommend C++ to a complete newbie. It has way too many newbie traps and problems, and its abstractions tend to leak to machine level in every implementation of it so you need to understand a lot more than just the programming language when your program doesn't work and you need to fix it.

Python is fine, even though I find the indentation issue to be unholy.


only one way to learn... :P

but actually I think java is the best to learn with. I just can't recommend any IDEs worth using...
Title: Re: Learning programming-where to start
Post by: Aloone_Jonez on 26 November 2005, 14:52
Visual Basic and Qbasic's are good newb languages.

Oh sorry they're M$ so I must recommend FreeBASIC (http://www.borg.com/~warrend/guru.html).
Title: Re: Learning programming-where to start
Post by: Orethrius on 27 November 2005, 04:09
Quote from: Aloone_Jonez
Visual Basic and Qbasic's are good newb languages.

Oh sorry they're M$ so I must recommend FreeBASIC (http://www.borg.com/%7Ewarrend/guru.html).
It would seem you're not quite as convicted as your signature belies.

Visual Basic has horrendous loadtimes, and Q is all but gone - find an interpreter. Go ahead, we'll wait. Now for the rest of us that want to get with a REAL programming language instead of a "slap-together-a-script-kiddy-device-in-under-a-minute" language, head on over to pick up MinGW (http://www.mingw.org), GCC (http://gcc.gnu.org/) (you'll need Cygwin (http://www.cygwin.com/mirrors.html) if you expect this particular GNU compiler to compile on a non-GNU system), or Bloodshed Dev-C++ (http://www.bloodshed.net/dev/devcpp.html).

Oh, and Jonez, it seems you linked to the wrong site; FreeBASIC may be found at http://www.freebasic.net/index.php/download (http://www.freebasic.net/index.php/download).
Title: Re: Learning programming-where to start
Post by: Jack2000 on 27 November 2005, 04:55
"slap-together-a-script-kiddy-device-in-under-a-minute"
muhuahah that is the whole Microsoft ideology
Title: Re: Learning programming-where to start
Post by: Pathos on 27 November 2005, 06:05
I LOATHE BLOOSHED DEV-C++

it is the most awful ide...

Hang on... why are you suggesting windows only ides?
Title: Re: Learning programming-where to start
Post by: Orethrius on 27 November 2005, 06:32
Quote from: Pathos
I LOATHE BLOOSHED DEV-C++

it is the most awful ide...

Hang on... why are you suggesting windows only ides?

 A certain someone was quoting Windows-only languages, so why not reply with Windows IDEs that support ISO-recognised languages?  ;)
Title: Re: Learning programming-where to start
Post by: worker201 on 28 November 2005, 01:22
IDEs are for pussies.  Development requires a pencil, an idea, and a text editor.
Title: Re: Learning programming-where to start
Post by: Aloone_Jonez on 28 November 2005, 01:38
Quote from: Orethrius
Visual Basic has horrendous loadtimes,

To be honest I haven't used VB properly since version 3.0, I've use 4 a bit though not much.

Quote from: Orethrius
and Q is all but gone - find an interpreter.

Qbasic is still supported by a reasonable sized Internet community (most of whom have now moved to FreeBASIC now anyway), interpriters are a great way to leard, speed isn't their advantage I know but the great thing is there's no messing around with compiling.

EDIT:
FreeBASIC is a compiler - oh well but I hope you get the point.


Quote from: Orethrius
Go ahead, we'll wait. Now for the rest of us that want to get with a REAL programming language instead of a "slap-together-a-script-kiddy-device-in-under-a-minute" language, head on over to pick up MinGW (http://www.mingw.org), GCC (http://gcc.gnu.org/) (you'll need Cygwin (http://www.cygwin.com/mirrors.html) if you expect this particular GNU compiler to compile on a non-GNU system), or Bloodshed Dev-C++ (http://www.bloodshed.net/dev/devcpp.html).

C is way to hard for a newb to learn, (even asm is easier in my oppinion), Basic is better for newbs and FreeBASIC is nearly as fast as GCC, it has pointers and will hopefully become object oriented  in the end. It takse adges to learn the basics of C while after spending same time learning Basic you would've written your first program.
Title: Re: Learning programming-where to start
Post by: Pathos on 28 November 2005, 07:52
java java java java = c++ for dummies.

basic is shite. I had to completely relearn how to program because I used it.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 17:48
Firstly, ignore what everyone else says they don't have a clue. Except muzzy, because he is my hero and I would like to kiss his big hairy face one day.

Alright.

If you want to get started on Object Orientated programming go and learn C#, which isn't highly multiplatform yet, but it makes more sense to a newb than most OO langauges out already. Then I would suggest you learn C++ or Java. I would choose C++ because there are more compilers for it than the other two, it runs on just about anything, any operating system, and has a lot of support. C++ is popular, which is a really good reason to use it. Java isn't to bad either, but C# is very similar, and can do a lot of things that Java cannot.

If you don't want to fuck around with OO programming (I will try and explain the different later[/i] then just learn fucking C. C like C++ has a shitload of compilers, support, and its probably still the most used and popular language on earth. Unix, Linux, VMS, and the bulk of the Windows NT/2000/XP/2003 kernel was written in C.

Object Orientated programming uses objects and classes, which make it easier to put together things like large interfaces, GUIs and such. Objects are things like "Cats" and "Dogs". Languages like C however use functions like "Bark like a dog" and "eat like a cat", or more in the context of computers "draw something on the screen", "print some text", "open a socket to another host, etc". A class in OO programming could contain a miryiad of functions related to that class. And then to make things even simpler you have stuff like namespace.

My suggestion is that you start with an OO language because it can be tricky to learn OO later if your mind is already poisoned with other languages, especially things like BASIC and Visual Basic, which you might as well kill yourself and learn OO in your next life (my first languge was basic, its not my fault, I was 7) and when I tried to learn C++ it was REALLY hard.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 18:30
Quote
or write it up in Open Office


Are you fucked in the skull, brain damaged, severely schizophrenic, missing a chromosome, or just fucking inbred?
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 18:31
Oh and another totally kick arse language that covers nearly everything is PHP. Its also pretty easy to implement and use, has a shitload of functions, and is just fucking cool.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 18:33
Quote from: Aloone_Jonez
Visual Basic and Qbasic's are good newb languages.

Oh sorry they're M$ so I must recommend FreeBASIC (http://www.borg.com/~warrend/guru.html).


You fucking tool (no offence).

Those are the worst languages to start with in the world, don't touch them. I started with them and I regret it.

They don't support jack fucking squat (especially FreeBASIC and QBASIC) in the modern world and just plain suck. They also teach REALLY BAD FUCKING HABITS for a new programmer that make it almost impossible to wrap your mind around real langauges and anything that works remotely close to the machine level.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 18:35
Quote
ESR also recommends Python


I am offically never touching python. I hate ESR.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 18:37
Quote from: muzzy
The government of Muzzylandia cannot recommend C++ to a complete newbie. It has way too many newbie traps and problems, and its abstractions tend to leak to machine level in every implementation of it so you need to understand a lot more than just the programming language when your program doesn't work and you need to fix it.

Python is fine, even though I find the indentation issue to be unholy.


I kinda understand what you mean having learned the ghastly language at like... 13 years old... It can get pretty confusing (ESPECIALLY IF YOU KNEW FUCKING QBASIC ARGH SUICIDE PLEASE NOW OH GOD THE TRUMA MICROSOFT SHOULD BE PAYING MY SHRINK BILLS)... but languages like C and C++ actually tend to force you to learn about at least the basics of how computers work to master them, which is good.

My primary word of advice in the world of hacking and programming is to learn how it works, not just how to work it.
Title: Re: Learning programming-where to start
Post by: Kintaro on 29 November 2005, 19:40
Quote from: solemnwarning
Code: [Select]
#!/usr/bin/perl

print("Perl pwns all non-compiled languages! :D\n");


True
Title: Re: Learning programming-where to start
Post by: TheQuirk on 29 November 2005, 22:05
Considering the fact that Python is OO, is easy to learn, doesn't teach you terrible programming babits, is actually readable, and things written in it are easy to reimplement in Java and C makes it a pretty worthy candidate, I think.

Anyway, the OP seems to have forgotten that this thread exists, so I guess there's no reason for this discussion!
Title: Re: Learning programming-where to start
Post by: Aloone_Jonez on 30 November 2005, 00:21
Quote from: Kintaro
You fucking tool (no offence).

Those are the worst languages to start with in the world, don't touch them. I started with them and I regret it.

They don't support jack fucking squat (especially FreeBASIC and QBASIC) in the modern world and just plain suck. They also teach REALLY BAD FUCKING HABITS for a new programmer that make it almost impossible to wrap your mind around real langauges and anything that works remotely close to the machine level.

I see your point, I used to program in QBasic then started with C and gave up because I realized there were better things in life.
Title: Re: Learning programming-where to start
Post by: Kintaro on 30 November 2005, 06:25
Quote from: TheQuirk
Considering the fact that Python is OO, is easy to learn, doesn't teach you terrible programming babits, is actually readable, and things written in it are easy to reimplement in Java and C makes it a pretty worthy candidate, I think.

Anyway, the OP seems to have forgotten that this thread exists, so I guess there's no reason for this discussion!

PHP is the same.
Title: Re: Learning programming-where to start
Post by: TheQuirk on 30 November 2005, 23:12
Different strokes for different folks. I personally find Python a lot more readable (and a lot more useful, since you can do a lot more with Python when it comes to standalone apps; then again, if the guy wants to make online toys, either one will do).

I've only used PHP 3 and PHP 4, and they definitely weren't very OO. I've heard that PHP 5 id different, though.
Title: Re: Learning programming-where to start
Post by: H_TeXMeX_H on 1 December 2005, 03:16
The concepts are what matter most ... I mean after I learned C++, I was quickly able to figure out Basic and Java and Python, and pretty much any language as long as I know the functions, which I can just google most of the time. Of course, starting off with a difficult language can be frustrating ... is there a difficult language ? Not really ... some are easier to understand and use, but that's more personal preference. Well, ok, this doesn't end the debate ... you gotta pick a language ... I say pick one that has lots of available online tutorials for n00bs, has OOP capabilities, and has free compilers/interpreters available for download across multiple platforms. (python ... or any other language that fits)
Title: Re: Learning programming-where to start
Post by: Kintaro on 2 December 2005, 10:35
I agree with the above. More than language it is about reading, concentration, dedication, and understanding the systems in place.