With only one more week of Dev Bootcamp, I’ve been reflecting on everything I’ve learned from the experience so far. It’s amazing to me how much more confident I feel in my ability to build things and figure out anything that I need to learn along the way. Learning to program and building a website no longer seem like a huge, overwhelming task with a maze of things to learn but a relatively simple process that gets more complex as you go along but with manageable tasks (ie user stories), it can easily be broken down to make it much less overwhelming.

The last two weeks have probably been my favorite part as I build a website to solve a real problem with three other awesome people. After working through test driven development, it no longer feels like an impenetrable task and I’m appreciating it more and more as it becomes easier and easier to break things without knowing it. As we create each little bit of functionality with Rails, I become more and more comfortable with it and it no longer has that “beast” aura to it that it did in the beginning. We had to tackle how to use Javascript and Ajax in our application and at first it was raising my frustration levels a lot but figuring it out was such a high and I’m feeling much more confident about using and learning about both of them. Pair programming has been a lot of fun and I really appreciate the communication experience I’m picking up in relation to it.

I’m still in awe of how useful this skill is. It’s amazing to me that I can think of so many problems I’ve had online and off and if I want, I can fix them with programming. For example, while video editing, there’s one task in particular I (and many of my friends) hate doing and I’ve been brainstorming some ways that I could make it easier. Sure, it’d require a lot of background reading on things I’m unfamiliar with but that’s no longer intimidating to me anymore. Just exciting. It’s becoming clear to me that focus and prioritizing are going to be increasingly important as I decide what to work on. It will be so easy to start a lot of projects but never finish them so I’m going to both consider which ones are most meaningful and useful to me while not being afraid to experiment and see what is most wanted in the world, agile style.

Overall, I’m really happy with this Dev Bootcamp experience and I’m really excited to keep learning more in the future. I want to create my own experiences and this newfound power of mine to do that with computers has only begun to change my life.


Being a kid again

One of the things I love about Dev Bootcamp is it makes me feel like a kid again. I feel that overwhelming urge to learn as much as I can and immerse myself in the material until I learn everything (which will never happen but it’s fun to try). I remember when I was a kid feeling the same way whether it was reading or math or history or science and just devouring books and spending my free time trying to learn stuff. School and growing up made that harder to find again but it’s definitely coming back now. I was worried that because before Dev Bootcamp I was having a hard time putting in long hours coding, I might have a hard time at first but thankfully my willpower and motivation is coming back better than ever and I have no problems not checking email, Facebook, Twitter, etc all day which is good because I am (a bit) addicted. Before I came here, I figured I’d leave at 6 with my brain exhausted and needing a break before I came back the next day. That thankfully isn’t happening. Now I can stay till 10 pm or so (with a break or two in between) and still feel focused, motivated and energized to learn as much about Ruby as I can.

I think it’s a combination of things. One is learning Ruby on Rails (and everything that goes with it) is my number one priority right now and the reason I came here was because I’m motivated to learn it. As I mentioned before, the environment helps a lot with having a dedicated place with great design and computers, awesome people around me also learning and helping each other out with problems. Only having two months is also something that helps as it’s a constant reminder that we need to learn all we can in this time before the opportunity is lost. Being around people also gives me that extra incentive to push myself to my limits, to learn Ruby the best I can and not wanting to get left behind encourages me to try hard at learning as much as possible to keep up. For all those reasons, I feel like there’s this invisible force within me pushing me on to keep working and keep learning. And I forgot the biggest reason: it’s fun! There’s a huge difference with listening to boring lectures (when we have lectures it’s interesting and dynamic) and getting a chance to solve problems with people while learning to code which I love.

One of the things we’ve been learning is how to first create code that solves the problem and then refactor it to make it simpler, DRY and ideally shorter. Christian was helping me write each step so that it made total sense with words that clearly described what it was doing, making new variables for each new thing and not chaining as we first figure out what each step is doing. It’s important to look at the big picture first and not get stuck in the details. By first simplifying each problem into small tasks we can do in a function that does ONE thing, it’s easier to understand and make steps into solving the problem. After that, we then looked at substituting defined variables into the actual steps if it was simpler to look at and looked at not repeating any code among other things.

Shereef was talking about questions to ask when refactoring: what is the cost of reading, writing and memory for each step? Also think about what the code is going to be used for and how it will be changed in the future (maybe by others) so you can optimize it for future use. For example, think about whether someone might be sending massive amounts of data into your program and how you can make your code use less memory in order to reduce the cost to the servers. It’s difficult at first but I love to simplify so it’s a great challenge. Another thing was to look at the rspec tests for each step and try to solve each single test without putting a ton of code and then checking as it makes it easier to fix each thing as it comes up instead of having to find every problem in your code. Looking forward to learning more about rspec and how it works in the next couple days not to mention months.

Refreshed and ready for today, can’t wait to get started!


Day 1

First day at Dev Bootcamp was today. Here are a few observations:

Context is important. Being in a great space full of other smart, friendly people who are all excited to learn Ruby on Rails is a huge motivator that I don’t get from working in my room by myself. It’s why I usually get more work done by going to cafes to work and I why I found it so much easier to train for the LA marathon by running along the beach each morning which didn’t work when I moved.

Feedback is hard but important. As I learned in my last job when the company did a good job trying to create an atmosphere of acceptance in giving and receiving feedback, a key part is to encourage others to engage in it and treat it as a normal part of the day. The hardest part about it is developing trust with others so that you feel comfortable giving it and that can take time and effort.

It’s fun solving coding roadblocks with other people. At least more fun than doing it yourself. Pair programming will take some time getting used to but it’s not as intimidating as I thought.

I’m still in love with Ruby and I’m excited to keep learning more about it. What a beautiful, beautiful language. I feel familiar with the basics right now but need to get a firmer and deeper grasp of it. With more practice and continued reading, I’m sure I’ll get it.

Overall it was a great start to what I’m sure will be a extraordinary adventure.