SB Apprenticeship: Day 37

Cucumber tests!

Cucumber tests!

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

Yesterday I worked through a bunch of Cucumber tests. They’re kind of weird, sometimes the answer is dead simple, but other times it’s super complicated. It still takes me some time to figure out which is called for in each individual test, I spent like half an hour on the click one yesterday.

Simple, not so simple

Simple, not so simple

I’m also still not sure how complete the Cucumber tests are supposed to be. Is this like when we did Battleship at TIY, once all the tests are passing I’ll have a finished app? Brandon mentioned that I’ll need to have some Rspec tests in there too (that I’ll write myself), but I’m not sure what they’ll cover? I haven’t actually written any real code for this app yet, it’s all been installing gems and making tests pass. I guess it’ll all get clearer as I go, though.

Today I’m going to read more of the Cucumber book and then work on the bookstore app. I keep meaning to ask Kevin to explain scoring in bowling to me so I can work on the kata, but I always forget by the time I get home. I feel like I’m not accomplishing anything during my days, and that’s stressing me out. I think sometimes I have a hard time actually beginning projects — like, I have this feeling that if I just read this one more thing, or do that one more tutorial all of a sudden everything will fall into place and I’ll be the brilliant coder that everyone seems to think I can be. Unfortunately I don’t think that’s how it works, though. I don’t know. It’s really hard for me to get started, I never really feel like I have any idea what’s going on. Sometimes I ask too many questions about things that are actually easy and other times I feel like something’s got to be simple and waste hours trying to figure out a solution before asking someone. Yesterday I spent way too long trying to figure out how David knew to use ActionMailer in something, and when I finally asked it turned out that he had just installed a gem. Although honestly, I wouldn’t have even known that I needed ActionMailer if I hadn’t peeked at his code in the first place. Do you just learn this stuff as you go? Is there some intuition that I’m missing? I really like this job, and Brandon told me that I’m progressing at a good pace, but I feel like I’m behind and my stupid brain immediately goes to “you’re going to fail and they’ll never hire you and you’ll never get a job and you’re a miserable failure why do you even try anything new.” Which isn’t exactly useful in any sense. I’ve gotten better at shutting that off, but it’s hard when I’m sitting in front of my computer feeling stupid.

Sigh. I kind of feel like Rumsfeld’s 2002 beat poem:

“There are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – the ones we don’t know we don’t know.”

I know there are things I don’t know, but what about all the things I don’t know that I don’t know yet?

I have no idea what I expect to learn today.

Advertisements

SB Apprenticeship: Day 36

I have blue hair, a red panda skirt and a job that doesn't care at all about either. I'm definitely adulting right.

I have blue hair, a red panda skirt and a job that doesn’t care at all about either. I’m definitely adulting right.

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

Why am I still having problems with Github? I’m ok with creating a new repo on the site, and I’m ok once I get it linked up to my laptop, but the process of connecting the two is fraught with indecision for me. I have to either look it up or ask every time. Sigh. It’s like everything involving me and coding: once I get started I’m generally ok, but getting started is always a big pain. I wonder how long it takes for that to go away?

Yesterday Brandon and I set up my project, got Devise installed and passed a whole bunch of the Cucumber tests. I didn’t realize that this was going to be similar to the Battleship project at TIY; they wrote all the tests and I have to make them pass. It’s still a lot of work, but there’s some guidance, and that makes me feel better. I still can’t really imagine *working* as a coder, like coming in in the morning and sitting down to program. Just knowing what to do. I guess that’s where Agile and meetings and stuff come in, but it’s all still a bit foreign to me. Devise is pretty cool, there’s a lot going on under the hood there and I think it’s going to make my life a lot easier. It was also easier to set up than I thought; there were a lot of steps, but the readme was clear and there was never a part where I felt lost or confused.

