I had originally intended this post to be a technical write-up about how I built my second Rails app. Where the idea came from, heroic descriptions of encountering bugs and working out solutions, things like that. But I couldn't write that because my heart wasn't in it. So I'm going to talk about something different, and I'm hoping this reaches someone who needs to hear what I'm going to say.
You see, I've been in a self-paced web development boot camp for over a year and a half. During that time, I've seen a lot of people quit, and a lot of people fly through it in a few months. Most of the people I know who started when I did have graduated by now. Learning to program has not come easy for me.
When I was supposed to build my first program (a CLI web scraper) I was completely lost. I tried and failed multiple times before I found a mentor who taught me how to do it. Learning to rely on other people, and to ask for help despite feeling stupid or embarrassed has been essential to my success. But even after building an object-oriented Ruby program, I still felt lost. I would watch classmates of mine solve coding problems that were impossible for me. I was frustrated, anxious, and thought about giving up almost daily. But then about five months into the boot camp, a funny thing started happening. I was still getting stuck just as much as before, but I was asking for help a little bit less. I was finding more solutions on my own, and things were starting to make a bit more sense to me. I was slowly understanding why I would need to create classes, what
attr_accessor does, and as I gained insight into
self in Ruby, I was gaining insight into my own self as well. I was thinking about things differently. Logically, systematically, breaking things down and reasoning out outcomes and solutions. I was feeling confident, excited, capable. "I can do this!"
And then I had to learn Sinatra.
Learning SQL, ORM, Rack, ActiveRecord, MVC architecture, and web frameworks made me feel like I was starting all over again. The anxiety kicked in right away, and there was always a voice in the back of my mind saying "you can't do this." But close to a year after I started, thanks to solid mentorship and after many, many, starts and stops and restarts, I had built my first web app.
The best is yet to come, and won't it be fine
Once I had one app under my belt, I felt like it would be smooth sailing. I ran into a whole new challenge as I rebuilt my Sinatra app in Rails. It took a while to learn all the things Rails can do, and get used to how powerful it is. A couple of months later, I had built a full Rails app but still felt like I didn't really understand Rails. Since I rebuilt my first project for my second, I really wanted to do something different for my third, which was supposed to be simply jQuery features added to the Rails app I already built. Anxiety set in, however, and I couldn't do it. I'd break into a cold sweat at the thought of building another app from scratch. A couple more unproductive months followed, and then I had an idea for an app that I really wanted to build. I could see how it would work on the backend right away. I knew how I would set up my database, my associations, my models. I sat down, opened my terminal, made a new directory and ran
rails new. You can see the finished product here and the code here.
I found that all the worry, doubt, and anxiety was all for nothing because I knew how to do it after all. And now it looks like I'm actually going to finish this boot camp, despite all the times I thought I couldn't do it.
How have I made it this far? Well, the thing is, I may not have believed in myself, but I believed in possibilities. Whenever I thought I would never be able to learn a technology or complete an exercise or build something, I always thought to myself, "but it's possible that I can do it."
And that's the best advice I can give to anybody who might be experiencing what I have and surely will again. If it's possible that you can do it, you owe it to yourself to try. You just have to start if you have already stopped, or keep going if you're thinking about giving up. It's the only way I know. It can be painful, but you'll learn, and you might just realize that you were about to give up without realizing that you could do it all along.
I still look at apps other people build and think that I'll never be good enough to create something like that. But then I remember that the things that are easy for me today were impossible for me a year and a half ago. So I keep learning, because who knows what I'll be able to do a year and a half from now.
So don't give up.