# Advice for someone who wants to start programming



## dmurfitt (Nov 27, 2002)

Hi,

I just wondered what advice you could give someone (me) who wants to have a bash at programming. What's the best language to start with? I guess ultimately I want to be able to design software for Windows.

Any help would be much appreciated,

Thanks a lot,
Dan


----------



## Chicon (Jul 29, 2004)

Hi dmurfitt,

If you want write some good stuff for Windows, I suggest you C++ as Windows XP represents more than 40 million C++ coding lines. Also, C++ programs are supported by other OS like Linux.
Free C++ development tools exist for Windows, one of the best is *Dev C++*. You can start to write small programs with it.

Also, I suggest you to read this thread if you want to learn C++ : 
*New to C++*.


----------



## dmurfitt (Nov 27, 2002)

That's great, I'll have a look over it this weekend! 

Thanks a lot for your help,
Dan


----------



## InterKnight (Oct 19, 2004)

[WEBQUOTE="Chicon"]Free C++ development tools exist for Windows, one of the best is Dev C++. You can start to write small programs with it.[/WEBQUOTE]

Sorry...I don't mean to divert this thread in any means...I was just curious as to whether Dev-C++ had the capabilities to actually create large projects, or if it was for more simple ones? I can't afford Visual C++, but in turn I've grown quite fond of Dev-C++.

Thanks.

Take care.


----------



## brendandonhu (Jul 8, 2002)

You should look into *Java* if you're interested in cross-platform programming.
Maybe *Python* if you want to learn a scripting language.


----------



## dmurfitt (Nov 27, 2002)

My mate said C and C++ are the best to start with because most of the other languages are stemed from it. The only trouble I have found with the tutorials (and most of the books in fact) is that they start off and slow (which is what I need, because I don't know anything about programming), and then they start using terms which mean nothing to me and boom, I am lost. lol.

I guess I'm in real trouble when I read the "for dummies" books and find them hard. What would be dummer than a dummy? hehe


----------



## LinuxGold (Oct 10, 2003)

I would suggest that you install Linux (dual boot on extra hard drive) and play around with it. It got C++, perl, bash, everything imaginable. Get used to that environment and when you get used to it, you will be able to understand everything that MicroSoft has to offer, including the Operating System itself. 

That is how I got started and I am now programmer.


----------



## codejockey (Feb 11, 2002)

> The only trouble I have found with the tutorials (and most of the books in fact) is that they start off and slow (which is what I need, because I don't know anything about programming), and then they start using terms which mean nothing to me and boom, I am lost. lol.


You should not feel badly. No one is born knowing this stuff, and it takes time just to grok the terminology, the way of thinking, and (Lord help us!) the acronyms. Persistence is everything.

Hang in there ...


----------



## dmurfitt (Nov 27, 2002)

Hehe, thanks mate. It's nice to know I'm not the only one then 

Os for the Linux, that sounds like a good idea. I know there is a lot of open source stuff around. What Linux would you recommend for someone who has little (because I have used it a 'little') experience in it? And can I create the dual boot along side my existing Windows setup?

Thanks for your help everyone, really appreciate it!


----------



## brendandonhu (Jul 8, 2002)

dmurfitt said:


> What Linux would you recommend for someone who has little (because I have used it a 'little') experience in it?


Mandriva, Ubuntu, or Kubuntu. Or make yourself a Knoppix CD to play with.


> And can I create the dual boot along side my existing Windows setup?


----------



## aewarnick (Sep 3, 2002)

I started with C# and then quickly moved to C++. C# helped me with coding style for my controls, and event handling ideas.

You mentioned not being able to afford VS. It's only 100 bucks for the standard edition. But Dev-C++ works fine and there is a free compiler for C# as well.


----------



## LinuxGold (Oct 10, 2003)

dmurfitt said:


> Hehe, thanks mate. It's nice to know I'm not the only one then
> 
> Os for the Linux, that sounds like a good idea. I know there is a lot of open source stuff around. What Linux would you recommend for someone who has little (because I have used it a 'little') experience in it? And can I create the dual boot along side my existing Windows setup?


If you want bootcamp, use Slackware.
If you want GUI-based stuff, use Redhat.

If you want to boot along side your existing windows setup, then you will have to use partition magic or similiar software to resize your windows data on hard drive.


> Thanks for your help everyone, really appreciate it!


----------



## brendandonhu (Jul 8, 2002)

Many Linux distros resize Windows partitions. Mandriva does this, I believe Ubuntu does as well.


----------



## Squashman (Apr 4, 2003)

http://www.delorie.com/djgpp/


----------



## brendandonhu (Jul 8, 2002)

Btw, you can do most linux programming from within Windows using Cygwin or MingW.


----------



## Nerds (Apr 4, 2005)

What do you guys think about asp.net? Thats what im currently working with.. Awesome development!


----------



## lotuseclat79 (Sep 12, 2003)

dmurfitt said:


> Hi,
> 
> I just wondered what advice you could give someone (me) who wants to have a bash at programming. What's the best language to start with? I guess ultimately I want to be able to design software for Windows.
> 
> ...


Hi Dan,

Despite what your mate told you about most languages being stemmed from C, C++ - it is not true! Off topic, and long story for reply.

If you have patience, persistence, a good foundation in logic, know how to think right-brained vs left-brained, and are willing to slog it out - you too can have a bash at programming.

Begin with setting yourself some attainable goals to learn the basics of programming (with all due respect to the replies you have already received):
1) C is often regarded as a high level assembler language because it gives you access to hardware address pointers, etc. It can be a hard language to learn as your first language depending on you background , e.g. are you a EE?
2) To learn the basics, start with what is called a high-level language, and especially learn to debug the high-level programs with a symbolic debugger.
3) Take courses at a local school (night, college, etc.)
4) After you learn the basics of programming from a high-level language and how to debug your programs so they actually work (some would argue that C is a high-level language, others not), set a new goal to learn C. Learn to follow the execution of the program with the symbolic debugger.
5) After you feel comfortable in C, learn an assembler language - Intel would be good as most computers are Intel or Intel hardware addressing formatted - i.e. little endian.
6) Learn shell scripting languages: bourne, bash, C, ksh, perl, python
7) While you are at it, pursue the art of problem solving as a quest in which to express in terms of programming. For example, if you wish to become a games programmer - can there be any bigger bash at programming? Well, yes there can be, but its theoretical - don't want to scare anyone away from programming - check out the requirements for programmers from game company websites, and set your goals to shoot for that - if its your cup of tea!
8) Be willing to learn what you do not know. Curiosity is a good thing!
9) Learn on a Windows system as per your existing goal, but don't forget to learn about Linux in the meantime!

-- Tom


----------

