Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • December 08, 2016, 02:14:47 PM
  • Proudly celebrating 10 years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Last post Author Topic: I'm thinking about learning how to program.  (Read 18334 times)

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 36,416
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #50 on: October 31, 2010, 08:09:25 PM »
Just a warning -- from what i've seen of people's experiences, it's seems really hard for people to slowly and gradually learn to program over a long period of occasional dabbling.. I suspect it's like learning a spoken language, in that if you don't immerse yourself, the concepts don't stick.


Stephen66515

  • Animated Giffer in Chief
  • Honorary Member
  • Joined in 2010
  • **
  • Posts: 3,130
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #51 on: October 31, 2010, 09:13:00 PM »
I suspect it's like learning a spoken language, in that if you don't immerse yourself, the concepts don't stick.

  • French:  5 Years learning at high school - Didnt care for it, can speak about 6 words of it.
  • Greek: Went to greece for 6 months of each year up until I was 13, can speak pretty fluently now.
  • Spanish: Dad spoke fluent spanish, taught me everything I know by not speaking to me in english.
  • Italian: Tried, and failed, not had enough interest for things to stick
  • Programming (C#): Up until recently, I had tried to learn slowly and surely, didnt work, now im doing it everyday, im getting better and things are sticking
  • Web Programming (HTML/PHP): Took a full time course, did it in all my spare time, I wouldnt say im the best in the world, but I'm certainly not that bad  :-\

So by that count, I kinda have to agree with Mr. Mouser there.  :Thmbsup:

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #52 on: November 01, 2010, 12:56:22 AM »
If the programming bug bites you'll just get absorbed by it. If not, then forcing it will be drudgery.  Way too many details to do it if you hate it or think you have to.  Just try it and see if you're drawn in.

Otherwise just imagine trying to do something difficult with The Song of the Volga Boatmen playing in the background day after day.

It's more like it chooses you rather than you choosing it.




wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,406
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #53 on: November 01, 2010, 09:33:20 AM »
Just a warning -- from what i've seen of people's experiences, it's seems really hard for people to slowly and gradually learn to program over a long period of occasional dabbling.. I suspect it's like learning a spoken language, in that if you don't immerse yourself, the concepts don't stick.



Very good advice here. +1

phitsc

  • Honorary Member
  • Joined in 2008
  • **
  • Posts: 1,187
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #54 on: November 01, 2010, 09:47:38 AM »
I think it's also important to mention that C# (also Python and others for that matter) are full-fledged programming languages targeted at practical use in productive environments and for that reason come with some advanced and non-trivial concepts. I don't think you can just say: start with C# and it will be easy. There's so much information on the web about theses languages nowadays that it's sometimes hard for the novice to distinguish the basic from the advanced concepts. These languages are definitely not developed to be first programming languages although obviously they do serve well also for that if you find out what features to ignore at the beginning.

I'd also say you can successfully learn how to program even with languages such as C# or C++ if you find and use a good book (or a good teacher  :))

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,220
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #55 on: November 01, 2010, 10:11:51 AM »
I think it's also important to mention that C# (also Python and others for that matter) are full-fledged programming languages targeted at practical use in productive environments and for that reason come with some advanced and non-trivial concepts. I don't think you can just say: start with C# and it will be easy. There's so much information on the web about theses languages nowadays that it's sometimes hard for the novice to distinguish the basic from the advanced concepts. These languages are definitely not developed to be first programming languages although obviously they do serve well also for that if you find out what features to ignore at the beginning.

I'd also say you can successfully learn how to program even with languages such as C# or C++ if you find and use a good book (or a good teacher  :))

While there are a lot of extremely difficult things in languages like C# and C++ (and many others), I think if you focus on fun, you'll get more done. Also, focus on getting things DONE. e.g. Start with a Windows Forms application in C#. Drag a button onto the form. Double-click the button. Type

Code: C# [Select]
  1. button1.Text = "I did it!";

Click the green play button at the top of VS, then click the button. You've got something DONE! A tangible result!

Next, drop another control on the form. Explore it. Try something. Double-click things on the form. Double-click the form. Try easy stuff like "something.Text="fun!";" Have fun! You'll learn in no time.

FUN FUN FUN FUN FUN FUN FUN FUN FUN~! :D:D:D:D:D:D:D

 
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,220
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #56 on: November 01, 2010, 10:13:17 AM »
I think if you start with VB.NET, you can learn that in 2 weeks easily. C# might be harder. VB.NET is extremely easy and forgiving. Just an idea.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

pyrohacker

  • Member
  • Joined in 2008
  • **
  • Posts: 46
  • Coder, gamer, loving it.
    • View Profile
    • Mindful Code
    • Read more about this member.
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #57 on: November 02, 2010, 09:19:12 PM »
I suppose I'll throw a couple pennies in.

I started "programming" with windows .BAT files, and I had fun.  I liked doing it, so I learned more and I continued.  After a while, I wanted to make "real" programs, so I went to www.cplusplus.com and learned.  I never really had any fun with C++, though.  At one point, I looked into making GUI programs instead of simple command line tools, and I got the pants scared offa me.

I've always liked programming, but it wasn't until I did some web coding that I fell in love with it.  (I'm talking client-side here, not PHP--though I am curious.)  My favorite thing about web coding is the fact that it isn't done in just one language.  They're conceptually separated, and I love that.  When you want to make content, you use HTML.  When you want to change how it looks, you use CSS.  When you want to make it do stuff, you use JavaScript.  Granted, it means you have to learn three different languages, but I never thought they were at all difficult to learn.

Even though this thread really isn't about environment, I'll chip in here, too.  I use two different windows:  Chrome, and Notepad++.  It's simple, it's effective, and it works for me.

Do what works for you.   :)
Funny that programmers chose the phrase "Hello, World" while most of us are introverts.

delwoode

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 142
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #58 on: November 03, 2010, 06:14:53 AM »
And don't forget to check out the self-teaching programming school on the DonationCoder forum -- it was designed with one purpose in mind, to help motivate people to teach themselves how to program.  Some people find it quite fun!
wow I have been coming to this site for ages and didnt know you had an Autohotkey section!

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #59 on: November 03, 2010, 03:16:42 PM »
For the vc++ dialect of c++ there are some good resources here:

http://www.codeguru.com/forum/

Most of the questions seem to be beginner to intermediate.

delwoode

  • Supporting Member
  • Joined in 2008
  • **
  • Posts: 142
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #60 on: November 04, 2010, 04:52:54 AM »
so whats a good book for learning C# then?

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,220
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #61 on: November 04, 2010, 09:12:35 AM »
so whats a good book for learning C# then?

Pretty much any O'Reiley or Wrox or Apress.

I'd say get the Wrox Beginning C# and the O'Reiley C# Cookbook and the O'Reiley C# Pocket Reference. Those 3 will have you blazing forward faster than just about anything.

Oh, or the "C# Essentials" is very good too. If you're already familiar with some other languages, that's a cheap and fast way to get up to speed.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 36,416
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #62 on: November 04, 2010, 09:18:47 AM »
decide how gentle an introduction you want.
then go to amazon.com and search for C# books, and look at the ratings and read the user reviews.

if you are already a programmer and are just new to C# you will want one kind of book; if you are completely new to programming you will want a different kind of book.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,406
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #63 on: November 04, 2010, 11:18:12 AM »
+1 for C# Essentials.  I also agree with what mouser said; when I first started in C#, I was coming from several years of Delphi, so my essential book that brought me up to speed very fast was .NET for Delphi Developers.  I don't see why they don't write more books like that for other languages, but I was very happy for that book.

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #64 on: November 04, 2010, 12:05:57 PM »
I can see where the drag & drop should be a straight-forward path(didn't the Delphi guys go over to MS to do the RAD stuff? Or is that just a rumor?) but I found C# easy because I had C and C++ already.

Java had a similar framework(the Borland tools) but I had to learn different syntax/language at the same time.  It was just more natural to go with C# having a C background.  If you've never done delphi or RAD tools and never done any C based languages, it may be a tough way to start.

Trial and error may be the best approach.  Try a few freebies and see if one sticks. :)
For easy first language syntax, AutoIt3 is probably as easy as it gets for windows. If..Then Select..Case While..Wend  pretty simple.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,406
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #65 on: November 04, 2010, 12:40:17 PM »
Anders Hejlsberg was senior architect on Delphi (language) and was the same on C#(language).  It wasn't really the RAD/drag and drop stuff... it was more the language constructs and the low level .NET architecture.  Drag and Drop isn't really anything to learn, IMO.  You just do it.  There might be intricacies in UI design, but other than that, there shouldn't be a significant learning curve.  The language idiosyncrasies are the issue (not even the language itself if you already know how to program at all, truthfully).

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #66 on: November 04, 2010, 12:55:36 PM »
I think memory fails after doing stuff for a long time.  I can remember Resource Editor dialog stuff in MFC fumbling around trying to figure out how to add a handler to a button.  Finally double-click and bingo! Not the same property editor Delphi had.  Also Delphi had a bunch of Action stuff that i never bothered with.

For a first time programmer I think  For Next  and If Then Else is enough without delegates classes inheritance and frameworks. You've done it so long you can't remember being bewildered.  A first timer actually thinks the command name has something to do with what happens other than the programmer gave it the name to give the user a clue. As I say, most of the correlations are illusory.  First timers don't realize it's all charged not charged one zero electronics that's interpreted to mean something.

« Last Edit: November 04, 2010, 12:58:59 PM by MilesAhead »

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,406
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #67 on: November 04, 2010, 01:19:07 PM »
I guess my point is that you *can* do it that way.  Then when you're ready to move up, you stay in the same language/environment.  My first C# program:

Code: C# [Select]
  1. [assembly: System.Reflection.AssemblyVersion("1.0")]
  2. namespace HelloWorldNamespace
  3. {
  4.   public class HelloWorldForm: System.Windows.Forms.Form
  5.   {
  6.     public HelloWorldForm()
  7.     {
  8.       this.Text = "Hello World!";
  9.     }
  10.     [System.STAThread]
  11.     public static void Main()
  12.     {
  13.       System.Windows.Forms.Application.EnableVisualStyles();
  14.       System.Windows.Forms.Application.Run(new HelloWorldForm());
  15.     }
  16.   }
  17. }

Compiled from the VS2005 command line with
csc HelloWorld.cs /reference:System.dll /reference:System.Windows.Forms.dll

A little more work than other options, but the long term payoff is worth it, at least IMO.  And you could do the same using console options, and not have to worry about any of the things that you talk about.

But in the end, it really depends on what you want to do with the skills that you learn, IMO.  That should dictate where you start.

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #68 on: November 04, 2010, 01:59:04 PM »
Each person will have a different aptitude.  That's why these "what's the best first programming language" discussions just end up being what each poster likes. You can't predict how someone else will handle a different type of programming language.  Some people can jump right into assembler while others would rather die than use it. It's going to vary with the person.

The languages designed as teaching languages have a bit of an edge in that they usually have something that looks like words for function calls instead of just some mathematical mumbo jumbo.  Other than that it's all a toss up.

wraith808

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 8,406
  • "In my dreams, I always do it right."
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #69 on: November 04, 2010, 07:25:02 PM »
^ We can agree on that!  ;)

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #70 on: November 04, 2010, 07:43:26 PM »

