Hobby programmers: Where did you start?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

neocpp

Senior member
Jan 16, 2011
490
0
71
Hi,

It is normal, that everybody favors program language he knows best.. I mean, he wouldn't used it otherwise. So, here's my take :)

In short (if interested): I've started with Basic on Sinclair Spectrum, where I also learned Z80A assembler. Then I got Atari ST where fantastic Motorola CPU was built in (Intel was several years behind it at that time, IMO). There I used Basic compiler and I really enjoyed coding in assembler. After that I got a "real" PC and you can't imagine how disappointed I was... anyway, I start learning Borland Turbo Pascal, which was the closest to the GfA basic on Atari ST (btw. being interpreter only, Basic on PC was crap). And after Turbo Pascal came Delphi.. which I'm still using (Delphi XE2, right now).

Now, what is important when choosing program language for hobby programming?
1. Visit sites/forums, where examples of various program languages can be seen, so you have a chance to "read" them. And read what kind of programs programmers are making by using particular language. If you can't "connect" with particular language, drop it -no matter how "great" that language might be for "others".
2. When you decide on language, don't give up on it too fast. At beginning, many things will look impossible to make with "this" language.
3. Don't ask yourself what program to write to make money on it -ask yourself, what kind of program you wish to have or need! Because, you're doing that for hobby, right?
4. You can't know if you like programming (for hobby), if you haven't programmed yet -it comes (or not) with time.

Finally, I don't say what language you should pick.. simply because I think Delphi (Pascal) is the best :) Ok, my next choice would be C (which I don't know at all).

Greetings,
Bogdan

+1 for delphi/pascal. The first language I learned, although I don't use it much at all anymore.

To the OP, personally I think the best way to learn is to come up with an interesting project you want to pursue. I wrote my first program because I couldn't solve a sliding puzzle by hand, and I wanted to reset it (not the 15 piece type, but something similar). Now whenever I want to learn a language or library or pattern, I first figure out a project I would like to do that involves the material and learn as I go along.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
Jedi Knight DF2 is where I got my start in programming. It has a scripting language called the "cog" scripting language. That thing controlled A LOT of the game dynamics and they had a (relatively) bad way of checking if the scripts were modified.

For example, you could do something like this.

Code:
SetPlayerHealth(player, 100);
MoveThing();

could be changed to

Code:
DamageThing(victim, 1000, 0x100, player);
x();

And the game would think the script was the same. Interesting constraints that lead to some very interesting code.
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
Found more or less exactly what I was thinking of, in AppleSoft BASIC rather than GWBASIC, but otherwise pretty much dead on...

http://www.calormen.com/Applesoft/

It has some limitations, though. Doesn't really act like a console. You can't type "list" and list the program, for example.

To make it really immersive, would be cool if it exposed the DOM as well, to let you manipulate it on the fly. I guess it would be sort of like jsFiddle, but with only one window (your "console" window)
 

Gibson486

Lifer
Aug 9, 2000
18,378
2
0
I learned c/c++ first, but only because college forced us to learn it. After that basic was easy to learn, python was easy to learn, Java not so much (but I really have not spent too much time on it). Just pick a language and stick with it. What's important is that you know the basics like creating loops, passing parameters, declaring and casting variables. No matter which language you learn, there is always going to be something else to learn when you move to a different language.
 

dugweb

Diamond Member
Oct 17, 2002
3,935
1
81
I think if you're starting at the absolute bottom http://www.codecademy.com/ is a great way to get your hands dirty quickly, and begin learning programming concepts (in javascript, but ruby, python are available or coming too I think).

I eased myself into programming on accident using Flash Action Script 3. I wanted to make pretty things in Flash, and more and more needed to use Action Script to make things happen, and quickly found myself coding only in ActionScript and skipping the GUI entirely.

Now I'm working in Objective C and Javascript, but like has been said, programming concepts are pretty universal. It doesn't matter so much which programming language you use, but that you can solve problems in a way computers understand. Other than that, different programming languages are just syntax and methods.
 

Wyndru

Diamond Member
Apr 9, 2009
7,318
4
76
I downloaded Visual Express, started coding in C# and made my own roleplaying game, similar to Diablo with bosses and a drop % table. I just read tutorials to get going. It was really fun learning that way. Then I tried converting it into a MUD and failed miserably lol. It turns out just simply using structs to handle stats and randomizing droprates is much easier than writing code to allow it to communicate with another computer.
 

exdeath

Lifer
Jan 29, 2004
13,679
10
81
I started learning on DOS 2.11 and GW BASIC when I was 6 years old. Then quickly with C and assembly when those weren't good enough to do what I wanted. repz movsw >>>> FOR + PSET.

Of course like most people, it was video games that got me into programming :) I miss Flipcode so much... that place was my home.

I'm still a hard core assembly junkie. I can't stand sandbox fake "scripting" languages like VB and Java and like to keep myself in a niche in embedded systems, firmware, microcontrollers, drivers, etc. It's just fun to me. Enterprise apps and data warehousing and super high level abstracted stuff just bores me to death. I need to be close to real metal.

IMO if you can't do something that has the potential to completely lock up a machine and force a power cycle, you aren't really programming. Any monkey can write some SQL and throw a table up in a form. But can they write a DB engine or graphics driver without going cross eyed?

I've been out of any "real" programming for a while. Sadly IT/IS makes the same or more money for far far less hours, frustration, and effort.

