mknudsen01-blog
mknudsen01-blog
Matthew @DBC
55 posts
My thoughts and learnings as I go through Dev Bootcamp, January 2014
Don't wanna be here? Send us removal request.
mknudsen01-blog · 11 years ago
Text
Do it for the looooove
I went to a meetup at Mozilla the other day. I had a lot of trouble finding the event because Mozilla has a couple of different offices in the building that they're in.
I eventually found a Mozilla employee and told him that I was looking for an event there. He asked me if I meant some other event. I can't remember the name, so let's call if CoolFunTime. So he asked if I meant CoolFunTime. I didn't, but I said "yeah, maybe" and followed him through the maze of offices on that side of the building.
We had a really awkward conversation along the way. It was pretty much:
"So, do you work at Mozilla?"
"Yep."
another minute of silence and walking
After that thrillfest, we made it to the door leading to the event. He used his keycard to open the door, and I walked into a party thing--music, food, drinks, and mostly attractive people on the patio of the office looking out over the Easy Bay. It felt like cool kid corner.
There's virtually zero chance that this is the meetup, I thought to myself. These meetups, especially this HTML5 game one that I was going to, are typically not super well-attended events. And for the smaller ones like this one, there's certainly not typically music, drinks, or food. I told the guy that this was not the event that I was looking for.
I checked my phone for more details and told him that I was looking for the "Foxhole." He seemed to know what that meant, so we went to the clear other side of the building.
He opened the door, and I was met with a gray, drab room with about thirty shitty chairs and three people. Bingo! The striking difference between the events made me start giggling to myself like a weirdo.
The meetup was pretty cool. The topic of HTML5 games was cool, and it was really neat to see some of the games that can now be played in your browser. That's in the friggin' BROWSER, guys. It's amazing how advanced it's all getting.
The difference in the two events, though--it me to thinking about why I'm doing this coding thing. Obviously, programmers are in high demand, especially here in San Francisco. If you can code really well, you're golden. These people can work their magic and make some really cool stuff that will make some companies a lot of money.
So, they're pampered. They're making a lot of money. They work in cool offices that might overlook the Bay or be in the heart of downtown San Francisco. And they get events thrown for them, like the CoolFunTime event I accidentally walked into.
New Relic throws some similar events. Last week, we had a 50's-themed happy hour with food, music and drinks. And I'm sure a lot of the companies in the area throw similar events.
It was fun, but that's not why I want to be programming. And it's important to remember that that's not why I want to be programming. It's cool to be pampered and appreciated, and the people at CoolFunTime were enjoying being pampered after a week of work at Mozilla. But it's also probably pretty easy to get into a stasis if I get really excited about the pampering--putting in the eight hours of work and then going off to do other things that don't involve code.
But the people in the not-super-well-lit, drab Foxhole are the ones who are really hustling. Most of them have day jobs, and then they're spending a good chunk of their Friday night going to a small event because they love making games, want to get better at it, and want to talk to other people like them. It's awesome, and it's inspiring.
These are the kind of people I want to surround myself with. With whom I want to surround myself--sorry. The people who want to spend their nights coding. The people who want to build things, to hone their craft, and to make the things that they've always wanted to see or to use or to play. They're the ones who will get really good at coding, and they're the ones who will push me to become a better coder.
They're doing it for the love. The love that they get from learning and from writing cool programs. Not the love that they get from the bottom of a bottle. (Yeah? Smile Empty Soul, right, guys? Right? And it kind of comes into play with the love of the pampering with the parties and the drinks? I thought it was pretty good.)
1 note · View note
mknudsen01-blog · 11 years ago
Text
Guys, I Finished
I graduated from Dev Bootcamp!
Everything went really well on Friday. We had four groups, and we ended up with four awesome projects.
My group went first, and we presented Bookmeetups. I think everyone sounded confident, and the presentation was crisp and concise. Plus, the project turned out way cool.
The next group to go was Armando's team, Glucose Amigo. This app was designed to help those with diabetes to track their sugar as well as send their scores to their doctors. It turned out to be an awesome app, and the team presented extremely well. They had the crowd laughing most of the time, and they still managed to teach us all about their application and show off the features.
Johnny and his team went next. They presented their application: Feed.me. You know how it's always really difficult for a group or a person to decide where to go eat because everyone always says "I don't care!"? Well, with this app, you click a button, and based on your Facebook information, it recommends a single restaurant choice for you.
And the last app to go was Irene's BetterBet. This is an accountability app. I say what goal I want to achieve, and then I put money down. I make a bet with someone that I will stick to the goal. Maybe I'll put $10 down that I need to work out 5 times this week. If I do it, I don't lose $10, but if I don't, the $10 goes to my accountability buddy. We don't want to lose money, and it's actually on the line, so we're better about our goals.
All of the presentations were awesome. All of the groups were awesome. We all still suck at code, but it's amazing to see how far we came in nine weeks.
Dev Bootcamp transformed me.
I came into Dev Bootcamp nine weeks ago as someone who just didn't feel at ease. I couldn't relax because I felt like I didn't know anything. I felt boring. I was scared of my future. I didn't think that I would ever have a job that I cared about. I was scared to speak loudly. I had next to nil confidence. I was a mess. I was unhappy with myself, and I felt that I was always searching. I didn't love myself, and that makes it extremely difficult to love other people.
In Dev Bootcamp, though, I tried the "fake it 'til you make it" stuff. I pretended to be confident and interesting, and then something happened. I started to be the real Matthew. I was loud. I made jokes. I started singing a lot, like I always do around my family and close friends.
Differences and small quirks are celebrated here. The boots are encouraged to be themselves, to expose their ignorance, and to be vulnerable.
And that let me be me. I was real Matthew, and people responded well. So I gained confidence.
I started to build real things out of nothing. I gained technical skills instead of some business skills. The accounting and finance skills that I learned didn't really allow me to make anything, and I felt that I wasn't actually contributing to society. But now I get to be creative and make stuff. So I gained confidence.
I'm excited about my future now. I know that I'm going to find a job, and I know that I'll be working on building cool things. I'm going to get paid to continue learning and to have fun. What could be better?
i don't feel much of a connection with my college. I didn't feel much connection to my high school. I want to devote zero time and zero money to them.
But Dev Bootcamp is different. I want to make this awesome place even better. I'll eventually have a job, but I can't wait to come into DBC on nights and weekends to help out the boots. I can't wait to share my ideas on how DBC can become even better.
I'm really excited for the future. I'll get to help out at Dev Bootcamp. I'll get to be employed doing something I really enjoy. I'll get to be near most of the fantastic people I met here. And I'll finally have money to fly out to see Grace! It still sucks that we can't be together, but it'll be great to have the ability to fly out and see her any weekend I want to.
Guys, Dev Bootcamp rules.
3 notes · View notes
mknudsen01-blog · 11 years ago
Text
Wednesday and Thursday, Week 9: Nearly There
So, there's a very real chance that this has been the hardest that I've ever worked during a five-day stretch. The work hours haven't been a whole lot worse than they have been for the rest of DBC, but I haven't been able to sleep much.
I've been anxious. About all of the things. I've been anxious about the final project. I want it to be something that I'm extremely proud to show off. Everyone in the team (and everyone in the other teams, I'm sure) has been running on fumes for the past few days. We're pumping out code, but it's not as quickly or with the same quality as when we're at 100%. Everything took a little bit longer, naps and breaks became more frequent, and coffee was relied on pretty heavily.
I've been anxious about the presentations. Even though they're only ten-minute presentations--during which I'll talk for a maximum of three minutes--I'm very uneasy about giving them. I've never been excited to give a presentation. I always worry that I'll freeze up or say something stupid. There's not as much pressure now--even if we completely melt down, we'll still graduate and will be ready to get jobs--but I still want to put out the best work that I can. Typically, the worrying and stressing about presentations helps me. I'll rehearse and really think through what I want to say, so they usually go pretty well. Still, though, it's not awesome to feel anxious.
And I've been anxious about life after DBC. I don't know where I'm going to live. We've got our apartment for three more weeks. If I don't find a job in that time (which is very likely), then where am I going to live? How will I be able to afford San Francisco? Is my family going to be super upset if I decide to leave the Midwest? How often will I get to see them if I leave? How often will I get to see Grace? Is she going to be able to find a residency at a hospital in San Francisco when she graduates? Will I find people I like as much as the ones in San Francisco if I go work in some other city? How often will I get to see my high school and college friends?
These are the questions, folks. These are what have been keeping me up at night.
And they're largely useless questions. if I don't find a place by the time we need to leave, I can find a couch to crash on. Or I can fly home. Grace has another year in school, so worrying about our plans for next year when she graduates won't help anyone. I shouldn't choose where I live based on my parents. They want me to be happy and to be the best I can. If I think that's in San Francisco, then I should be here. Sure, they'll be sad. I'll be sad, too. But that's not a reason to move back to the Midwest.
And the other questions are all unknowns. Worrying about them won't help at all. Who the heck knows what's going to happen whether I stay or go? All we can do is take it one day at a time and have a fun time in the process.
The team made an awesome project. We cut it pretty close, but we made a really cool website. The code is awesome. Well, it probably sucks, but right now I feel like it's really cool. There's some great stuff happening on the back end. And the front end turned out fantastic, too. It'd be awesome if you checked out the site: Bookmeetups.
I don't honestly know how it looks on all browsers. We didn't do a whole lot of cross-browser compatibility testing, and I don't believe that the site is at all responsive. I do know that it looks super cool on laptops and monitors on Chrome, though.
It was a rough project, but it was so much fun! It felt like an eternity, even though it started just a week ago. I'm exhausted, but I'm also amazed at the code that we were able to write in five days.
And now we're all just a ten-minute presentation away from graduating. And then who knows where we'll go from there.
It's terrifying not to know. Terrifying and super exciting.
0 notes
mknudsen01-blog · 11 years ago
Text
Tuesday, Week 9: Final Feature Freeze
Today was our last day to add new features to our websites. Coming into this project, I thought that we would be able to add new features up until our presentations.
Nope! We present on Friday morning, but we're not allowed to add code either Wednesday or Thursday. And the reason's pretty simple.
If we were allowed to keep adding features, we would.
Right up until the end.
And then we would get up to present, and something would break.
Our teachers are saving us from adding features and having no time to fix them. After today, we cannot add features. After tomorrow,we can't touch the code at all.
Thursday is a day to take off from writing code. It's a day to prepare presentations for the project. It's a day to reflect on how the project went. It's a day to sleep, since we haven't been getting much. It's a day to see our site and to decide which features we would most like to brag about.
I'm ready for it to be over. I'm ready for sleep. The team has been working some fairly crazy hours, and we've been working harder in those hours than we have with our other projects. This final push is by no means sustainable, and I think it's starting to show. Everyone's been a bit more on edge, more irritable, and more slap-happy.
I'm pretty sure at the very least we'll all be taking a nap today.
I know it's just a sprint to get the project done and that it's part of finishing Dev Bootcamp, but life has really fallen out of balance for this final project.
Exercise?
Nope.
Extended lunch breaks?
Think again!
Guilt-free naps?
What are those?
Blogging?
Sadly, not enough.
Showering?
I wish! (Just kidding on the last one. Hopefully it won't come to that.)
It's just been a tough week. For about four days in a row, I've had a fairly constant low level of panic that we either won't finish or that we won't have a cool product to show off. It's made us work harder, but it's also made me have less patience. I've been on edge and feeling stressed, which is never the best way to feel. It's way more fun to feel care-free.
We'll try to pick that back up tomorrow. Because at the end of the week, we'll present our projects. We'll be done. And in a week, we'll think that all of our code is garbage anyway. So who cares!
Anyway, we didn't really add many features today. It was the last day to do so, but we focused on testing and styling for the most part.
As our teachers told us, it's better to have 3 features that are 100% tested and working than to have 10 features at 90% each. If it breaks at all during the presentation or in use, no one will use the site. If they're only 95% finished, they might as well be 5% finished.
It's easy to continue adding features, to say wouldn't it also be cool if... But we can't! If we do, some stuff will hit the fan. We'll have zero hours to fix and to test all ten of our features and to style the entire site.
It's all about striking a balance. And it's not something that we would have done by ourselves, so it's a good thing that the teachers put this feature freeze into place.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Monday, Week 9
Guuuys, there's so not enough time to work on this project.
We're making solid progress and getting a lot done with the website. Every time we talk about what we need to do next, though, the list just magically grows back to the length it was before.
It's a bit exhausting. I'm having a blast, and I'm worried that we're not going to make the magical website that I have in my head.
We're going to get close, but a lot of the features that I want would just involve more time.
Our teachers have been saying that we should focus on fewer features. We should have a couple of features that are 100% working instead of 10 features that are all at 80%. If a single feature breaks, no one is going to use our website.
So, it's difficult to decide whether we should feature crush or stop and make all of our code work 100%.
We want a wow factor for our website. Right now, the website just kind of looks like something we could have made two weeks ago given enough time.
This is the last thing we do at Dev Bootcamp, so we want it to be something super crazy awesome. We want to set the bar higher than the Sea Lions did before us so that the Golden Bears will have a tough act to follow.
So, there's that.
And at the same time, I'm feeling as though this final project really doesn't matter all that much. Yes, it's the final thing we make at Dev Bootcamp. But it's still cruddy. Nothing that any team makes this week is going to be something that we still think is good in a couple of weeks.
If we continue to learn and make new projects, we'll be able to make better versions of our websites by ourselves in a fraction of the time. This isn't the end.
This project isn't a judgment of who we are as people. We are not our code. So we just need to get working and make the best thing we can.
0 notes
mknudsen01-blog · 11 years ago
Text
Friday and Weekend, Week 8
Sooooo we've been working on our final projects this weekend...
There have been some victories, and we have a solid minimum viable product. HOWEVER, I can see a storm a-brewin' on some features that we want to add. And we only have two more days to add features. Sooo toots.
0 notes
mknudsen01-blog · 11 years ago
Text
Thursday, Week 8: Final Projects Begin
Today we started our final projects. We've now begun the last thing that we'll be doing at Dev Bootcamp.
It's the biggest project we've worked on by far, and it's extremely exciting/terrifying. We have a week to build something. That's our instruction. No more daily challenges and very few lectures. It's just four groups of five boots using everything that we've learned to build a project.
Pitches
The day started off with pitches. Any boot who wanted to pitch an idea got the floor for one minute. We presented our pitches to all three of the cohorts and coaches, so it was maybe seventy people or so.
And I pitched! What? Week 1 Matthew would not have done that.
And even more surprising was how not terrified I felt when I was in front of the group. I kept my feet planted and didn't sway (or, at least, I don't think I did). I managed to make actual eye contact with some of the people in the audience, which I've always been a bit scared to do. I managed to look left and to look right. And I managed to deliver some jokes.
I felt confident up there. I wasn't scared that I was being graded or being judged. I wasn't scared about what I was going to say. I just did the best I could to deliver a fun pitch about Bookmeetups.
And it worked! The projects were voted on by all of the boots, and mine was voted as one of the top four. I now have the opportunity to work on making Bookmeetups look more how I had envisioned it when I worked on it a year ago.
And I get to do it with an awesome team, too. I think that we'll be able to make something that we can all be really proud of.
Team Lead
I'm also excited to be team lead. I know it's going to be really hard for me. I don't know what all needs to go into this project. I don't know how to manage everyone's time and effort. I have trouble with being assertive. I'm not great at telling people that we need to move on when they want to keep talking. I'm not good at disagreeing with people and standing my ground. Usually, I'll just let the other person have their way and quietly seethe with anger.
I mean, really, we're all equals at DBC. We all just started eight weeks ago. No one has more power than anyone else. So it feels weird for me to be team lead and to be the one tell everyone that we need to move on or to have the final say on how we'll implement a feature.
It'll be an interesting week. While coding, I'll also be trying to become more assertive, making decisions about the direction of the project, and having some difficult conversations. It's gonna be uncomfortable.
But that's the only time that we're actually growing, so I'm really looking forward to the week ahead.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Wednesday, Week 8: The Calm Before the Storm
Today rocked.
I was kinda way tired, but I didn't feel stressed. After finishing this project, I shed all of this weight that I'd been carrying since last Thursday. I didn't realize how shitty I was feeling until I was better.
It's kind of like being sick. You don't really know how sick you are while you're sick. But when you get better and can breathe through your nose and don't have a throat that's on fire or a stomach that's in a constant state of unease, you realize just how crappy you were feeling before.
So, I'm happy to have that all gone.
Even better, today wasn't too difficult. We had to complete a challenge that used strictly Javascript, jQuery and AJAX, and HTML/CSS. No ruby, no Rails. Just JavaScript. It's a pretty awesome language.
When I came into DBC, I was pretty convinced that I would be a Rails developer. I started to get defensive about Ruby and was dismissive of other languages. Oh, JavaScript's lame because...uh..because it's just stupid. Because I knew nothing about programming.
But JavaScript is a mighty powerful language. And the frameworks and libraries for the language are also awesome and only getting better. So I would definitely be okay getting a job that's purely JavaScript now, as well.
Build Something Beautiful and Meaningful
Shereef, the founder of DBC, gave a talk to us today, too, which is always awesome. The talk was about building beautiful, meaningful things.
We're in a great position as software engineers. We're able to talk to computers--inanimate friggin' objects, guys--and make them do amazing things that can actually have a positive impact on the world.
And it's important to remember that. Starting out, we'll be bogged down in the specific building blocks. What's a class? How should I write this method? What does this language do? How can this framework help me?
But that's not the important stuff. Once we get good enough with the tools and languages, they'll start to fade into the background. The specifics of how to write a method or how to structure the code to do x,y, and z will become second nature.
And that'll free us up to think about the bigger things. What's the ideal user flow? How can this be more efficient? How best do I use the space on the page? What problems can we solve with this? How can we make this app have a real impact on the world? How can we change the world?
It was just an awesomely inspiring talk. We can think of code as a construction site. We have all of these tools, and we use them to pour cement, lay bricks, and build walls. That's all fine and dandy.
But stuff like ^this^ doesn't get built just by stacking bricks and pouring cement. That kind of building is on another level. That's built by an architect, not a bricklayer.
That's built by someone who sees Hogwarts instead of a construction site.
I don't wanna say that I'm Harry Potter, but what I'm learning with computers is the closest thing to magic that I can think of. And sure, right now I'm learning how to make spells that can do some pragmatic things--oculus reparo and wingardium leviosa--but sooner or later I'll be ready to save the world. I'll be able to cast charms to protect Hogwarts and to vanquish evil.
It's easy to forget that while I'm here at DBC, spending hours trying to get events to bind or trying to make my code more object-oriented. While we're learning, we're thinking about how the blocks all fit together.
It's fun, and it's also necessary. But it isn't the end goal. I don't just want to know how to lay bricks. I want to make buildings that change the game.
I wonder what my Patronus will be...
0 notes
mknudsen01-blog · 11 years ago
Text
Tuesday, Week 8
When I built Bookmeetups, I had to use some crazy little thing called jQuery to trigger something crazy called AJAX to make the number of stars you rated a book change both in my database as well as on the screen.
It took me about two days to figure out how to make the clicking trigger with jQuery.
Today, I built a miniature version (like, super miniature) of jQuery in about five hours.
It was really hard. I'm not sure I understand a lot of what I did yet, but it's crazy how much Dev Bootcamp has taught me.
It's actually crazy. It's dumb how much I'm learning now. To go from zero to building a javascript library with the module pattern in eight weeks.
And it's also so much fun.
AND after I did that during the day, I worked on and--wait for it--finished (for now) my project!
Check it out: SF Bike Parking. If you're not in San Francisco, it's probably not going to work too well, as it only adds pins to San Francisco. You'll have to move the map over to SF to find anything. And there's a lot that it still can't do, but there's also a lot that it does.
It talks to Google Maps and SF Data to figure out where the user is, where the closest bicycle parking is, and shows the user directions to get there. I didn't know that you could do so much with the Google Maps API, so it was kind of awesome. And I've only scratched the surface.
I'm super relieved to have the project marked 'complete,' at least until I'm done with Dev Bootcamp. It was adding a lot of stress, and I'm happy that I'm only going to focus on Dev Bootcamp homework tomorrow.
It was hard. But the really cool thing is that I used a bunch of technology that I'd never used before, and I didn't totally fail. I wrote in a different programming language (Python), used a JavaScript framework (Backbone) I'd never seen, and used two APIs.
And I learned how to do all of this in less than 9 weeks. What's going to happen when I have a few years under my belt?
1 note · View note
mknudsen01-blog · 11 years ago
Text
Monday, Week 8
Irene and I paired today.
Today, we were focused on optimizing loading times. For one challenge, we were working with a giant database, which was making the load time gross. We added indexes to the databases and cached some values on one of the tables in order to make the page go from taking about four seconds to load to about 70 milliseconds.
It was hella cool.
For the other challenge, the site we were working with was loading everything in the database as well as all of the pictures that were stored in the database upon loading the page.
We were able to use AJAX calls to start the page loading next to nothing and only retrieving the relevant database info when a user clicked on a link. That made the page loading time drop from about 7 seconds to about 100 milliseconds.
Again, hella cool.
It's always a lot of fun pairing with Irene. We keep the mood light while we're working, and we seem to be able to make it through any roadblocks fairly quickly.
Which is good because we both have some personal projects that we're working on. We were able to make it through the challenges that we wanted to get done by about 7, so we had the rest of the night to work on our own stuff.
I'm still working on the bicycle parking app. I made quite a bit of progress this evening. However, it seems as though the more I add, the more I can see where the site needs improvement. I finished my minimum viable product this evening, which is awesome!
I should be super stoked, right? I used a language I didn't know, an API I didn't know, and a framework that I didn't know, yet I managed to put something together! It's way cool!
But I can see what needs to be fixed. I can see what functionality I want to add. I can see the styling and effects that I want to implement.
And I can also see that I have very little time to implement all of these changes while finding the time to refactor the code and to test it. The final project pitches are on Thursday, so that doesn't leave me a whole lot of hours to devote to this project in the evenings.
We'll see where I'm at by Wednesday night.
Anyway, I really wanna be a coach.
Tyler and Salar were both in this evening. And they get paid to hang out with the boots and code with them.
It's something that I would do for free (and I'm sure that they would, too). I would get to help boots all night, be it with code or with life. So this week and next week, I'm going to make a point to walk around for at least half an hour/an hour and help out some of the boots where I can.
Anyway, it's kind of way late, so I should be getting to bed.
2 notes · View notes
mknudsen01-blog · 11 years ago
Text
Friday and Weekend, Week 7
Wellllll I don't really have much to say about this weekend.
Maybe I do. We'll see.
Friday, we continued on our projects, building a Stack Overflow clone. I have a rather badass team--Chermaine, Hunter, Armando and Quentin. I don't wanna say 'Dream Team,' buuuuut...
It's been great working with them. I've learned about polymorphism, how Rails deals with AJAX, and gotten some more practice with Rails routing.
I've kind of sucked as a teammate this weekend, though. I've got a personal project that I'm working on, and so I've been distracted. The personal project is something that will tell a user where the nearest bicycle parking is in SF, and it's gonna be really cool once it's finished!
The problem is that it's hard. And it's taking a fair bit of time. And it's also really fun. So I've wanted to devote the fair bit of time.
Which means that I've kind of left my group in the lurch.
Luckily, they're all awesome and have done an awesome job with the project without me contributing 100% effort.
That still doesn't make me feel better.
I've been putting a lot of pressure on myself to get this project finished. I've started projects in the past but haven't seen them through. I haven't put a fire under my bum to get them done, so I get them nearly done and just sort of stop working on them.
I don't want that to happen for this project. So I've been making it a more concerted effort to set deadlines and to reach them. We're going to start working on our final projects on Wednesday, and I need to be 100% focused when that comes around. I've got to finish this project by Tuesday night.
And I don't think that attitude's working for me.
It's adding stress. It's making me a less-than-stellar group member. It's keeping me from catching up on the reading that I want to do on Rails.
While the personal project is fun, I'm rushing it, and it's feeling forced.
In the future, I'm going to avoid setting this hard deadlines for myself. Sure, it's cool to work harder on something because I know it "needs" to be done by a certain date, but not at the expense of being a solid group member. Not at the expense of having fun.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Thursday, Week 7
I'm feeling sleepy, e'rybody.
Today was not super productive. The lack of sleep, less-than-ideal diet, and lack of exercise are starting to catch up with me. I'm noticing how much I've been dragging my feet the past couple of days, especially today.
I want to do all of the things. I want to be reading books, reading articles and blog posts about all of the technical coding goodies that are out there, writing, reviewing code, completing the coding projects we have assigned, and working on my own projects.
But I also need to be taking care of myself--getting adequate sleep, exercising, and eating not just pre-packaged, microwaveable garbage.
And I've come to realize that there really isn't enough time to do all of the things, so I'm going to need to set some stricter (stricter? more strict?) priorities for myself.
What's most important for me? Do I definitely want to write every day-ish? Do I definitely want to be reading blogs? Working on my own projects? Getting my 'homework' done? Is it more important to be reading and learning how all of the things are properly done? Or is it more important to just friggin' build some stuff?
I tend to lean towards not creating. And just consuming. Reading books and looking at examples without actually creating. Because of the taste gap.
The Taste Gap
Steven, one of our Phase 3 teachers, showed us this quote that Sherif had also showed me during Phase 1. It's from Ira Glass, the host and producer of This American Life.
“Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit. Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. And if you are just starting out or you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one story. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. And I took longer to figure out how to do this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through.”
That's what I'm having trouble with. I want to make these things, but I also want them to be really good. So I do all of this reading to learn how to make everything look great and function well.
I'm going to be posting all of the stuff that I make on my Github profile. The code is up for everyone to see. If friends, colleagues, and potential employers are going to look at it, I want it to be perfect. Or at least way better than shoddy.
But that's what the projects I work on are. I get a little excited that something works the first time I do it. Then I look at it and see that it's really just a pretty simple thing. I can point out what needs to get better, and so my work ultimately ends up disappointing me.
I know what I want my apps to look like. I know all of the features that I would love for the app to have. And what I actually produce pales in comparison. I'll see all of these pretty applications and games and will be disappointed that I can't make them yet.
And while it's difficult to deal with the taste gap, I also just need to CTFO. I've been programming for a couple of months. That's it. The people who make these sites have been at it for years.
It's not about making these beautiful sites. It's about slowly building better and better sites. I might need to make a hundred or a thousand web applications before I'm finally proud of them.
Incremental progress. Each application should do something that I didn't do on the last one. I should explore one new feature, gem or API. Or implement some new bit of CSS or Javascript or jQuery.
A hundred apps in, I'll know at least a hundred new things. And I'll be damn good at making the core functionality work. Slowly, ever so slowly, my apps will look more polished, will have cooler interactive features, and will perform better. With each app, I'll close the taste gap a teensy bit more.
Right now, I'm a bit daunted because I'm seeing that the gap is a couple miles wide, and I'm only moving a couple of feet a day. It feels like it will take forever to close it.
BUT.
BUTBUT.
That's the wrong attitude. That's a horrible attitude. That's the worst attitude. It's not about closing the gap in a day. It's about having fun and being super excited that I'm making any gap-closing progress.
I know. It's the whole it's the journey, not the destination cliche. But you know, it really rings true. Focusing on the end makes everything feel like a chore.
Just with a subtle change in perspective, a tiny mindset adjustment, everything could be so much more fun.
Seven weeks ago, I could do next to nothing with a computer. Now, I'm getting a little bored with some of the aspects of putting a bleeping web application online.
That's friggin' amazing, folks. The sheer amount of programming that I've learned while at DBC would have taken me years on my own. And if I can keep this attitude that coding is awesome (and it really is), I'll continue to kick ass and to improve while enjoying myself.
And that's what it's all about.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Wednesday, Week 7
Armando and I paired again today.
I really liked our lesson for the day: test-driven development. With TDD, we make tests for our code, see that the test is failing, write some code to make the test pass, and then see the code pass.
TDD is an awesome way to develop, and it's the way that I would like for most of my development to happen. It was a slow process today, but that's because we're still not the best at testing or coding. As we get better with both, TDD will become faster and easier.
With test-driven development, we know that our code is doing what we want it to do. We write a test for the feature or bit of functionality that we want. We run our tests and see that the feature does not yet exist. Then we write some code and see that test pass.
At that point, we know that the code we wrote is doing exactly what we want it to do. It was only going to pass the test we wrote if it does exactly as we had planned.
So, with TDD, we get peace of mind. We know that we have all of these tests that are testing the exact functionality of our program. As we write more and more tests and more and more code, instead of having to click through the entire website to see that all of our code still works, we can just run our test suite. If all of the tests pass, then we're golden. We can rest assured that the site still works, without having to spend the time looking at all of our pages any time we make a change.
TDD also helps us to write better code. We have to really sit and think about how everything is going to work and interact. We can only write a test once we know how we want a specific method or function to behave.
So, TDD forces us to think through our project before we write any code. And having all of those tests affords the assurance that all of our code is working. We win all of the things.
Capybara
Armando and I also fell down the rabbit hole of Capybara today.
All of our tests were integration tests that used Capybara, which is a ruby gem that clicks through your website for you. For example, one of the bits of functionality that we wanted to test was that when we filled out a form correctly, the title that we put in the form showed up on the page.
To do that manually, we would visit the page with the form, click on the input field, type in the information, click the submit button, and then check to see that the title indeed did show up on the next page.
It would be so0ooO0oper great if there was a way to automate that process, right? It takes a good ten or fifteen seconds to do. If I want to test that bit of functionality every time I change some code (to make sure that the code I wrote didn't break anything), those 10 to 15 seconds would start to add up.
That's where Capybara comes in. We can write some code that has our computer click through the website for us. We can tell it to follow the steps that would otherwise have to follow manually. It saves time, and it's kind of way awesome to watch your browser open and click through all of the pages so quickly when you run your tests.
We learned it today, but it's really not something that should be used often. The tests that we make with Capybara are still far slower than the other tests that we write. And pretty much every integration test with Capybara can be made into a controller or model test. Those don't require opening the browser, and so they're much faster.
Though we're supposed to use Capybara sparingly, it was a great to spend the day diving deep with it. There's still much to explore, but I feel like I have a firm grasp of the fundamentals, which is always a good feeling.
Backbone
Tonight, I'm taking a little break from Rails and testing to read about Backbone.js, which is a tool to help make single-page applications that are interactive. So far, it's a pretty cool read, and I'm hoping to make a project with it this weekend.
Project
Tomorrow and Friday, we're supposed to have a group project. We'll finally be making something that we don't really know how to make in Rails. So far, it's been great to explore Rails by making apps that we'd made before with Sinatra.
I'm getting a little antsy to push myself with Rails, though, so I'm excited to have a bigger project to work on. We're going to be making a clone of Stack Overflow, and it's gonna be pretty sweet.
Alright, off to work.
2 notes · View notes
mknudsen01-blog · 11 years ago
Text
Tuesday, Week 7
Guuuuuys, I can Rails now.
Oh, thank you, thank you. Please, that's really too much. Okay, keep going.
I mean, I can't really Rails yet. But we built our first app today. It was a rehash of an app that we made at the start of Phase 2 to get our bearings with Sinatra.
It's a basic version of craigslist, and making it allows us to explore how the basics of Rails work. Through the basic CRUD operations, we can learn about routes, helpers, testing, rendering, variable passing, migrations, controllers, and models in Rails, as well as become familiar with the basic file layout.
It was a lot of fun. The craigslist app took me about nine or ten hours to make with Sinatra three weeks ago. Today, Armando and I made a better version in about two and a half hours.
At this rate, it'll take about forty minutes to make the app in another week.
So, I'm starting to understand how to navigate Rails, which is kind of awesome. It's really cool how quickly everyone is picking it up, and I'm thinking this cohort is going to make some awesome final projects.
In EVEN HAPPIER NEWS, Grace and I have now been together for five years. Whaaat?! It's not been a conventional or easy five years. We've been long distance for about four of the years. But we've made it! Because we rule.
And next year, I'll (ideally) have disposable income, so I'll be able to fly out and see her while she's on one of her rotations! We'll get to go on dates and stuff!
Anyway, happy anniversary, Gracie!
In far less exciting news, I've got to go get back to work. We're learning about testing this evening, and I've gotten about zero of the work done. Tomorrow, we'll be building our first "big" app with Rails, so that should be way cool.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Monday, Week 7: Rails
Today began the start of Phase 3. That means that we're actually getting to work with Rails. For a nine-week Ruby on Rails program, it's a bit strange not to touch Rails until week 7. At least, that's what I thought when I came into the program.
I understand why we didn't see it sooner now, though. If we would have just learned about Rails on day 1, it all would have been magic. We would have had no context and no understanding of what was actually going on.
We would have been able to learn the tricks and the steps to get certain things done, but without the underlying base knowledge of Ruby, CSS, HTML, JavaScript, and Sinatra, we would have just been hacking.
We wouldn't come out of the program as junior developers. We would have come out of the program as people who are able to make Rails do some fancy magic for us. But what happens one or three years from now, when Rails isn't used anymore? Rails is an amazing tool, but languages and frameworks are constantly evolving, so it's virtually guaranteed that we won't be using Rails for forever.
If all we learn is Rails, I would be screwed when Rails inevitably falls out of favor.
Now, though, I have a solid base knowledge in all of these languages and frameworks. I understand programming concepts and principles. If Ruby falls to the wayside, I can still apply these principles to a new language or framework.
A few months before Dev Bootcamp started, I tried to work through Michael Hartl's [Rails tutorial]. I copied and pasted his code without understanding hardly any of it. It was all magic that he had me copy into my files. I spent probably close to sixty hours on it and still didn't finish.
Last weekend, I looked at it again. I skimmed through a quarter of the chapters, stopping and reading whenever he was doing something that I didn't understand. It took me about fifteen minutes to make it through.
I was floored by how much I understood. With just six weeks of work at Dev Bootcamp. Without ever looking at Rails.
New Cohort
This morning, a new cohort joined us. Last Friday, we said good-bye to the Sea Lions, and today, we welcomed the Fiery Skippers.
When the Golden Bears came in, I felt very anxious. I felt uneasy that I didn't know all of their names, and I was scared that one of them would ask me a question that I would have no idea how to answer.
This morning, though, I was in an awesome mood. I woke up an hour before my alarm and felt completely awake. I folded my laundry from the night before. I got some yogurt, granola and fruit from La Boulange. I mailed Grace a letter for our anniversary. I made it to DBC by 7:45, and I watched some VSauce, which I haven't gotten to do in months.
It was a solid morning.
And it got better. Shereef Bishay, the founder of Dev Bootcamp, spoke to us this morning.
He talked about something that I'd heard him speak about while I was preparing for Dev Bootcamp but hadn't thought about since.
He spoke about the restaurant and kitchen mindsets. Basically, it's easy to get into the mindset of a restaurant patron when we get to Dev Bootcamp. We read about the program. We saw the menu, which included Rails, JavaScript, and a focus on emotional intelligence. And for dessert, a job that pays somewhere around $80k. All for $12,000.
Sounds like a pretty swanky deal, so we pay our tuition and wait to get the learnings and the job. Just like someone ordering a meal at a restaurant.
But what if we come into Dev Bootcamp with a radically different mindset? We could come in as cooks. We could walk straight back to the kitchen and work alongside the other cooks. Sure, some of the cooks started cooking earlier and were better than us, but we can all still be learning and teaching each other different cooking techniques.
If we wanted to taste a brand new meal that was off-menu, instead of trying to explain it to a waiter in the dining room, we could be in the kitchen making it ourselves.
It all comes down to owning our education. As a restaurant patron, we view the knowledge and job that Dev Bootcamp can offer us as something that we are owed because we paid the tuition. We fall prey to the just-world hypothesis, which is something that I talked about in my application video for Dev Bootcamp.
The world doesn't owe us anything. We can pay $12,000 to attend a cool program, but that doesn't mean we just get a job. How many people are spending ten times that amount or more to go to college?
We spend all of this money and think well, I deserve to get a job if I paid this much.
We aren't owed anything by the universe. It's on us. The people who get their dream jobs out of Dev Bootcamp are the ones who know that they aren't going to get a job just because they signed up. They're the ones who own their education. They roll their sleeves up and hop back in the kitchen with the chefs, experimenting and exploring and creating.
When I was listening to the talk, I was thinking about how Salar told a small group of us that we weren't making enough projects on the side. We're not experimenting enough. Not failing enough. For the most part, we've been getting these assignments, and we focus on them.
I won't speak for everyone in my cohort, so I'll just say that that's what I've been doing. At night, when we've got work that we should be doing, I focus on that work instead of building my own stuff.
That's not getting in the kitchen of the Dev Bootcamp restaurant. Expert chefs don't follow recipes; they make their own.
So I'm going to start spending some time every night--at least a couple of hours--working on side projects for myself. Learning about topics that aren't in the curriculum but sound like fun to me.
1 note · View note
mknudsen01-blog · 11 years ago
Text
Weekend, Week 6
I'm in Phase 3! Two thirds of the way done with Dev Bootcamp. Whaaaat? How did that happen?
I'm starting to worry about jobs and what's coming after Dev Bootcamp. I think I want to stay in San Francisco and look for jobs here (and some other cities like Seattle, St. Louis, and maybe Portland and possibly Denver). Sheesh, who knows.
The problem is that I only have my apartment for three weeks after Phase 3 is over. And it typically takes longer than three weeks to find a job. Dev Bootcamp told us to expect possibly three months or so to find something that's a good fit for us.
That leaves Matthew homeless for a couple of months. Unless he bites the bullet and gets an apartment or lives in a hostel. But that costs money. And money is hard to find when you don't have a job.
So, it's going to be an interesting decision. How long can I afford to stay in San Francisco and look for a job with no income? I don't really have a nest egg of any sort.
But that's future Matthew's problem.
For right now, I want to talk about how excited I am for Phase 3. On Friday, the four teams from the Sea Lions presented their final projects. I've only got the links for three of them right now: Hattip, Backlyne, Noodle Skoodle, and BAC Monkey.
All of them were kind of awesome. Hattip allows for people to donate money to street performers. It will eventually get up and running to show you all of the popular YouTube videos of successful street performers, and you can send them money through Stripe (or Bitcoin!) to show your appreciation. That way, street performers will get more exposure and will make more money than they would just doing their work on a street corner.
Backlyne handles most of the business side of starting a small business. It's focused on music teachers, and it allows them to collect money from students, give out assignments, and contact their students, all from one website. And it looks really good. The sheer number of features blew my mind while I was watching the presentation.
Noodle Skoodle was also a really cool idea. There are a lot of organizations that offer free courses--Coursera, MIT, edX, and so on. But if you want to learn about something, you'd have to go to each site to see whether it had the course for you. What this site does is combine all of the sites. You can go to this site, search a topic, and see all of the videos that match that topic that can be taken for free. From there, you can go to the home website and enroll in the course. It makes it much easier to find the free courses that you want to take.
BAC Monkey was also awesome. It helps you keep track of your vices. Be it alcohol, caffeine or nicotine, you can keep track of how much you have in your body at any one time. For example, if you went out to a bar, you can put in how many drinks you've had in the last x hours, and the app will tell you your BAC level. From there, you can know if you're legal to drive, which can help you make not idiotic decisions. And it will help you keep track of how much you smoke or drink coffee. So, maybe if you're trying to kick the habit slowly, you can track your progress.
All of the ideas were so cool. Each project looked great and was something that I could actually see myself and other people using.
But what was the coolest is that I had no doubt that I could build the websites that they made. Sure, some of the stuff would take some more research, as I've not been exposed to it yet. But I could learn everything necessary to make that website. And what's more, I could see places where I could make the sites even better.
It was really exciting to see the projects. In part because they were really cool. I'd seen the Sea Lions working all last week, so I was excited to see how their final projects would turn out. But mostly because I just know that we can build even better sites for our final projects.
Over these next two weeks, we'll finally get a lot of exposure with Ruby on Rails. We'll have some extremely powerful tools at our fingertips, and we'll be making some really cool stuff with them. I've got to spend some time tonight familiarizing myself with Rails so that I'm not totally lost tomorrow.
But I feel ready. Phase 2 was really tough--and there was some burnout near the end--but I feel like I'm ready to get started at full intensity for these last three weeks. Steven and Strand were awesome teachers, and Steven and Shadi are going to be our teachers for Phase 3.
It's going to be hard. They're both way super qualified to teach us about Rails and they're both going to expect a lot form us. I'll hate them as it's happening, but I know I'll be really happy to have had them push us so hard once we get to the end of the program.
Ahhhh!!!!!! It's happening! In three weeks, I'll be ready to be a junior developer somewhere. I'll be equipped to build some legitimate web applications.
My main goal for this phase is the same that I made for myself a couple of weeks ago: not to worry. I think I did a decent job of not worrying last week, but there's always room for improvement. And there's going to be a lot of pressure to make a really cool Phase 3 final project, to build side projects for my portfolio, and to find a job in the coming month. I need to make sure I control that stress and keep myself mostly free of worry.
That, and I need to work friggin' hard.
I've started getting up later and later, and I want to nip that habit in the bud. Get up at 7:30. Working until I feel like my brain is mush, and then getting some sleep.
I want to make a pet project each week.
I want to be reading about something new every day.
And I want to start reading a little more for fun.
And I want to start coaching my fellow boots where I can. I think it'd be awesome to be a coach at DBC once I'm done with the program, so I need to start practicing what I would do as a coach. Spending a lot of time teaching my cohort and the cohorts below me whenever I understand something or whenever they're struggling. Often, I'm worried (there's that silly word again) about getting my own assignments done, so I neglect helping out others where I can. If I get rid of that worry, I'll be excited to teach everyone what I already know. I think that's a huge part of this program of which I haven't been taking full advantage.
Well, now it looks like I have quite a few goals for this phase. Will I stick to all of them? Most definitely not. But as long as I'm working towards at least one of them every day, I think I'll be a happy camper.
2 notes · View notes
mknudsen01-blog · 11 years ago
Text
Thursday, Week 6: Three.js
Just a day, just an ordinary day. Just trying to get by.
Today was pretty cool! We solved the problem that we were having yesterday. Yesterday, we couldn't get Redis and Sidekiq to run background jobs to send our tweets, but we got it working today. So that was a win.
The rest of the day, though. This burnout is really catching up with the cohort. There were only a handful of people still at DBC by the time 10PM rolled around.
I think everyone is just ready for this weekend. We'll be between phases, and so there won't technically be any assignments. I think quite a few of us will just be taking most of the weekend off. I'll be getting to see a buddy from college who works out here now as well as my aunt and grandpa. It also sounds like I might be going rock climbing with a few of the coaches from DBC, so it should be a good time.
Tomorrow's the last day of Phase 2. That means we have a graduation! The phase ahead of us--the Sea Lions--will be presenting their final projects tomorrow morning. I've seen glimpses of their projects, and they're really cool. I'll post more on what they were like later this weekend.
After we see their presentations, we'll be working on refactoring our Survey Gorilla projects from last weekend. We're going to pick out a piece of ugly code, refactor it, and test it.
Johnny and I are hoping to make it through that quickly so that we can work on another project. Salar, one of the coaches, came in tonight and started a project with us.
He says that everyone in our phase is kind of rocking it. We're far beyond where his cohort was at when he was in Phase 2. We're pushing good code, and things are great.
But we're not building enough on our own. We've got some time, and we should be using it to build some pet projects. Just stupid little things to show off a particular skill that we've acquired over the past few weeks or to explore a new library or program.
By making these projects, we're building our skills and operating without any directions. We won't have any instructions on how to make the projects that we just thought up. We need to decide where we want to go as well as figure out how to get there. Those are important skills to build.
When we start looking for jobs, we'll want to have a portfolio that shows off our work. If we're not making anything in our free time, then we really won't have anything to show that sets us apart.
Plus, working on passion projects is more fun than working on something that we're told to do. It's all personal. We came up with the idea, so we want to see it through to completion. We might cut fewer corners and really spend time on the details to ensure that our code is tested, functioning, and refactored.
So, we started working on something with three.js, which is a JavaScript library that allows you to make 3D scenes with JavaScript. The examples on that link are just really impressive. Based on where your cursor is, you change the angle of the "camera" and can interact with the scene.
Salar, Johnny, Brittany, Irene and I made a little bit of progress last night. We decided that we just want to create an 8-bit Mario who will jump up, hit a block, and come down. Though it sounds pretty trivial, there's a lot going on. We'll need to render Mario block by block, to create "gravity," to figure out how to make him jump, and to figure out how to make all of the blocks move in unison, all while working with a complex library that we didn't know existed until a few hours ago.
It's going to be a lot of fun.
Hopefully, we'll all make some decent progress on the project tomorrow. Once six rolls around, we're off to a bar to help Phase 3 celebrate their graduation. After the tough three weeks, I think it'll be great for everyone to relax and blow off some steam.
1 note · View note