Cover letters whyyyyyyyyyy

If I hate cover letters as much as I do (and oh god, I do) and I once made a living writing, how do other people feel?Particularly programmers, who may not have had any training in writing? Why are these archaic things still required to get a job? Someday I’m going to make good on my oft-promised threat and send a letter that simply says: “Hi, my name’s Jessa, and I am awesome. You should hire me. Here’s my resume and portfolio website! Sincerely, Jessa.”

Unfortunately today is not that day. I am not yet that courageous. Maybe someday when I don’t actually need the job I’m applying for. It’s good to have goals, right?

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

Ok! Friday I identified a couple places that I want to work and started at my computer for a little while being frustrated that I have to write cover letters. Then I read some more of Eloquent Ruby and called it a day. Motivation! I also decided that I’m just going to forgive myself for not finishing the bookstore project, merge the branch I was working on forever and come back to it in a little bit. I’m so tired and frustrated with it. I will come back! Just…maybe in a few weeks.

Today I am going to apply for three jobs: one with a company where a couple of my friends from code school work, one for a  New Media Software Developer with a news station in Raleigh and one for an ecommerce site in Canada. I’ve never been to Canada! Depending on how next year’s elections turn out, that may be a valuable contact to have in my pocket. It’s actually interesting, the Canadian company emailed me…so what’s the process for that? Do I just write him back and say I’m interested? Do I fill out an application through the site and then let him know? Hrm. The one advantage to being so new to all this is that I can successfully cry ignorance and ask for help. So maybe I’ll do that!

After I apply for the three jobs I’m going to reward myself by going to the gym, and then this afternoon I’m going to work on code. I’ve been thinking that maybe going back through my TIY projects might be helpful; hopefully in two ways: both to remind me how to do the various tasks and boosting my self-confidence because they’ll (hopefully) be easier than they were the first time. People keep telling me I need to work on my own projects, but I don’t really have any ideas for actual things. I’ve never been super imaginative.

Today I expect to learn how to apply for a job in Canada for which the first contact was made by them! It’s an exciting life I lead.

Advertisements

SB Apprenticeship: Day 55

I got the form! Now I just need to make it work...

I got the form! Now I just need to make it work…

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

I found an old Railscast that helped me walk through setting up Stripe, which mostly worked, but I keep getting this weird error that google is not particularly helpful with. Anyone have an idea of what Unknown Format means?

ActionController::UnknownFormat

ActionController::UnknownFormat

Google (and by Google, I mean Stack Overflow) seems to think that I need to my respond_to needs to have a format associated with it, but I have format.html { redirect_to books_url }  in the method already. Sigh. This method is kind of a mess, though, so I need to refactor it. Maybe I’ll see if I can get some help with that, since nothing I’ve tried seems to help the situation. I haven’t been sleeping well this week, so I think I’m getting frustrated more easily than usual.

Today I’m going to figure out this method and fix that error, and then finish working through the Stripe tutorial.

I feel like I answer the “what do you expect to learn” part of this prompt with some variation of “…that I’m doing <whatever thing I am working on> wrong” way too often. I’m not always sure how I should be answering this question other than the fairly generic way that I do. Anyway, I expect to learn what that error means and how to fix it. I should probably also figure out how to tell whether or not my emails are sending, and if Stripe is actually charging the fake credit card I’m giving it. Lots to do today!

SB Apprenticeship: Day 54

Now you can check out!

Now you can check out! (Ignore the styling)

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

I have a checkout page now! I followed the tutorial in the Agile Web Development book, so now there’s a purchase button, a separate page to enter purchasing details, and it sends you an email both when you place an order and when it ships. Well, I think it sends an email, I haven’t actually figured out how to test that yet, but the book seemed confident that it would work.

It just occurred to me that one of my “if I win the lottery and don’t ever have to think about money again” daydreams has always been to own a bookstore, and I’ve always wanted to name it “Speak Friend And Enter,” because I’m a gigantic Tolkien nerd, and I’m missing my chance! Why am I naming my bookstore “Jessa’s Bookstore”?! That’s so boring! So anyway, I think I’m going to change that and look forward to the look on Brandon’s face when he sees it. Hee hee.

Today is Stripe day! Much like Rex Manning Day, I’ve been looking forward to this since I started this project. I can’t exactly explain why this has been the detail that I’ve been focusing on, maybe because it actually feels real? I use Stripe, I used it last night to pay for my hot chocolate at Cocoa Cinnamon, and even though this is a fictional bookstore, the ability to add Stripe and make if functional is a precursor to working on real projects at Smashing Boxes. Also, it’s the last major feature to add! So that’s pretty exciting.

