How to learn programming

chewie999

Junior Member
Sep 29, 2007
5
0
0
Hi guys,

This is probably off topic but I want to develop some programming skills as a hobby. I've taken some programming classes in the past (high school/college), ie. basic, pascal, but that was like 15+ years ago.

I've seen people develop their own addons for WoW and thought, hey, it might be cool if I could do something like that. I've quit WoW but still am very interested to develop some programming skills although I understand that each language is different.

I've looked at some distance learning courses offered by universities but I probably can't fit in a lengthy course into my schedule. I was thinking of developing the programming foundations and learn other languages when needed or when I do have the time. Is there any other alternatives to certificate / undergraduate courses for me?

Can somebody suggest the best way in going about this.

Thanks
 

Schadenfroh

Elite Member
Mar 8, 2003
38,416
4
0
Assuming pascal / basic taught you some of the fundamental concepts of programming that are similar throughout most languages....

1. Pick a language that you want to learn (I suggest C#, VisualBasic.NET, or Java). Note that those are object oriented programming languages, so you will have to learn the fundamentals of OO programming along the way. Of those languages, VB.NET 2005 is as close to plain English as you can get, you might even recognize a few statements from your BASIC days, although the language is FAR different.
2. Pick a project with an objective (like a black jack game, after you make a "hello world" program)
3. Create a program that completes your objective using the language you picked with internet references on how to get past things that you do not understand.
4. Repeat steps 2 and 3 (except with a more complex project)


Visual C#, Visual Basic.NET, and Java all have free (and rather nice) IDEs out there (The Express Editions of the two previous and the NetBeans IDE of the latter).
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
What Schadenfroh said. Also check out LUA, which is a scripting language used in games like WoW.
 

nordloewelabs

Senior member
Mar 18, 2005
542
0
0
i found myself in this same situation a year ago, but in my case, my only programming experience was HTML. the path i adopted was:

first i chose a language. i asked ppl for suggestions and i read a little about half a dozen languages. i used a site similar to this one (http://www.awaretek.com/atesterea.html) to help me too. the site was actually pretty interesting.... cant find its link, though. i wanted a language that was modern and easy, yet useful. after a while i narrowed my choices down to Java and C#.... ultimately i picked C#.

then, because i'm not looking for a diploma, i looked for a book to guide my way. if you decide to go for C# or Java, i can suggest you this author: Jacquie Barker (http://objectstart.com/). those 2 "Beginning Objects" books she wrote serve as GREAT introduction to Object-Oriented Programming! i have the C# one, but the Java title is on its 2nd edition already.

if you want a quicker learning path you can try video courses from Keystone (http://www.keystonelearning.com/) (very good!), LearnKey (http://www.learnkey.com) or CBT Nuggets (http://www.cbtnuggets.com/); as suggested before, you can try online tutorials too. for C# i can suggest this one: http://www.functionx.com/csharp/index.htm, but there are lots more out there.

even though VB.NET is easy, i wouldnt suggest it as a starting point. Microsoft and the industry regard C# as the main language of the .NET family.... IMHO, if you decide to go for .NET, C# should be your pick....

as Schadenfroh said, you should pick a project of interest and try to develop it. books, videos or tutorials alone wont teach you programming....you need to code. Both Java and C# have free IDEs (Eclipse and Visual C# Express, respectively), so finding tools for development woudnt be a problem with these two languages. in reality, there are free IDEs for many languages nowadays.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
I normally vote for python in these situations, but I'm gonna say javascript. There's some nasty stuff about it, like cross-browser incompatibility in terms of apis, but the core language is very nice once you have a few browser tools to help you debug (I recommend firefox with an assortment of extensions like WebDeveloper and Firebug).

The nice thing about it for a beginner is that you get a super low barrier to entry (a browser is all the tool kit you need), a fairly good set of tools for making fancy interfaces (html) and the ability to instantly distribute updated copies of your efforts to anyone in the world, assuming you have a webserver. There aren't many good tutorials on how the language really works though. Most treat it like a castrated java which is so missing the point. But there's enough to get started, lots of smart bloggers out there who share interesting concepts (Douglas Crockford comes to mind) and mozilla has a wiki with a pretty good set of reference documents.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
You might be right about that, Kamper. As horrid as javascript is for developing complex logic, it's perfect for dive in and get something running. Reminds me of an article a few months back lamenting the lack of any simple, interpreted BASIC like the ROM basic that was available on all IBM compatibles for a long time. The author felt that old-style BASIC helped a lot of young folks get started, and he was right in my case, at least. GW-BASIC on a 1982-ish Columbia luggable .
 

Noobsa44

Member
Jun 7, 2005
65
0
0
While I personally would suggest VB.Net (50+% of the .net community actually use VB.net, even though C# was developed for .net) as a reasonably good first language. Alternatively, just as a way to start playing with something quickly, without a big install (like the VB.net/C#/Java IDEs), I'd suggest VB Script or Javascript as they are typically preinstalled on a windows. You can get a smaller IDE (at like 2 megs) like Scite (http://scintilla.sourceforge.net/SciTEDownload.html) or just use notepad. It doesn't get any easier than opening notepad, typing in 'msgbox "hello world"', saving as a .vbs file and double clicking the created file. VB Script/Javascript also support HTAs (HTML Applications), which can help develop skills in HTML as well as a programming language (http://www.microsoft.com/techn...s/htas/tutorial1.mspx).
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Markbnj
As horrid as javascript is for developing complex logic, it's perfect for dive in and get something running.
I actually quite like it for relatively complex logic, the core language is quite a good one if you don't insist on static typing and java-style inheritance.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Originally posted by: kamper
Originally posted by: Markbnj
As horrid as javascript is for developing complex logic, it's perfect for dive in and get something running.
I actually quite like it for relatively complex logic, the core language is quite a good one if you don't insist on static typing and java-style inheritance.

Well, static typing at least is something I assign great value to when doing complex stuff .
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Markbnj
Originally posted by: kamper
Originally posted by: Markbnj
As horrid as javascript is for developing complex logic, it's perfect for dive in and get something running.
I actually quite like it for relatively complex logic, the core language is quite a good one if you don't insist on static typing and java-style inheritance.
Well, static typing at least is something I assign great value to when doing complex stuff .
I do sometimes. You definitely have to think in a very different mode if switching between the two. I enjoy doing both and comparing but right now I find too much safety annoying (probably because I'm not part of a large team atm).
 

lousydood

Member
Aug 1, 2005
158
0
0
I realize this is somewhat irrelevant to the original point, but: please don't confuse what Java offers with "static typing with safety." It's not type-safe, and frankly, it's just horrible.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
I understand that not everyone loves java (and I've got no problem with that) but care to expand on how it's not type-safe? Off the top of my head, I can't think of any languages that are stricter. Except maybe stuff that has extra design-by-contract features like, I think, Eiffel. Never used it though.
 

lousydood

Member
Aug 1, 2005
158
0
0
Type safety has a formal definition, which when stated informally is: "Well-typed programs do not crash [from type errors]." The Java language has a number of "features" which permit you to write code which can type-check and still crash from type errors. Casting, especially unchecked casting, and the poor design decisions behind generics allow for this easily.

It's sad that some people may see this unsoundness as the cost of doing business. But in fact, it's very possible to design programming languages with advanced, safe, and flexible type systems which do better than what Java has to offer. If you want to read more about type safety, and high level programming languages, see

Textbook: Types and Programming Languages, Pierce.
Online book: http://www.cs.cmu.edu/~rwh/plbook/
Online book: http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Ah, I see what you mean. I was thinking "at least it catches the error instantly and throws an exception, rather than allowing something undefined and possibly catastrophic to happen like c++ does." I would argue that this "cost of doing business" isn't much of a cost, as, if you are bitten by these problems, a flawed language is probably only a symptom of the disease of having stupid programmers, which is a lot more serious. That said, I support efforts to design practical, elegant type safety systems because stupid programmers are cheaper than smart ones...

I will consider adding your linked books to my already much too long list of technical books to read.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |