views:

90

answers:

2

I recently graduated with a degree in Networking and Systems Administration, and I am currently waiting to start a job in that same field. I am a hobbyist programmer, but I enjoy it very much and would like to get more serious about it. What I am struggling with is hard for me to put into words exactly, but I will try.

During school, I took several Java classes and felt they gave me a good foundation on programming in general. Recently, I started learning Ruby and Ruby on Rails because of how different it is from Java and the amount of learning material that is available. I am able to pick up on the syntax pretty well, and most of the basic ideas stick with me. However, when I get to longer, more involved examples that tie together many different concepts and design principles (modules, libraries, nested classes, private methods, etc), I feel I get lost and intimidated. Not to mention when I try to write my on programs, I essentially "freeze" because I have no idea of how to use the more advanced concepts or how to get the most efficient code out of what I know.

Because of my struggles, I start to question my fundamentals/thinking style. Are there books out there that can help me THINK more like a software engineer? Or is it simply repetition and reading different code? Right now, I feel I could go and read every single book on Ruby (or any other language) out there but still be missing some fundamental principles that other, properly trained, developers may have.

Hopefully, I made my problems clear. If not, I can certainly try my best to elaborate. I can only hope that other developers have had similar experiences while learning, and a brief description/recommendation on how they have worked through them would be fantastic.

Thanks!

edit ------

Thanks for the answers, both were helpful. I have been checking out the thread posted below and have found several books that I think will be helpful. I'm also going to try and get some more practical experience.

+4  A: 

Most of the highly voted books from this question sound like they'd do you some good.

http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

Specifically the first two, "Code Complete" and "The Pragmatic Programmer"

Also, "Clean Code" by Bob Martin is a more recent book, similar to "Code Complete". It uses Java for its examples and contains more information on recent trends, such as test-driven development.

manu08
+100 - if i could, for Code Complete :-)
InSane
+1  A: 

Reading books will only get you so far. If you really want to start thinking like a programmer you will have to start doing some serious programming.

It would be best if you could get a job programming where you would be working under more experienced programmers that would be able to tell you when you do something wrong and help you grow (this doesn't always happen, but ideally...)

I would suspect that your "thinking style" is probably fine, you just lack real world experience. When I first started as a programmer I felt completely lost. Gradually i got more and more comfortable...

At the very least stick with it, keep programming on your own, make use of the SO community when you have questions and read a few books. Reading won't hurt but I'd say you need some hands on experience to really grow....

Abe Miessler