PDA

View Full Version : How did you learn to program


Pages : [1] 2 3

joedaman
December 20th, 2004, 04:25 AM
I use windows (my copy of ubuntu is on its way) and i have NEVER tryed programing before.

Can you give me some basic tips?????](*,)

az
December 20th, 2004, 08:14 AM
What do you want to do?

Quest-Master
December 20th, 2004, 11:14 AM
Python is probably the best language to start off with. It gives you a fabulous foundation to start off with and teaches you good habits as well.

EdCrypt
December 20th, 2004, 11:41 AM
Python is probably the best language to start off with. It gives you a fabulous foundation to start off with and teaches you good habits as well.

Learning to Program (http://www.freenetpages.co.uk/hp/alan.gauld/)
Beginners Guide (http://www.python.org/moin/BeginnersGuide)

joedaman, Welcome and Good Luck! :-D

Quest-Master
December 20th, 2004, 11:44 AM
Also, Dive Into Python is a nice read as well. It comes installed with Ubuntu, or you can view it online at http://www.diveintopython.org/.

ubuntu_demon
December 20th, 2004, 11:49 AM
I use windows (my copy of ubuntu is on its way) and i have NEVER tryed programing before.

Can you give me some basic tips?????](*,)
In my opinion there are three ways. Depending on your attitude and goals choose the one that fits you.

#1 start bottom-up as close to the machine as you can and then move up to higher languages. (eg start with assembly or C and end up with java,c#,php,perl,python)
(If you are willing to spend a lot of time on learning to program)

#2 start with python and only go closer to the machine when you need more power or want a challenge.

#3 If you are thinking about a specific task (like programming the backend for a website). Try to find the programming language that best fits your needs.

some hints on programming languages (subjective):

matlab is nice for mathematical / technical computing. It's great when you need to quickly implement and try out some algorithm that uses a lot of matrices.

C / C++ : use this to program kernel,drivers,3d engines,stuff that needs max power and is worth the extra programming time

perl : parsing

php : (web)serversided programming

java : platform independent

c# : safer than C,most likely somewhat faster than java, your programs run in windows and linux(with mono)

python : I've read about it gonna try soon. It seems nice for almost everything else. especially : glueing applications together and quickly generating graphical applications / frontends.

az
December 20th, 2004, 12:21 PM
Python is a mitre saw.

Java is a bench saw.

C is a screwdriver.

C++ is a Phillips-head screwdriver.

C# is a screwdriver that has a funny head.

perl is a hammer.

What do you want to build? You cannot argue what tool is the best without knowing what you want to do!

EdCrypt
December 20th, 2004, 02:07 PM
He already said what he wants: learn how to program! :)
I think python is a great learning tool. If you think it is not enough (I still don't think so) you can learn anything else.
Just don't belive in any language slogan!

az
December 20th, 2004, 04:59 PM
I wanna program.

That could mean games or internet utilities or system utilities or anything! You would not use php for games, nor would you use C to make dynamic websites.

_What_ do you want to program?

If this person is thinking about a career in in software engineering, maybe python wold not be as good a choice as C. If this person wants to learn linux and feel comfortable in Unix systems, perhaps just learning bash scripting would be ideal.

Maybe web site design is what turns this persons crank; perl php even java!

You can't just say that one tool is the best. Just like you can't say that a hammer is better than a tape measure.



(Now don't go telling me that python is a swiss army knife.... That would not be accurate!)

Lovechild
December 21st, 2004, 07:54 AM
I was taught C++ and x86 asm in college, later I started learning C# which I enjoy quite a bit.

I would go with C# for a first language, there are good books for it around, even ones based on Mono.

Of course I'm biased.

muzver
December 24th, 2004, 02:15 AM
imho This book (http://savannah.nongnu.org/download/pgubook/ProgrammingGroundUp-1-0-booksize.pdf) is the first book the newbie should read.

wtd
December 29th, 2004, 12:15 AM
I started out with HTML and Javascript. Yes, yes, laugh all you want, but at least the Javascript part of that is actually programming.

At the prompting of a friend I learned Perl so he'd have someone to talk to about such things. He then took up Python, and so I followed along since he showed me code and I started to like it. I first started to understand object orientation here.

Somewhere in this mix I played with C and C++, but didn't really understand either nearly as well as I should have.

When I got access to a Mac with OS X I finally had a decent Obj-C compiler at my disposal, so I picked up that a bit.

I tried to learn Haskell but got confused and dropped it.

I heard about Ruby and gave it a whirl, then found myself really liking it. This is where I got a better grasp of OO concepts, and I started to actually like object orientation.

Researching Ruby I heard talk of Eiffel and checked that out. I rather like it, actually. I looked into Sather but could never find decent tools. Shame, since it looked interesting.

I've worked with Java and consider myself decently proficient, though I keep the API reference bookmarked.

I dabbled in Pike, but never did much with it.

I've played with C# a bit. It's not bad, but I find the naming conventions obnoxious.

I looked into O'Caml, and started to grok the functional paradigm. I credit much of this to psuedo-functional aspects of Ruby.

I've gotten a lot better at most of the aforementioned languages.

I've recently been seduced by Haskell, and this time I'm not horribly intimidated, though I admit not understanding monads very well.

zeroK
December 29th, 2004, 09:47 AM
I started with Java and then moved into both directions (up and down).
Down: C, C++, MIPS ASM
Up: Perl, Python, PHP, Ruby

IMO Java is a good starting point simply because it introduces you to the world of C (because of the syntax) and object oriented programming without giving you the hassle of C++.

rbran100
December 29th, 2004, 01:42 PM
Before i spend time formulating a reply to that, tell me a little about what you want to do. Most people don't wake up and say, "i want to program now". Most that is. So what is your intended goal? that will determine your starting place.

rbran100
December 29th, 2004, 01:47 PM
I started with Java because that is what i was exposed to first.
Then i moved to Perl and Python because that is what RedHat wanted me to use.
I then played with C C++ and nesC, C and C++ because everyone needs to learn C and C++ and then nesC because i was programing tiny little sensors.
Then decided to learn assembly for some unknown reason, programming with that was like pushing a bolder.
Learned php next (lol not much learnig involved there)
Looped back arround to Java again :-) Think i missed a few languages in there...sure of it.

jdodson
December 29th, 2004, 02:07 PM
the only languages one needs:

python - writing a 2d rpg in this one, i have many scripts in python

SQL - i wrote LOTS of databases for my webpages in SQL, some of my scripts store data in SQL.

c - hack some code for an open source project, twclone in this language

php - my whole webpage is in this one. i have programmed other pages in this language.

..... actually rephrase that... the only laguages i use:)

wtd
December 29th, 2004, 03:41 PM
the only languages one needs:

Perhaps, but you'll be a better programmer for knowing more, and more diverse languages. For instance, consider learning a functional language, or a purely prototype-based object-oriented language.

jdodson
December 29th, 2004, 07:29 PM
Perhaps, but you'll be a better programmer for knowing more, and more diverse languages. For instance, consider learning a functional language, or a purely prototype-based object-oriented language.

i started my programming history using basic. not sure how much more functional you can get.

i would rather be good at those languages that i listed than know a million languages and not be good at any i don't tie myself to any language in particular, if one comes along that is better than another i can replace the lacking language. i know "how" to program i don't just learn a language. becoming a better programmer has nothing to do with learning a quadrillion languages, i think it has to do with elegance, tight code and the ability to not reinvent the wheel and a good design(there are many others, those just came to mind). i listed those languages because those are what i personally use, i also have programmed and am faily proficent in the following languages, i just dont personally use them:

c++
swi-prolog
perl
java and javascript
basic
eiffel(sp?)

i dont have tons of time to learn programming languages, though c#/mono does peak my interest. i think sometime i will start hacking on c#.

zeroK
December 29th, 2004, 07:53 PM
c++
swi-prolog
perl
java and javascript
basic
eiffel(sp?)


prolog *runs* *hides* ahh
:-)
Sure, it has its use but I'm really happy everytime I can avoid it :)

jdodson
December 30th, 2004, 12:07 AM
prolog *runs* *hides* ahh
:-)
Sure, it has its use but I'm really happy everytime I can avoid it :)


ya, i do not use it for a reason:) prologs motto should be, "prolog: making easy things tough." then again its pretty good for AI...

panickedthumb
December 30th, 2004, 12:22 AM
Start out on C/C++. That provides a great framework for learning other languages, and it translates pretty well to PHP if you want to do websites. This is all from memory, because though I know PHP rather well, I haven't written anything that needed compiling in a few years and I've forgotten most of it. I was an ADA guru though (that's the intro language at Radford U's CPSC program, or used to be anyway, now it's Java). ADA will get you NOWHERE unless you plan on working for the US Government coding radar systems for battleships.

Like Azz said though, it all depends on what you want to do. I never had any formal training in C/C++ or PHP (because I dropped the CS major), I basically wanted to do stuff and found out how. The best advice I can give you (if you're determined) is to go in head first and figure it out.

wtd
December 30th, 2004, 01:45 AM
i started my programming history using basic. not sure how much more functional you can get.

i would rather be good at those languages that i listed than know a million languages and not be good at any i don't tie myself to any language in particular, if one comes along that is better than another i can replace the lacking language. i know "how" to program i don't just learn a language. becoming a better programmer has nothing to do with learning a quadrillion languages, i think it has to do with elegance, tight code and the ability to not reinvent the wheel and a good design(there are many others, those just came to mind). i listed those languages because those are what i personally use, i also have programmed and am faily proficent in the following languages, i just dont personally use them:

c++
swi-prolog
perl
java and javascript
basic
eiffel(sp?)

i dont have tons of time to learn programming languages, though c#/mono does peak my interest. i think sometime i will start hacking on c#.

I think a good guideline is to set the goal of learning one new language a year. :)

elwis
December 30th, 2004, 01:04 PM
I think a good guideline is to set the goal of learning one new language a year. :)
One new language each year, wasn't that Eric S Raymond who said that!

Ouch, wish I had the time..

wtd
December 30th, 2004, 02:18 PM
One new language each year, wasn't that Eric S Raymond who said that!

Ouch, wish I had the time..

I got it from the Pragmatic Programmers.

Quest-Master
December 30th, 2004, 04:04 PM
I agree with panickedthumb. Even if you won't use it, C++ is the most useful (and most frustrating and difficult) place to start off with programming. Most people give up progging all together because of the difficulty level.

Knowing C++ passes on into just about every other language: PHP, Java, Python, Ruby, Pascal, whatever.

Truly now though, I think Python is the best way for a new programmer to start. It teaches you everything other languages use, a down-to-earth approach on syntax, and not loaded with crap that C++ has which is pretty useless for beginners. (pointers and such)