My current hobby interest is VHDL/Verilog and FPGAs. Similar to programming but you're describing the operation of a synthesizeable circuit. I use an Altera DE1 dev board with a 20K LE Cyclone II. Awesome toy, it's like a grown man's digital version of the legos and electronics kits I had as a kid. It's fascinating to me that you can write the code to describe a fully functional CPU at the hardware level, sythesize it into the FPGA, then have to switch gears entirely and code some software to load into Flash/SRAM/DRAM for that newly built CPU to run... Get tired of Moto 68k? Switch to an ARM core, reconfigure the FPGA with it, and start writing some ARM 7 code.

Maybe EE has always been my calling after all and not CS. I need my registers and DMA channels damn it.
 
Last edited:

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,835
4,815
75
I started on a Commodore 16 when I was 6 years old. We had money for the computer, but not for game cartridges. So practically anything the computer did I had to program into it. I didn't really do much with programming until my parents got me a Commodore 128 a couple of years later - because it actually came with books describing how to program it! The C128's BASIC was rather simpler than the C64's, so I didn't have to learn PEEK and POKE tables. I miss hardware sprites. :( They were the easiest, smoothest way to do animation ever. I suppose browsers can now do similar stuff, but it's not quite the same as the set-it-and-forget-it hardware sprite.

I'll pretty much use any tool I can to get the result I want, so I tend to avoid assembly unless I really need speed. (See PrimeGrid in my sig for a case where I really needed speed.) I have used some esoteric hardware: those two unusual Commodore computers above, a number of different HP programmable calculators, and lately CUDA. My first C compiler (and Perl interpreter) were on BSD/OS too. I guess what I'm saying is I'm eclectic, but it works. :)
 

shortylickens

No Lifer
Jul 15, 2003
80,287
17,082
136
BASIC in DOS.
Dad showed me Gorillas one day and when it closed out it went to BASIC. Asked him about it and he said that was the code for the game. I was fascinated.
 

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
Started with GW Basic which came with PC-DOS on my first computer, a 16mhz 286sx. I made a graphical "OS" so my family wouldn't be so intimidated using the computer (they were deathly afraid of the command line). I think I was around 10 years old.

Then I quickly moved to pascal once I realized I could work with graphics and networks and supported local BBS. Made some simple multiplayer games mimicking Kings Quest but with network capability.
 

formulav8

Diamond Member
Sep 18, 2000
7,004
523
126
I started with VB 3.0 doing AOL proggy making, then VB 6.0 and now VB.NET. VB.NET is a very good choice with a very easy to use syntax. Lots of helpful resources out there.
 

bhanson

Golden Member
Jan 16, 2004
1,749
0
76
I didn't read the thread, but this is how I started:

Around 1999~2000 a friend introduced me to HTML. Shortly after I began investigating how "other" things on websites worked. Dynamic things. This led me to PHP which was then in version 3.x.

I started making things and slowly added languages under my belt.

This was my gateway into computer science.
 

Selenium_Glow

Member
Jan 25, 2012
88
0
61
Started off with GW Basic on DOS, and then learnt C/C++ in middle school, advanced C++ in high school.

Then I graduated in electronics and communication systems, so learnt some assembly language for Embedded systems... frankly though I prefer the C libraries for them.

Now, I'm in telecom industry, so I'm picking up some python and JavaScript as a hobby...
 

piasabird

Lifer
Feb 6, 2002
17,168
60
91
You can learn programming a variety of different ways. I use to use a site for internet and web pages called: www.htmlgoodies.com

You can just buy a cheap book like "Learn JAVA 2 in 24 Hours" or something like that. This website has a lot of Java programming books:
http://www.deitel.com/
They may still have some free Java 2 programming downloads.

I also learned a lot of different programming languages like
C
C++
Visual C++
Java ==> http://download.cnet.com/windows/su...50198.html?tag=rb_wrap;rb_content;contentBody
I think you can still download Java for free.
COBOL
PASCAL Can probably find for free - Old School PASCAL is similar to C Programming.

This organization use to make a free to download C/C++ Compiler/Libraries
http://www.delorie.com/djgpp/v2/
 
Last edited:

CaptainPete

Senior member
Mar 25, 2003
283
3
81
Ah, the `good old days!' (Circa 1980.)

I started out with Atari Basic, enhanced with some inline 6502 routines and full on 6502 assembly eventually. Moved on to Turbo Pascal on a Z80 CP/M machine (Franklin ACE 1000!) and then on DOS on an old PC XT. Turbo Pascal was pretty awesome and super fast! From there I got an Atari ST (GFA Basic) and then an Amiga where I started learning C and 68K assembly.

After that it was pretty much all C through college, with some forays into Scheme/Lisp. I did learn some C++, but it's so ancient now that it might as well be C. Mostly since then it's been learning various assembly languages (x86, MIPS, Sparc, PowerPC, ARM). Not that I write much if any assembly anymore, but it's pretty essential for debugging, so I'd recommend at least knowing the basics...at least if you're debugging C code.

These days I'd say that Python or Ruby would be a great place to start. What I loved most about the old Basics was using an interpreter to be able to play around with the program in real time before getting caught up in setting up all of the compilation environment. I spent a lot of time typing programs in from magazines like Compute! in the early days. Going through and reading source code and trying to modify/improve programs...just playing around doing random things is a lot of fun.

I would also very much recommend grabbing the scheme distribution `Racket' (used to be called DrScheme) and going though `Structure and Interpretation of Computer Programs.' They're available for free on the net. Actually just about any functional language is a great thing to play around with and will change the way you think about programming. ML is pretty awesome, especially OCaml. `Icon' is also a great mind-bending language that's worth checking out.