Re: Is it just me...?
by VSarkiss (Monsignor) on Jun 14, 2001 at 19:40 UTC
|
Hate to tell you, Kevin, but it is just you. All the rest of us were born knowing how to program. I personally flashed on an incredible CFD routine in Fortran while suckling at my mother's breast.
(Sorry, just had to do that ;-)
You have the right method -- study the works of others -- and the desire. Have patience. It may seem like you're getting nowhere, but keep at it. As the I Ching admonishes, "perseverance furthers".
Consider some alternate resources. For example, you may have picked books that aren't appropriate for your stage of growth. Some other possibilities to consider:
- "How to solve it" by Georg Polya. A true classic: one of the best all-around books on problem solving.
- "The Perl Cookbook" by Christiansen and Torkington. Instead of a reference, consider just reading it, or studying one or two techniques a day.
- My personal favorite, Effective Perl Programming by Hall and Schwartz, is a great way to rise to "the next level" in Perl. It's the same "item-at-a-time" format as Pragmatic Programmer.
One thing that helped me a lot when I was learning programming: read other people's code. One of the best things about using Open Source and Free software is that you can read the programs for education. For example, if you're curious how something in Perl works, try to track it down in the source, and see how it's accomplished. (Warning: this may warp your thinking for life. ;-) Or read some of the modules in your Perl distribution and see how they work.
| [reply] |
|
I want to follow-up on the point to read from a variety of different sources. This has been working for me, at least. In the last 4 months I have purchased:
Learn Perl in 21 Days
Teach Yourself CGI
Programming the Perl DBI
Network Programming Perl
Object-Oriented Perl
The Perl CD Bookshelf (only $60!) which includes:
Learning Perl
Programming Perl
Perl Cookbook
Perl in a Nutshell
Learning Perl on Win32 Systems
Advanced Perl Programming
And of course there is all the great documentation and tutorial here on PM and elsewhere online. I'm not recommending these particular books to you, I'm just saying having a wide and diverse library has done me well. Have I read all of them through? No. Do I understand all that I read? No. But relying on the work of more than one or two has helped me tremendously in piecing it all together. Many of the books cross paths and seeing the same concept described a little differently produces those magic "Oh I see!" moments quite well.
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot";
$nysus = $PM . $MCF;
| [reply] |
Re: Is it just me...?
by azatoth (Curate) on Jun 14, 2001 at 19:08 UTC
|
I tried to learn how to program about 5 or 6 times before I found Learning Perl. I feel your pain, as I never had any programming experience before Perl.
I used web-tutorials, borrowed books, code examples - you name it, I tried it. My brain (left-side, not right) has a lot of trouble with facts, figures, black characters on a white screen, etc etc. I was beginning to think I should stick to art and stuff.
Without wishing to sound like a total creep, Learning Perl was the first book I understood as I read through it. When I found Perlmonks, the first thing I did (after I found out he was here), was /msg merlyn and thank him for writing it. After all, without that book, I wouldn't be in the job I am now in. Sure, there are tons of great books out there, written by some very talented authors. But for me, the thing that finally made everything go *click*, was the Llama book. Try it. It works.
Believe me.
This is coming from a guy who was in Geometry I in his Senior Year in high school.
Azatoth a.k.a Captain Whiplash
Make Your Die Messages Full of Wisdom!
Get YOUR PerlMonks Stagename here!
Want to speak like a Londoner? | [reply] |
|
I agree wholeheartedly... Where I work we set up a 1.5 hour meeting every week to start learning perl using the Learning Perl book. Some of us are complete newbies, others are a bit more adept. I have to admit though, it is pretty hard to learn the concepts without someplace to apply what you are learning. We are actively looking for good beginner projects to help jumpstart the learning curve, and have a few good ideas currently on the table. The most important thing I'd like to get across though is this: I am a VERY lucky bastard... My boss did not have to do this for us, but he has taken the time to create lessons based on each chapter, and has taught them to us. I would encourage other perl 'newbies|monks' (and everything in between) to try and do this for your own co-workers. It has made a huge difference in my life.
Spartan 'perl newbie'
Very funny Scotty... Now PLEASE beam down my PANTS!
| [reply] |
Re: Is it just me...?
by larsen (Parson) on Jun 14, 2001 at 19:42 UTC
|
I just don't seem to think the right way.
The main characteristic in the best programmers I know is not a lot knowledge about theory and similar things, but the ability to analize the problem. They are "calm". They analyze every single aspect of the problem: the coding phase is seen as a less important aspect of programming.
Another aspect of their demeanor is the ability to teach themselves.
My advise is: get a problem you like or you need to solve and try to solve it. Simply. At the beginning, you'll be faced with a lot of problems that will lead you to a lot of aspects of programming and of the programming language you chose.
As long as you keep solving new problems, you'll learn new things and you will return on issues you've already learnt, often seeing them from different points of view.
Another advice, if you can, is to study with someone else: talking with someone about a problem is a very good way to comprehend better what are you dwelling with. | [reply] |
Re: Is it just me...?
by LD2 (Curate) on Jun 14, 2001 at 19:33 UTC
|
First off, no.. it's not just you. :)
I think the difficult part, is wanting to learn everything at once. This can include:
- Good programming practices
- Programming Theory
- OOP
- Languages (in general)
- etc.
I like you, have not been formally trained. In order to learn good practices as well as
theory, one depends on some excellent books, classes, and sometimes co-workers (depending on
who they are). All in all, it takes time and lots of patience. Programming isn't one
of those things that one can do well without practice, time and like I said before
patience (for all those times that it takes hours to debug or figure out a trival problem).
You may want to read 'The Pragmatic Programmer' and 'Code Complete' before or at the same
time as reading 'Programming Perl.' This will give you a chance to learn some
good practices as well as having the opportunity to actually put those practices in motion.
What may be a better idea than doing the exercises in the book or books is to find a clear
goal/task that you would like to meet and code that. It's great practice, as well as accomplishing
a goal/task. I had a difficult time with Perl and doing the exercises - it wasn't
until I had to actually create a program for work - that I was able to really understand
some of the concepts and ideas that I had read. Good luck and remember: we were all once
there.
| [reply] |
(jeffa) Re: Is it just me...?
by jeffa (Bishop) on Jun 14, 2001 at 19:27 UTC
|
Progamming Pearls is an excellent book,
but i would not recommend to someone as a first progamming
book. It's more like the book you read AFTER you 'know it
all' - many of the problems are way way complex . . .
I have been programming for a good 4 years now - i am only
on chapter 4! :D
Jeff
R-R-R--R-R-R--R-R-R--R-R-R--R-R-R--
L-L--L-L--L-L--L-L--L-L--L-L--L-L--
| [reply] |
Re: Is it just me...?
by chromatic (Archbishop) on Jun 14, 2001 at 21:17 UTC
|
Is it possible to be a good programmer without being able to instantly devise the most efficient algorithms on the spot?
The nice thing about software is that, unlike traditional hardware, you can correct a mistake in seconds. (The same goes for interpreted versus compiled languages.)
When you're facing a problem, break it into tasks. Tackle the most important one first. Then do the second. As you're putting them together, look for how you can improve things. Get rid of duplicate code. Move things into functions. Share what you can. Slough off the rough edges that stick out.
Cultivate those habits, get some practical experience of how you can improve things, and continue to read up on your theory. That's a great way to improve. | [reply] |
Re: Is it just me...?
by feloniousMonk (Pilgrim) on Jun 14, 2001 at 20:39 UTC
|
--
I used to feel the same way. Now I'm in the field
full time after quite a bit of learning on my own.
The way I feel is that you can read volumes of books
and you won't get anything from them until you use it.
Try examples to get yourself familiar with the language.
Then, figure out your own problems so you know how to
approach and solve the problem.
What I mean is, some of the best "programmers" don't know any code anymore, but they know the programming structure well enough so code translation is simple. This many of us find to be the hardest part.
I was told once by a wise person, that in IT, you
know you've learned something when you realize how much you don't know. This is a good sign.
-felonious | [reply] |
Re: Is it just me...?
by stephen (Priest) on Jun 14, 2001 at 22:34 UTC
|
I'd recommend Steve McConnell's Code Complete. While merlyn's Learning Perl got me started in programming, Code Complete turned me from a beginning programmer into a professional (of sorts), even though it generally deals with languages I rarely use. The Pragmatic Programmer is another excellent book... but you've already got that. :)
Also, I've rarely had to come up with algorithms on my own, since there are such nice algorithm books out there.
stephen
| [reply] |
|
kevin,
were u referring to bentley's programming pearls or the o'reilly's perl book(programming perl)?
| [reply] |
|
--
Kevin O'Rourke
| [reply] |
Re: Is it just me...?
by E-Bitch (Pilgrim) on Jun 15, 2001 at 02:15 UTC
|
Kevin-
I have found that experience is the best teacher... find something that you like and cannot stop. I know it seems silly, but writing command line utilities (okay, scripts and such that *act* like command line utilities) fascinate me. If I write something that *looks* like a utility (and can fool its user), that gives me no end of pleasure. My first major perl script I almost got fired for, because I went waaaay overboard with it... (and besides, there are a million broken link checkers that I could've used.). Bottom line, find a project, find people that have done projects similar to yours, and emulate, change, and make it work... most of all, though, have fun. If you can't stare at a screen for 8 hours and have fun, you're in the wrong business.
hope this helps!
E-Bitch | [reply] |
|
If you can't stare at a screen for 8 hours and have fun, you're in the wrong business.
Not only do I spend >8 hours a day staring at a screen at work I then go home and do it for fun.
Next challenge (after becoming a better programmer): get a life! ;-)
--
Kevin O'Rourke
| [reply] |
|
Whew! Tell me about it! I do the same thing! I've been doing that very thing for ohhh, 6 years? I work for about 9 hours and then go home and mess about for another 4 to 5 hours! I'm such a nerd! Idn't it great!?
----------
- Jim
| [reply] |
Re: Is it just me...?
by mattr (Curate) on Jun 15, 2001 at 17:19 UTC
|
Don't worry, it's not just you!
While the basic concepts of programming are something you
should understand, there is a lot that is just experience. There is a lot of good documentation but I'd also recommend
going to the book store and skimming the Tables of Contents
of as many seemingly relevant books as you can find (after
reading the ones people recommend here, they seem just what you need really).
If you try to solve real problems and learn a bit at a time, you can teach yourself. Even something simple like trying to do a simple thing in a program of maybe 5-10 lines and trying a few ways to do it. When you wonder why
something doesn't work, try and find out by experimenting and by looking for where relevant info may be. The best
weapon I could recommend is reading voraciously until you find something that speaks to you. That's when you start having fun.
By the way you will find there is an idiom that fits perl thinking just the way there are ones for electronics engineering. The author of Perl recommends laziness as a
programmer's friend, so I wouldn't worry about agility. Another great motto of perlfolk is TMTOWTDI (There's More Than One Way To Do It) which you may have heard. Much of
learning is looking at a problem from a few perspectives to get a handle on it. Much of experience is making a heck of a lot of mistakes (I know). Peace! | [reply] |
Re: Is it just me...?
by Anonymous Monk on Jun 14, 2001 at 22:06 UTC
|
I have had some experiences where electrical engineers had exceedingly strange views of how software works -- they used circuit diagrams to explain it. They kept talking about finding bugs in programs by "chopping a circuit in two", and the analogy was completely inappropriate. Would we saw a wristwatch in half to find out what's wrong with it?
If your education has been in electrical engineering, you'll need to de-program yourself first. Software is about arrows that point from one box to the next, not 12 squares with circuits connecting all of them.
| [reply] |
|
| [reply] |
Re: Is it just me...?
by seanbo (Chaplain) on Jun 15, 2001 at 18:18 UTC
|
Definitly not just you.
I recently replied to another post about books. 'Effective Perl Programming is great. Take a look at this node. I highly recommend it, merlyn is one of the co-authors.
seanbo
Ahh..the odd dog is a strange beast indeed, nobody wants him, but he always seems to be there. | [reply] |