(aka A Thinly Veiled Plug for Ruby Monday) Come to think of it, I couldn't tell you how I heard about Ruby Monday in the first place. My best guess is the Code Newbie website via the podcast. Regardless of route (routes.rb?), I'm so glad I found it. It's taught me a lot of what it means to program, and I know I've only barely scratched the surface.
While my skill level hasn't seen a quantum leap in improvement, I've learned a lot about the practical things - working in teams, asking for help (big one), searching - because we're not following a set tutorial. The major thing I've learned - and this is important - you learn by doing. If you want to be a programmer, you must program.
My first Ruby Monday, I was worried everything would be way over my head. I was right; it was way over my head. I don't even remember what everyone was talking about - I wrote down the terms I could catch onto pink sticky notes and soon my desk was almost entirely pink. During the week, I'd take down the sticky note once I recognized the concept via research or worked with it on the project. I've continued this practice as I attend Ruby Monday meetings, finding that I don't lunge for a sticky note quite as often anymore. Being part of a conversation that I would initially have classified as being "over my head" is helping me to develop a vocabulary, one that I can use to pull out contextual clues when I don't know a concept right off the bat. Like any language, to learn it you must immerse yourself in it.
As to be expected, I encountered my first major roadblock very early on - attempting to launch a rails server from the project freshly pulled down from GitHub. I spent no less than 5 hours scouring the Internet for the answers, picking up helpful tidbits here and there, but no magical, one-size-fits-all answer. An additional two hours spent with a kind soul from the Ruby Monday group on Hangouts did not solve the problem but did get me new errors (insert "But they're different errors!" xkcd comic here). At least at the end of the call, I had some inkling of what the errors meant. Another two hours of tinkering later and I had it working. Another life lesson for the books: You must be stubborn.
I'll admit it - I managed to deflect contributing on the project for a few meetings. I didn't feel like I was ready and didn't want to bite off more than I could chew. But that did not seem to be an option with this crowd. I took on the wireframing of the blog pages, and while doing so managed to learn Bootstrap and Sass. Which came in handy not 2 days later when redesigning my own personal website. As it turns out, to learn to program, you must go outside of your comfort zone.
Ruby Monday has done the impossible, it's actually made me look forward to Mondays. It's become a place that makes you excited to learn, and that's my final piece of advice: to be a successful coder, you must be excited to learn.