FacebookTwitter
Hatrack River Forum   
my profile login | search | faq | forum home

  next oldest topic   next newest topic
» Hatrack River Forum » Active Forums » Books, Films, Food and Culture » Computer programming for beginners

   
Author Topic: Computer programming for beginners
Dr Strangelove
Member
Member # 8331

 - posted      Profile for Dr Strangelove   Email Dr Strangelove         Edit/Delete Post 
So I'm wanting to pick up a new hobby, diversify my skill set, etc etc, and after some thought have decided to try my hand at computer programming type stuff. The only problem is that I know next to nothing about computer programming. So I was wondering if any of the brilliant jatraqueros would have any advice on where to start? First I suppose I'm curious about hardware necessities. What would be good to have? Mac or PC? Any sort of minimum as far as system specs? Then, I'm aware of some of the different programming languages - Which one would be best for me to start off with? And finally, are there any programs that I need, or that could teach me? And are there any highly recommended books?

I really don't even know what I want to do with this new skill. I just want to learn something I know nothing about. And I've heard it can be somewhat artistic... that appeals to me. But like I said, I know nothing, so maybe I'll start delving into and find out I hate it. First things first though. [Smile]

Posts: 2827 | Registered: Jul 2005  |  IP: Logged | Report this post to a Moderator
Christine
Member
Member # 8594

 - posted      Profile for Christine   Email Christine         Edit/Delete Post 
quote:
Originally posted by Dr Strangelove:
I really don't even know what I want to do with this new skill. I just want to learn something I know nothing about. And I've heard it can be somewhat artistic... that appeals to me. But like I said, I know nothing, so maybe I'll start delving into and find out I hate it. First things first though. [Smile]

Not knowing what you want to do with it is going to be a huge problem.

What type of computer do you need? What type of computer do you want to program?

What type of application you want to create will have a great deal to do with what language you might choose to pick up first and what books to begin with.

Personally, I never found programming to be very artistic. I haven't done it in years, but when I did it, it appealed completely to the logic/problem solving part of my brain.

If I were you, I'd start by coming up with a goal. Once you have something specific in mind, it will be much easier to provide advice and it will be easier for you to learn because it will be goal-directed. [Smile]

Posts: 2392 | Registered: Sep 2005  |  IP: Logged | Report this post to a Moderator
Tstorm
Member
Member # 1871

 - posted      Profile for Tstorm   Email Tstorm         Edit/Delete Post 
Hardware won't matter when you're starting out. You should be able to start learning with whatever you've currently got (assuming it's less than 6 years old.)

What types of programs would you like to make? What kinds of things are you interested in building?

Programming is, to me, quite a bit more about logic, puzzle solving, and structure than it is about art. However, when everything fits together neatly and does what it is suppose to do, there is an aspect of beauty to it.

Posts: 1813 | Registered: Apr 2001  |  IP: Logged | Report this post to a Moderator
solo
Member
Member # 3148

 - posted      Profile for solo   Email solo         Edit/Delete Post 
Based on wanting to learn for artistic/creative reasons, I'd suggest starting with some basic web programming. A good place to start for that is w3schools.
Posts: 1336 | Registered: Mar 2002  |  IP: Logged | Report this post to a Moderator
ricree101
Member
Member # 7749

 - posted      Profile for ricree101   Email ricree101         Edit/Delete Post 
It's tough to say, really. There's a lot of different languages and ways to get into it.

The tldr version: Check out Python.

However, I think the rest of my post has value, or I wouldn't write it.

Perhaps the simplest would be to look up some javascript tutorials since it is something that can be run in the browser.

Personally, I started out playing around with the BASIC on TI graphing calculators. My first "real" introduction to programming was a college course that built up from a very low level. Essentially, it started with logic gates, worked up to machine code, then assembly, then C. I found it to be really helpful as a foundation for learning programming since it provided a pretty solid understanding of what was going on with the computer. That said, I have no idea how well this would work as a self study for a hobby. It would likely take a fair amount of time to get to the point where you can do something useful, so this might not be the path for you.

Barring that, I'd recommend looking into a language like Python. I find that it has a good mix of expressiveness, simplicity, and clarity, and it is fairly well documented. It also has a pretty good REPL, which is essentially a program that lets you play around with the language by running single lines of code.

I'd recommend sticking with console applications when you first start out. They aren't as flashy, but there is very little boilerplate code that you need to add in order to get a working program.


Also, one other thing to keep in mind:

After you've gotten the hang of writing and understanding code, I'd really recommend taking a look into learning different ways to structure data. It's a basic part of pretty much any college program, but I've seen some self taught people who overlook it. It isn't really something to worry about as you learn to program, but I would suggest keeping it in the back of your mind for later on.

Posts: 2437 | Registered: Apr 2005  |  IP: Logged | Report this post to a Moderator
scifibum
Member
Member # 7625

 - posted      Profile for scifibum   Email scifibum         Edit/Delete Post 
