Fog Creek Software
Discussion Board




Getting "out of the dark"

Right now I'm just learning ASP with VBScript (bleh; I'm used to C syntax).  I've worked with PHP/MySQL somewhat in the past, but the current project uses ASP/VB, so that's what I'm learning/working with.

I'm still in the middle of the learning curve, and I would love to hear your advice for which direction to go in. 

Here's the problem:  I have solid understanding of programming basics (variables, loops etc., functions), but little-to-no understanding of more complex things (methods, classes, objects).  These are little more than buzzwords to me.

So far, my plan has been to forge ahead, Googling as necessary to get the job done.  However, I'd really like to get "out of the dark" and feel as comfortable with all those buzzwords as I am with, say, While loops. 

But I can only think of two options:
1. Keep forging ahead, trusting that I'll learn these things as necessary.  Pro: Keeps me on task, spending time doing the work rather than learning what I might not immediately need.  Con: feels like stumbling around in the dark when I need something more complex than what I really know.

2. Buy a good book or two and digest them.  Pro: more in-depth explanation of topics.  Con:  Book may not be talking about whatever I'm dealing with, making the learning academic and inefficient. 

There's probably a third (or fourth) option I'm not thinking of.  Is there a best way to learn these advanced concepts apart from the university?  How did you get "out of the dark"?

Thanks again for your thoughts.

wanna be a programmer when I grow up
Friday, June 18, 2004

practive makes perfect.

Take a class, read a book, write programs. You just have to do.

Sassy
Friday, June 18, 2004

Try having a little look into Bruce Eckel's Thinking In Java. It is online for free at :
http://www.mindview.net/Books/TIJ/

From the analysis side on the way in, have a look at Martin Fowler's Analysis Patterns. Some free samples online at:
http://www.martinfowler.com/articles.html#ap

Great example to start on would be:
http://www.martinfowler.com/apsupp/recurring.pdf

Just keep reading. It is Greek at first, then French then it starts getting clearer - the more you do, try and read.

Patrick FitzGerald
Friday, June 18, 2004

> practive makes perfect.

Yeah, like typing?

old_timer
Friday, June 18, 2004

Definitely both.  And get used to the feeling that you had no clue a year ago, every year, until you retire.

I've been a projessional developer for seven years, and I'm constantly amazed how I ever accomplished anything before I really understood whatever I figured out last week. 

That's obviously hyperbole, but my point is this: as a developer, you're learning or you're losing.  You're never completely "out of the dark."

Ian Olsen
Friday, June 18, 2004

"I'm constantly amazed how I ever accomplished anything before I really understood whatever I figured out last week.  "

I retrospect, I've experienced the exact same feeling in different areas, so I suppose it's foolish to expect a magic path toward learning programming. 

Patrick, thanks for the suggestions.  If anyone can recommend sources that really helped them learn, I appreciate it.

Thanks again.

EAW
Friday, June 18, 2004

Programming is actually the same, whether object-oriented or not. Methods, objects and classes are not more complex that loops and variables, they are just on a different, higher level. or organization.
Classes are what you put your programs in, objects are what these classes will generate as needed, and methods are simply functions. Once you know it's really the same, and objects are just a better way of organizing programs, it doesn't seem complicated.

Dr. Real PC
Friday, June 18, 2004

Once you feel you have a working understanding of the concepts you mentioned, try some of these books:

http://www.joelonsoftware.com/navLinks/fog0000000262.html

I'm currently reading The Pragmatic Programmer, and already it has helped me improve.

And keep reading.  For a long time I only did guerrilla reading like you describe above -- Google for everything; rarely read more than 5-10 pages; get in, get what I need and get out -- no books in their entirety.  That is obviously a survival skill you need as a programmer, but it's only part of the equation.  I'm recommitting myself to reading on a broader range of subjects, both development and non-development related.  Don't just read about the specific thing you're working on right now.  If you're on an ASP/VBScript project at work, read a book about usability or database design outside of work.  The interesting thing is, this will help you on that work project right now.  Don't just read technical material.  Software is about people, and people live in a world of ideas, so read from the entire range of ideas.  By the way, credit for this advice goes to the authors of The Pragmatic Programmer, not me.

I want to be programmer when I grow up too.

MacSqueeb
Sunday, June 20, 2004

I don't wanna grow up!

Peter Pan
Wednesday, June 23, 2004

Well, there are plenty of books to read and usually time is scarce. While it is good to read  many books, I think that trying to provide a short list of very "effective" books:

1. Structure And Interpretation Of Computer Programs, Abelson, Sussman and Sussman
(explains in greath depth -- depth, not always detail -- many of the fundamentals of CS)
2. Introduction To Algorithms, Cormen and others
(good and pretty compact introduction & reference)
3. Object Oriented Software Construction, 2nd edition, Bertrand Meyer
(rather large book about OO stuff)
4. Design Patterns (Gamma and others)
(another great book on OO, provides balance in thinking after no. 3)
5. Thinking in Java, Bruce Eckel
(good method, teaches very good problem solving and investigating methods)

I guess the best order to read them is 1, 5, 3, 4, 2
I listed them as I remembered them :)

... and of course, the only way to learn how to program is programming :D

Miron Brezuleanu
Friday, June 25, 2004

*  Recent Topics

*  Fog Creek Home