SB apprenticeship: Day 15

A excerpt from Close to the Machine, by Ellen Ullman, written 17 years ago but strangely prescient.

A excerpt from Close to the Machine, by Ellen Ullman, written 17 years ago but strangely prescient.

I think my mentor’s back from his cross-country drive today! Now I can stop pestering everyone else!

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

I really need to remember to take notes or start a blog post on Friday afternoon, I have no idea what I did. I think I finished the TDD book?

We had a Labs Showcase, so everyone could show off the projects they’ve been working on on Fridays. It was really interesting, everything from a new tool for scripting to the latest version of a mural that Meredith is painting to the preliminary plans for a laser harp (!) that Brian wants to build. Brian needs some help with the physical stuff for his harp and I volunteered; I’ve missed getting my hands dirty like I did making the art car. Speaking of the art car, it’s Burning Man week, and I’m feeling slightly regretful at not being out there getting dusty. It’s weird when lots of people posting frantically on Facebook makes you nostalgic! Ah well. Maybe next year.

Today begins the second quarter of the apprenticeship! For this part we’re getting more into Rails, doing new katas and reading The Pragmatic Programmer and The Clean Coder. My ex used to talk a lot about Pragmatic Programmer, so I’m looking forward to digging into that and discovering what he loved about it. So far I’m really enjoying this apprenticeship, Smashing Boxes is a great company that is really supportive. Everyone has been really giving of their time and expertise, and it’s been super interesting to see how a real shop works. Plus there’s just such a great culture here, everyone is friendly, and while there’s obviously a lot of work being done, there’s also a lot of joking around on Slack. I can make jokes and ask questions without worrying that people are going to think I’m dumb, or judge my programming skill based on my gender. There’s an expectation that, assuming I don’t screw anything up, we’re all going to be hired as junior devs after we work through the apprenticeship curriculum, and being here and seeing how everyone works has made me even more determined to achieve that. Man, time’s flown, though. Three weeks!

Today I think I’m going to work on some of the online courses that are recommended for this quarter: Rails for Zombies 1 and 2, and Surviving APIs with Rails. I think it’ll be a good refresher for the stuff I learned at TIY, and will be a good starting point for the rest of the assignments.

Advertisements

SB apprenticeship: Day 14

I would actually really like to see this mashup.

I would actually really like to see this mashup.

I don’t have a lot to say today, so here’s a silly screwup from the PlayStation store from last night.

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday I worked through a lot of the Test-Driven Development book. I struggled for a while with this book; the code examples are written in Java and Python, and so I would spend more time trying to figure out what the code was doing than learning about the tests, but I finally hit a couple chapters that were more explanation than code, and that was really helpful.I like this book, but I think I’m going to pick up Rails 4 Test Prescriptions and see if maybe this makes more sense with code that is more familiar to me.

Today is labs day! Although I’m not really working on a project, per se, so for me it’s work on tutorials day! W00t!

I’ve been trying to go back through some of the tutorials I did before TIY, I feel sometimes like I didn’t actually retain any information from code school and I’m just like flailing at the keyboard and faking it really well. Objectively I know that isn’t true, but imposter syndrome is definitely a thing.

SB apprenticeship: Day 13

Isis Winger, an engineer in San Francisco, started the #ilooklikeanengineer Twitter campaign after getting negative responses to her appearance in another set of ads for her work.

Isis Winger, an engineer in San Francisco, started the #ilooklikeanengineer Twitter campaign after getting negative responses to her appearance in another set of ads for her work.

