new programmer

sm0k3d

n00b
Joined
Jan 10, 2005
Messages
47
hey guys, i am really interested in learning how to code and make programs and stuff. but the only problem is, is i have no where to start. can any1 help me start off with a good language to start with and anything else you may think would benefit me in my adventure into programming :D
 
Joined
Dec 13, 2005
Messages
3,588
I started out with BASIC, on my Apple ][ C.... several years ago.... then there was gwbasic, qbasic... Had a good time in college with Visual basic 3.0... Hated COBOL... Got into C++ and VB.net.. Some Java script....

Why do you want to learn programming?
 

sm0k3d

n00b
Joined
Jan 10, 2005
Messages
47
i have looked at the source of different things and i just want to learn how they really work and then make them myself.
 

Wingy

[H]ard|Gawd
Joined
Dec 18, 2000
Messages
1,294
first hit up mikeblas's essay for programming students then I would reccomend C++ or java to learn with since they provide good thing for high level concepts.
 
Joined
Dec 13, 2005
Messages
3,588
first hit up mikeblas's essay for programming students then I would reccomend C++ or java to learn with since they provide good thing for high level concepts.

I'd reccomend starting out with c++ too. I would of had a much easier time with C++ if it were not for all of my years with BASIC.... For loops blew my mind... "FOR without NEXT? No fucking way!"
 

jonneymendoza

Supreme [H]ardness
Joined
Sep 11, 2004
Messages
6,380
yea start with basic and then move to c++ or java. once you know the basics you can easily adapt to any language within a month or two.
 

CefiroZ

Limp Gawd
Joined
Jan 17, 2004
Messages
218
I would avoid C++ and especially Visual Basic. VB, I think, makes people code poorly and C++ has some serious complexity problems that a brand new student will have trouble wrapping their mind around. Pointers are a wonderful example of said complexity. I would go for Java or Python as a starter (or starters), then C++.
 

mikeblas

[H]ard|DCer of the Month - May 2006
Joined
Jun 26, 2004
Messages
12,776
I wrote An Essay For Programming Students a couple of summers ago. It explains why worrying about language is really not a good use of your time, and that the learning abstractly -- outside of any particular language -- is important.

Feel free to let me know if you have any questions after reading it.
 

Zwitterion

Gawd
Joined
Dec 15, 2002
Messages
938
Start with C. It gives you all the fundamentals without making anything too easy for you.
 

TheSpook

Limp Gawd
Joined
Feb 12, 2004
Messages
379
Start with C. It gives you all the fundamentals without making anything too easy for you.

Yes and no -- C might frustrate a new coder to the point of leaving the scene. It is important to learn about memory management and all the joys of C, but the OP might have more fun starting with C++ (my recommendation), Java, or C#.

My path: TI-BASIC/BASIC -> VB4 -> C++ -> Java -> C -> [Ruby/Perl/OCaml/LISP/et cetera]

Edit: Maybe he should start with OCaml or LISP :p ;) - Functional languages are silly.
 

mryerse

2[H]4U
Joined
Jan 29, 2005
Messages
2,116
I would recommend Java or C#. The main reason is because they are widely used languages that are not as picky as C or C++ (don't have to worry about pointers) but more powerful/efficient than VB. Also a good reason is that if you want into the UW computer science program they highly recommend Java. I use C# because I have VS .Net for free and love it.
 

enlightenedby42

Supreme [H]ardness
Joined
Jan 19, 2005
Messages
4,412
Definitely read Mike's essay as everybody has said.

I've been liking Java quite a bit. At bare minimum, even the high end development tools are mostly free and the documentation available to the public is second to none.

Check out Sun's own reasonably decent "getting started" stuff. Make a Hello World or something and see if you find it enjoyable maybe?
 

osalcido

[H]ard|Gawd
Joined
Nov 10, 2005
Messages
1,481
I would avoid C++ and especially Visual Basic. VB, I think, makes people code poorly and C++ has some serious complexity problems that a brand new student will have trouble wrapping their mind around. Pointers are a wonderful example of said complexity. I would go for Java or Python as a starter (or starters), then C++.

:rolleyes:

Any language can be coded poorly.
 

osalcido

[H]ard|Gawd
Joined
Nov 10, 2005
Messages
1,481
I would avoid C++ and especially Visual Basic. VB, I think, makes people code poorly and C++ has some serious complexity problems that a brand new student will have trouble wrapping their mind around. Pointers are a wonderful example of said complexity. I would go for Java or Python as a starter (or starters), then C++.

