Hobby programmers: Where did you start?

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Hi guys. I'm pretty much a complete noob to programming, but I'm interested in it and want to start. Are there any ways to become familiar around computer language, before jumping into it all the way? Any help you can give is much appreciated! :p
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I just got access to a computer and started programming stuff, but that was a lot easier to do back then. My first experience was a timeshare mainframe system, so you just sat down at a terminal (teletype or early CRT) and typed in BASIC code line by line, then ran it to see what came back. I think the first thing I ever wrote was a four function calculator that prompted for input and printed the answer. I saved it on punch tape and had it up in my closet for years after there was no longer any way for me to read it.

Later I got a micro and continued with BASIC, writing simple games and playing with the hardware through peeking and poking memory addresses. After that came assembler, Turbo Pascal, Turbo C, Borland C++, etc.

We have often talked here about what the easiest path to start on is, but I don't think we have agreed on an answer. When I started on micros you just wrote for DOS text mode, and eventually perhaps learned to put the adapter in EGA or VGA mode and write graphics code. Now right up front you have to chose between: windows console, linux terminal, windows gui, web page, android, etc. You've got all these platform choices, and whichever one you pick the path to get something up and running on screen isn't anything like as clear as it used to be.
 

wand3r3r

Diamond Member
May 16, 2008
3,180
0
0
If you would like to go Microsoft (C#, Visual Basic, .NET, etc.), you can download visual studio Express for multiple languages. There are a ton of empty project templates (for example MVC 3) which can be ran and you can start with the basics like changing a line or two of code and see what it does.

The debugging mode is pretty nice too, you can set a breakpoint and run 1 line of code at a time and see how variables change etc.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
I just got access to a computer and started programming stuff, but that was a lot easier to do back then. My first experience was a timeshare mainframe system, so you just sat down at a terminal (teletype or early CRT) and typed in BASIC code line by line, then ran it to see what came back. I think the first thing I ever wrote was a four function calculator that prompted for input and printed the answer. I saved it on punch tape and had it up in my closet for years after there was no longer any way for me to read it.

Later I got a micro and continued with BASIC, writing simple games and playing with the hardware through peeking and poking memory addresses. After that came assembler, Turbo Pascal, Turbo C, Borland C++, etc.

We have often talked here about what the easiest path to start on is, but I don't think we have agreed on an answer. When I started on micros you just wrote for DOS text mode, and eventually perhaps learned to put the adapter in EGA or VGA mode and write graphics code. Now right up front you have to chose between: windows console, linux terminal, windows gui, web page, android, etc. You've got all these platform choices, and whichever one you pick the path to get something up and running on screen isn't anything like as clear as it used to be.

Thank you for the answer. I guess I understand how programming was perhaps more "accessible" early on due to the fact that it was much more connectable to a physical output. It seems like there was a much more concrete and graspable "line," if you will, between input and output because the technology was in it's earlier stage. Nowadays, seems like you can write lines and lines of code and the results can be very abstract because so much is running in the machine.

I'm thinking perhaps one way is to get familiar with setting up virtual machines and perhaps working in "simplified" environments. It seems fun and accessible to do so, and if I could set up a DOS machine or something I could build smaller and easier programs from the beginning.

Do you think that's a good idea, or am I missing something? Thank you.
 

JD50

Lifer
Sep 4, 2005
11,929
2,931
136
Thank you for the answer. I guess I understand how programming was perhaps more "accessible" early on due to the fact that it was much more connectable to a physical output. It seems like there was a much more concrete and graspable "line," if you will, between input and output because the technology was in it's earlier stage. Nowadays, seems like you can write lines and lines of code and the results can be very abstract because so much is running in the machine.

I'm thinking perhaps one way is to get familiar with setting up virtual machines and perhaps working in "simplified" environments. It seems fun and accessible to do so, and if I could set up a DOS machine or something I could build smaller and easier programs from the beginning.

Do you think that's a good idea, or am I missing something? Thank you.

I think you're overthinking things here. If you want simple, install some flavor of Linux (fedora is my preferred distro) and just jump into python on the command line.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
I think you're overthinking things here. If you want simple, install some flavor of Linux (fedora is my preferred distro) and just jump into python on the command line.

Hm, yeah that's a good idea.

I thought the command line in Linux was for Unix commands? :p

*Edit* Oh btw, can I ask why you like Fedora? Thx
 

Aikouka

Lifer
Nov 27, 2001
30,383
912
126
Why even waste the time installing Linux just to mess with Python? It's not like you can't install it in Windows. :p
 

dighn

Lifer
Aug 12, 2001
22,820
4
81
started with BASIC, then Visual Basic and then C++

these days you have a lot of very good choices. a scripting language like python is very good to start with, and it's powerful enough for many productive uses. then maybe move to a more traditional production-level language like C# or Java.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Web Browser - check!
Notepad - check !
Javascript

Yeehah! That's it CM :D. I'm using Linux, learning Nano and Gedit.

Lol - that sounds funny: "learning Nano." But, sadly that's where I'm at.

Someone else I trust also recommended Java/JavaScript (idk if there's a diff.)

Anyone have a recommendation on a distro besides Ubuntu? Maybe something with a little less fluff and bloat, but still current and capable?
 

CuriousMike

Diamond Member
Feb 22, 2001
3,044
544
136
Big difference between Java and Javascript; unfortunate that they're named similarly.

The divide between an "app" and a "webpage" is so blurred... Windows 8 is making it moreso.

Javascript is the lingua-franca of the interwebs - it's absolutely a useful language to learn.
The great thing about it is that it's so quick and easy to see stuff happening on the screen; plus there are tremendous resources for it online.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
Big difference between Java and Javascript; unfortunate that they're named similarly.

The divide between an "app" and a "webpage" is so blurred... Windows 8 is making it moreso.

Javascript is the lingua-franca of the interwebs - it's absolutely a useful language to learn.
The great thing about it is that it's so quick and easy to see stuff happening on the screen; plus there are tremendous resources for it online.

Alright, great. I'm going to look into JavaScript. Thanks for the tip CM!
 

BogdanH

Member
Feb 20, 2011
33
2
66
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
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
Commodore 64

Built in BASIC interpreter. Perfect beginners tool. I follow a few coders on Twitter who decided to introduce their kids to programming using an old C64. Seems logical to me, programming it was simple pleasurable, no fussing with tools and compilers, just enter code and run. Your IDE was your command prompt, your command prompt was wherever your cursor was, your screen is your IDE, File Explorer, and output window all in one.

I couldn't imagine introducing someone to coding on a modern PC, theres just too much stuff to get lost in.
 

dighn

Lifer
Aug 12, 2001
22,820
4
81
Alright, great. I'm going to look into JavaScript. Thanks for the tip CM!

JavaScript is absolutely a very useful language, but personally I'd recommend starting with a more traditional language that you can get a solid foundation on (e.g. Java - note: very different from JavaScript).

JavaScript is a relatively "light" and browser-targeted language that also does certain things differently (object system). First of all you are gonna have to learn some HTML to do things with JavaScript (unless you do Windows scripting or something, which isn't what we are talking about here). Your hands are also gonna be tied somewhat due to browser limitations (file operations, lengthy operations).

Nevertheless, JS is useful to know and if web programming is your thing, it's a must.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
JavaScript is absolutely a very useful language, but personally I'd recommend starting with a more traditional language that you can get a solid foundation on (e.g. Java - note: very different from JavaScript).

JavaScript is a relatively "light" and browser-targeted language that also does certain things differently (object system). First of all you are gonna have to learn some HTML to do things with JavaScript (unless you do Windows scripting or something, which isn't what we are talking about here). Your hands are also gonna be tied somewhat due to browser limitations (file operations, lengthy operations).

Nevertheless, JS is useful to know and if web programming is your thing, it's a must.

Agreed, that's why I'm reluctant to recommend javascript to a beginner. Before they can get "Hello World" on the screen they at least have to understand some basics about the DOM, HTML, javascript, and events.

I always wanted to write a javascript BASIC interpreter where you had a code window and above it a 80x25 text display, and you could just play.
 

Red Squirrel

No Lifer
May 24, 2003
71,305
14,081
126
www.anyf.ca
I started off with batch files, and html. I know those arn't programming language, but that's what got me to understand the basic concept behind "coding" in general. Then I learned about C++ and teached myself, and I'm always trying to learn more of it. I never really jumped into the MS languages. I do have a project that's coded in C# that has half a million lines of code but I only rewrote a lot of it, I did not write the whole thing from scratch. C# is really easy to pickup.

Really to start on the right foot you almost need a good book though. I never really read a C++ book, I just learned from tutorials and stuff, and often I feel I don't know as much as I should by now, so I've been taking a step back and looking at finding some good ebooks. I did take a C++ course in college but it was basic C++. It would have been perfect if I did not know anything about it at all, but I did and it covered more or less what I already knew.
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
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

Thank you Bogdan. This is really fantastic advice. I guess that sometimes, you just jump in to something simple and that suits your particular fancy, and then build upon that slowly but surely.

Btw, welcome to the AT forums. :D
 

janas19

Platinum Member
Nov 10, 2011
2,313
1
0
I started off with batch files, and html. I know those arn't programming language, but that's what got me to understand the basic concept behind "coding" in general. Then I learned about C++ and teached myself, and I'm always trying to learn more of it. I never really jumped into the MS languages. I do have a project that's coded in C# that has half a million lines of code but I only rewrote a lot of it, I did not write the whole thing from scratch. C# is really easy to pickup.

Really to start on the right foot you almost need a good book though. I never really read a C++ book, I just learned from tutorials and stuff, and often I feel I don't know as much as I should by now, so I've been taking a step back and looking at finding some good ebooks. I did take a C++ course in college but it was basic C++. It would have been perfect if I did not know anything about it at all, but I did and it covered more or less what I already knew.

RS, I'm just learning about batch files right now. Admittedly I was using a tool to create simple ones, but I got a chance to look inside them and see the directory, some syntax, other stuff.
 

Train

Lifer
Jun 22, 2000
13,599
90
91
www.bing.com
Neat. That's a bigger project than I had in mind.

I'm sure it was. One upside though to using an emulator of an old system vs a new system is that there is TONS of books and sample code out there for the legacy systems already, with all the quirks well tested and documented. There was also a mountain of shareware for those old commodores. #nostalgia
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I'm sure it was. One upside though to using an emulator of an old system vs a new system is that there is TONS of books and sample code out there for the legacy systems already, with all the quirks well tested and documented. There was also a mountain of shareware for those old commodores. #nostalgia

Yeah, I had a TRS-80 Color Computer, for which there were not mountains of software of any kind. But at least it had BASIC. Emulators are cool, and it's interesting that an entire 1980's computing platform can be emulated in javascript.

I still think it would be cool to write a BASIC sandbox in javascript focused on beginning programmers.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
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.