I expect to learn that Stripe is incredibly complicated to implement, despite its clear documentation, because that’s just how my life works.

SB Apprenticeship: Day 53

Lookit my index page!

Lookit my index page!

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

I ended up getting more done Friday morning than I expected! Now my book index page has a logout link, and all the book titles are links. I added more Faker data (this is rapidly becoming my favorite gem), so when you click on the link, it goes to a book show page that includes a description.

Lorem ipsum is a description, right?

Lorem ipsum is a description, right?

Maybe someday I’ll be less impressed by accomplishing things like this, but for right now I was pretty darn thrilled. Brandon tells me all the time that I need to try random things more often, things that I’m not sure are going to work, which is not a thing I’m particularly good at. He was in a meeting Friday morning, though, and no one was around to answer my question, so I decided to just go for it with the line to make all the book titles links, and it worked! So, you know, positive reinforcement is a thing. 🙂

This week’s ToDo list:

  • Learn hashes (Brandon brought me a copy of Eloquent Ruby to read through)
  • Add a ‘Purchase’ button
  • Add Stripe (making sure that I know about PCI compliance and how it works)
  • Cucumber tests
  • Add the Carrierwave gem? Brandon said it would be super impressive if I could get it working.

I’m pretty excited that the end of the bookstore seems to be in sight. I think I’ve been annoying Brandon by frequently talking about how much I want them to hire me, so I’m going to try to be a little less vocal about it. I think at this point everyone knows I want to work here. Jinxing myself by annoying my mentor would just be tragic.

I had this grand plan of working on all the various courses about hashes this weekend, but then my boyfriend got a nasty bite from our cat, so instead it was taken up with Urgent Care, gauze and alarms to make sure he took his antibiotics. I think I may work on the purchase button and then read Eloquent Ruby in the afternoon. I really need to make sure I have a firm grasp on these basics. Also, I’m way behind in the reading I’ve been supposed to do for this apprenticeship, so I should maybe focus more on that.

SP Apprenticeship: Day 51

This is what my cart looks like now!

This is what my cart looks like now!

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

It was a challenge to get back in the flow of things yesterday after two days at a conference! I did finally manage to get my params in place so that I can change the total on a book when I add it to my cart. I still can’t edit the cart once I get it in there, but Brandon told me that would be more challenging than I thought, and he was right. I also did some styling so now it’s much clearer to read. I had a complete brain fart when it came to naming my headers and I couldn’t find a website that broke it down like that. ‘Cumulative price’ is terrible, I know, but it’s all I could think of. Anyone have any other suggestions? Maybe ‘line item total’? Meh. All my programmer friends have told me at one point or another that naming things is the most difficult part of programming, and it’s really true. Naming models and methods so that it’s clear and makes sense later when you’re refactoring or fixing something — it’s hard!

Today I am meeting a student in the current cohort of TIY for coffee; she wants to talk about my experience since I finished. I find it kind of interesting that Mason keeps sending these people to me, I certainly don’t mind, but I haven’t really hidden my complaints about the way TIY does things. I figured that I would be the last person that anyone sent students to. Although now that I think about it, I haven’t been asked to talk to any prospective students. Heh. Anyway, that’s at noon, then at 1 we’re having a retrospective about All Things Open, and then after that I’m pairing with Brandon. I have three things I want to get done this week:

  • Add a link to my cart in the corner of the homepage so you can access it without adding more books
  • Get the quantity incrementing to work and save
  • Complete at least one feature file in my cucumber tests

I’m going to ask Brandon to help with the incrementing, it really is proving super challenging. Once I get this cart stuff done, I think next week I can focus on adding Stripe and making it work, which will hopefully be easier than it was for David, since the first thing Brandon did was get rid of Turbolinks, and then I’ll be done and ready to start my pairing tour!

I expect to learn that the incrementing problem is probably going to be only a few steps, but they’re going to be non-intuitive. I’m not even entirely sure where to start with the cart, there are like four problems I have to solve there: getting it to show on the home page, positioning it where I want it, getting it to show the current number of items, and getting it to update when I add or remove something new. Should be interesting!

SB Apprenticeship: Day 49

Shopping cart: new and improved!

Shopping cart: new and improved!

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

Yesterday was a good day! I got everything on my list done except for working on the feature tests, and I did the majority of it by myself! So now my cart shows multiples of a book on the same line, with a unit and total price and it sums all the books in the cart. You can delete the cart, and go into edit and delete a single item.

Editing the cart

Editing the cart