quote:
I really don't even know what I want to do with this new skill. I just want to learn something I know nothing about.
If you really just want to find out if you'll enjoy it, and that's your only goal, then I agree with solo: start with web programming. You won't need any special software or system that you don't already have access to. You can find zillions of tutorials (w3schools seems like a good place to start). HTML and CSS are a good way to figure out if you enjoy having to think about syntax and structure, and you can use javascript to learn about programming.
Posts: 4287 | Registered: Mar 2005  |  IP: Logged | Report this post to a Moderator
King of Men
Member
Member # 6684

 - posted      Profile for King of Men   Email King of Men         Edit/Delete Post 
In my experience, it is very hard to learn programming without some specific project in mind, for the good and simple reason that there's a lot of scutwork. So if I were you, the first thing I'd pick is not a language, not hardware, not books, but the kind of programming projects you want to do. Games? Web quizzes? Interactive Flash sequences?
Posts: 10645 | Registered: Jul 2004  |  IP: Logged | Report this post to a Moderator
TomDavidson
Member
Member # 124

 - posted      Profile for TomDavidson   Email TomDavidson         Edit/Delete Post 
(A word to the wise, by the way, from someone who learned this the hard way: while giant robots with death rays do require software, ultimately they're more a mech-E problem.)
Posts: 37449 | Registered: May 1999  |  IP: Logged | Report this post to a Moderator
Wonder Dog
Member
Member # 5691

 - posted      Profile for Wonder Dog           Edit/Delete Post 
Or... check out Processing. It's actually Java with an "artist/beginner" friendly API.

There are Processing install packages for Windows, OSX, and Linux. It includes a basic IDE (programming environment/application), and it lets you do lots of cool things with easy code. It will run on very basic hardware.

The Processing community has tons of first-timer tutorials and there are some really good books out there that will take you from beginner to intermediate with fun along the way. Once you've finished an applet, you can compile it as a stand-alone executable or a java-based web applet.

Posts: 353 | Registered: Sep 2003  |  IP: Logged | Report this post to a Moderator
Dr Strangelove
Member
Member # 8331

 - posted      Profile for Dr Strangelove   Email Dr Strangelove         Edit/Delete Post 
quote:
Originally posted by Christine:
Personally, I never found programming to be very artistic. I haven't done it in years, but when I did it, it appealed completely to the logic/problem solving part of my brain.

For me, the only "art" I've ever been good at is logic/problem solving/organizing, so I guess that's what I mean by the "art" of programming appealing to me.

quote:
If I were you, I'd start by coming up with a goal. Once you have something specific in mind, it will be much easier to provide advice and it will be easier for you to learn because it will be goal-directed. [Smile]
...so I'm not used to sounding stupid and uneducated. I guess it's healthy every now and then. But I really have no idea what kind of goals there are. When I said beginner, I really meant it [Dont Know] . Like I said, I love to organize things, make things run efficiently and smoothly. Does that count? I can maybe come up with some more vague generalizations, but is there any way to have a list of possible goals and choose from one?
Posts: 2827 | Registered: Jul 2005  |  IP: Logged | Report this post to a Moderator
fugu13
Member
Member # 2859

 - posted      Profile for fugu13   Email fugu13         Edit/Delete Post 
Do you like playing with math problems?

If so, I would use Python, do some of the basic tutorials on the python website ( http://wiki.python.org/moin/BeginnersGuide ), then work through Project Euler ( http://projecteuler.net/ ).

Posts: 15770 | Registered: Dec 2001  |  IP: Logged | Report this post to a Moderator
El JT de Spang
Member
Member # 7742

 - posted      Profile for El JT de Spang   Email El JT de Spang         Edit/Delete Post 
There literally thousands of ways you could go here.

If you like to organize and make things run smoothly you could always start with writing a macro in excel to do something to data, and output it to a text file.

I did something like that for a friend a few months ago. He input his grocery list, prices, and what aisle they were on, and then I set up a macro that would let him select what he needed to buy, sort it by aisle, sum the prices, and output the list to a text file.

Something like that has minimal actual coding, pretty decent online documentation, and you could probably do it in a couple of days.

Posts: 5462 | Registered: Apr 2005  |  IP: Logged | Report this post to a Moderator
King of Men
Member
Member # 6684

 - posted      Profile for King of Men   Email King of Men         Edit/Delete Post 
Some examples of what I've been doing, to give you an idea of what's possible, from easiest to most difficult. Language in parens.

  • Shell scripts to submit jobs with different input data to batch queues (csh script)
  • Snippet to calculate numbers of girl children named 'Marion' whose single siblings are also girls. You may remember the thread that prompted me to do this. (C++)
  • TODO list updater, allowing me to enter 'todo [a,s,d] "Some task or other"' on the command line, and it would either add (for 'a'), update status to 'started' (for 's') or update status to 'done' (for 'd') my TODO webpage. I stopped using it, though, it's easier to use my text editor. (Ruby, HTML, text 'database'.)
  • Savegame converter, taking saves from Europa Universalis III and making Victoria:Revolutions saves out of them. (C++, Boost library)
  • Web-based game set in pre-Manzikert Byzantium (not completed) (Ruby and HTML, SQL database)
  • Package for time-dependent Dalitz-plot mixing fits, for my thesis. (C++, RooFit library.)

If you were taking a formal course in programming, you would start with, roughly,

  • Print out "Hello world" to the command line (setup incantations)
  • Take two numbers from the user and print out their sum (command-line input)
  • Take two numbers and either '+' or '*' from the user and print out sum or product accordingly (if-then-else statements)
  • Make a guess-the-number game (while loops, console input)

none of which is very interesting in itself, of course, but it's all foundation.

Posts: 10645 | Registered: Jul 2004  |  IP: Logged | Report this post to a Moderator
James Tiberius Kirk
Member
Member # 2832

 - posted      Profile for James Tiberius Kirk           Edit/Delete Post 
http://www.freebasic.net hosts a good beginner's language. Freeware, open source compiler. I've used it for school projects and research, and its been used to write some decent games.

--j_k

Posts: 3617 | Registered: Dec 2001  |  IP: Logged | Report this post to a Moderator
Raymond Arnold
Member
Member # 11712

 - posted      Profile for Raymond Arnold   Email Raymond Arnold         Edit/Delete Post 
I have a related question: recently I started learning Java for the Unity Engine. I've read all the beginning tutorial type stuff. The only other information I can find is reference for specific commands and giant books that seem geared towards more advanced programmers, with little tiny fonts that felt really intimidating. So I'm looking for a good "intermediate" Java information. Anyone got any recommendations?
Posts: 4136 | Registered: Aug 2008  |  IP: Logged | Report this post to a Moderator
ricree101
Member
Member # 7749

 - posted      Profile for ricree101   Email ricree101         Edit/Delete Post 
quote:
Originally posted by Raymond Arnold:
I have a related question: recently I started learning Java for the Unity Engine. I've read all the beginning tutorial type stuff. The only other information I can find is reference for specific commands and giant books that seem geared towards more advanced programmers, with little tiny fonts that felt really intimidating. So I'm looking for a good "intermediate" Java information. Anyone got any recommendations?

Are you looking for Java specific information, or information for intermediate programmers?

It isn't an actual Java book, but Code Complete would probably be a good choice if you're looking for the latter.

Posts: 2437 | Registered: Apr 2005  |  IP: Logged | Report this post to a Moderator
scifibum
Member
Member # 7625

 - posted      Profile for scifibum   Email scifibum         Edit/Delete Post 
I've heard that contributing to an open source project is a good way to learn once you're past beginner tutorials but not yet at a professional level. Anyone want to share their opinion on this? Since the project coordinators probably don't really want to be teachers...I assume the point is to look at and understand a lot of professional-quality code, and get exposure to a project life cycle.
Posts: 4287 | Registered: Mar 2005  |  IP: Logged | Report this post to a Moderator
ricree101
Member
Member # 7749

 - posted      Profile for ricree101   Email ricree101         Edit/Delete Post 
I don't know. I'd tend to suggest starting one's own project over contributing to an open source project at that level.

Most established projects will take a bit of work and understanding to grasp to the point where one can contribute, and maintainers might not want to deal with the inevitable bad patches.

Overall, I suspect that a bit more experience would be useful before trying to work with others or on existing codebases.

Posts: 2437 | Registered: Apr 2005  |  IP: Logged | Report this post to a Moderator
Raymond Arnold
Member
Member # 11712

 - posted      Profile for Raymond Arnold   Email Raymond Arnold         Edit/Delete Post 
I'm working on my own project, which so far has been doing a decent job of teaching me new stuff (I designed the game to introduce new elements slowly so that as I naturally progressed to the harder elements of the game I'd have developed more programming skill). However, I'm not sure if the habits I'm developing along the way are good ones.

Thanks for the link ricree. I'm not sure if I need something java specific or not but the book looks like it'd be helpful.

Posts: 4136 | Registered: Aug 2008  |  IP: Logged | Report this post to a Moderator
Dr Strangelove
Member
Member # 8331

 - posted      Profile for Dr Strangelove   Email Dr Strangelove         Edit/Delete Post 
So just in case someone ever has an identical desire as me and uses the search function (slim, slim chances), I thought I would share this: The Programming Historian. [Big Grin] . I think this is pretty much exactly the starting point I was looking for. I found it by following one of the links someone provided, so thank you. [Smile] . Hatrack is teh awesome.
Posts: 2827 | Registered: Jul 2005  |  IP: Logged | Report this post to a Moderator
   

   Close Topic   Feature Topic   Move Topic   Delete Topic next oldest topic   next newest topic
 - Printer-friendly view of this topic
Hop To:


Contact Us | Hatrack River Home Page

Copyright © 2008 Hatrack River Enterprises Inc. All rights reserved.
Reproduction in whole or in part without permission is prohibited.


Powered by Infopop Corporation
UBB.classic™ 6.7.2