A friend recently sent me a link to an Indiegogo campaign to help the #ilooklikeanengineer folks put up a billboard representing more women and minorities in tech. I have to wait until payday to support them, but I was thinking of the rewards and which I would choose, and I like t-shirts, and stickers are cool too, but would I really wear a t-shirt that says “I look like an engineer” because, I mean, *am* I actually an engineer? And that kind of stopped me short, because I’m pretty comfortable calling myself a ‘developer,’ I’m slooooowly becoming ok with the label ‘programmer’, but ‘engineer’…well, those are people in hard hats, right? Who went to school for a long time and use lots of math. They make things, physical things, and huh, why is the mental image that pops up in my head of a white man? I can’t quite tell if this personal rejection of the label engineer is just another insidious appearance of our old friend imposter syndrome, or if the definition I have of what an engineer is and does is legitimately out of the purview of what I am learning to do. What do you folks think?

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday I was doing pretty well until two things completely derailed my concentration: some asshole murdered two journalists in Virginia and used social media as a very effective way of publicizing it, and WordPress decided that it didn’t want me to be able to put tables in my post. I had intended to have a little table with the Vim and terminal commands I learned in the course of finishing the SSH assignment: the command, and then a brief description of what it did. Unfortunately, nothing I tried worked, and my table remained all mangled. I fell down the rabbit hole of attempting to add a plugin, only to discover that WordPress.COM won’t let you install plugins, I need to use WordPress.ORG, and also download the entire codebase of my blog and host it myself. Which, I’ll admit, is less intimidating than it was when I first started this blog years ago, but still. WTF. Would it be so hard to just explain that difference before I spent two house fighting this stupid thing? Anyway, that fractured my attention span for longer than it should have, and as a result, I ended up attempting the Roman Numeral kata and messing up so much that I just worked on the Treehouse stuff for the afternoon. I always used to joke that journalism was the perfect job for someone as ADD as I can be sometimes, but I am finding that it really is sometimes challenging for me to be able to put my head down and code for hours on end. Remembering to take my ritalin helps, and having a really interesting problem or lesson also helps, but it’s a thing I have to be really aware of.

Today I’m going to continue working on writing tests for my tic-tac-toe; I’m going to try to finish the Test-Driven Development book and Git Real 2 this week as well. Friday will be the end of my third week here! Man, the time has flown.

SB apprenticeship: Day 12

I've never been so happy to see a simple unstyled

I’ve never been so happy to see a simple unstyled “Hello World”

So I actually needed to know way less Vim than I freaked out about on Tuesday. Whoops. I am going to start adding a list of new commands and stuff I learn on here, both as a way to help any other juniors who might be reading this, and also to cement them in my brain through repetition, just as soon as I figure out why WordPress hates tables. Stay tuned!

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday, with much help and trial and error, I figured out how to SSH into a web server and make it serve a static page. That pretty much took most of the day. In the process, I learned four new Vim commands (:wq, i, j, k) and three new Unix terminal commands (cat, curl, tail)! I also did a couple more of the Treehouse ‘learn to make a website’ courses.

Today I’m going to rewrite the Roman Numeral kata and then work some more on making tests for my 4×4 tic-tac-toe.

SB apprenticeship: Day 11

Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want.

One of the interesting things about learning how to program is how much some of the other things I’m into make sense now. For instance, I’ve been reading XKCD for years, but honestly only understanding about a third to a half of them. The jokes about math or programming mostly went over my head, unless they were visual gags like the ‘compiling‘ one. When the comic above came out, in 2008, I not only had no idea what vim, emacs, ed or cat were, I didn’t even know what they were referencing. There’s nothing in that comic to explain what an editor is, or an IDE, or what the difference was, or why they were important. Which, of course, makes sense, Randall Munroe is a programmer and this is a comic for that audience. Also, to quote E.B. White, “Explaining a joke is like dissecting a frog. You understand it better, but the frog dies in the process.” But since I started learning to program, people will link to old comics and I find myself appreciating the humor in an entirely different way, and that is super cool.

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday I worked on the Roman Numeral kata for the second time, and actually finished it! The first time I got super frustrated because nothing I was trying was making sense, so Brandon suggested that I work on Coin Changer some more. In one of her blog posts, Lindsey posted a link to a woman who worked through the kata in a way that really made sense to me, so I used that as a reference and managed to complete it. I was feeling pretty good about that, so I worked on adding tests to my 4×4 tic tac toe with Jordan for a bit, and then decided to tackle the next challenge: learning how to SSH into a server and post some static content. That…was a little less successful. The page describing the assignment was out of date, so I ended up needing Josh to sit with me for a bit and walk me though the terminal commands to get started, and just as I was nearing the end I discovered that using nginx to serve up an HTML file on a server required me to know Vim. Viiiiiiim….so daunting. (But see, that comic at the top was totally relevant!) Vim is an editor that I’ve heard is super awesome. Once you get the hang of it, it’s all keyboard commands to do what you want. It’s powerful and widely used…and has a learning curve roughly the size of Mt. Everest. The cheat sheet I found and printed out is seven pages long. Sigh. Still, I’ve known this day would come, and honestly I’m looking forward to learning Vim. I’m just a little nervous, is all.