CodeTRUCKER

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,060
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #71 on: November 06, 2010, 05:57:00 PM »
superboyac,

I have had a chance to gauge you on and off the main forum and I am confident you'll produce the same quality result you do in everything else I've seen.  Your drive, zeal, and intelligence will see you through.  May I be so bold as to offer this simple strategy...

  • <1> Select your language.
  • <2> If this is not something you have to do for work, make a commitment to stay with your choice for...
    • One year if your involvement is major.
    • Two Years if your involvement is minor.
  • <3> After you have fulfilled the requirements of step <2> above, you will have enough perspective (wisdom) to judge what would really be "The Best" language for "You!"

I speak as one who failed to follow this simple advice and ended up chasing so many rabbits... well, I'd rather spare you that experience.  

The good news is you have a lot more going for you, so I am confident of your success!

Ciao!
« Last Edit: November 07, 2010, 01:37:21 AM by CodeTRUCKER »

Renegade

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 13,220
  • Tell me something you don't know...
    • View Profile
    • Renegade Minds
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #72 on: November 06, 2010, 06:39:28 PM »
This is very Microsoft-centric, but is still probably the best resource on the Internet for programming. (If anyone knows of anything better, I'd LOVE to see it.)

The Code Project

I say that it's the best resource because it's simply FULL of open source software projects with complete tutorials. Some are more complex than others, and some have problems, but still, there are just so many there that it would be difficult for you to imagine something that there isn't at least a partial solution for it there, or a related solution.

There are articles there for C#, VB.NET, F#, iPhone, Android, C++, LAMP, Java, and a lot more. There are desktop, server, web and mobile tutorials. Everything.

You will be very hard pressed to find a better source for learning. Especially if you like to learn through examples.

I've found that examples are almost 100% necessary for a lot of SDKs and APIs. Often they are so complex, and so convoluted, that unless you spend several weeks learning them inside out (for the smaller ones -- years for larger ones), there's no way for you to possible begin to use them. Even relatively simple things can be nearly impossible to do unless you are shown how to do it.

Here's an example.

Imagine you need to create a list. A very long list. It doesn't matter what it is, but let's just say that we're creating a list of phone numbers and people's names. The format is really unimportant, but let's just say we follow this format:

<Last name>, <First name>, <phone number>

Simple comma delimited, and very easy to handle.

Now, the list will be 1 person per line like this:

Doe, John, 123-4567
Doe, Jane, 987-6543
Smith, Jake, 456-7890
etc.

Now, in C# (.NET or Mono), you can create a string to hold the list like this:

string myList;

You can create an entry like this:

string last;
string first;
string phone;
string line = last + ", " + first + ", " + phone;

So, there you have a "line" that you can add to "myList".

So, you can add a person to the list like this:

myList = myList + line + "\r\n";

"\r\n" is for a new line.

So, that's all pretty easy.

However, if your list is long like first mentioned, you just cannot do things that way. It will NOT work. Sure, the logic is perfect, and theoretically it *can* work, but it won't for practical reasons: the time it takes is too long.

Instead, you need to use a StringBuilder:

StringBuilder sb = new StringBuilder();

And you would add people like this:

sb.AddLine(line);

That will increase performance and your long list will work.

When you are done adding people, you simple get the list like this:

string finalList = sb.ToString();

So the *REAL* problem isn't *the problem* (creating a long list), the real problem is that there is a special way to do it that nobody ever told you about... Yuck.

There are SOOOOO many special tools out there that it's almost impossible to know them all.

Sure, you *could* do it in C. Heck, you can do anything in C. For that matter, you could do it in assembly language too. However, as a human being, you have a limited lifespan, and will likely die before you manage to finish getting anything useful done in either C or assembler. So you're stuck with using a much higher level language that has a lot of arbitrary ways of doing things that you simply cannot know beforehand, unlike C or assembler that have a very small set of functionality that you can exhaustively know.

With things like The Code Project, you can get all those examples that show you how to get things done. It's just so much faster and easier if you can see it done rather than having to figure it all out yourself.
Slow Down Music - Where I commit thought crimes...

Freedom is the right to be wrong, not the right to do wrong. - John Diefenbaker

CodeTRUCKER

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,060
    • View Profile
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #73 on: November 06, 2010, 06:48:43 PM »
...
With things like The Code Project, you can get all those examples that show you how to get things done. It's just so much faster and easier if you can see it done rather than having to figure it all out yourself.

Yup, that looks like a very comprehensive resource.  Maybe it is just me, but I am always somewhat hesitant to embrace the "easy" path.  It's not that I want to follow the "hard" path, but I wonder if "ready-made" cut-and-paste is the best learning experience. 

Maybe I'm just becoming a dinosaur?

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,287
    • View Profile
    • Miles Ahead Software
    • Donate to Member
Re: I'm thinking about learning how to program.
« Reply #74 on: November 06, 2010, 08:06:41 PM »
+1 for Code Project.  One of the few places you can actually find working code for drawing on Glass in c++/c#. If you do find it somewhere else chances are pretty good it's using the Code Project code wrapped in a class. :)