PDA

View Full Version : Computer Programming - Where to start?



diargasm
June 28th, 2007, 06:33 AM
I've taken an interest in software programming, but I don't really have much of an idea on where to start exactly. Any books I can read to get into it? Or should I just stick with the college courses solely?

hellomeow
June 28th, 2007, 06:42 AM
Opinions on this topic will differ from person to person, but I think taking college courses would be a pretty good starting point. You will also have the ability to socialize with like-minded programmers. Certificates, if you choose to pursue them, can be quite lucrative. After your first semester, you should have the basics of programming down, and all of a sudden, different programming languages won't seem very different at all and will be a snap to pick up. Books, of course, are also a good supplement. If you are up to it, majoring in computer science is a fulfilling experience and can teach you a lot about programming theory (discrete mathematics is a very interesting course, and after taking it, you will see that the concepts of mathematics and computer science are quite closely related --- computer science can be interpreted, in fact, as a complete formalization of mathematics.)

Tomosaur
June 28th, 2007, 01:26 PM
Pretty much everything you will need to know is freely available on the internet. Your real predicament is which language you should learn first, and this is, unfortunately, a question with no real answer. Wikipedia is a good place to read about many different programming languages, but here are a few pointers to start you off:

The Linux kernel is mostly written in C, which is a powerful language but is also a little confusing for people with no experience.

If you want to program for Ubuntu, the developers prefer you to use Python, which is a very popular, easy to learn, and object oriented programming language, which is also cross-platform depending on the toolkits you use.

C++ is a descendent of C, and is focused on object-oriented programming. It is also very powerful.

Java is an object oriented programming language which has a C-like syntax (this means that code written in Java looks like code written in C). Java comes with a lot of libraries to perform different tasks. Java is also completely cross platform, meaning a program written on Linux will work on Windows, or any other OS which has a Java Runtime Environment installed.

The Ubuntu forums also has a Programmer's section, just look for it on the main page :)

Zzl1xndd
June 28th, 2007, 03:36 PM
If you don't wish to go to school then there are a lot of books and I have a lot of them in PDF format. feel free to ask if you would like some. As was said above really you gotta pick a language, I havn't done any programing in about 5 years and I can tell you that if you don't use it it will go away so also keep up and write stuff from time to time. I started with Qbasic but C or Python would probably be the best option.

dptxp
June 28th, 2007, 03:54 PM
You learn one language, you can learn others on your own.

Do not start with GUI.

C will be a good choice to start with.

j.agee
August 3rd, 2008, 09:16 PM
Here's a link to an online MIT book used to to teach computer science.http://mitpress.mit.edu/sicp/

Delever
August 3rd, 2008, 09:51 PM
Hmm, how I learned... I was just playing with it. Wrote first program with excel VB macros, had no internet back then, so I spent good time making different macros and looking at generated code. I remember my first program was fake virus joke which tried to scare user about windows being sent to recycle bin. All of it with deletion animation and black screen. The code was horrible, without a single loop, and took too much time to write, but it was fun!

So I suggest at least some learning before jumping to code (loops, control structures, variables), and start from simple things.

Methuselah
August 3rd, 2008, 09:52 PM
I recommend python.
It's already installed, gives immediate feedback and has tons of documentation and libraries.
C is great too (C++ was mt first language) but you can pick it up once you learn common programming concepts.

You can play with python by opening a terminal and typing python:
Here is a cool minimalist intro/guide:

http://hetland.org/writing/instant-hacking.html

And if you want more tutorials, there are too many:
http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

and whole books:
http://diveintopython.org/toc/index.html

regomodo
August 3rd, 2008, 10:05 PM
I would not reccomend java or c as a beginner language. I spent more time checking syntax and structure rather than actually doing anything with it.

Alternatively i'd choose Python.

Nostrafus
August 3rd, 2008, 10:13 PM
My advice would be just to tinker with whatever you eventually want to write in. I like using C++ personally, probably because I never bothered to learn Python, which I'm still not sure if I want to.

However I first started with Qbasic, that evil evil language that builds massive programs (My record for one program was 380,000 lines of code in qbasic) As far as all languages are concerned I learned them in this order

Qbasic
HTML
DHTML
VB
C++
Visual C++ (EVIL!)

Other than that, I've touched on a total of 8 other languages, but never seriously gotten into using them, I mostly just learned them to edit a few lines of code to make something work differently.

As for a starting point, use whatever method you find the easiest to learn the code. If that means looking at code that is already written and trying to figure out how it does what it does, then go for it. If that means grabbing a book and reading a chapter every day and trying to memorize it, by all means.

Personally I just look at code and try to figure out what it does but I don't like taking classes, I write my code how I want to write it, not how an instructor says I should write it, if I can make their 200 line of code program do the exact same thing with 30 lines, that's how I'm going to do it. Can't tell you how many times my old teachers in school would yell at me for writing the code differently.

Also as a hint, don't try to write your pet project first, it will be horribly frustrating. Learn the language first, after you've written a few dozen programs, then move on to the one you really wanted to write in the first place, that way simple things like writing "cour" instead of "cout" or forgetting to write "==" instead of "=" won't stop your program from going as well as you want it to, and won't make you abandon your baby.

As a test, if you want a random project to challenge you. Write a program that will spin a roulette wheel 1,000,000,000 times, and output the results to a file which lists each number, the times it was rolled, how much the payout would be, and statistically which would be the safest and most profitable gamble, whether it be a number, a corner, a color, a row, or a set. It's a fun program to write, in theory it works, in reality it really doesn't... safest will always be a color, next to a row/set, then a corner, then a number. Highest payout is the same in reverse order.

LaRoza
August 3rd, 2008, 10:23 PM
http://ubuntuforums.org/showthread.php?t=832449