DoubleDangerClub
December 30th, 2004, 05:45 PM
I bought a book on HTML the first day I got the internet and then moved to Javascript, then VB, then Java, then C++.

If you can get a hold on the loops and if/else statements and logic, you'll be good to go in about anything. Then you have to learn Object-Oriented concepts such as abstraction and inheritence.

Good luck. I started on my own and now develop for a software company.
Books and Internet == good stuff. ;)

lordan
December 30th, 2004, 06:08 PM
Really, I think you can start just about anywhere. To a certain extent, azz is right that you should choose a language based on what you want to program. But it's not all that important either, because once you grasp the whole concept of programming, it's not all that difficult to apply that to other languages.

I personally started off in assembly language and BASIC on a VIC=20. Didn't really do much else until I started programming Pascal and C in high school. Did a bit of C on my Amiga as well, but it was to darn slow, so I mostly stuck to asm.

All in all, if I were to recommend a language, it would probably be C. Or, if you feel like a challenge, malbolge.

EzraBrowser
December 30th, 2004, 08:24 PM
It was easier in my day. In my first week of an engineering degree I was given an intensive course in FORTRAN IV (don't laugh). It was a black and white video shot in about 1966. I used that and Fortran 77 over the next four years of the course.

Engineering was in a recession at the time of my graduation so I became a programmer in the commercial world. It has the advantage of paying more towards the bills. At the start of my commercial career 20 years ago, the first two weeks training were in a structured design method. That was before four weeks of COBOL. It was one of the best training courses I have had. I am sure that everyone has their favourite language for a particular task, but don't get hung up on that. All you need to start with is to understand three simple concepts: sequence, selection, and iteration.

Sequence: do A, then do B, then do C.

Selection:
if Condition 1 is true then do A
else if Condition 2 is true then do B
otherwise do C

Iteration:
while/until Condition 1 is true do A

All languages provide constructs to code these; it's just that some make life more easy than others in certain situations. Do what everyone else does, and copy what you consider to be a good solution to a similar problem.

Ozitraveller
December 30th, 2004, 08:53 PM
Yes I did Fortran IV too as well as Cobol, PL/1. But I think the first code I wrote was assembler and some low level machine code (YUK!, and how I hated it too), and Basic on Dec PDP11/40.

wtd
December 31st, 2004, 04:24 AM
Truly now though, I think Python is the best way for a new programmer to start. It teaches you everything other languages use, a down-to-earth approach on syntax, and not loaded with crap that C++ has which is pretty useless for beginners. (pointers and such)

I thought so when I first learned Python too. Now, though I would say Ruby seems a better fit. Python does a decent job, but it's OO is just too "tacked on". Understanding things like public, private, and protected is important, as is knowing how to deal with encapsulation, which Python just doesn't emphasize, what with everything being public by default.

Python's a good one to have under your belt, certainly, and in a world without Ruby it'd be the ideal beginner language, but with Ruby kicking around...

clsdaniel
December 31st, 2004, 11:25 AM
Well, basically, i started programing in VB on windows, yes gentlemen, i started on windows like most people. But then i reached the limits of the languaje in terms of performance, then i tried to code some C to enhance my VB code and struggled a bit with the languaje, bit didn't learned it well, then i learned i could embed assembler on my C dlls, then i learned x86 assembly, which was pretty simple and easy to use, along with some mmx and sse extensions that comes really handy.

Then it happened, my windows died and couldn't repair it, and installed a copy of Red Hat i had (v5.2), this was the first time i used linux, it was really difficult, but i learned right away basic usage, and started to learn C more seriously, after all i was stuck with it :)

Then i learned C++, maked some jobs on PHP, messed with python, tried and loved Objective-C, hated resource hungry Java ;), ok, ok, my machine was somewhat low end at the time, what do you expect from an old laptop? ;)

Probably, is best to learn C/C++, many languajes are sintaxically (sp?) modeled after it, like PHP, Java, etc. You will break your head against the wall at first, but it will be worth once you undertand well the languaje.

Also many Open Source projects are written on C or C++, there is a lot from where to take examples or to practice.

Cheers, and good luck.

Ozitraveller
December 31st, 2004, 06:56 PM
Cobol
Fortran
PL/1
Basic (not MS)
Assembler
C (SCO Unix)
C++ (only beginner)
C#
ASP.Net
Rexx
Clist
JCL
VB6/VBA (Word/msaccess/excel)
SQL (MS/Oracle/MSAccess/DB2/Ingres)
ORACLE (SQL*Plus, PL/SQL, SQL*Forms, SQL*Menu, SQL*ReportWriter, Pro*C, DBA)
Paradox
Focus (Hierarchical DB)
ISPF
Pascal

Yet to learn:
MySQL, Apache and maybe Python/Ruby or go back to C++.

I wouldn't mind trying to convert Gramps from python to C# just as an exercise!

Quest-Master
December 31st, 2004, 07:29 PM
Ruby seems to be catching some speed lately, but it looked really ugly from the way it's syntax last I looked at it. Might've progressed, but from where I come from (game development community), Ruby is something everyone shys away from.

Ozitraveller
December 31st, 2004, 08:36 PM
I think MySql is my first port of call.

So I'm looking for a tutorial, if anyone has seen one?

The MySql site a lot of good stuff, but I'm looking for a simple example and preferably running on windows for a start anyway.

jdodson
December 31st, 2004, 10:29 PM
Ruby seems to be catching some speed lately, but it looked really ugly from the way it's syntax last I looked at it. Might've progressed, but from where I come from (game development community), Ruby is something everyone shys away from.

i just looked at the ruby site and i have to say the language looks pretty cool. its a wierd combo of python/perl and java oop, however it seems to take some interesting bits from both. it seems to have more in common with python however ruby is a full oop language. it implements somethings from perl i dislike such as the $_ variable though.

btw the syntax did not look that bad to me at all, it was rather cool it its own way. after looking over it, i am not adverse to doing any work in it. i might actually look at it you write a few scripts in the future....... though full oop for a quick script might be overkill, thats why i dig python:)

Quest-Master
December 31st, 2004, 10:48 PM
Interesting.

It also has a Ruby-SDL and Ruby-GTK+ package. :)

wtd
January 1st, 2005, 01:07 PM
though full oop for a quick script might be overkill, thats why i dig python:)

You can program without too much concern for object-oriented programming in Ruby as well. You see, when you think you're defining methods (the "def" keyword) outside of a class, you're really defining them in the Object class. Since every class inherits from Object, they all get those methods.

def foo
"foo"
end

class Bar
def baz
puts foo
end
end

b = Bar.new
b.baz

It looks in this example like the baz method is calling a method which lives outside the Bar class. In reality, Bar has inherited Object, and thus gained access to foo. We can use foo either as though it's simply a method defined in another scope, or more powerfully as a method of the Bar class. The illusion is perfect for those who don't care about OOP (yet), but can easily be ignored by advanced programmers.

We can show this by using "private".

def foo
"foo"
end

private :foo

class Bar
def baz
puts foo
end
end

b = Bar.new
b.baz

Now this generates an error. Private methods are not inherited, so foo is not inherited by Bar, and thus the baz method cannot call it.

Now, for those who like to do system administration work, Ruby holds an ace up its sleeve. Iterators. Consider the typical file handling procedure:


Open file
Do some basic tedious prep work
Handle file
Tedious clean up work
Close file

Step number 3 is really the only one we generally concern ourselves with on a regular basis. So, we can create a method which helps with that.

def handle_file(file_name)
f = File.open(file_name)
# prep
yield f
# clean up
f.close
end

And in use:

handle_file("foo.txt") { |fh|
# step three
}

millman
January 8th, 2005, 02:39 PM
How did I learn to program ? - Many years ago using a long forgotten dialect of Basic. I'd recommend C, C++ and Python today.

stateq2
January 8th, 2005, 06:55 PM
Also, Dive Into Python is a nice read as well. It comes installed with Ubuntu, or you can view it online at http://www.diveintopython.org/.

where is it installed?

#Greg
January 9th, 2005, 02:56 AM
First of all: Hey, you can use PHP for games!

Everyone is going to say something different about what to learn first.
I'd say Python just because it's cross-platform, has loads of support, it's easy to learn, it can do a huge amount of different tasks, it's free, and it'll teach you good coding practice.

Whatever you do, please don't choose VB :D

Quest-Master
January 9th, 2005, 01:48 PM
First of all: Hey, you can use PHP for games!

Everyone is going to say something different about what to learn first.
I'd say Python just because it's cross-platform, has loads of support, it's easy to learn, it can do a huge amount of different tasks, it's free, and it'll teach you good coding practice.

Whatever you do, please don't choose VB :D

PHP-GTK? It looks really awesome, and I'm most fluent in PHP, so I'm wondering if it possible to really do so..

stateg2: It is supposed to be installed with Ubuntu, but I can't find it. :\

#Greg
January 9th, 2005, 01:53 PM
Yea, you could use PHP-GTK, but I didn't. I created web-based games.

bungley
January 11th, 2005, 04:46 PM
i started my programming history using basic. not sure how much more functional you can get.

Was that a joke?


Becoming a better programmer has nothing to do with learning a quadrillion languages, i think it has to do with elegance, tight code and the ability to not reinvent the wheel and a good design(there are many others, those just came to mind).

That's rubbish. :) There are always reasons to learn new languages.

First, and most importantly, "A language that doesn't affect the way you think about programming is not worth knowing. ". Need I elaborate?

Also, times change. It's naive to assume the languages in use today will be the same as those in a few years.

There are many others, but those just came to mind. :P

az
January 11th, 2005, 05:20 PM
"where is it installed?"

/usr/share/doc


dpkg -L diveintopython

Johan
January 11th, 2005, 05:31 PM
Was that a joke?


That's rubbish. :) There are always reasons to learn new languages.

First, and most importantly, "A language that doesn't affect the way you think about programming is not worth knowing. ". Need I elaborate?

Also, times change. It's naive to assume the languages in use today will be the same as those in a few years.

There are many others, but those just came to mind. :P

Well learning a new language does most of the time make you learn more about programming in genereal but on the other hand it is quite possible to mistreat almost any language... :-)

jaybee99
January 11th, 2005, 06:01 PM
IMO the best way to get into programming if you're going to be self-taught and it's a hobby rather than your living is to start top-down - to have projects that really interest you and complete them one at a time, one problem at a time. Don't be in a rush and don't be put off by language wars or the macho displays of assembler-love you will come across in threads like this :D So if you're interested in developing applications, think 'what kind of applications?' - if you love KDE, learn c++ from the basics, then look at the IDEs and tools around to make your life easier. If you're interested in scripts that automate things/plumb things together for you on your home box look at perl and shell scripting. If websites, learn javascript, css & php. Some people may tell you the last option hardly qualifies as 'programming' or that you need to start lower-level but ignore them. If you get a kick out of it you'll keep doing it and it will lead you in different directions.

