PDA

View Full Version : How did you learn to program


Pages : 1 2 [3]

scragar
July 4th, 2007, 07:37 PM
I am entirely self taught in PHP, javascript and (although it's not realy a programing language)HTML.

in college I learned VB and used my knowledge to get a grasp of ASP, although I soon forgot it all around 2 seconds after the final Computing exam.

I also know a couple of others including actionscript(although I'm not very graphicy so flash falls apart in my hands) and ruby(I know it but I hate it, anyone else feel like this about a language?)

PuckStopper31
July 5th, 2007, 08:15 PM
I have an admitted bias in this conversation in that I have a fundamental objection to anything that has the word Microsoft involved. I understand that people like it, but C# is utter crap in my opinion. I've used it to successfully construct applications that worked just fine in a mid-range environment, but it just doesn't have the wheels of other languages. Does that mean I would never recommend it to someone? No, not at all. I would recommend it in cases where my customer has an investment in Microsoft technologies. Why? Because it makes good business sense to do so.

My language of preference is Java. Why? Flexibility and power. I can do anything with it and it never gripes never complains and is never a struggle to work with.

I consider C++ to be the highest expression of what we do as developers at this point, largely because it is the most raw pure essence of development the closest (practical) to the machine itself.

I've never done anything with Python but I've heard good things about it.

Not intending to belittle anyone if you work with VB more power to you but I hate the VB code construct even more than I hate the C# code construct.

Just my 2 krupplenicks worth. Your milage may of course vary.

PS.

rocksTONIC52
July 7th, 2007, 12:48 AM
I started off with 6 months in a TrueBASIC class, then moved onto 5 years of C++ (standard and various APIs). I never realized that coding could get easier than that until i started playing around with python and lua. They are amazing for pumping out quick apps. Took a brief stint with C# (meaning I bought a book, read it, and put it back on the shelf). Windows forms are cool, but I'd prefer to use Python for portability reasons.

And that leads me to the present, as I finally realize that with a good power editor and a good shell, I can be a lot more productive. Hello, Linux!

Kevin the Olden
July 7th, 2007, 04:00 AM
College - assembly, basic, pascal and C. Then taught myself C++. Been into programming since 1988. In Australia we don't have 'College as such' It's 'TAFE' which is basically the same thing.

Kevin the Olden (feezing to death down here)...

Yasumoto
July 12th, 2007, 06:36 PM
I took an AP Computer Science class in High School (using java), but that was largely BS (I managed a 3 at least :-\")

My freshman year in college (last year) I took courses using Python, Java, Visual Basic, and ... Torque. (yay games development) I've always generally learned more outside of class than inside however, but it's cool to be able to have professors around to ask them questions.

BDNiner
July 20th, 2007, 11:45 AM
I started on COBOL and basic. Then moved to Java, then C++. I have some limited experience with SQL and Foxpro only because of work. I am looking to get into application and game programming now. it is quite a lot to learn but i have a nice foundation so it should not take that long.

r3bol
July 21st, 2007, 01:56 AM
The most success I've had with a programming language is:
REBOL (http://rebol.com)
Its free, but not open source.

tc101
July 23rd, 2007, 12:04 AM
In 1972 I took a six month course at a technical school. We learned fortran, cobol, RPG and a little assembler. I then got my first job programming at NCR. From that point on I just learned on the job. It felt good because I was a bright young guy and I could learn the new stuff faster than the old pros. I retired in 2004 when I was 54. I noticed the younger guys were learning the new stuff a lot faster than I was and realized it was time to get out.

the_dark_light
July 30th, 2007, 07:58 AM
If you're genuinely interested in programming, I suggest you see if your local college or appropriate educational establishment has any part time/evening courses in programming. I think there are quite a few offering them, when I was at college, I friend of mine took an extra part time course in Java programming

Teaching yourself can work, but take it from me - it can get you in to some really bad programming habits. I taught myself QBASIC when I was at school. Never will you see so many GOTO's in a single piece of code :(

Once you know the fundamentals of programming, it's easy to teach yourself new languages.

And I have a list of recommended languages:

Java - Used widely in non Microsoft shops, you can write programs (as with any language) but you can also do web based work with it through JSP (Java Server Pages)

C# - The illegitimate love child of C++ and Java. Microsoft's new language, very much like C++, very much like Java, easy to pick up if you know either. Using the Microsoft .NET framework, you have access to a vast library of functionality. Can also be used for web work with ASP.NET. If you want to stick to Linux, it may be worth checking Mono - a .NET implementation for Linux

VB.NET - The new incarnation of Visual Basic. Easy to learn, can be used with ASP.NET but Way too verbose. COBOL fingers? HA! Try VB Fingers (You have to be old or a geek beyond recovery to know it - and it helps if you know the Jargon File :)) - Mono too

PHP - An easy to learn scripting language, most amateur and quite a few professional sites use this simple language. Doesn't matter if ASP.NET takes over - there will always be PHP

C++ - An old one, still widely used. If you want to lend support to open source projects, this would be a must. Personally, I wouldn't learn this one though (it gives a great deal of control over things like memory allocation - can be pretty hairy for novices)

Javascript - If you plan to do any web development, you should have at least some familiarity with this

Befunge - Go on, I dare you!

(Please not I don't condone Befunge - it will warp you!)

Sorry if I sound patronising to the experienced programmers, I'm targeting all abilities here.

Note360
July 30th, 2007, 09:28 AM
If you're genuinely interested in programming, I suggest you see if your local college or appropriate educational establishment has any part time/evening courses in programming. I think there are quite a few offering them, when I was at college, I friend of mine took an extra part time course in Java programming

Teaching yourself can work, but take it from me - it can get you in to some really bad programming habits. I taught myself QBASIC when I was at school. Never will you see so many GOTO's in a single piece of code :(

Once you know the fundamentals of programming, it's easy to teach yourself new languages.

And I have a list of recommended languages:

Java - Used widely in non Microsoft shops, you can write programs (as with any language) but you can also do web based work with it through JSP (Java Server Pages)

C# - The illegitimate love child of C++ and Java. Microsoft's new language, very much like C++, very much like Java, easy to pick up if you know either. Using the Microsoft .NET framework, you have access to a vast library of functionality. Can also be used for web work with ASP.NET. If you want to stick to Linux, it may be worth checking Mono - a .NET implementation for Linux

VB.NET - The new incarnation of Visual Basic. Easy to learn, can be used with ASP.NET but Way too verbose. COBOL fingers? HA! Try VB Fingers (You have to be old or a geek beyond recovery to know it - and it helps if you know the Jargon File :)) - Mono too

PHP - An easy to learn scripting language, most amateur and quite a few professional sites use this simple language. Doesn't matter if ASP.NET takes over - there will always be PHP

C++ - An old one, still widely used. If you want to lend support to open source projects, this would be a must. Personally, I wouldn't learn this one though (it gives a great deal of control over things like memory allocation - can be pretty hairy for novices)

Javascript - If you plan to do any web development, you should have at least some familiarity with this

Befunge - Go on, I dare you!

(Please not I don't condone Befunge - it will warp you!)

Sorry if I sound patronising to the experienced programmers, I'm targeting all abilities here.

I disagree though. Learning programming on your own is one of the most exilerating experiences ever. However, I can see what you mean. Newer languages though tend to have less room for those extremely bad habits and dont condone them as much.

Tuan Tran
July 30th, 2007, 02:16 PM
use C++ it's sweet and u can do some cross platform scriptin...

the_dark_light
July 30th, 2007, 07:00 PM
use C++ it's sweet and u can do some cross platform scriptin...

Personally, I think that C++ should only be used by people who "know what they are doing"

Reason being, the great power C++ gives over memory comes with great responsibility. It's all to easy to make a mistake and allow public enemy #1 in to the program "THE BUFFER OVERRUN, cue dramatic music"

(Or we should return to array bounds checking. Wasn't that feature in Pascal?)

ry4n
July 30th, 2007, 07:07 PM
learning python is a great book from O'reily books and Programming Python is a good follow up.

celsofaf
July 30th, 2007, 09:08 PM
learning python is a great book from O'reily books and Programming Python is a good follow up.

Are these books available for download?

Note360
July 30th, 2007, 09:12 PM
Are these books available for download?


if you know where to look not, ehurm, that im condoning it. really im not

celsofaf
July 31st, 2007, 01:20 PM
if you know where to look not, ehurm, that im condoning it. really im not
Sorry, got it. :)

Note360
July 31st, 2007, 02:08 PM
dude its a programing forum every one got it.

joerite
August 1st, 2007, 03:39 AM
http://www.w3schools.com/js/
javascript was my first language




make a txt file with the first line as:

#! /usr/bin/env python
c="hi"
print c

save it as something.py

in terminal run it by:

python something.py

but you be in the directory

gvtheen
August 2nd, 2007, 07:57 AM
I think C language is well fit to you start off with !
C language is foundation of C++ and java !

lisati
August 2nd, 2007, 08:01 AM
dude its a programing forum every one got it.

Sure about that? Not everyone uses the thing.....

Note360
August 2nd, 2007, 12:22 PM
Sure about that? Not everyone uses the thing.....

maybe maybe not. if you want to debate more lets move it to PM this thread isnt for this debate.

TeKniKal
August 6th, 2007, 03:24 PM
I learned QBasic when I was 8 or something, at school we had quite a network (for those days) with custom programmed GWBasic stuff, which was a great resource from a learning aspect. But since I felt Basic wasn't all that powerful, even though I tried on Visual Basic for a while, I had another IDE lying around: Delphi 3. So Object Pascal became my major programming language on Windows. I tried learning ASM (x86), but I never really used it, it was more something to get to know the system, to get the basics to do some simple debugging/decompiling.

In high school, we had 2 years of Turbo Pascal (which was totally outdated, of course, even Pascal for Windows (for Windows 3 that was, on Windows 98/XP computers)). I didn't enjoy it, because I already knew the language and the course was too easy for me but apparently too hard for most of the others (so I ended each lesson with a big headache due to all the screams, huffs and puffs from the rest 'it doesn't work').

Anyhow, I took up learning PHP for some webscripting, I tried on Ruby for a while (which I though was a great piece, but as simple as it looks in the beginning, as stupid does this language appear when you get to some real work). I quite like the language, even though many people consider it to be a bad language (which is indeed somewhat the case, considering the cluttered names).

In university (last year, that is), I learned Modula-2. A horrible language derived from Pascal. It was bound to correct the mistakes in Pascal, which might be the case; but without any good IDE (XDS for Windows) or even enough resources to do what you want (writing a Windows application using gdiplus, something that didn't exist for Modula, and due to limitations in the language you can't import the libraries directly). Anyhow, as I was used to Delphi, XDS Modula-2 just was a horrible experience: everything that Modula fixed from Pascal, was fixed in a better, lightweight and less redundant way in Object Pascal. My main problems with Modula were its stupid syntax: putting a '|' between cases, using begin..end blocks for procedures (and functions, though they are also named procedures), but then loops, ifs, ... create a block automatically, so it shows somthing like if .. then .. end, which I find horrid, wheras Pascal let's you do if .. then .. ; or if .. then begin .. end. Where the last allows you to put different statements in the block.

Another language we needed to lear last year was Matlab. Quite powerful, but not my most favorite language. It does what it's built for quite fast, but I don't like its syntax

So, to stop my rant towards Modula; I do notice that the language that I'm currently learning has had great influences from Modula-3: Python. Although it is somewhat different from the Pascal-style languages I'm used to, it's whole concept of indenting is just perfect for me. Even in Pascal I am a fervent indenter, the way Python needs indentation in a consistent way makes the code look beautiful. The only downside is that (as far as I know) you can't really compile python code (so you always need an interpreter and the code runs a bit slower than it would on a compiled language). But as I have switched to Linux permanently, I think this is the language I will be keeping in stead of Object Pascal (even though Lazarus/FreePascal is quite an alternative for Delphi, Python has the big advantage that if well written it is quickly portable).

My advice for learning a language would be a Pascal-style language (Object Pascal) if you want to get to the basics: mostly the basic variable types, which is not that easy for many people (in the same way that building a database is hard for many people as they can't imagine how information relates). If you just want to get into algorithmic thinking (which is the other hard part of programming): Python or another of those popular scripting languages (Ruby, ...). And just remember: the hard parts in programming are the fun parts, the parts that are repetitive are the parts you should really hate (and try to minimize).

alaniane
August 6th, 2007, 05:10 PM
I learned to program using a TI-59 calculator and a TRS-80 model I level 2 computer. The first program I wrote was run on an IBM 360 series mainframe at my dad's office.
To start off programming, I would choose a simple language to learn and then start playing with it. If you find that you enjoy programming then you can try to tackle the more difficult languages and learn the various programming methodologies.

babacan
August 9th, 2007, 08:32 PM
Dr Scheme is also a good choice as a first language :) It is a subdivision of LISP. Try to download drscheme from drscheme.org

sacred
August 10th, 2007, 08:52 AM
Like a lot of people I started out young, 5 or so. BASIC on a C16 and Amstrad 464+, nothing fancy, just manual reading and magazine pokes. My first "PC" language was Delphi, started out at Delphi 1, currently use Delphi 2006. I tried Kylix once, wow that's bad. I've dabbled in other languages but I have a history with Delphi and a firm grasp within it. I really got in to C++ about a year ago and am looking to expand my knowledge and use of it on a *nix base in-between my current DX/XP workload. So I will probably be posting a lot of embarrassing newbie questions in this sub-forum :(.

As for how I learnt, libraries/books/mags are pretty good resources as is the inet. I did take a college course in Java about two years ago, but dropped out because I really didn't like the language.

dscherry
August 14th, 2007, 12:27 AM
College - 1968 - I needed Fortran to solve some engineering heat transfer problems. Then I used PL1 for a term project to solve Instant Insanity (the 4 cube R,W,B,G alignment game). All with punch cards - Not very relevant to what the OP was asking.

I stayed in I.T. most of the time since, until I retired a few years ago.

Of all the languages I've used, I'd say Pascal was the easiest to learn, but given it's value in today's market, I wouldn't waste any time on it. Python, PHP, Ruby, all let you do something quickly, without a major investment in learning time - so they're good if you want to try a few to see what appeals to you.

If you go with C++ or other C flavors, they take a little longer to learn, but you get the potential for a lot more power and speed. Unfortunately, to really take advantage of that extra power, they require you to really understand more about the environment you're working in, and that can be harder to learn than the language itself.

The only other advice I'd offer, is, if you plan to secure all of your work, then consider Perl - I read someplace that Perl is the only language where the code looks the same before and after you run it through rsa encryption! lol!

My 2 cents - ymmv

Dan

nanotube
August 14th, 2007, 12:53 AM
Are these books available for download?

if you want to stay on the legal side, there are great books that actually are free.
google for "thinking in python" (more advanced text), and for "dive into python" (more lightweight)

then there's of course the official python tutorial (on python.org/doc)

no need to resort to questionable means when we can use (and support!) open content. :)

mozzie
August 14th, 2007, 09:40 AM
sorry for being so n00by about this , i've worked on windows all my life, shifted to linux a few days ago.
i would like to develop network applications for ubuntu and i have no idea where to start.
i can program in C, C++, java and python.
few questions...
#which language do i choose
#how do i integrate it with ubuntu?
#any tutorials available which would help me understand integration of software with ubuntu?


i know im acting like a stranded kitten but i thought this was the best place to ask these questions!

thanks in advance!
cheers
\M/
:guitar:

nanotube
August 14th, 2007, 07:47 PM
sorry for being so n00by about this , i've worked on windows all my life, shifted to linux a few days ago.
i would like to develop network applications for ubuntu and i have no idea where to start.
i can program in C, C++, java and python.
few questions...
#which language do i choose
#how do i integrate it with ubuntu?
#any tutorials available which would help me understand integration of software with ubuntu?


i know im acting like a stranded kitten but i thought this was the best place to ask these questions!

thanks in advance!
cheers
\M/
:guitar:

well, python has some great networking modules built in, (and there are more available outside the base install), so i'd say go with python unless you have a good reason not to. (python fanboy here, can you tell? :) ).

i don't really know what exactly you mean by "integrating" things with ubuntu, so please clarify... but a lot of the major ubuntu apps are coded in python, so you can't go wrong with that one.

mozzie
August 15th, 2007, 01:52 AM
thanks nanotube...
well what i mean by "integrating" stuff with ubuntu is...
after developing an application, does it ned to be registered in the registry or something like that (i've just shifted over from windows ;)) what is the structure of the ubuntu coding....i know that it is divided into main, universe, multiverse and one other thing i cannot remember but is there more detailed documentation on the coding structure of ubuntu?
cheers

nanotube
August 15th, 2007, 09:42 AM
thanks nanotube...
well what i mean by "integrating" stuff with ubuntu is...
after developing an application, does it ned to be registered in the registry or something like that (i've just shifted over from windows ;)) what is the structure of the ubuntu coding....i know that it is divided into main, universe, multiverse and one other thing i cannot remember but is there more detailed documentation on the coding structure of ubuntu?
cheers

ah, those are two different questions, really. the repositories issue is separate from the coding issue - and you as a developer don't really have to worry about it unless you want to - once you get your software "accepted" for the ubuntu repositories, the packagers will package it up and stuff, or help walk you through the process.

as to registry and stuff: there is something akin to a registry in gnome, but that is mainly used for configuring gnome itself, not the applications. best to just avoid it like the plague :)

most apps put config files into hidden directories in the home directory. a hidden directory is one that starts with a ".". so your new app called "foobar" might place some configuration files for the user into ~/.foobar. if there are any global configuration files, they would be placed into /etc/foobar (just one file), or if there are multiple files, into /etc/foobar/* (directory with some files).
your actual binaries would go into /usr/bin, your manpages into /usr/share/man, your documentation into /usr/share/doc... look at some other software packages and where they place their files - or there might be a guide somewhere tailored to ubuntu.

the menu items in the menu are created also as separate files with a certain format, and placed into /usr/share/applications directory (you can see the format of the .desktop files just by opening a few of them up in a text editor - it's pretty self-explanatory)

the actual "placing" of those files into all those directories is taken care of for you by the .deb package installer.

i think that about covers the basics.

since you say you are new to linux, you may want to familiarize yourself with the general filesystem structure (what goes into /usr, what goes into /etc, what goes into /var, etc). this little list may be of assistance:
http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html
(there's an even bigger site about all this, but i can't find it at the moment...)

so just play around, look at some other software and where it places stuff, and ask questions if you have any doubts! :)

mozzie
August 17th, 2007, 05:44 AM
thanks dude i really appreciate it....im just getting started and i intend to go the whole hog with thig thing....
im sure i will have plenty to ask in the near future! ;)

nanotube
August 17th, 2007, 10:00 AM
thanks dude i really appreciate it....im just getting started and i intend to go the whole hog with thig thing....
im sure i will have plenty to ask in the near future! ;)

have fun ! :)

rharriso
August 19th, 2007, 04:01 PM
I started rather late. It was first year at university as an engineering student. I was taking a matlab course and found that I loved it. That summer I did some research and decided tat Java would be a good learner language for OOP. I then switched my major to computer science and haven't looked back since.

Pocadotty
August 22nd, 2007, 08:12 AM
I first started programming by writing embedded firmware for an obscure micro controller made by a company called echelon. the language was a proprietary twist on C. I had to learn everything on the job, which teaches you things pretty fast, but makes for poor code to have to support latter. Since I have learned Java and C++, through university and work. To this day I know no scripting or markup languages... but i will try and change that soon.

tyggna1
August 22nd, 2007, 08:16 AM
I started in 8th grade with pascal on a 386 computer. <sigh of nostalgia> I didn't learn squat about it though, and later picked up C++ with the "for dummies" book. My dad--a long-time code monkey (programmed the "make it fit" function in the original word perfect) realized I was taking an interest in Linux a few weeks ago, and dumped about $300 worth of perl programming books on me. I'm still giddy when I'm reading through them. Going from a verbose language like C++ to a compact language like perl is kinda exciting.

jwhiteman
August 27th, 2007, 02:17 PM
Just picked up a book and started.. I had something I wanted to write, mainly just little apps to help automate stuff. I ran a 2-line bbs at the time. Now I code in ASP and VBA for work along with being the systems admin.

:)

caoinan
August 29th, 2007, 02:25 PM
so I guess the person who started this topic never returned once...

xlinuks
September 2nd, 2007, 08:20 AM
I wanted to have a web-pages (about 6 years ago) and I found out that I need to know HTML. It turned out that to build your own page knowingt only HTML is not enough, so I learned the basics about browsers/servers/TCP-IP/... Then JavaScript, CSS. Then I wanted something more powerful and learned Java. Now I also have a C background and I'm currently learning AT&T assembly.

freeadlists
September 10th, 2007, 04:00 AM
I took a C++ course in college about 10 years ago. I enjoyed it until we got to data structures. But I had to take data structures for my major. Since then, I've learned Java, Visual, SQL/PL, and shell programming. Fun stuff.

Coyote21
September 11th, 2007, 06:19 PM
I learn to program with Delphi, and that gave me an good background in OOP (Object oriented programming), along with an excellent support in terms of components, IDE and an stable language. From them, I've installed my first Linux (in 97), an SuSe version, and i've learned C, along with an few things about OS's particularly filesystems, using Linux virtual filesystem architeture, them I've compiled my first linux kernel successfully, but because my files had the tendency to disappear between the system boots.
I've got back to Windows, and learned Java and C++, then I've got into the secondary to an programming course, and learn even more Pascal and C, along with Visual Basic (which I hated at the first contact, for being to word-tokenized (having too much, reserved words that were English words, and not symbols like in C and C++. And because, it encourages copy-paste programming, and thats an bad practice to me) .
Them I've continued with ASP, and JavaScript in school (and JSP as an autodidact, learning the MVC model in the way). Now at the university, I've learned scheme (which improved, my recursive programming), and even more C. And I'm also trying to learn python as an starter for script languages. And of course, in the process i've learned operating systems theory, compiler theory, and many other things.

So, knowing what I know, python might be an good starting language, since it is easier to learn, and don't has an fussy syntax like in other languages (Pascal and C), but once you've learn to program, it's an good option to learn an traditional language like Java or C++, since they've the most used today.

zhanglini
September 12th, 2007, 10:04 PM
A quick question here for you guys--- how do you type this pipe thing "|" (I copied and pasted here) in the terminal? I can't find it on my key board.....
Thanks

Frak
September 12th, 2007, 10:08 PM
Shift+Backslash

the.unclean.cpp
September 13th, 2007, 09:46 AM
I started with Pascal because it's very easy to understand(almost plain english). After 3 years of Pascal in school I moved on to C++. I had absolutely no dificulties migrating to C++. I tried to learn it from books, but the books were to detailed and I got bored, so I searched the net for simple examples of c++ and I figured out what they do by myself. Then I moved on to more complex source codes and so on and so forth.
In my opinion learning from examples is the best aproach.

weedeatr
September 24th, 2007, 03:16 PM
I also wanted to start programming this year.

So i started with qbasic on windows.
I googled for tutorials and stuff.
Then i went on linux ubuntu 6.06(the best choice ever)
And i have just started with python.
But it depends on what you want to do?



so its up to you



-weedeatr-

Auracaria
September 25th, 2007, 03:31 PM
I started programming in 1974 on an ICL 1903A in Algol 60 whilst at the Lanchester Poly...we used punched cards as an input method and were allowed 3 compilations a week. There I learned the importance of desk checking my code before compiling it. I was trained as a scientist and computing was only a tiny part of my course. Little did I know that after graduating I would end up as a professional IT person.

In 1976 I learned PL/1 on an IBM 370 - yes we still used punched cards.
1980 and I was programming on ICL in COBOL still on punched cards. I wrote my first networked applications in CIS COBOL on distributed 8 Bit micros and yes I had an asci terminal with a real IDE...IIRR it was 1982. I also used Filetab - an odd language based on decision tables. We had a PDP11 which ran a real time operating system called RSX 11M. This came with documented source code some written by David N Cutler - one of the Gods of programming!.......The applications language was RTL/2 block structured and very cool. In those days we could serve 256 terminals with sub second response time to a major stock control database with a computer far less powerful than a modern mobile phone...I stopped programming for a long while as I moved up into software and systems management.

I started programming for fun when I took up Ham Radio a few years back. Based on the above my advice would be -

First learn C....Get the Kernighan and Ritchie book and a copy of Programming Pearls by Jon Bently. C has the unique distinction of running on just about every architecture known. As well as programming GUI stuff with it u can also have fun programming microcontrollers too most of which have no OS at all. Programming language purists don't like C because it is possible to do some really dumb stuff in C if one isnt careful. Academics favoured Pascal as a language to teach with however I never found it any use for practical software development.

Second learn Ruby...its free, there is a huge amount of good books on it, its cross platform like C but also object oriented. Its simpler that C++ as far as I am concerned as the syntax is less obscure.

Above all, have fun.

fleeb
September 28th, 2007, 11:41 PM
I wonder if I dare contribute...

I've been programming since sometime in the 80s (when I was a teenager). I learned to program on TRS-80 model III systems in Basic and Z-80 assembler, moving on to Vic-20 Basic, and so on. I only just managed to miss the unpleasantries of punch cards.

Eventually, I picked up C/C++, and tidbits of other languages here and there as needed.

I'd say the only language to ever give me trouble is Perl. I just can't wrap my mind around that thing, even now, so many years later with so many other languages under my belt. It just isn't worth my time, though.

My advice?

Whatever language you elect to work with, for whatever reason, look for example code, and try goofing around with it.

So, for example, let's say you see a web board, and you get this idea to do something just a little different with it. Save a copy of your original web board code, then mess around with the code to see what happens.

If it's all too bewildering, read up some manuals on the language to help you get by. Even today, I refer to programming reference manuals, so don't feel ashamed.

Do not fear C/C++, or assembly, if you really want to get a little closer to seeing how the machine thinks. The learning curve is steep, the mistakes are ... entertaining ... and the frustration may be discouraging, but in the end, it's amazingly rewarding.

If you go the C++ route, you really should read Stroustrup's book on the language, as well as Josuttis's book on the STL. Stroustrup will help you understand some of the why behind the language, while Josuttis will help you work with a variety of common ways of working with information in the language, through STL (his book is both a tutorial and a reference manual... I highly recommend it).

But, most of all, just play. I learn as much from my mistakes as my successes, if not more. With things like VMWare and debuggers, you should be able to do absolutely hideous things that would make an experienced programmer cringe (and possibly require that you reinstall the OS or revert to a previous snapshot of your OS image) without fear.

And if you find it all just too darned frustrating, and not even remotely fun, don't bother continuing. Most programmers continue to program not for the money, but for the pleasure of programming. The money, while potentially lucrative, isn't really worth the stresses.

Seismosaur
October 1st, 2007, 07:26 PM
I reccomend pascal, BASIC (and its immediate offspring) to the new programmer. The level hierarchy could go like this:


Begginer.....................................Getti ng better...................................More advanced
V................................................. ..... V................................................. V
BASIC, python, and other scripting languages........Pascal, C, etc............C++, Java, Assembly, etc.


But you should learn as many languages as possible, because it makes you more flexible when working on a project.

Frak
October 1st, 2007, 10:49 PM
I reccomend pascal, BASIC (and its immediate offspring) to the new programmer. The level hierarchy could go like this:


Begginer.....................................Getti ng better...................................More advanced
V................................................. ..... V................................................. V
BASIC, python, and other scripting languages........Pascal, C, etc............C++, Java, Assembly, etc.


But you should learn as many languages as possible, because it makes you more flexible when working on a project.
You may want to add BASH/SH to the very beggining of that. ;)

Note360
October 2nd, 2007, 06:59 AM
You may want to add BASH/SH to the very beggining of that. ;)


His list inst really the truth there are more variables involved. Some one should make a language chooser, maybe ill do that just for fun.
(and for a reason to make a gtk application)

jimmywu013
October 3rd, 2007, 08:39 AM
I actually began with a programmable graphing calculator. It was a TI-83 Plus SE, and it had a built in BASIC, called TI-BASIC. I had a lot of fun with that, making random math programs and games.
Then, I learned z80 assembly in order to make faster games for the calculator. All I have to say about assembly is that it is a pain to get anything done in. I would learn binary math (at least know what hexadecimal/binary is) before attempting it.
Then, I taught myself C++ and Java. Both are nice languages, although I prefer C++. I never really taught myself C, but it's close enough to C++ that I shouldn't have any trouble picking it up if I ever need it.
Over the summer, I picked up PHP because I needed it for my job. This is another language that is very similar in appearance to the C/C++/Java family. I also tried to learn Python, but never had enough time.
That's about all. My next project is to learn bash scripting.

The one thing I can say is to point out that learning to program well takes time, so don't give up.

Good luck!

Jimmy

Ash57
October 5th, 2007, 01:05 PM
Well my first programming experiance was with C++, I loved my Unix class (but I haven't used it since then, so I think I may have forgotten it *sniff sniff*)I then took a course on Visual Basic.NET, recently I have taken a course called "C++ Progamming for games", and currently we are taking a Usability class, in which we will touch on C# & XNA.

I'm getting my Bachelors in Simulation and Digital Entertainment ( thats fancy talk for learning how to make video games ), at the University of Baltimore =)

I'm hoping one day I would be able to refine and use these skills to provide something useful for the Open Source community.

g4m3b0y
October 11th, 2007, 11:46 AM
I started writing in BASIC on an Apple IIe in 7th grade. Simple graphics. But the real motivation came from when i got a Laser Pal 286 and was rockin' the Borland Turbo C++ compiler. I loved video games and was hooked since the atari 2600. I think you should find your passion. I write a lot of web based software now (unfortunately for survival and location)(I miss working in the game industry) but you should definitely find out what you want to accomplish like a lot of people on the forum have stated. Also, if you're trying to do it as a career, you gotta love to do it. I got burnt out a couple of times learning so many languages over the years and 15 years later I re-found my addiction in python. Python is a definitely a powerful language. It has a lot of constructs built in the language that make things very convenient and is getting faster. Similar to java (and I believe like perl) that it is parsed and then compiled into bytecode. If you have speed issues, use the psycho compiler. It runs on pretty much on any OS I can think of (any BeOS fans?) and can run on some handheld devices (nokia S60 series). Development time on a project is dramatically increased when using python. You can do so much with it from sysadmin stuff, to web, to manipulate pre-existing codebases, to well.... you can do a lot of things with it if you're creative :) It all depends on your objectives and if speed is an issue. Every language has its place all with their strengths and weaknesses but I definitely recommend python to the beginner because then you wouldn't have to worry to much about the inner details so much (gotta love memory allocation) and you learn proper programming techniques. Just whatever you do, don't grow to hate it at one time like I did.

michiel.patrick
October 11th, 2007, 07:10 PM
I am in school now and have taken several languages.. C++ C# Visual Basic and java..... C# hands down wins it for me. Its all in what you get the most comfortable with.

dieselpower
October 13th, 2007, 11:05 PM
I started with ms-quickbasic. Whatever you do, don't start with basic. sure, you can learn to program in it, but it will not do what you need. You will have a hard time translating your skills to C or something more powerful. Basic teaches lazy, poor practices that are very hard to overcome. I tried for years to get started in C++ and ended up going the long way around with python and then C++. I just hope this saves someone else from what I have gone through!

mjwood0
October 15th, 2007, 06:09 AM
Wow... where to begin?

In high school, I took a Pascal class. I really enjoyed it so I took the second class and last class they had and really liked that too... so I talked to to the professor and asked if he would sponsor a Directed Study for me to learn C++. I did that for a full year with his guidance and basically took the two semesters of Pascal and translated the exercises into C++ for him. He soon switched to C++ using my code as a base for this classes.

I realized at this time that I wanted to pursue Computer Science as a career option, so I went to college with this in mind and graduated with a BS in Computer Science. All of my college was taught in C except for my programming languages class where we did Lisp, Fortran and Perl. Didn't really learn much with those as they were really short snips of each. To this day, I can still read lisp or fortran, but would have to get out a language manual to actually write anything in them.

I thrived in Operating Systems classes (for some reason I'm actually one who enjoys semaphores and mutex locks) and I got a job doing embedded controls for aerospace applications. I spend my life now in PowerPC Assembly, Jovial, Ada and C. I've since gone back to school and gotten my Masters in Comp. Sci. Many of these classes were in Java. I'm actually really glad I understood object oriented programming as it made the transition quite easy (though I would never really enjoy writing java all day long).

In the end, I really think that if you understand data structures, architecture and object oriented design any language can be learned. While it's good to have areas of expertise, once you understand the background behind programming and the methodology, languages are just tools which can be picked up as needed. You can't become an expert overnight, but I really haven't found a language where I can't have a functional grasp of something in a couple days.

One of my college professors said that Computer Programming wasn't about learning languages, it was about learning how to think. After being in this field for close to 10 years, I would have to agree.

stimpack
October 26th, 2007, 07:04 AM
z80 assembler in a Sinclair Spectrum got me all the basics.
Demo coding on the Amiga in 68k asm taught me alot of 3D math :o
8086 on a PC made me think why the hell was I now using segments when I used to have an Amiga.
Took a job in the games industry and it started off as Assembler, but became C over time.
Took a job in the business sector and learnt C++, quit it soon after, I don't think in object terms, I have a *real* mental block on that, I can't stop thinking what the CPU is trying to do,
Left programming after that. Dabbled in Python but don't do any serious coding anymore.

snickers295
October 26th, 2007, 07:13 AM
I'm no expert programmer but i know good html because it was easy to learn. I know a little C++ and tried to learn pascal but C++ Is more fun to learn.

kvdbreem
October 27th, 2007, 11:48 PM
I learned using Microsoft QBASIC when I was around 14 years old. Moved on to Pascal for a while in highschool and then in university I got hooked on Java and I've been coding both for fun and professionally in that language ever since.

C/C++? I've done a bit with those languages, and a bit with Perl as well. I prefer the latter for writing applications to give me synopses on activities based on logfile data.

Mr_Cynical
October 29th, 2007, 05:55 PM
I was taught TrueBASIC in school. It was easy to learn, but looking back it didn't give me the most transferable of skills. If you used unassigned variables, it just assumed a basic value ("" for strings, 0 for integers). Now that I'm in my third year at university, I'm doing a first year programming course (I'm majoring in Law but we have to do a non-law option course as part of third year) which teaches Python, which I love so far.

Harpalus
October 30th, 2007, 11:33 AM
Wow. 50+ pages of responses and as far as I can tell (without actually reading every one of those pages) everybody completely missed the question, I think. It's all well and good to share WHICH language, but that's just advertising for <insert favourite language and book here>. Have any of you actually read half these books? Yes, it teaches you so much, and the basics and nonsense like that, but at the end I find your knowledge still limited, with no real indication of how to proceed from there.

Posting links to books isn't the best answer. I did the book thing. Went through several, in C. But the books only went so far. I only learned so much. And at the end, after programming useless example after useless example, I could pretty much work with text. Programming drivers and everything was beyond me still, and I didn't know how to proceed. (But at least I could print text, save variables, and loop! Fear my mad text printing, looping skills! I might even want to save the results to a variable! Wow, I can really help out my favourite open source project now! Well, if it's a text game, at least...)

I could read through libc standards and actually study the functions I'm writing, but that was, frankly, boring. I wanted to program, not read. And so far all I could do was loops, printing text, and whatnot.

So I made a roguelike. Or tried to, at least; I never got it into any sort of sane shape, but I learned from it. I suspect it's why so many of them are poorly programmed, because lots of people use them as starting projects. And I learned that way. By starting out on making my little '@' character move about the screen to saving map contents to a file, all the way to a rudimentary (and poorly coded) random map generator, I learned so much, and frankly, it was fun.

Again, I don't think arguing over which language the original poster should use and pointing him to books really helps that much, because to me, it doesn't solve the problem of HOW to learn. It's just an excuse to share your favourite programming languages, apparently.

atlascomplete
October 30th, 2007, 10:35 PM
I'm still learning C++, but the thing that I have learned is that you need a problem. You need to have a problem that you want to fix, but there is not program out there to fix it, so you have to fix it.

Maybe you want to write a program that converts .exe files to .dmg files for Macs so they can use windows executables natively. Sure, it will take you years to learn the codes, tricks, and the way to eventually do it, but at least you have an end goal and you get to use that experience forever.

carlosjuero
October 31st, 2007, 01:50 AM
I learned to program by diving straight in; I started with GW-BASIC on a Tandy 1000HX, and graduated up to QuickBASIC (Wheeeee!) - I made my first game in QuickBASIC, a really simple 2D walker [yep, walker, not shooter], and then I followed some instructions in PC Magazine to create a Gorilla wars game (which I adjusted so some bananas were nukes rather than static explosions :D). After a stint of QuickBASIC I started in on Borland Turbo C and then moved onto Visual Basic 6 - now I am on .NET and am going to be learning some Python.

I did all of this with some random help from books, but mainly from getting in and seeing how things worked. That is the key - you have to want to get into the programming in order for it to be something you carry out. You can learn alot from books.. but they will not teach you how to program in [i]your style. Everyone has a style (I had a friend who liked to format his code with variables like Cow & Moo.. he understood what they meant, but I would hate to be reviewing his source), and a book can't teach that :).

Advice: Pick a language.. any language (heck, pick one at random). Grab some information on coding structure, and maybe some simple how-tos.. and get coding. Do the obligatory 'Hello World' script and start tweaking it.

Most importantly: Have fun with it - if it isn't your job, don't make it one for yourself; or you may come to resent it and wonder why you ever bothered to try and learn.

evymetal
October 31st, 2007, 03:38 AM
My parents were both programmers back in the day (when they wrote their code by hand and had secretrys to type it up onto punch cards). My parents still occasionally describe ASM as "High-level"!

They tought me the basic structure of ASM (although I can't really code it any more), and explained how processors worked - I was a really inquisitive child!

I then started writing BASIC on an Amstrad PCW (http://trillian.randomstuff.org.uk/~stephen/history/pcw.html), and eventually graduated to Visual Basic 2. I never read a single book about either.

I discovered HTML around 1992-93 and learnt Perl, javascript etc for server/client side scripting around then. (again, no books - just looking through other's code).

Around then I decided to try to learn Java and C++ from books. I managed to write some java applets that ended up being quite popular -I made a cheezy applet called the "Love-o-meter" where you entered two names and it gave you a percentage compatibility, I think it was the first one online (years before these things were on MTV), and I ended making over £1,000 from it in ad-revenue before i lost the code. It was also featured on Channel 4 one year. C++ really put me off C though, as I assumed all the rubbish C++ syntax would still be in C.

I only learned C again when I was making a game called Santa's Snowy Workshop (http://www.santagames.co.uk) (Windows only - sorry) in Visual basic (1999) - I was writing graphical algorithms in VB and they were taking 10 minutes to run when I needed them to run every second frame, so I had to use extension code in C. (and ASM - if anyone still codes VB5 try using ThunderVB for inline C/ASM. This time I didn't use any books.

I was taught (very basic) python at university but I didn't like it as I prefered perl hacking (built-in Regexes), but this year I was working on a project for a company that only had Python developers, so I had to write it in that. After about a week I decided I should really have given python more attention, and it's now my language of choice.

Out of interest, I avoided Computer Science at university because I thought that it would take all the fun out of it (although I plan to do a C.Sci PhD). I did Mathematics instead, which I feel has actually given me a great advantage in the type of algorithms I write now (Machine Learning / Information retrieval / Data Mining etc)

If there is anything I think I woud say to novices then it's this:

Program for Fun. Learn a little bit (slightly more than HELLO WORLD or FOO BAR) and then have a think about something cool (but simple) that you could try to write (in a language like Python). Keep looking at other people's code, and try to work it out for yourself. If you do this then you will understand what you are doing (out of neccesity). Once you stumble on something that is taking way too long to run, try writing a library to do it in C (Google is your friend), and if it's still too slow, try extending parts of that in ASM. A good programmer can switch between languages wuickly, even if he has never used them before.

Scruffynerf
October 31st, 2007, 07:56 PM
Sorry to derail the thread, however I'm also interesting in learning how to code (learning at 32, this could be fun) and I am specifically interested in learning how to script and develop lightweight applications like conky.

Quick question - what language are linux scripts and things like conky written in? Where/what would be a good resource to go to to start learning?

Caveat: Whilst I'm a database admin, and can parse raw SQL, I failed both Logo and Basic courses in school (:lolflag:), so I might not have the right sort of brain for programming...

adamorjames
October 31st, 2007, 08:00 PM
Well I started by just coding... (X)HTML and CSS. Now I am into PHP which is programming-like. This is the route I've taken so far and it seems pretty good for me.

potentia
November 1st, 2007, 12:12 AM
I don't.

hoges
November 3rd, 2007, 08:35 AM
I don't.
Why bother posting then?

I'm still on the basic text/math formula stage. I originally played around with QBasic, then bought a cheap book and learned the basics of C. Did a proper course in C for Uni, now doing C++.

Once I get the basics of these down I hope to look into HTML over christmas.

carlosjuero
November 3rd, 2007, 08:43 AM
Why bother posting then?

I'm still on the basic text/math formula stage. I originally played around with QBasic, then bought a cheap book and learned the basics of C. Did a proper course in C for Uni, now doing C++.

Once I get the basics of these down I hope to look into HTML over christmas.
Thats a good way to go. Learning a basic language like C will help with your web programming once you get there (especially with PHP & Perl - syntax is very similar to C/C++).

For HTML I would advise using a text editor for your first few web pages, it gives you a better understanding of the structure and HTML coding - fancy IDE systems are great, but they take away alot of the experience :)

hazard654
November 4th, 2007, 11:01 AM
I stated programming using visual basic, now im learning c++. I have found so far that learning one language will help you learning any other, due to the concepts involved (variables, sequences etc...) but really it is up to you.

reidbold
November 10th, 2007, 01:12 PM
Sorry to derail the thread, however I'm also interesting in learning how to code (learning at 32, this could be fun) and I am specifically interested in learning how to script and develop lightweight applications like conky.

Hit conky.sf.net, download the source code and go from there. That's the best way to learn, read, edit, run, repeat:)

nutter78
November 21st, 2007, 10:05 AM
Hi I'm just starting out with Ruby, but Python seems so well supported, i'm not sure if i should rather concentrate on that?

nanotube
November 23rd, 2007, 11:57 AM
Hi I'm just starting out with Ruby, but Python seems so well supported, i'm not sure if i should rather concentrate on that?

if you are just starting out, and have no particular preference for or investment in either one, and prefer to learn a language that has a larger userbase, and thus larger module availability, support, etc, then sure, go with python.

besides that third point, i'd say python and ruby are both pretty productive languages, broadly speaking.

Kadrus
November 23rd, 2007, 12:34 PM
Hi I'm just starting out with Ruby, but Python seems so well supported, i'm not sure if i should rather concentrate on that?

They are pretty similar but I prefer Python..I suggest you starting with it...and then when you are done with it...you can {if you want to}
learn ruby..