I got all of this done mostly by following the Agile book, which according to Brandon did some weird things, but mostly got the job done. It was weird, I had it working except the editing part, then Patrick was trying to help me with that part and something broke that screwed up the entire thing. I kept getting a undefined local variable or method `params' error, which was really frustrating and led to me literally pointing at the screen and going “THERE THEY ARE!!!” which of course didn’t work. Brandon and I paired in the afternoon and it took him some time to figure out what was going on, which made me feel better. I’m not sure if it’s a function of being a programmer, or just another sign of how cool this office is, but to my infinite amusement no one even looked twice at me yelling at my screen.

Today I’m going to make the Quantity box work. I want it to populate automatically with the quantity of a book that is in the cart (so, like, if there are two of the same book, I want it to say 2), and I want to be able to change it and have it save. I’m also going to add a link to the cart in the corner of the homepage so you can see what’s going on. If I manage to get all that done then I’ll start working on the feature suite.

Brandon said the incrementing of quantity is going to be harder than I think, so I expect to learn what that whole process is. I guess I won’t finish the bookstore this week, which is kind of a bummer, but next week is a definite go. I have a conference that I’m attending on Monday and Tuesday, but the next three days will be productive and awesome.

SB Apprenticeship: Day 43

Torturing my coworkers...bwa ha ha!

Torturing my coworkers…bwa ha ha!

So this is totally irrelevant to my apprenticeship, but earlier this week I read an article from a mobile design and development studio in LA about how they made a bot for the messaging app Slack that forced them to work out. It has five exercises that are easily done at your desk: pushups, planks, wall sit, chair dips and calf raises, and every 20 minutes or so it randomly chooses three people and an exercise. I thought it was fun, and posted the article in SB’s health_fitness Slack channel, kind of hoping that someone would take the initiative and add the bot, but, while people thought it was interesting, no one stepped up. Last night some friends had a hack night, and when I was debating what to work on, I thought — well, why not? It’d be a fun, somewhat easy project to get it running, and if they didn’t like it I could just turn it off. The instructions, posted on Brandon Shin’s github, are pretty clear, but this was my first foray into Python, so there were some extra steps that I had to go through. Kevin helped me make a shell script to make it easy to run it, and we were off! So far this morning the exercise bot has been into calf raises — it’s picked it three times, but, as a coworker said, true random will do that sometimes.

Everyone in the fitness channel seems enthusiastic about the bot; one person left the channel, saying he might be back when he’s less buried and grouchy. I think everyone has done the exercises so far. I read so much about how terrible sitting is for you, and I basically sit for like 22 hours a day, so I thought taking a minute or so every now and then to do some exercises could only help. In his blog post, Brandon Shin said that they’ve seen a lot of benefits from it:

Our productivity has been through the roof. It gives a great little breather when your focus is getting a little too narrow, a little extra circulation, and keeps you just a little more energized throughout the day.

We currently have 13 people in the channel — I’m hoping this motivates more people to join!

It was a weird process to decide to do it, there was definitely an aspect of both could and should I do it — I’m only an apprentice, I don’t want to annoy people, oh god this is Python, can I even get auth tokens from Slack since I’m not an admin user? Smashing Boxes encourages a kind of entrepreneurial spirit, though, that’s basically the entire point of Labs Day on Friday, and, well, as Adm. Hopper said, “It is better to beg forgiveness, than ask permission.” I’m not sure what I thought would go wrong, like maybe worst case would be I somehow screwed up Slack. That would be bad; we rely on Slack for everything from notifying people about code reviews to gathering groups to go to lunch. But I felt confident that, even if I did royally screw up Slack, the level of talent at SB would probably make it trivial to fix.

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

I did actually do work yesterday, despite the 500 words I just wrote about an exercise slackbot up there. 🙂 I figured out why my book index page was refusing to create books — I was using a gem that wasn’t on that branch since my admin branch hasn’t been merged into master yet. Ta daa! Usually my pull requests are taken care of pretty quickly, so I decided to work on the blog kata while I was waiting. There were a ton of pull requests yesterday, so I ended up finishing it. I had to go back and use a tutorial for a little bit since my database just refused to save posts and I couldn’t figure out why, but I did get it done. Still haven’t worked on the bowling kata, my head just refuses to grasp the scoring system, which makes it kind of impossible to program a thing to keep score.

Today I am going to hopefully merge my admin branch into master and work on the book index page. A friend suggested a gem that apparently makes pagination super easy, so I’m happy about that. It seemed to take David a long time to get that right, so hopefully Kaminari makes that a little less stressful for me.

I expect to learn how to set up my database to index, paginate and sort books! I think I may also get someone who knows Python to help me fiddle with the exercise bot a little; the last exercise it told us to do was a 55 second plank, which is kind of a long time for the first time it’s telling us to do it. I also need to remember to bring my old yoga mat in, we have cold concrete floors that are not good for exercising!