:rolleyes:

Any language can be coded poorly.

Anyways, everytime we get one of these threads..... we get the same bunch of jokers who try and get the newbie to hang himself with C or ASM. To quote from this thread:

"Start with C. It gives you all the fundamentals without making anything too easy for you."

Umm yeah....what "fundamentals" does C have that no other language has? OOP? garbage collection? Why do you even need to learn a specific language to learn the fundamentals of programming? comp Programming is a concept that can be described in english...... why not just read a book on programming?
This is like telling someone they have to be a mechanic to know what a car is.

Nice touch at the end, btw. God forbid anyone would learn how-to program too easily.....

In my opinion. VB6 is the easiest and most practical language to learn. You don't have to deal with classes or frameworks or anything like that. You basically add the control and a few lines of code and you got your application. When you see what programs you can start building, you'll want to explore further. In which case i'd suggest VB.Net or any other . Net language
 

Zwitterion

Gawd
Joined
Dec 15, 2002
Messages
938
Umm yeah....what "fundamentals" does C have that no other language has? OOP? garbage collection? Why do you even need to learn a specific language to learn the fundamentals of programming? comp Programming is a concept that can be described in english...... why not just read a book on programming?
This is like telling someone they have to be a mechanic to know what a car is.

Nice touch at the end, btw. God forbid anyone would learn how-to program too easily.....

In my opinion. VB6 is the easiest and most practical language to learn. You don't have to deal with classes or frameworks or anything like that. You basically add the control and a few lines of code and you got your application. When you see what programs you can start building, you'll want to explore further. In which case i'd suggest VB.Net or any other . Net language

Go big or go home. You can't learn to do something unless you pratice, and dragging and dropping pictures onto a screen isn't learning how to program or teaching you logic and data flow.

Start with C, move on to data structures, and then learn assembly or something if you really want to know how things work.
 

mikeblas

[H]ard|DCer of the Month - May 2006
Joined
Jun 26, 2004
Messages
12,776
we get the same bunch of jokers who try and get the newbie to hang himself with C or ASM.
Why do you think it's a joke that I recommend assembler? Do you think I would've been more successful if I had started with another language?

osalcido said:
VB6 is the easiest and most practical language to learn.
Don't you think VB6 is too insular?
 

jonneymendoza

Supreme [H]ardness
Joined
Sep 11, 2004
Messages
6,380
i started with assembly and it sucked big time. almost quit being a programmer. glad i started withvb.net and than c++ than finaly java
 

antirush

Limp Gawd
Joined
Dec 1, 2004
Messages
344
The first two university courses I had for my computer science degree had a very practical approach, in my opinion.

We started out with pseudocode (mostly pencil/paper, in fact) for ~ 2 months just learning the concepts behind computer science - basic control structures, sorting algorithms and the like. At that point we moved onto a ver simple asm unit. We used a javascript 'cpu' called simple computer. It did a good job of teaching the basics of low level interaction with the hardware without being overwhelming - try learning x86 asm with no prior experience ^_^.

The second course started with java and focused mostly on different algorithms and data structures. Java was a good language to start learning those concepts as we didn't have to deal with garbage collection and direct memory access. After the class was fairly comfortable with java and good programming practices in general we moved onto c++. It was fairly easy to add concepts like memory management on top of the solid java foundation.

Now, two years later I see myself as a fairly competent programmer due to that foundation. I'm not limited to any language and can/do choose from a wide variety of languages including python, java c++, and haskell depending on the application.

Edit: Yes, I learned and can use both x86 and mips assembly.
 

Taffy Apple

Limp Gawd
Joined
Sep 4, 2005
Messages
376
Nearly quite using assembler, man all you ever do is move one register to another - how could that ever not be fun? The only thing more fun that that is raw binary! ;)

I started with basic, moved on to pascal, asm then cobol, java, c, natural, then awk and python.

One thing I will say is don't bother with python if your beginning - One of the guys I work with is a python guru and man trust me, you don't wanna be him in 10 years!

I found awk was simple and would recommend you start there. Its list processing, has a begin section, a middle loop section and an end. Simple!

I think the reason people talk about c when your learning is because if you use a *nix box, minutes after your first hello world program you can be a systems programmer.
 

Cyrilix

2[H]4U
Joined
Jan 21, 2005
Messages
2,188
I think the reason people talk about c when your learning is because if you use a *nix box, minutes after your first hello world program you can be a systems programmer.

