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
 
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?
 
i have looked at the source of different things and i just want to learn how they really work and then make them myself.
 
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.
 
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!"
 
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.
 
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++.
 
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.
 
Start with C. It gives you all the fundamentals without making anything too easy for you.
 
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.
 
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.
 
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?
 
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.
 
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
 
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.
 
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?
 
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
 
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.
 
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.
 
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.
 
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?
 
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.
 
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 :(
 
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. ;)
 
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.
 
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
 
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/
 
Back
Top