Like the man says, Happy hacking!

shaine
January 13th, 2005, 02:08 PM
I learned from looking at other code, and modifying it, and such.
I personally can't learn from books easily.. hate it.

Well.. lets see.
i love perl, use it daily. (lol perl is older then me)
i can code php easily, dont like it.
php was based heavily on perl i think
php was even originaly written in perl.
i tried ruby a lil, but not enough to make a judgement
i tried python, cant stand it.
i learned some C++ on my own.. i suck at it.
i took a 1 year c++ class.. learned nothing from it.
i remember one night i tried like 20 differnt languages out, messed around.
but i remember almost nothing about any of the languages.
i HIGHLY suggest perl.. for web apps, server admin, whatever.

jaybee99
January 13th, 2005, 02:34 PM
php was even originaly written in perl.

it was/is written in C, I think.

shaine
January 13th, 2005, 03:00 PM
it was/is written in C, I think.
it is now, but originaly it was smaller and written in perl.

jaybee99
January 13th, 2005, 03:14 PM
it is now, but originaly it was smaller and written in perl.
I don't want to be pedantic, but why would you use one high level language to write another? Google turns up this (http://www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html) (" The initial unreleased version of PHP was mostly a C library of common C functions I had written to be easily reusable from one open source project to the next.") and this (http://en.wikipedia.org/wiki/Php#History)

edit: by which I mean one high level language to write another at exactly the same level of abstraction - on the other hand it makes perfect sense to use perl/php to write a higher level scripting language

shaine
January 13th, 2005, 03:21 PM
I don't want to be pedantic, but why would you use one high level language to write another? Google turns up this (http://www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html) (" The initial unreleased version of PHP was mostly a C library of common C functions I had written to be easily reusable from one open source project to the next.") and this (http://en.wikipedia.org/wiki/Php#History)
on one of those links... "PHP was originally designed as a small set of Perl scripts".
But i guess actually PHP/FI was perl, and PHP came later as a replacement.. written in C.
I don't think PHP was meant to be as big and thats why it was written in perl.
i've written very small scripting-like language-like things in perl for fun before... and found them quite handy at times.

Quest-Master
January 13th, 2005, 04:58 PM
On the contrary, I despise Perl and use it for nothing, while love Python and PHP incredibly. :)

jaybee99
January 13th, 2005, 06:38 PM
on one of those links... "PHP was originally designed as a small set of Perl scripts".
But i guess actually PHP/FI was perl, and PHP came later as a replacement.. written in C.
I don't think PHP was meant to be as big and thats why it was written in perl.
i've written very small scripting-like language-like things in perl for fun before... and found them quite handy at times.
I stand corrected :)

dataw0lf
January 13th, 2005, 06:42 PM
Long live Python and PHP, down with Perl! ;) I used to do alot of Perl scripting, but, as
even Larry Wall as stated before, there's way too many ways to program something in Perl. While this can be a good thing sometimes, it generally leads to unreadable code and sloppy programming.
dataw0lf

shaine
January 13th, 2005, 06:44 PM
On the contrary, I despise Perl and use it for nothing, while love Python and PHP incredibly. :)
Everyone has their own prefrences.
I *TRIED* python. I *HATED* python.
however i know plenty who *LOVE* python.
and i know plenty others who *HATE* python and *LOVE* perl.
I could never live without perl... it makes my life so much easier.

Buffalo Soldier
January 14th, 2005, 07:54 AM
Been an Ubuntu user for 4 months. Totally new to programming. Started learning Python yesterday. So far I like it (meaning I have not pulled out any hairs yet). I will post about my progress and how much I like/dislike Python again in a week or so.

Error1312
January 18th, 2005, 02:27 PM
Originally started with Visual Basic 6.0. Then moved over to C, C++ and a few months ago I was using C# (pretty good language). But now, because I'm using Linux more and more I wanted a language which was fairly easy and both powerful and which could run on multiple platforms, so I'm learning Java at the moment.

jerome bettis
January 18th, 2005, 05:23 PM
i started with Qbasic just to get familiar with the fundamentals (loops, procedures, etc)

then i moved on to pascal, which was a natural transition. this was great because it introduced the basics of objects and put more empahsis on all the stuff i picked up from basic.

from pascal i went to C++, which i thought was a little too much at once. if i could do it all over again, i would have learned C before C++. i spent several years in C++ and it was very valueable, because as others have said, it makes learning other languages much easier. however, i would not recommend it for a first language, because it can be a pain in the *** for a newbie to figure out.

then i switched to java. say what you will, i friggin love java. i see other's programs that have 2 or 3 huge files, while mine does the same thing better in 10 or 12 small files. abstraction is great, especially when you learn how to design your programs properly before you start typing. doing this with java is very easy (no header files etc), it's designed for this. once i layout my entire design on paper, the program pretty much writes it self. i didn't have this sort of experience with C++ for some reason, i guess it's because creating objects is a little more of a hassle.

and the best part, java doesn't have tedious pointer syntax.

or maybe the real best part, all of the standard libraries that you can build on.

then i went back and finally learned C. after being used to all the nice things in java, i hated it. after sorting out all kinds of segmentation faults and relearning the concept of pointers, i think i am pretty comfortable with it.

somewhere in between there, i learned MIPS, which was well worth it. it's fun to program at such a low level sometimes, because when you go back to the high level, you'll appreciate it much more. it also teaches you to slow down and do things one step at a time.

python will probably be next.

martyr
January 25th, 2005, 02:49 PM
The first step I made towards "programming" was learning HTML at the age of eleven.
I think I was twelve when I started true programming with C/C++ which is still my favourite language. About two years later, I began discovering PHP. I like this one a lot too - pretty common for a passionate C++ programmer.

I also played around with a few other languages, but none was able to arouse my interest enough to get me away from C++.

Furthermore, I am currently learning Delphi/Pascal in my advanced IT course at school. It's okay to play around with it, but I don't see any reasonable advantages of (Object) Pascal over C++, especially in a Linux environment.

I contemplate learning Python, because it might be more appropriate for non performance-dependant jobs.

JeffS
January 27th, 2005, 07:54 AM
Python is a mitre saw.

Java is a bench saw.

C is a screwdriver.

C++ is a Phillips-head screwdriver.

C# is a screwdriver that has a funny head.

perl is a hammer.

What do you want to build? You cannot argue what tool is the best without knowing what you want to do!

Nice analogies. And you are making an important point. The various languages are all different tools in a programmers tool box. And each tool is good for a particular task or tasks.

JeffS
January 27th, 2005, 08:10 AM
i just looked at the ruby site and i have to say the language looks pretty cool. its a wierd combo of python/perl and java oop, however it seems to take some interesting bits from both. it seems to have more in common with python however ruby is a full oop language. it implements somethings from perl i dislike such as the $_ variable though.

btw the syntax did not look that bad to me at all, it was rather cool it its own way. after looking over it, i am not adverse to doing any work in it. i might actually look at it you write a few scripts in the future....... though full oop for a quick script might be overkill, thats why i dig python:)

Full OOP only becomes useful in larger scale projects, particularily ones that have large teams that have to share and reuse code. Anything less than that and OOP tends to be overkill.

For smaller scale projects, OOP tends to only add complexity, unless one is using stuff like C++ templates and the STL.

OOP is just another tool in the programmer's toolbox, and a very useful technique in some situations. However, it is not a panecea - even Bjarne Stroustrup emphasizes this when he calls C++ a "multi-paradigm language".

JeffS
January 27th, 2005, 08:26 AM
After years being in sales and management, I decided I wanted to earn a living as a programmer/IT professional. This was around '97. At that point I heard a lot about the impending Y2K bug. A lot of that code was in Cobol, so I started out with that, figuring it would be a good foot in the door to the profession.

Then I leanred VB in a class, then C. I got my first programming job using mostly VB.

I learned HTML, JavaScript and ASP on the job, as I became the main web developer for my company. Then along the way I did a few projects in C/C++ and Java.

I've continued to hone my C and C++ skills. I took a class in C Data Structures, then a class in Windows programming with the Win32 API in C. These classes really propelled my understanding and proficiency with C.

And now that I've been a big Linux user for about 3 years now, I continue to delve into C, as Linux is built on C, even Gnome apps are C (with GTK+), and I continue to delve into C++ on the KDE side. I've also messed around with Perl and Python.

Finally, I did a project using PHP, using XOOPS for a message board. However, I ended up shelving that for the ASP oriented Snitz, as our website is hosted on Windows/Internet Information Server and ASP is a better fit there.

As for someone just learning programming - I would go for some easy, high level language, like Python or VB (if you have to use Windows). One has to learn the very basic concepts of programming first, such as variables, control flow, conditionals, loops, algorithms, etc. One has to learn to walk before one can leanr to run. But then I would highly recommend learning C and/or C++ after getting the basics. These languages really teach you programming, and how a computer works.

Jad
January 27th, 2005, 10:46 AM
Learning programming is learning logic & code design, more than learning syntax.

wtd
January 27th, 2005, 03:24 PM
Learning programming is learning logic & code design, more than learning syntax.

This is why I believe learning many languages helps. Going back to the tools analogy, if I try every task with a regular screwdriver, then try every job with the Philips head screwdriver, I can see exactly where I really need one or the other, and where both will work.

jaybee99
January 29th, 2005, 05:49 AM
I think Paul Graham's assertion that all languages are evolving towards Lisp ( lots of essays on his site, eg http://www.paulgraham.com/iflisp.html) is very interesting - features that it has had for decades are periodically 'discovered' by newer languages, like garbage collection, but people are so hostile towards it cos the (lack of) syntax and ideas behind it's 're-programmability' are so alien to the C family of languages...I'm aiming to learn it to see if what the smug lisp weenies (http://c2.com/cgi/wiki/RandomPages?SmugLispWeenie) say is true

domzo
January 31st, 2005, 06:59 AM
I learnt BASIC on one of these when I was about six:
http://www.nvg.ntnu.no/sinclair/computers/zx80/zx80.htm

Since then I've used all sorts to varying degrees. Like others have said, it's the principles of programming that you have to learn, then it's easier to switch syntax.

I'm learning Python now :)

stateq2
January 31st, 2005, 01:53 PM
I learned from looking at other code, and modifying it, and such.
I personally can't learn from books easily.. hate it.
ditto, but i gained the majority of my knowledge looking at online documentation (often including code examples).