Today I’m going to read up on Capybara and work more on the bookstore, at least in between meetings. I signed up for the blogging task force, and there’s the initial meeting for that at 11, then at noon there’s a lunch and learn about the new HR policies. I’ll at least have the whole afternoon to work, though. I’m looking forward to being on the blogging task force, I’ve been enjoying writing here every day. I’m still not sure if I should be putting all that behind me and focusing solely on coding, but I guess I’ll figure all that out.

I expect to learn more about how Capybara works with Cucumber. The test suite I’m working on now is all the account creation stuff, so I think it will be fairly familiar.

SB Apprenticeship: Day 35

Turns out you shouldn't leave your water on the floor unaccompanied when there's a dog around. :)

Turns out you shouldn’t leave your water on the floor unaccompanied when there’s a dog around. 🙂

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

Monday! I’ve never been one of those Garfield people, but I will admit to dragging this morning. Blerg.

Friday I didn’t end up pairing with Brandon because I signed up to help out with a labs project that ended up taking more time than I anticipated. I was able to make a lucidchart to diagram out the bookstore project, which made it look a lot less involved than I thought, but that was about the extent of the work I managed to get done on Friday.

Relationship chart for my bookstore app.

Relationship chart for my bookstore app.

Today I’m going to work on the bowling kata in the morning and pair with Brandon at 1 to start working on the bookstore app. He said he would help me with the initial Devise stuff, which I think will be helpful. I don’t think Devise is hard, there’s just a lot of moving parts, and having someone who knows it really well will help. I’m still a little nervous about this app, I feel very unprepared, but I’m sure it’ll be fine and I’m just being paranoid.

What do I expect to learn…I think that there is probably some best practice that I’m not doing when it comes to starting new projects, and Brandon is great for showing those. Hopefully I’ll learn Devise to the point where I can use it again and not have to be walked through it. And I think today is the day I start figuring out Cucumber and Capybara. Moar testing frameworks!

SB Apprenticeship: Day 34

I finished it!

I finished it!

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

Yaay, I finished the Agile Web Dev with Rails 4 book tutorial! I skipped the last two chapters, because I didn’t want to bother with internationalization and deploying to a server. I was right yesterday, they wanted me to actually pay for instances on something like AWS, and I just don’t care that much about that tutorial. It was pretty rewarding to finish it, though. The rest of the book is a big deep dive into the various part of rails, which isn’t really something that you can read straight through, but it is super informative.

Today Brandon and I are going to pair and get started on the bookstore app. I was talking to Patrick about how I was actually pretty nervous about it because it’s such a huge project, and he had some good advice: instead of thinking about the whole intimidating project, break it up into small sections and think about those. I have a general tendency to miss the trees for the forest, so this is valuable advice. Today we’re going to set up the rails project and getting the authentication working. I guess it’s finally time for me to learn Devise! Yesterday we did a little bit of mapping on paper, I’m going to spend the morning filling that out.

Today I expect to learn Devise! We sort of covered Devise at TIY, but it was at the very end, taught by the TA and irrelevant to my final project, so I didn’t pay the attention that I should have. Time to make up for that!

SB apprenticeship: Day 33

Forget Battleship, Tic-tac-toe and bowling, I want to make an RPG!

Forget Battleship, Tic-tac-toe and bowling, I want to make an RPG!

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

Yesterday I worked on the Agile Rails 4 book for most of the day again. I only have a chapter left! Well, assuming I don’t do the deployment chapter, which looks like it actually needs me to have a server I can deploy to, so I was planning to skip it. I guess I could put it on Heroku, but man, I had the worst luck with Heroku in code school. It never, ever worked for me. So maybe I’m a little prejudiced against deploying things…hm. Anyway, I’m going to finish that up this morning and then I think start on the Bowling Kata. I keep making all these games that I never actually play — Battleship, tic-tac-toe and now bowling! I should suggest that Brandon change the assignment to make a nice RPG, like Dungeons and Dragons. Wait…actually…can we do that? That sounds AWESOME! I wrote that kind of stream-of-consciousness, but now I actually want to try.