Today I’m going to work on the SSH stuff. I’m not sure how much Vim I’ll actually need to know to get through it, but I have my cheat sheet in hand and am feeling ambitious. Also, yesterday I rewrote the documentation for the assignment and did a pull request for it. Ian is taking a look at it now, so if I need to make any corrections or add anything before it goes live I’ll do that.

I expect to learn enough Vim to be able to put a static HTML page on a server using SSH. Exciting!

SB apprenticeship: Day 10

Fridays are Pax days! Here he's helping David code.

Fridays are Pax days! Here he’s helping David code.

In our growth engineering meeting Friday we learned about SEO, one of the important practices of which is not duplicating content. So I think that means I should come up with different headlines for my blog posts, since the only thing that changes is the number of the day. Sadly, I have always been terrible at headlines (the advantage of being a reporter is that usually editors come up with headlines based on space and other editorial considerations. I never had to get good at them.) so this may be a work in progress.

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

I didn’t get a lot of work done Friday: we had the backend standup, then the growth engineering meeting, then the company standup, then lunch, then Ian showed a bunch of us how to do a simple project in Swift and Xcode, then we apprentices met with our mentors to discuss whether we should switch from Code School to Treehouse for online lessons. After that I decided to play with Treehouse some, so I could have an informed opinion. My only complaint so far is that Treehouse makes you follow a track, so I had to spend 10 minutes learning very basic Ruby things. As far as complaints so, though, that’s pretty minor.

Today I plan to start working on the Roman Numeral kata, then Jordan, who was in my TIY cohort and who finished the apprentice program right before I started, is going to help me go over some tests for my tic-tac-toe. I think this week I’m going to start working on the SSH & Webservers challenge also, so I can keep to the schedule they suggested for us.

Today I expect to learn how to do the Roman Numerals kata. I tried it last week, but got really confused, so Brandon suggested I go back to Coin Changer and make sure I really had that down.

SB apprenticeship: Day 9

We walked into a slightly different Smashing Boxes this morning — we rearranged the desks and are now sitting in pods. Instead of having people grouped by job (like back-end developer, marketing, project manager, etc), now we’re grouped in teams. It’s an interesting way of doing things, and I look forward to better figuring out how the different components work together here! I’m sitting next to David, one of the other apprentices, but Lindsey is now all the way across the room, so our little apprentice pod is no more. *tear*

We're trying out a new seating system at SB: pods! I am no longer in my little apprentices group, they let me out into the population!

We’re trying out a new seating system at SB: pods! I am no longer in my little apprentices group, they let me out into the population!

  • What did you learn yesterday?
  • What are you going to do today?
  • What do you expect to learn?

Yesterday I fought some more with Rspec, attempting to write tests for my 4×4 tic tac toe. I can’t seem to figure out how to get started doing them, every time I try I just get confused. I may try to pin Brandon down and see if he can give me advice. I also finished the Git Real Code School course.

Today is Friday, so it’s labs day! Last week I ended up working on Learn Ruby the Hard Way, but I think this week I’m actually going to wander around and see what other people are doing. There’s going to be a lecture about Swift that I want to sit in on, I’m curious how mobile development works. We apprentices also have a meeting with the growth engineering team this morning, so I’m excited about finding out what growth engineering actually is.

I expect to learn a little about a lot of things today: Swift, growth engineering and various projects around the office.