I started out, like everyone else, w/ html. soon after, while still using windows, i jumped straight into c w/ dev-c++....not having any idea what i was doing. after not getting very far w/ that(hellowolrd), i gave up.

that's when i started getting curious about linux. long story short, i found linux much easier to develop on. i then moved up in the ranks by using c++ to make tons of sensless console apps in that did nothing. after i was fairly comfortable w/ coding/compiling...i decided it was time for me to look into "libraries" 8-) to make my apps more advanced.....which is when I looked into SDL. after playing w/ SDL, and figuring out how to move images on the screen, I gave up again.

after awhile, i wanted to contribute something to the opensource community, as well as create something useful that i needed...which is when i created flac2ogg (http://freshmeat.net/projects/flac2ogg/). I figured perl was the best job for this....so i learned perl on the fly, while i was writing it. after a few re-writes, I realized that I didn't like perl....so rewrote the entire script in python....again, on the fly...learning python as i went.

this is when I fell in love w/ python....the code was so beatiful and organized. this is where I'm at right now....i'm currently writing vorbis player in python using glade, pygtk and pyogg. this forced me to learn much more about things like classes, threads, audio, etc. I should be making the first release w/in a few weeks 8-)

btw, i'm also currently a computer science major at my university, so i'm taking java as well....although i don't like it much

Campitor
February 13th, 2005, 07:50 PM
Learning programming is learning logic & code design, more than learning syntax.

I agree...I am a conservation biologist and have been using linux for over two years now. I now need to learn programming to build specific simulations...mostly math..no GUI, no fancy OOP (for now anyway :wink: ). I started to learn Python about six months ago, and started getting good at it...but once I left the books and the simple examples, and wanted to build complex simulations...I realized I still did not know how to program :| ...I needed to learn algorithms. The python syntax is so nice and simple that you are able to learn the basics within a couple of weeks...but knowing the syntax is quite irrelevant for a newbie...the logic and different techiniques of building complex algorithms, that's what n00bs need to learn.

I'm still looking for a good book (OR web page) on that. IMO, python is a very good learning language and for guys who are not going to make a living out of programming, but really needed to acomplish specific tasks-- a good book in pyton and a good book in algorithms would really help us all to learn.

P.S. I know MatLab is really good for scientific modeling, but I really want to learn something opensource...

jaybee99
February 14th, 2005, 05:53 AM
I agree...I am a conservation biologist and have been using linux for over two years now. I now need to learn programming to build specific simulations...mostly math..no GUI, no fancy OOP (for now anyway :wink: ). I started to learn Python about six months ago, and started getting good at it...but once I left the books and the simple examples, and wanted to build complex simulations...I realized I still did not know how to program :| ...I needed to learn algorithms. The python syntax is so nice and simple that you are able to learn the basics within a couple of weeks...but knowing the syntax is quite irrelevant for a newbie...the logic and different techiniques of building complex algorithms, that's what n00bs need to learn.

I'm still looking for a good book (OR web page) on that. IMO, python is a very good learning language and for guys who are not going to make a living out of programming, but really needed to acomplish specific tasks-- a good book in pyton and a good book in algorithms would really help us all to learn.

P.S. I know MatLab is really good for scientific modeling, but I really want to learn something opensource...