C++ gives me a feeling that I can do whatever I want whenever I want. I don't get this feeling with any other high-level language.
 
Joined
Mar 9, 2004
Messages
3,322
Anyways, everytime we get one of these threads..... we get the same bunch of jokers who try and get the newbie to hang himself with C or ASM. To quote from this thread:

I never understood why people think C is difficult... And what exactly makes C++ a better choice for learning in comparison to C?
 

mikeblas

[H]ard|DCer of the Month - May 2006
Joined
Jun 26, 2004
Messages
12,776
The people I've talked to do fine with C until they realize they don't understand pointers and dereferencing. Usually, they can't grok this because they know too little about machine architecture, which is why I recommend learning some assembler first.

C++ is usually recommended over C because it's easier to learn OOP in C++ than in C.
 

KaosDG

[H]F Junkie
Joined
Apr 3, 2000
Messages
11,944
The people I've talked to do fine with C until they realize they don't understand pointers and dereferencing. Usually, they can't grok this because they know too little about machine architecture, which is why I recommend learning some assembler first.

C++ is usually recommended over C because it's easier to learn OOP in C++ than in C.

I love Assembler

Gotta learn to crawl before you can walk.

I miss writing demos and intros :(
 

Trepidati0n

[H]F Junkie
Joined
Oct 26, 2004
Messages
9,270
Becomming a good programmer has nearly zero to do with the language but rather being able to solve logical puzzles at two levels. The first level being able to come up with a method of taking the input and getting the desired output in the most simple way possible. Ask yourself this...what are all the steps to buttering a piece of toast? Once you master the first level you can go to the second level which is figuring out smarter ways to do things or taking advantage of built in features in certain languages.

You can learn programming with ANY language, but no language can EVER teach you how to logically solve a problem. However, the simplest language (like basic) is typically the best choice since it covers the fundamentals w/o feature creep.

Also, assembly is not simple...it is probably one of the most complex formats there is. It is completely dependant upon the processor you are working on. Do you think doing a read/modify atomic write through cache is something that teaches programming? However, assembly is also one of the most efficient ways to use your hardware. ;)
 

mikeblas

[H]ard|DCer of the Month - May 2006
Joined
Jun 26, 2004
Messages
12,776
Also, assembly is not simple...it is probably one of the most complex formats there is.
I can't guess what you mean by "format" here. Assembly language is painfully simple. Very few opcodes have any hidden side-effects at all. They do what they say, and that's that. They're almost never decomposable.

In higher level languages, you can write three lines of code that take hours to execute, execute millions of lines of other code, load and remove other modules, do physical I/O, and so on -- all as mostly hidden side-effects. If you're using such a language, even in less "economical" ways, are you really learning anything about how to program? Instead, I'd say that you're just learning about the library or runtime environment you're using.

When learning to program, I think it's far more important to be thinking about how computers work -- understanding the machine; how computers work, what they do, what they're good at and what they're not -- is a key skill in using any language for any non-trivial problem.

Do you think doing a read/modify atomic write through cache is something that teaches programming?
What processor offers such an instruction? Meanwhile, it does teach programming, as well as computer architecture. It might not teach much about software engineering, however; though I don't think anybody here has said that it would.
 

sm0k3d

n00b
Joined
Jan 10, 2005
Messages
47
sorry about not replying earlyer, i kinda lost the post lol(couldnt find it on the pages = / ) neway i read the essay an it helped me out a lot, and after going thru all of your posts and actually trying a few different languages (by try i mean attempt to make something better then the Hello World thing) ive decided to go with python. my 'mentor' (a friend who is like a programming guru) suggested it to me after i got very frustrated with some of the other ones (C++ and Java). and so far i love it! i sorta understand whats going on in it and im making decent programs.

i just want to thank you guys for your input and helping me choose the right language to start me off. hopefully soon ill have a cool new program to show off to all of you :D
 

cismajor97

Weaksauce
Joined
Mar 23, 2006
Messages
88
Currently I've been trying to learn C#. In this process I've purchased about half a dozen books, and watched numerous video's and I've yet to still wrap my mind around C#. So by chance I stumbled upon Ruby and it's seems simple enough for me to grasp the concept right away. Hopefully after learning Ruby, I can return back to C# and perhaps have a better understanding of where the pieces fit. So for a beginning langauge I would give Ruby a try if you starting out.

http://www.ruby-lang.org/en/

Here is a online tutorial that works through your browser that shows you how Ruby works.
http://tryruby.hobix.com/
 
Top