Anyway. First book, then bowling. Well, first book, then reading the Wikipedia page on how to keep score in bowling, then kata. Today I’m pairing with Brandon for two hours! I should figure out if he wants me to have a plan or something to work on or if he’s bringing something.

Today I expect to learn how bowling is scored. Man, I hate bowling. I’m not very good at most organized sports, but it makes me mad that I’m bad at bowling. It’s just throwing a ball down a greased wooden floor! How can it be so hard! Argh. Hopefully working on the kata will not be as frustrating as actual bowling.

SB Apprenticeship: Day 32

I made this!

I made this!

Yesterday Brandon and I had lunch and had a good conversation about how I’m doing. I told him that I feel like I’m not as far along as I should be, but he said he thought I was doing great. As everyone I know has said, and maybe someday I’ll actually listen, he told me I shouldn’t be comparing myself to the people around me. David’s an apprentice, sure, but he worked for a year at a shop doing Rails APIs. Brandon’s on the cusp of being able to call himself a Rails expert, but he’s been programming since he was 13. I haven’t even been doing this a year yet, I really ought to stop beating myself up for not knowing things. We also talked about pairing more, and now we have a set time for it — from 3-5 on Thursdays! I’m excited about that. It’s interesting, Brandon mentioned that one of the reasons he hasn’t paired much with me is because the knowledge gap is *so* big that it makes it frustrating for both of us — I’m too slow for him, he’s way too fast for me. He thinks that I may be his last apprentice, and I think he’s really sad about that.

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

Yesterday I spent the entire day working on the Agile Web Development with Rails 4 book. The book’s tutorial has a lot of parts that will be really useful for the upcoming Bookstore assignment — so far I’ve done sessions and Javascript/Jquery, and they also talk about authentication, emailing users, testing and I think they cover credit card payments at the end. It seems like there’s always something little I forget, like a . instead of an _, which gets pretty frustrating. I’ve gotten better about figuring out where my error is, though, and I think working through this project is helping me actually understand MVC at last. I can follow the trail of what the code is doing and where it’s supposed to go.

I think today I’m going to work more on the book. It’s a fine line sometimes, deciding when I should put the tutorials away and dive into my own code, but I think this is worth the slight delay. Yesterday Brandon mentioned that the timeline they set for the apprenticeship was basically completely arbitrary; 12 weeks just seemed like a good amount of time. While he said that he thinks I’m making good progress, if I need some extra time they’re cool with that. That was a relief, I was a little irrationally worried that they would kick me out of the building at 5:31 on the last day of the 12th week if I hadn’t finished everything. Yes, I know that is a stupid thing to worry about. No, it didn’t stop me. Sigh.

SB Apprenticeship: Day 31

This is called foreshadowing...guess what I'm doing today?

This is called foreshadowing…guess what I’m doing today?

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

Man, yesterday was a challenge. I spent literally the whole day on the Ruby Bits tutorial, and I said to Lindsey and David that I think it might have to be my kata for this week, just doing it over and over until I get it. I think it assumes a level of familiarity with Rails that I haven’t quite reached, so it was frustrating. It was the first tutorial that I’ve had to look at the hints on almost every question. I can see how useful the knowledge will be once I get it, though, and even Brandon said that some of the concepts they covered, like yield, took him a year or two to fully grasp.

Today, I was planning on doing the second Ruby Bits tutorial, but I’m not sure I’m up for it. David shared a link to The Cucumber Book, which I’m going to need for the book store, so I think I’ll work on the Agile book some more and then tackle Cucumber in the afternoon.

I expect to learn Cucumber! I don’t actually know anything about it, other than that it’s yet another testing framework, so there’s a lot to learn. How is it different than Rspec and Minitest? Why is it better? Is it better for some projects but not others?