This book (http://www.amazon.com/exec/obidos/tg/detail/-/0262032937/qid=1108377271/sr=8-1/ref=pd_bbs_1/104-5759627-8829561?v=glance&s=books&n=507846) will tell you everything you need to know about algorithms. Part of the essence of programming is reuse - Don't Repeat Yourself, and equally importantly, don't repeat anyone else if you can help it. I would have thought there are python libraries available for all sorts of mathematical & scientific modelling. There certainly are for C/C++, Java etc. So use them, cos if you roll your own, apart from the wasted effort, you won't do as good a job (unless you're an expert programmer of course). If these libraries don't exist, switch from python.

DirtDawg
February 15th, 2005, 04:40 PM
I got an imac from a magazine I was working for after it tanked(the magazine, not the computer). I'd never had internet or my own computer before and I soon became fascinated with the computer and wanted to learn to manipulate it. First, I started learning a language called "tads" which wrote the types of games I remembered playing as a child. I lerned quite a bit through that, but being based on "C", the syntax is somewhat complex for a beginner. In the meantime, I begin to get curious about "real" programming.

At the time, I had no idea what "open source" was. When I attempted to find a "C" compiler (something i knew nothing about) for os9, I could only find ones that wanted me to pay the buck$. While searching, I went to some "free software for mac" download site and found Python for mac os9. I had no idea what it was or how it worked, but it was free so I downloaded it. I began to playing around building teeny tiny little programs that did rediculous trash (writing programs that insult my friends has always been a fav) and now, after all this time, I sometimes have an idea of what I'm doing!

Eventually, os9 crashed and burned and now my lil' imac has Ubuntu. BTW: Linux rawks the houze for programming. It's as if the entire os is built for it (which, maybe it is). Linux makes programming fun enough where I'll write scripts "just because".

toojays
February 15th, 2005, 11:40 PM
Many of the posts on this thread are not particularly helpful; quibbling about various language features, and not helping the original poster because he didn't say why he wanted to learn. I hope this doesn't put novices off reading as far as this post.

If you are just starting out learning programming for its own sake, I would recommend the following.

Start with An Introduction to Programming in Emacs Lisp (http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/index.html). This is a very gentle introduction to programming which is written for non-programmers. Although Emacs Lisp is a language with a very narrow focus, I still recommend this book because of how well it covers essential programming concepts such as functions, data structures and flow control. As a bonus, by the time you finish this book, you will know about Regular Expressions, and how to extend your text editor with your own personal customisations.

After you finish the emacs-lisp-intro, move on to learning Python. You will see that Python looks different to Emacs Lisp, but the basic concepts (flow control) etc, are the same. I haven't evaluated a Python textbook so I don't know what to suggest here. How to Think Like a Computer Scientist: Learning with Python (http://www.ibiblio.org/obp/thinkCSpy/) is supposed to be very good.

By the time you have finished the Emacs Lisp textbook and a Python textbook, you are probably in a position to figure out where to go next on your own. For future study I would recommend The Structure and Interpretation of Computer Programs (http://mitpress.mit.edu/sicp/) (SICP). This is a terribly under-appreciated textbook; in my mind it ranks alongside "The Art of Computer Programing" as one of the essential texts on programming. It has the virtue of being shorter and easier to follow than TAoCP. SICP will make you aware of many programming techniques which are rarely used (or even heard of!) by most programmers.

If you can get through all the above, picking up other languages and reading other people's code will not seem particularly difficult. More importantly, by this stage you will have the vocabulary and the confidence to discuss things you don't understand with other programmers.

iant
February 17th, 2005, 05:31 PM
before picking up any books or choosing a language, one of the best things i think you can do (if possible), is to find a "real live" programmer and ask them to sit with you for an hour or two and explain the basics (what a variable is, what an array is etc)
it will be a good foundation whatever language you choose.

things like arrays are so simple when you know how, but take a long time to get your head around when you're a beginner programmer sat working through a book (they did for me!). in fact, for my way of learning, i've never had found a book that can explain these concepts better than a programmer waving hands around and drawing things on bits of paper.

as for languages (when you get to that) i'd suggest C. it's a good basis for most over languages.

personally, i'm just starting to learn ruby and i'm quite taken with it. especially RubyOnRails (http://www.rubyonrails.org/) which is just so stunningly strait forward i'm reluctant to go back to using perl and php for CGI ever again :)

jaybee99
February 17th, 2005, 05:38 PM
personally, i'm just starting to learn ruby and i'm quite taken with it. especially RubyOnRails which is just so stunningly strait forward i'm reluctant to go back to using perl and php for CGI ever again :)
I'm just learning ruby too, it's really nice, isn't it :-) the idea of closures and yielding to blocks of code is very cool

psychic
March 3rd, 2005, 09:47 AM
I started out with Visual Basic 5 or six years ago... then i kinda did not do much with it until the summer of 2003 when i learned JAVA, since then i learned ProLog, python, ruby, ada, c, c++ (though that could definetely be improved), bash, PHP and SQL.

Based on my humble experience i would say that either ruby or python is a good choice, the first teaches you to comment / document and write readable code THE HARD WAY (because of the versatile syntax it is easy to mess up your code with unreadable combo's), the second one teaches you to write clean code one way, the python way, which is structured and clean.

shadesfox
March 7th, 2005, 12:07 PM
Relative forum newbie here, but I have a good 5 cents to say here. Personally, I started programming with BASIC for the Apple ][e. Then I went to the language on the TI 82 calculator and then the TI 86 after my 82 was stolen. After that was VB then C++. I give C professors head aches…

Anyways, what I would have done, with the chance to do it all again? Well, Ubuntu comes with a nice python tutorial. Nice language there. I’m also really fond of what I’m seeing of Ruby(http://www.rubycentral.com/book/). I’m just waiting for a project to do with it.

lordofkhemenu
March 7th, 2005, 01:40 PM
If programmers could write code in English, you would find that programmers can't write code.:p

Rogue Elephant
March 9th, 2005, 07:41 AM
I use windows (my copy of ubuntu is on its way) and i have NEVER tryed programing before.

Can you give me some basic tips?????](*,)
http://poignantguide.net/ruby/chapter-3.html

dewfis
March 9th, 2005, 07:52 PM
I really didn't read all the other replies, so someone might have said this already.

The general idea among UNIX programmers I have known is that most people learn how to program by reading other people's code. Its true, but of course it depends on how good the code is. Finding a programmer and asking them is also a good idea.

I would suggest starting with a good scripting language, since its easier to get things off the ground, and write a few toy programs to start. Then go to the books. Leave stuff like compiling, undefined/multiply defined symbols, etc. for later.

I started out on MAD and Fortran IV. I wouldn't suggest that route to anyone I cared about.

Slapdash
March 10th, 2005, 05:56 AM
How about Gambas ? Its a Basic like interpreter type language or does that not really qualify?
http://gambas.sourceforge.net/

std
March 16th, 2005, 05:31 AM
I'm a bit reserved in reccomending Gambas to someone who has never programmed before. I couldn't play with it, I admitt, I downloaded it a while ago but couldn't compile it, and never got the chance to try it again (lack of time...). I did read much about it, and, while it does address many of the issues I didn't like about Visual Basic, I still don't think it's good to teach basic programming skills.
My first grasp at programming was BASIC on the C64, but I didn't play too much with it. I later discovered C (in...*think* '96 I guess) and couldn't get away from it :P. Though I'm not exclusivist and I strongly reccomend Python as a good starting point. I never did serious development with it, just played with it, but I was well impressed.
I also found Ada to be a good programming language. Although it's not quite my style, too verbose, but I did like some things about it -- standard compliance, excelent typing etc. Could make for a good start, but I don't think it could lead anyone too far. It lacks many of the libraries, although I warmly welcomed the Gtk bindings for it.
Ruby also makes a nice start.

Yet avoid programming COBOL if you can :P*

_____________
*kidding. It's an old joke.

Rogue Elephant
March 16th, 2005, 06:00 PM
I am also new to programming and should be returning to this thread with all the latest 'cool, fun and easy' gateways into programming I come across...

Today I found the following:

BASIC is supposed to be one of the simplest lingos and this particular tute is for kids
http://pages.intnet.mu/jhbpage/Program/Qbasic/tutorial/Ch1c.htm

This introduction to a CS course has a few little interesting foundational facts
http://216.239.59.104/search?q=cache:ahpwsIuI-K8J:www.cs.ucla.edu/classes/winter05/cs31/lectures/intro/introNachenberg.ppt+%22the+simplest+programming+la nguage%22&hl=sv&client=firefox

This C++ book is for non-programmers written in conjuction with a non-programmer
http://www.steveheller.com/cppad/Output/dialogTOC.html

gogodidi
March 18th, 2005, 11:11 AM
I first learned HTML

then I learned CSS
Then Javascript
then PHP

now im moving on to C++, if only the IDE would work...

this is the problem (http://www.ubuntuforums.org/showthread.php?p=98584#post98584)

thumper
March 24th, 2005, 05:15 AM
Ever since my family got its first computer I had wanted to program. My father kept trying to push me into learning BASIC (this was in the early 80s), but I was not really interested. I started with Turbo Pascal 5.5 when I was 15. Been really surprised that no one else has mentioned pascal. Did a programming class while at school, and used to get books out from the library and type in the code. This was how I learnt basic data structures (linked lists).

I did a computer science degree at university which made us learn more pascal, modula 2, assembler, C, ADA, Haskell, Prolog, LISP, Objective-C, SQL, LaTeX (sort of coding for documents).

My first job was my introduction to C++. Loved it and it is still my language of choice for working in. Since university I have taught myself Perl, Python, [DX]?HTML, regex ;-), Javascript, Java, shell.

Mostly when learning something new I will get a book. I know that there are many online resources, but for some reason I still prefer a book that I can flick through and skim read.

Currently where I am working I use C++ for the main work, perl for some scripts that others have written that I need to use/modify, python for my own scripts and testing my components, HTML for documentation, shell for scripts to kick off tests/applications.

I really like python and C++. But I have to agree with azz, it all depends on what you want to do. There is no way I would do dynamic web pages in C++.

For learning, I would suggest the following books:

C++ -> Accelerated C++ (http://www.amazon.com/exec/obidos/tg/detail/-/020170353X/)
Python -> Learning Python (http://www.amazon.com/exec/obidos/ASIN/0596002815)

Tim

TjaBBe
March 24th, 2005, 05:37 AM
I started out with Turbo Pascal and HTML when I was round 15. Then I moved to Delphi. After that I went to a Computer Science University where I learned Java, CSS, ASP (yuch :-& ), more Delphi, C, C++ and SQL.

In the meantime I teached myself PHP and some basic Bash and Perl scripting. And that's about it :).

Vrok
March 24th, 2005, 11:15 AM
It may sound strange, but I started with... JavaScript. :)
I even didn't know anything about html - I just know that I should write <html><body><script language="JavaScript">code</script></body></html>. Of course, all functions I know were alert() and prompt().
Later, I found a book about Tubro Pascal (and I've used the TMT Pascal Compiler).
After that, I somehow got a Delphi Personal. Then my fellow showed me Linux, and therefore I left Delphi (Kylix sucks!) and learnt C/C++.
I also know few other languages, I just can't remember how I learnt them. ;)

dannyp
March 25th, 2005, 09:29 AM
Hello All,

After reading this forum I think I better take a look at python/ruby. I learned the basic of C, and then jumped into Perl for job reasons, didn't like it much. I haven't seen many opinions of Java in here, Java is what I am using now and I love it, I learned from a book and that was all I needed, everything just fell into place. It is easy and can do pretty much everything you need.

iant
March 26th, 2005, 10:45 AM
for those wanting to begin learning to program using ruby there's a good guide here:
http://pine.fm/LearnToProgram/

like i said previously, i've become quite taken with this language and i see it's gaining increasing popularity (which i expect is largly due to ruby on rails (http://www.rubyonrails.com) ). Because of it's ease of use I really don't think it's actually a bad language to learn to program in.

jamin_l
March 26th, 2005, 02:11 PM
Because of it's ease of use I really don't think it's actually a bad language to learn to program in.

Absolutely. Those new to programming need to see that programming doesn't have to be hard.

drewlander
March 29th, 2005, 07:00 AM
I wanted to be a weatherman for 8 years, then my senior year in HS I took a college level programming class, and have been programming since :)
Started with C++ and have grown to learn C#, php and asm :smile:

Leif
March 29th, 2005, 07:32 AM
If I could go back and choose the order in which I learned programming languages, I would choose C/C++ - Lisp/Prolog/Haskell - Asm - Java. Now, Asm and C might never be necessary for you, but these are kind of the building blocks for the bigger stuff, and just getting an understanding of them can't hurt. You can replace Java with the Python, both are fine. So far I'm reiterating stuff said by many before in this thread.

My main advice is that shortly after picking up a sequential programming language like C/Java/Python etc., before you get too comfortable in that mode of thinking, learn functional programming. I only got introduced to it about after 10 years of programming, and it did my head in, which is embarrassing. It shows you a different way of thinking about things, which in a good number of cases can result in solutions which are far more elegant and efficient. Functional languages get very little love for practical systems, usually with good reason, but I really recommend that you pick up both ways of approaching problems.

CrashTECH
April 6th, 2005, 11:32 AM
I started with BASIC on a 386 machine (Yay!). Then I picked up some VB in HS (it was all that was offered) and taught myself some HTML and JavaScript. Once I got into college I learned C++, ASM. As part of my program, I took a Co-Op job and so far here I have learned C#, ASP, some PHP, more JavaScript, VBA....

In the past 3 months alone I have written around 6k lines of C# code for one project. Most amount of coding I have ever devoted to one thing.

yusufk
April 20th, 2005, 05:36 AM
I think it doesnt really matter which one you choose for a start. The best advice is: Dive right in! Choose a language, and find out as much as you can about it. The idea behind all of them is pretty much the same, even though the syntax isn't. Once you've got a basic understanding of programming you'll be able to make a better choice as to which way you want to go.

I started of with Basic on a ZX Spectrum, moved on to Basic on the Commodore 128, moved onto GW Basic on a pc, then Turbo Pascal, then Delphi, then C++, touched Java recently, Java script. I did do some perl, python, php stuff at some point and would like to give them another go, especially now that Im enjoying my Linux experience.

I also do some mobile developement (for phones), MIDP and Symbian. Its just a pity that I have to resort to windows for the Symbian Development.

ZiZe
April 20th, 2005, 01:59 PM
i actually startet with webpages in *uhm* MS word :-#

was a part of a school project 4-5 years ago, i had almost never touched a computer before, i just heard 2 guys in my class talked about making webpages in their project. I just tought: "webpages? sounds cool, i want to do that to."
Made a terrible looking webpage, so i knew i had to learn how to do better :p
started to learn html and design. then one day i discovered that you could use something called perl scripts to make guestbooks, started to read about perl, and quickly learned that you could do so much more. used it for a year or so.
Then i discovered php, wich now is the language i use most. i stopped using perl because i found php much easier. tried to learn c/c++ and other languages several times, but i never quite got it. Going from php to a language like c or c++ is not easy imo. But lately i switched from windows to linux, and have started to read more about c++, a bit frustrating, have to "unlearn" a few bad habits i have. but i'm getting there.

If i could use a time machine, i would zap back in time, and give myself some resources on programming in general before i started to learn anything.
i feel i could have learned so much more by this time if i just knew more about what programing are about when i started. :)

Merc248
May 2nd, 2005, 04:01 AM
I started with HTML... and never really got into programming until this year, when I started taking CS classes on C++. I tried getting into C++ (before taking the classes), PHP, Perl, and Visual Basic, and I just couldn't really get into the programming mindset.

atoponce
May 3rd, 2005, 10:45 PM
I use windows (my copy of ubuntu is on its way) and i have NEVER tryed programing before.

Can you give me some basic tips?????](*,)

Basic tips? Let's see. I can think of two effective tips.

Go to your local library or bookstore and get a book on really any high-level language (C++, Java, Python, Ruby, etc.). Read the book cover to cover copying all the code and practicing the exercises given. By the end of the book, you should at least know the basics, and feel comfortable with the language. Check out another book, and do the same.

Or....

Go to school (university, college, whatever), and take courses. This is the expensive way, but probably the most effective. Nothing beats the stress of trying to finish a program before it's deadline. After only a couple of semesters, you will feel confident in your programming skills, and be able to tackle most challenges.

Programming really isn't that difficult, depending on what you want to do. We as humans in general think in "pseudo-code" all the time. "If it will rain, then I will take an umbrella." Or, "If John and Kerry both want McDonalds, then I will have McDonalds too." You get the idea.

mohaham
May 6th, 2005, 10:59 PM
I would recommend Python, Java, C#, Perl...

Preacher
May 7th, 2005, 07:44 AM
Ok. I have just bought the Teach yourself C++ in 21 days (Not that I am going to learn such a lang in 3 weeks :)

My question. I cannot even get the Hello world to run. I am on Ubuntu 4.10 - still waiting 4 5.04 cd. I have checked what compilers I have and it says gcc. I have tried many options but the only reslt I get is a text file for hello which I tried to compile from hello.ccp.

Sorry if this is in the wrong forum or if the question sound stupid but I am a newb

Thanks
Preacher

Quest-Master
May 7th, 2005, 12:24 PM
Ok. I have just bought the Teach yourself C++ in 21 days (Not that I am going to learn such a lang in 3 weeks :)

My question. I cannot even get the Hello world to run. I am on Ubuntu 4.10 - still waiting 4 5.04 cd. I have checked what compilers I have and it says gcc. I have tried many options but the only reslt I get is a text file for hello which I tried to compile from hello.ccp.

Sorry if this is in the wrong forum or if the question sound stupid but I am a newb

Thanks
Preacher
g++ hello.cpp -o hello

That should work.

Preacher
May 7th, 2005, 12:46 PM
Thanks. What I did was go into emacs and did the compile there. that seemed to do the trick. Thanks for your help. That entry I also did and it worked :)

csowm5je
May 8th, 2005, 11:02 AM
www.icanprogram.com (http://www.icanprogram.com)
Couple of years ago this site used to offer excellant introduction courses on linux programming (Makefile, source control...). After reading Eric Raymond's article about python, I was searching for python books and tutorials online and I came across this site and there is a python course(not introductory) but due to lack of students this course is not offered anymore but I was given access to the webpages.

vague-
May 8th, 2005, 11:43 AM
I went for C as I had started using open source software and I wanted to be able to fix problems I found. I started by using a borrowed copy of "The C Programming Language". I then performed a few tasks set by Computer Science students I knew at the time. I already understood the base constructs, so the tasks mostly revolved around small applications of terminal I/O and file parsing. I then moved onto Berkeley sockets of my own accord. Finally, I started reading code from the open source software that I was using - this was the single biggest aid, you can learn a lot from code.

I found other languages easy to pick up after my time with C. I am not sure why, but I guess it goes to the CS students who first helped me. None of them told me hacky or quick fixes, all the answers I recieved were good conceptual answers - and rarely code, which also helped. I guess I'd say learning to program and learning how to program are two distinct paths, of which I would recommend the latter.

mostwanted
May 12th, 2005, 12:38 PM
I was really into graphics (still am) and also animation some years ago and I started doing animations in Macromedia Flash.

After some time it got boring and I wanted to make games in it, so I learned ActionScript and programmed a few games, like a platformer and a space invaders clone.

I'd also learned HTML and went on with PHP after ActionScript, so I could make my websites dynamic. To do that I also had to learn basic SQL.

Lately I've been into Java, which is, I guess, my first serious programming language. It wasn't that difficult, as most programming paradigms are the same in most languages, but learning object oriented programming has been hard.

At the moment I'm still programming in all those languages. Each one is good at what they are intended for: AS for applets, PHP+SQL for dynamic websites and Java for applications (although it can be used for applets as well). Some day I'll explore other languages like Python, C, C++ or Objective-C (when I get a Mac :P ).

Steve Myers
May 12th, 2005, 12:45 PM
I was really into graphics (still am) and also animation some years ago and I started doing animations in Macromedia Flash.

After some time it got boring and I wanted to make games in it, so I learned ActionScript and programmed a few games, like a platformer and a space invaders clone.

I'd also learned HTML and went on with PHP after ActionScript, so I could make my websites dynamic. To do that I also had to learn basic SQL.

Lately I've been into Java, which is, I guess, my first serious programming language. It wasn't that difficult, as most programming paradigms are the same in most languages, but learning object oriented programming has been hard.

At the moment I'm still programming in all those languages. Each one is good at what they are intended for: AS for applets, PHP+SQL for dynamic websites and Java for applications (although it can be used for applets as well). Some day I'll explore other languages like Python, C, C++ or Objective-C (when I get a Mac :P ).
Just read books, and studied until my eyes hurt, then used what I learned and made stuff, messed up a lot and from there, I learned from what I messed up on and tweaked it into something cool ;)

Nano
May 12th, 2005, 01:44 PM
Just read books, and studied until my eyes hurt, then used what I learned and made stuff, messed up a lot and from there, I learned from what I messed up on and tweaked it into something cool ;)
Same for me

Havoc
May 20th, 2005, 03:02 PM
Hello,

Python looks good enough for beginners, but isn't it good enough for larger projects? Or is it just an "Introductory Language" where you learn all the basics and then you move on to something else (Like C++ or something like that)?

I think that Python is good for projects that don't need to access the hardware that much, e.g You can't really write a kernel or a 3D Graphics Engine in Python, but you can write scripts, or a "Glue" between other Apps, wilst C++ is great for low-level operations (Accessing the Hardware).Could someone elaborate on this?I'm a total beginner (BUT, I've used Yabasic on my PS2!!!), and I'm looking into programming and 3D Modelling (Blender works great with Python)...

One question, does the knowledge gained using Python cross over to other languages? Like C, C++, Whatever?

Thanks. ;-)

alexrait1
May 20th, 2005, 03:28 PM
That's not true. Every programming language is capable to do everything in this way or other since they are all equivalent to the Turing machine.

As for python it depends on whether an appropriate library was written or not. And if you miss something you can always build your own library in c/c++ with python binding.

Python in its structure is not that powerful as c++, but the in the end it can do many things quicker and neater. It can suit for large projects and whatever you wish. Everything depends on how you design it.

Stormy Eyes
May 20th, 2005, 03:50 PM
I started with C, both on SunOS with vi and Sun's C compiler, and on DOS with Borland Turbo C.

ChrisG
May 20th, 2005, 07:41 PM
I'd like to learn C++ and Python, but I say that Visual Basic .NET is a good beginner. Even though it basicly screws up the way your suppose really program, but it gives you a good look at basics. And plus, with visual basic you won't have to create the window in complete code... :wink: \\:D/

Gsibbery
May 30th, 2005, 11:21 AM
I started out with COBOL, JCL and Assembly on an MVS mainframe. On UNIX, I would suggest starting out with Java nowadays, as the syntax will get you familiir with the C/C++/PHP type languages and is more portable than C or C++ alone.

Gordon Freeman
June 2nd, 2005, 08:21 PM
I wanna program.

That could mean games or internet utilities or system utilities or anything! You would not use php for games, nor would you use C to make dynamic websites.



No, you're still not getting it! He justs wants to program! Nothing in particular, he just wants to learn, and a discussion of which program is a good start is a perfectly valid one. Many people (myself included) just got the idea that they'd like to have a go. You don't start thinking about specific programs, until you've started and learnt a bit. He's asking how do i get into it, make a couple of nifty programs, and the advice has been good.

Gsibbery
June 3rd, 2005, 04:07 AM
No, you're still not getting it! He justs wants to program! Nothing in particular, he just wants to learn, and a discussion of which program is a good start is a perfectly valid one. Many people (myself included) just got the idea that they'd like to have a go. You don't start thinking about specific programs, until you've started and learnt a bit. He's asking how do i get into it, make a couple of nifty programs, and the advice has been good.

Python might be a good choice then. It's simple, stragithforward, and has clear syntax and supports OO is you want to do that. In my experience a lot of beginners have a rather tough time with C/C++ as their first languages.

YopY
June 3rd, 2005, 08:21 AM
I was taught C++ and x86 asm in college, later I started learning C# which I enjoy quite a bit.

I would go with C# for a first language, there are good books for it around, even ones based on Mono.

Of course I'm biased.
Some basic tips?

1. Determine why you want to learn how to program
2. Ask yourself what you want to program
3. Google around for some info
4. Don't grab too high straight away, learn some of the easier script languages first before going to higer languages like C and Assembly. PHP is a good choice for webscripting, and many people say that Python is a good language to learn firstly if you want to buld programs.

Do keep in mind that it takes a lot of time, patience and effort to learn how to program.

As to answer this topic's question: By doing it.

My first language would be HTML, even though that's not really a script language. After that, i was bored and googled for a good language i should start with. Python was suggested, so i took a python course. I learned the basics, but i quit learning it cause there were better things to do.

And more recently, i've been learning PHP. Started out as a school project, and seeing that i'm going to go to a higher programming education next year, i volunteered to do the coding on that one. I had a PHP book that learned the basics and syntax, stuff like that, but for the rest you need to just do it, create programs / sites, read up on stuff, etcetera.

But firstly you need to ask yourself what you want to program.

DarkKnight
June 4th, 2005, 12:31 PM
I'm currently doing a CertIV in programming.

I wanted to make sure I had what it took and if I wanted to do it for a living... I start my bachelor later this year. ^__^

student
June 16th, 2005, 07:45 AM
The first I learned was javascript :D
then c, php, java, little c++, vb.net, c#, oberon,

some at school, some at home...

the funniest one I learned was OS400 scripty-thingy \\:D/

Dave_is_sexy
June 22nd, 2005, 03:29 PM
Oh me too! I wanna know enough to write ebay :smile:

...in something nice and text based that doesn't need compiling to run. Perl? Php? Python?

pdpi
June 23rd, 2005, 08:15 PM
EDIT: I apologize up front for the huge post. I got a bit carried away, it seems.


I started when I was 12, programming Lego robots on an amstrad, using Quick Basic. It was indeed quick and dirty, and we controlled the robots by directly sending information to the ISA BUS. I only understood that that's what we were doing years later, though (and, interestingly enough, only after I understood the risks of any old person who sat at the computer being able to do it). Proceeded to Pascal a couple of years later, with a short bout of GW Basic in between. After a few years of no new languages (though I made a couple of shy attempts towards VB, which I thoroughly hated), I found myself trying a wee bit of C. Didn't really get far, though, and got back to Pascal in high school. When I started college, I was immediately presented to Mathematica, and am still thankful for it. I started hacking away at HTML/CSS (for all it's worth, programming-wise), and LaTeX, which is still, in my opinion, the easiest way of generating beautiful, professional quality documents (and a lesson in code quality: 6 bug revisions in the last 10 or so years, because no more bugs were found). Had to learn some Scheme, which did me plenty of good, in terms of how I view algorithms and code in general. I restarted coding in C at this point, this time in earnest. In parallel, I started dabbling in POV-Ray. Java came slightly later (last semester), plus some LisP this semester. I also started learning Python a couple of weeks ago, on my own, though I only started **really** working on it 2 days ago, and only kind of, as I have exams coming up.
Bash, a bit of Awk and sed, lex, yacc and the assembly language for a small teaching processor all come in there somewhere, in the last couple of months.

After this rather large tale, My suggestions on where to start programming are as thus:

- POV-Ray and HTML/CSS are very good places to start, if you are the sort of person that needs to see results **IMEDIATLY**. POV-Ray is better than HTML/CSS because it is a turing-strong language (that is, you can use it to solve essentially any problem that C can solve), and can be used to generate some pretty nifty stuff. See www.irtc.org for some (breathtaking) examples. HTML/CSS shows a very interesting notion, which is the separation of formatting and text, which is very very good to learn, and is a nice notion to have when you start doing "real" programming (it kind of goes well with OOP),

- Of all the languages I worked with, Python has to be the best for a new programmer. Very simple syntax, solid set of standard libraries, you'll go from struggling with the really annoying phase of not knowing the syntax or what function does what you want to the phase where you're actually learning the basics to do something useful (some simple algorithms and data structures) in no time. Also, since it's interpreted, and has an interactive shell/interpreter, it's brilliant for experimenting and actually learning the ropes in programming. Also, since it imposes some syntax on you, you'll get used to write code in a way that's mostly the standard, pretty print, sort of code style

- C is a nice language, but is NOT newbie friendly. Still, if you have the right sort of mindset, it's design is quite KISS (keep it simple, stupid) oriented, and you'll know essentially all the normal stuff in a couple of weeks. Off to the more interesting and more elaborate stuff, then. It's quite a bit more difficult to deal with than python in that you have to do the memory management and pointer math yourself, which most newbie programmers find a bitch to do, and even for more experienced programmers is a source of nasty bugs. It is still quite powerful, and mostly the standard in linux (though KDE, for example, is C++). It's also the venerable grandfather of a rather prolific family, which includes C++, C# and Java, which makes it a good bet to learn anyway.

- Java seems a fine language at first, but I'm starting to feel towards it in language world much like I feel towards MacDonalds in the food world. It just seems lacking in maintainability, and the personal experience I have in that area only emphasizes that feeling. It lacks the very short code/test/debug cycle of Python, and is significatively more resource-expensive than C, thus making for a very poor mid-term. Also, the last version (1.5) inserted into the language possibply the worst syntax ever, (perl and brainfuck are exempt from this competition :P), which alone would make me want to throw it away. However, it also has a VERY EXTENSIVE set of standard libraries that make newbie programming that much simpler. Much of the sfuff that in C requires some crazy juggling to do is a function call away in Java.

- Scheme is a very very simple language hidden in a very very complicated looking syntax. Just learn to properly indent it, and it's quite readable. It's naturally conductive towards the recursive/functional side of programming, and that alone makes it a fine choice for a second language to learn, simply for the mind-opening effect. However, I'm yet to learn how to do useful stuff in it.

- LisP is Scheme on steroids. It's a true multi-paradigm language, and is a language that naturally evolves to fit whatever it is you're trying to do. It's profoundly different from anything else I've worked with. It takes a while to grok it, but Eric S Raymond is quite right in saying that it is an enlightening experience. It also makes you look at other languages and wonder how they survived against LisP. IMHO, it was a matter of having too many features way way ahead of its time, resulting a language that would be fine today, but prohibitively expensive 30 years ago (worse still 50 years ago, when it was invented)

- (La)TeX is quite worth learning for its plain usefulness. After a short if somewhat steep learning curve for most people (writing code to type a document I could write in Word? you have to be joking me!), it quickly becomes second nature, and makes you wonder how the rest of the world survives. Want a footnote? don't fumble around menus looking for how to add the footnote, how to add the little index to point towards it, get frustrated that the footnote option is disabled, the works. Just type \footnote{footnote text here} where you want it to go and go on with it. Your essay grew and the index is completely borked? in LaTex, \tableofcontents will find your \chapters, \sections and \subsections (and smaller stuff), figure out what page they fall in, and keep the index up to date. It is however a bit quirky and hard to debug. Plus, formatting is a bitch, by design (it's all done automatically for you, based on a template. If you don't know how to write a template, you shouldn't be fiddling with formatting either way)

- The Basic dialects I worked with are beyond utility nowadays, but they were fine learning utensils back then. Still, funcions and such were beyond their ilk, and spaghetti code was the order of the day. I would NOT reccomend them to anyone in this day and age.

All in all, I'd say that Python would be a good first language, learning C next and a LisP dialect. Java would possibly come next. If you need to write a lot of reports, and .pdf is an acceptable format, LaTeX should happen somewhere, possibly in parallel with C. If you're one with a small attention span, and pretty images would make it easier for you to keep on going, I'd start with POV-Ray before going for Python. In POV-Ray, go as directly as possible to the condtional/loop part, so as to start programming proper. If you're an avid linux user, learn how to use the shell. Not exactly programming, not exactly NOT programming. The basics of sed, awk, grep, bash, and a number of other tools are the reasons why so many people prefer the shell to any graphical file browser. They are quite robust and really make life simpler once you learnt them. Even just knowing that awk '{print $n}' prints the n-th word in each line of input can make all the difference, sometimes.


Of course, this supposes you have the time and desire to learn multiple languages. If not, and you know what you want to learn, go with one of php, python or perl for web/server-side development, java or javascript (depending on scale) for web/client-side programming. You'll also want HTML+CSS for both of these, whichever way you look at it.
take up C or C++ for system programming. Either should do, and both have their own brand of problems and advantages.
Learn both pascal and scheme if all you want is to understand what programming is about, but consider learning python instead if you just want to learn what programming is about AND still have something useful to work with.
Learn POV-Ray if you want some light introduction to programming, and graphics are your thing, but the lack of a steady hand has deterred you from getting anywhere with other programs. In any project of significative dimension you'll quickly take up the use of loops and conditionals, and these quite literally constitute all the core understanding about programming.

The Gray Hat
June 25th, 2005, 02:16 AM
I've never had any luck learning from books, and I can't get classes right now, anybody got any suggestions on ways to learn?

Arto
June 27th, 2005, 12:14 AM
I've never had any luck learning from books, and I can't get classes right now, anybody got any suggestions on ways to learn?

That depends on what level you are now. If you don't how to program at all, just go through an online tutorial or two. For example, Why's (Poignant) Guide to Ruby (http://www.poignantguide.net/ruby/), or Dive Into Python (http://diveintopython.org/). There's little reason to purchase a dead-tree book when the net is full of tutorials for every imaginable language.

If you do have the basics behind you alrrady, just think of an interesting project (a game, for instance) and start coding. You can look up stuff as you go (in the language reference, which you'll find online, no doubt, for whichever language you choose). That's how I learned, 10 years back; didn't need to read any books. Of course, since there's so much open-source software to learn from, might be a good idea to read through other people's sources as well, you can learn a lot that way (provided they're not totally uncommented).

granite230
July 2nd, 2005, 06:47 AM
I don't have much experience programming stuff. We learn C# at school but we 'learned' it from three different teachers using 3 different methods. Very confusing.
I realy don't understand C#. We're only messing around at school and its getting harder and harder but nobody understands even the basics. And now I've been reading some stuff for a while at home to learn it myself but I don't realy get it anyway.

So now is my question: what's the best way to learn C# asap? Are there any realy realy good books out there that I should read? I prefer to program some Linux apps in Mono but I've never done that before. I previously used Visual Studio but I would realy like to learn C# programming Linux apps. I realy don't know what's the best way.
I don't realy have previous experience and I don't have time to learn Python first (that sucks about school... can't do it my way).

What do you think I should do?

sjmorgan
July 2nd, 2005, 12:31 PM
There's no magic trick to it. Get a good book (there's usually 1 definitive book that all the experts recommend e.g. the K&R book for C), read it and do the exercises. Easy.

The difficult bit is maintaining your motivation which, frankly, nobody can help you with. A lot of people really want the end result without the "middle bit" but if you're serious about programming you'll see the middle bit as fun and be too busy doing it to care about the end result.

granite230
July 2nd, 2005, 02:15 PM
The K&R book looks good, but it's used for learning C, not C#. I don't know the differences but I realy need to learn C#. It's not that I don't want to start with C or something, it's just that I have to learn C# for school... and I don't have all the time in the world... wish I could do this my own way ](*,)

oh and by the way, I cant order that book in the Netherlands... I've spotted a lot of realy nice books an Amazon.com but when I try to order them here, they can't deliver it...

So I don't have a choice what language I want to learn first, I have to learn C# fast, but I can't order the books I want... very frustrating.

JPatrick
July 6th, 2005, 07:45 AM
I learnt C++ from a book.

PHP, I learnt by adding features to my forum :P

dolny
July 10th, 2005, 02:09 PM
What do you think about Ruby as a language which will help acquiring the knowledge about C++ and making it easier to understand?

C++ is probably too hard for me as I never coded before. I found a great book about Ruby and just began to read it. Great thing.

I want to be a game programmer. I mean: I am 22 years old and I'm just beginning so I mean - I want to create a free game for my own satisfaction + for the people.

Since I'm not an egghead ;-) - that means I'm not good at maths, physics and chemistry :) I'm the guy who prefers to read 'Sleepy Hollow' instead of reading a scientific book - I perceive it as the only way to learn how to program. What do you think guys?

Is Ruby a good language for game creation?

Arto
July 11th, 2005, 06:59 AM
What do you think about Ruby as a language which will help acquiring the knowledge about C++ and making it easier to understand?

Yeah, that's not a bad way to go, although once you've learned Ruby you will start questioning why you'd want to use C++ (unless, of course, you were in a situation where you'd require the raw speed of 'high-level assembly' languages like the C derivatives.)

