This is topic Computer programming for beginners in forum Books, Films, Food and Culture at Hatrack River Forum.


To visit this topic, use this URL:
http://www.hatrack.com/ubb/main/ultimatebb.php?ubb=get_topic;f=2;t=055722

Posted by Dr Strangelove (Member # 8331) on :
 
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]
 
Posted by Christine (Member # 8594) on :
 
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]
 
Posted by Tstorm (Member # 1871) on :
 
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.
 
Posted by solo (Member # 3148) on :
 
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.
 
Posted by ricree101 (Member # 7749) on :
 
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.
 
Posted by scifibum (Member # 7625) on :
 
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.
 
Posted by King of Men (Member # 6684) on :
 
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?
 
Posted by TomDavidson (Member # 124) on :
 
(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.)
 
Posted by Wonder Dog (Member # 5691) on :
 
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.
 
Posted by Dr Strangelove (Member # 8331) on :
 
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?
 
Posted by fugu13 (Member # 2859) on :
 
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/ ).
 
Posted by El JT de Spang (Member # 7742) on :
 
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.
 
Posted by King of Men (Member # 6684) on :
 
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.


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


none of which is very interesting in itself, of course, but it's all foundation.
 
Posted by James Tiberius Kirk (Member # 2832) on :
 
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
 
Posted by Raymond Arnold (Member # 11712) on :
 
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?
 
Posted by ricree101 (Member # 7749) on :
 
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.
 
Posted by scifibum (Member # 7625) on :
 
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.
 
Posted by ricree101 (Member # 7749) on :
 
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.
 
Posted by Raymond Arnold (Member # 11712) on :
 
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.
 
Posted by Dr Strangelove (Member # 8331) on :
 
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.
 


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