Having programmed many, many years in C++, Java and Python, among other languages, and having just recently taken the time to see what the Ruby hype is about, I must say I regret not learning and using it earlier. It's easily the most object-oriented language this side of Smalltalk, and I just love the metaprogramming facilities it offers. It's displaced Python as my favorite language, which is saying a lot since Python isn't half bad.

So, for learning object-oriented thinking, Ruby (or Python, or Smalltalk, ...) is definitely recommended over C++. The big picture will be easier to fathom when you don't have to worry about the low-level, nitty-gritty details.

C++ is probably too hard for me as I never coded before. I found a great book about Ruby and just began to read it. Great thing.

Are you reading the Pickaxe (http://pragmaticprogrammer.com/titles/ruby/)? It's also available in the Ubuntu rubybook package; you can access the book, after installation, at file:///usr/share/doc/rubybook/html/index.html with your browser.

Is Ruby a good language for game creation?

In terms of programmer productivity, definitely. In terms of computer performance, it depends. If your game requires 100% of the raw speed the computer can give (3D shooter?), it might not be suitable by itself (see note about C extension modules, below); but then again, for creating a strategy or board game it would be a very good match.

Ruby's got good GUI bindings (Tk, Wx, GTK, etc) as well as an OpenGL & SDL interface, so everything you need is there. The OpenGL bindings are written in C and in some cases you can actually approach the speed of a C program (see the ruby-talk mailing list), though it depends on your specific situation. For games like the next big Civilization or Age of Empires clone, the speed will be more than sufficient.

Performance-wise, there are a couple of upcoming features you will want to watch: the next major Ruby version, under development now, will include a new virtual machine architecture called Rite that will significantly speed up Ruby; in addition, there is a RubyToC project, that can optimize Ruby code through on-the-fly conversion and compilation of hotspot functions into C code, which are then dynamically loaded into the running program. And of course, if necessary, you can always write the speed-critical parts of your game as a Ruby C extension; the code will integrate seamlessly into Ruby (see the Pickaxe book for details).

To get a general idea and see good examples of what kind of games can be written in a high-level language like Ruby, take a look at the Python game development project (http://pygame.org/). Any of those games, at least, could as easily (or somewhat easier ;-) ) be written in Ruby.

I'm the guy who prefers to read 'Sleepy Hollow' instead of reading a scientific book - I perceive it as the only way to learn how to program. What do you think guys?

Well, I don't know that reading 'Sleepy Hollow' is the only way to learn how to program ;-) :razz:

dolny
July 11th, 2005, 11:33 AM
LOL. Yeah, I was tired. Thanks for your answers. I appreciate it.
What I mean is that I suck at physics and stuff. Although I would love to finally learn how to program.

t2kburl
July 17th, 2005, 11:56 AM
After spending an hour + reading this thread, I have decided to start with Python, but keeping the Ruby book bookmarked.
My first programming class starts in a month and I know I'll be starting with Qbasic there, then VB6.0. (its part of my Electronics-Computer systems technician program, Not an elective)
Actually, I did some programming on an Apple][ back in the day, but all I remember is that it had a lot of goto and gosub stuff.

hzs202
July 27th, 2005, 04:08 PM
Python is a mitre saw.

Java is a bench saw.

C is a screwdriver.

C++ is a Phillips-head screwdriver.

C# is a screwdriver that has a funny head.

perl is a hammer.

What do you want to build? You cannot argue what tool is the best without knowing what you want to do!Personally I think C is always a good programming language to begin with especially in a Unix/BSD/Linux environment. Because most of the OS is written in C/C++. Unless Ubuntu is doing something that I am not aware off?

Arto
July 28th, 2005, 11:08 AM
Unless Ubuntu is doing something that I am not aware off?

Well, unless you ignore that Mark Shuttleworth, the founder of Canonical and Ubuntu, is a strong supporter of Python ("I'm a great fan and heavy user of Python. I prefer to fund work done in Python." (http://www.markshuttleworth.com/bounty.html)), and that the Python runtimes, documentation and the Dive Into Python (https://www.ubuntulinux.org/books/python) book come bundled, ready-to-use with every Ubuntu installation (as dependencies for the ubuntu-desktop package), and that Python is heavily used in system scripting, with Canonical busy rewriting (or funding rewrites of) large portions of legacy C/C++ codebases into Python (http://www.bazaar-ng.org/).... ;-)

Mobus
July 29th, 2005, 02:52 AM
I personally learned QBASIC as my first language, That's what the library had in stock. but in preparation for that I learned HTML and XML, not necessarily Programming languages, but it'll help you get used to the computer and not being stuck on the second greatest source of evil, WYSIWYG. I would reccomend BASIC, QBASIC, or VISUAL BASIC to any first programmer in fact because of its obsotlete stage. Your first programming language should be something that should be easy to learn, not exactly something that will bbe useful. Your second programming language should be somthing that is more useful, which is good since you've got your obsolete learning backround. I even created a 5 step prigram to teach ANYONE programming, even my mom... o.o Basically, here's a good list of a good second language choice list (in my opinion):

C/C++/C# = Applications/Software that you want people to actually use on their computer

perl/php: WEb (don't even TRY to use an interpred language for non-web solutions. You will be sorry)

Java: if you want to completely eliminate all advantages of compiled and interpreted languages.

PASCAL: If you do nothing but math... math... science... math... math... math.. numbers..

COBOL: If you are a businessman

Python: If you want to be a showoff

Visual Basic: If you don't want programming as any job to make any money of any sort.

BASIC: Don't even think about it

QBASIC: If you want to support a Microsoft spinoff that didn't take much thought (much like patenting emoticons

HTML: Can't even consider this a programming language. Good for web pages and readmes. Also a good introdocution to an introduction to programming (as in learn HTML, the QBASIC, I had 2 "Introduction To's" On purpose, not a typo)

XML: Again, like HTML, not even a programming language, but still needs to be noted. I find this language totally useless. It is WAY too complicated for just giving your HTML tags new names..., yet a nice bridge from HTML to Programming.

DHTML, SHTML, PHTML: the name says it all. No different than HTML other than 1 letter, and a bounch of pointless added quirks.

Jivicin
August 2nd, 2005, 04:15 PM
I think the easiest way would be to go to college and sign in blood for a computer science major!!! :grin:

Seriously though, if you're good in math and you have an older pc (perferably with win95 installed), QBasic is really simple to learn. I started with that.

I worked myself up to TI graphing calculator basic language. There syntax is a bit trickier sometimes.

In college, my first courses delt with C++. After playing around with basic, C++ wasn't that much harder. After C++, then Java, and VB.

I think I would save assembler for last (or never if you can help it). It tends to be cryptic and hard to understand.

N'Jal
August 2nd, 2005, 04:27 PM
Two years of MSVB, forgot it all towards the end as i started to teach myself C, to give me a head start in Uni, hope to never have to touch Basic again. C for Dummies is awesome!

Rylem
August 4th, 2005, 09:00 PM
I wouldn't recommend doing what I did, but how I learned is below:

1 year of trying C++ ( didn't work too well first time I tried it )
10 Months of Quick Basic
5 Months of Liberty Basic
3 Months of Python
6 Months of Ruby
1 year of PHP
2003 - current of C++ ( my favorite language now besides PHP )

Like I mentioned, I wouldn't recommend doing it like I did.

Jessehk
August 4th, 2005, 09:47 PM
Mainly self taught from books ( usually of the 1000+ page variety ).

I am still quite a beginner.

Rylem
August 5th, 2005, 12:51 PM
Books are a nice alternative. You can try amazon.com for some. I bought some really good ones from there, even one about DirectX programming even though I dont plan on programming in DirectX it never hurts to learn.

Heres a website you might want to try. It filled in alot of gaps for me:

http://www.cplusplus.com

johanvdw
August 10th, 2005, 12:20 PM
I learned programming
.bat files
gwbasic, qbasic an quickbasic
Pascal and Delphi
PHP
C++

For a beginner: the language shouldn't be the constraint to learn programming concepts. I would start with an easy language like Python, PHP or Pascal.

I wouldn't start with C/C++.

Once you are more confident and actually really want to program something (a website, a program, ...) you should choose the programming language.

The most important thing however is: programming itself. You don't learn to find errors in your code by reading other peoples code or learn to solve programming problems by reading other code (it is interesting however once you have to develop timeconsuming algorithms). Both things are what's programming all about.

vimme
August 11th, 2005, 09:14 AM
Once upon a time I started out with visual basic. Did some little apps, came to conclusion that it isn't my thing.

After that I got to know a bit of PHP, now I can say that I know some basics out of it but can't really code anything with it. Reason is that I didn't / don't have any projects to boost learning.

Then I discovered Python. Simple, very n00b friendly language to do scripts. Scripts are the thing I like to code, gives the brain something to work with ;) Someone likes to fill crossword puzzles etc. I like to do short scripts, nevermind the usefulness of them...

Python is one reason why I turned to from windows linux too, more useful with linux than win. Or atleast I think so...

TreeFrog
August 11th, 2005, 12:48 PM
Pascal > C and assembly > C++ > Then Delphi. Most time in Delphi.

Hey did Kylix ever make it out of the box or is it dead? I must check it out.

Have not programmed in a long long time but Ubuntu is making that itch come back.

I wonder what I should start with..
Just want a GUI to run some simple scrypts?

Treefrog

Arto
August 11th, 2005, 09:41 PM
Hey did Kylix ever make it out of the box or is it dead? I must check it out.

I think Kylix is still alive, don't know how widespread its usage is though. Another alternative that might be worth checking out for Linux guys coming from Visual Basic or Delphi is REALBasic 2005 for Linux (http://www.osnews.com/story.php?news_id=11461). It produces standalone executables for Windows, Mac OS X and Linux, and it's written and developed in itself. Looks very promising for basic RAD stuff.

dmsynck
August 11th, 2005, 10:54 PM
I too am fairly new to programming. I have written a few little programs in Java and Python mainly for my own private use, along with a fair amount of HTML/XHTML. After taking a couple of continuing ed. programming classes and trying to bull my way through a few books, I have hit upon a method that I think is worth exploring for any beginning programmer. This method is advocated by Eric S.Raymond and is detailed in his "How to be a Hacker FAQ". He states that most, if not all, of the best programmers/hackers are self-taught and that reading books and taking classes is not the way to become a skilled programmer. He proposes that the way to become more proficient is by doing, by (1. reading code) and (2. writing code). So, according to ESR, the way it works best is to read through some well written programs in whatever language you are interested in, then write a few things on your own. Read a bunch more, then write a little more.Read more, then write a little more and keep repeating this process until the things you are writing begin to resemble the programs you are reading, in structure and clarity. Keep in mind that he states that this process from beginner to capable novice programmer could take anywhere from 1 to 2 years depending on the language you choose (Python is recommended as a first language, it is fairly simple, yet very powerful).
Anyway, this is the method I am using now and if anyone else decides to give this method a try, and it helps them become proficient at programming, I will be happy that I was able to help someone else

jhiggs
August 22nd, 2005, 11:45 PM
Started at high-school playing with .bat files then move on to "prolog" then to pascal, assembly, ,cobol, c, c++ and some visual basic.

invisage01
August 23rd, 2005, 01:20 AM
1. Basic Pascal through school
2. Played with HTML and stuff at a basic level
3. Basic Java + ASP at uni
4. Dated a girl who's father runs a software company..
5. Got job with father after break up
6. Writing code and still constantly learning! (usually from making mistakes!!!)

liquidfire
August 26th, 2005, 06:22 PM
I myself want to learn some programming.
Mostly I wan't to learn about programming application and 3d software(i.e games)
but do I need good math sense for programming? Some say so some say not because that isn't my strongest point. :-|

And besides I really want to learn some basic stuff first, i've tried c++ but that was too difficult for me at the moment because I don't understand what each command does and how to give instructions to a command.

Therefor if anybody knows a language with a low-level requirement and a high userbase plus super support. Please say it too me ;)

wtd
August 26th, 2005, 11:30 PM
Therefor if anybody knows a language with a low-level requirement and a high userbase plus super support. Please say it too me ;)

Ruby and Python are both good ways to start out.

invisage01
August 28th, 2005, 09:17 PM
but do I need good math sense for programming? Some say so some say not because that isn't my strongest point. :-|


I think more LOGIC sense is required than maths sense and logic is an integral part of maths - so i think they sort of go hand in hand. So although maths may not be your strongest point (this is also the case with me) the logical way of thinking is what helps when programming.

Iain.

abiezerm
August 29th, 2005, 06:12 PM
I think more LOGIC sense is required than maths sense and logic is an integral part of maths - so i think they sort of go hand in hand. So although maths may not be your strongest point (this is also the case with me) the logical way of thinking is what helps when programming.

Iain.


i agree!!! in the programing world LOGIC is the most important thing,
if u have LOGIC u can write code in every language.

Parkaboy
September 2nd, 2005, 09:23 PM
I was taught mainly VB.NET at university

I wanna lear Perl and Python with some guides I have downloaded

Webchief
Sep