I Finished My Class! — August 26, 2015

I Finished My Class!

I finished the DaVinci Coders Rails course last Friday. Woohoo!! My final project is going to go into production soon to be used by the school. It is an app for students and alumni to use, called the DaVinci Network. Right now it just has the users associated with companies so you can see where everyone is working now. In the future we hope to add Calendars for mentors, Slack integration, etc.

I will be going back to the DaVinci Coders in a few weeks as a T.A. for the next cohort. This is a part-time job so I am still looking for a job/apprenticeship and hope to have one within the next week or two, but in the meantime I am really busy! I am adding to the DaVinci Network, freelancing a little (doing a project for a small startup that wants me to build a demo of their app to include on their current site), and as a side project I’m making an app that my husband can use to help him during track season since he is the head track coach at the school where he works.

Writing this, I’m reflecting back to where I was just 4 months ago and am amazed at how far I’ve come. I couldn’t have done this without all of my mentors. Everyone in this community has been so helpful and embraced me with open arms. They are more than willing to help in any way they can, give me advice, and answer all my questions. To name a few: Bill, Mark, Chris, Fred, Jason, Wendy. Thank you so much! You have made a huge difference in my life and I wouldn’t be where I am today without you.

How to set up a new Rails app — July 11, 2015

How to set up a new Rails app

In class we just learned how to create a Rails application. Here are some steps to make a Rails app. (These are very basic steps, basically how to set up the environment)

  1. Set rvm to use a certain version
    • rvm use 2.2.1@rails4
  2. Check that you are using the correct version of rails
    • rails -v
    • If it’s not the version you expected, run gem install rails
  3. Create a new rails app
    • rails new app_name -T -B
    • -T means skip tests (I am skipping this because I will be using rspec)
    • -B means skip bundle (we are going to change the gems, so we will bundle later)
  4. If you are changing the version or gemset do that now
    • By using echo I changed the rvm to 2.2.1@davinci_coders
      • echo '2.2.1' > .ruby-version
      • echo 'davinci_coders' > .ruby-gemset
    • bundle
  5. If you are using git, set that up now and commit your initial repo
  6. Run rails server (or rails s)
  7. In your text editor add routes, controllers, etc. and your done. Congratulations, you have successfully created a Rails app! 🙂
Imposter Syndrome — June 15, 2015

Imposter Syndrome

Imposter Syndrome is the belief and fear that someone is going to discover that you’ve been faking it. You think that wherever you are and no matter what level of success you’ve achieved, you’re not as good as everyone else. You’re only there because you’ve been faking it, and you’ve convinced other people that you’re good at it.

Anyone can have this syndrome, but the more marginalized group you’re in, the more likely you are to experience it. For example, women in the math or tech industry may experience the imposter syndrome more often than others. However you can have all of the advantages but still experience it, perhaps because the pressure is so strong in the field that you work in.

The imposter syndrome can feel very real. You can feel like at any moment your life will come crashing down. Once you internalize the thought or belief that you don’t belong somewhere, it could become a self-fulfilling prophecy. The really hard part is that it is an unfalsifiable belief. Others can’t convince you of your worth, because you will just think that they haven’t found you out yet, or that someone else will.

Imposter Syndrome isn’t something you can just fix and it will go away. It varies day by day, moment by moment. You need to learn how to recognize it and live with it. (*please note that I am not a psychologist or any type of expert on this)

How do you know if you or someone you know has Imposter Syndrome?

If you don’t recognize that you have Imposter Syndrome you might not do something out of fear, and miss out on something really good. Don’t let it get in the way of your ultimate success. If you have this syndrome you may use self-deprecating humor. Don’t get me wrong, humor is a good thing, but if someone does it a lot it could be a sign of Imposter Syndrome. Someone with Imposter Syndrome might also set themselves apart and/or not ask for help.

The following are some ways to help you get past this fear:

  • Recognize that you have Imposter Syndrome, this is the first step to getting rid of the incorrect mental image
    • Name it: “I am experiencing some Imposter Syndrome right now”
  • Focus on what you can contribute.
  • Realize your own worth: do something because it interests you, not to try to prove something; take pleasure in learning things because you like it
  • Whenever you complete something, recognize that what you did has value
  • Derive your self worth from things other than your accomplishments.
    • Realize that you have value just as you are (“I’m enough”)
  • Learn to acknowledge/admit being wrong, making mistakes, or not knowing things
  • Try to get feedback on your work early.
    • Since it is an early draft you don’t have to feel bad about any constructive criticism that you get.
  • Work really hard at something difficult, and make progress on it
    • You expect it to be hard, so it is okay if you have questions, the important thing is that you are making progress
  • Affirmations about identity/ mental programming for motivation.
    • For example: “I am the kind of person that doesn’t give up.”
    • This is self motivating because you will want to live up to those beliefs and expectations
  • Realize the most ridiculous things of Imposter Syndrome, and tell them as a joke to others
  • If you isolate yourself you won’t necessarily know where you stand, try to be part of the group.
    • With a group you will get more confirmations
  • Use cognitive behavioral therapy
    • Talk back to a thought or feeling (Just because you feel a way, doesn’t mean you have to act on it. Notice your thoughts and form different thoughts)
  • Go out and try to prove yourself wrong
  • Ask yourself: What would be worth doing, even if I did fail? (Makes it about working hard, instead of succeeding)
  • See whatever you do as an experiment.
    • Whatever happens you will gain some knowledge, it’s no longer  about success or failure

How to help someone who has Imposter Syndrome:

  • Initiate conversation/actively try to include them in the group
  • Ask them if they need help (they might be too scared to come to you)
  • Ask them to help you with something, and give them credit afterwards
  • When acknowledging something they have done instead of using broad statements (“your’e smart”), be specific (“you were able to isolate that bug, not everyone would have been able to do that”) it makes it more believable and helps reinforce their worth

You can listen to the devchat here: http://devchat.tv/ruby-rogues/107-rr-impostor-syndrome-with-tim-chevalier

Disable Rubocop Within Code — June 8, 2015

Disable Rubocop Within Code

Rubocop can be great to make sure you are using correct syntax, but it can also be really annoying when it tells you that you have an offense, but it’s actually what you want. I had this problem with multi-line strings.

Convention for multi-line strings is to use three double-quotes (“””) before and after the string. However when I did this Rubocop would give me an offense on each line I had the 3 double-quotes. It would return “Prefer single-quoted strings when you don’t need string interpolation or special symbols.”

I did not want to change my double-quotes, so in order to get rid of the offenses I had to disable rubocop within my code.

Cops can be disabled locally by adding a comment using rubocop:disable…  rubocop:enable…

I disabled the string literals using the following code:

# rubocop:disable Style/StringLiterals
[...]
# rubocop:enable Style/StringLiterals

You can disable any kind of cops with this format, such as “Metrics/LineLength” or even “all” to disable all cops for the section of code. You can disable multiple cops at once by separating them with a comma

# rubocop:disable Metrics/LineLength, Style/StringLiterals

Just remember to enable it again when you get to the end of the section you want to disable!

*information found on https://github.com/bbatsov/rubocop#disabling-cops-within-source-code

Git Commit Messages: Best Practices — June 4, 2015

Git Commit Messages: Best Practices

Git commit messages should always have a subject line followed by an empty line, then the body. Think of it like an email: short summary for the subject, then the body of the email with all the details.

  • Subject
    • Start with a capital letter
    • Keep it short (less than 50 characters)
    • Write it in the present tense. For example “Fix bug” not Fixed or Fixes. This will keep it consistent with commands generated by git.
  • Make sure to leave a blank line between the subject and body!
  • Body
    • If needed, the body is where all the details and explanations go. In my homework this is where I put the PivotalTracker ID number.
    • If you are writing a lot, keep each line less than 72 characters.
    • More paragraphs can come after a blank line.
    • You can use bullet points in your body by using – or * followed by a space, with blank lines in between.
Steps for creating branches on git — June 3, 2015

Steps for creating branches on git

Here are the steps for creating branches and pull requests on a repo for our homework.
  • create topic branch
    • git checkout -b 95933688_intro_master (PivotalTrackerID_ShortSummary_BranchBasedOff)
  • create directory
    • mkdir intro
  • create Read.md
    • touch intro/Readme.md
    • add questions and answers to file
  • guard
    • make sure there are no offenses with Rubocop
  • git status
  • git add intro
    • you can run git status again here if you want
  • git commit
    • add message with story ID #
      • Added Questions for intro chapter (empty line) [#ID] (empty line)
      • git commit --amend (if I need to change the message of last commit)
  • git push -u origin 95933688_intro_master
    • if I am editing something already pushed, just use git push
  • git browse
  • click “compare and pull request”
  • copy and paste url into pivotal tracker
  • git checkout master
to make changes after pushing:
  • git checkout 95933688_intro_master
    • make changes
  • git add intro
  • git commit
    • add message ‘Fixed answer to question 1’ [#ID]
  • git push
to start another story/branch:
  • git checkout master
  • git pull
  • repeat steps above
Git Basics: The Three Areas of Git — May 28, 2015

Git Basics: The Three Areas of Git

There are three “areas” in Git: the working directory, staging area, and repository.

The working directory is where you actually work on something (make changes to a file, etc.).

From the working directory you stage your files (send them to the staging area). This is done by running the command git add file_1.

Then you run git commit -m 'Message about what I've done' to commit your changes to the repository (also know as the git directory). Your files are now in your local/private repository, which means you can only access it from your computer. If you want them to be on a Public Repo, you need to push them (git push) to a server such as Github.

To summarize: you modify your files in the working directory, stage your files by running git add, commit to the repository by running git commit -m, then repeat as necessary!

How to Zero Out a File — May 27, 2015
Week One/Rubber Duck Debugging — May 23, 2015

Week One/Rubber Duck Debugging

I cannot believe how much I have learned already. When I decided to go into programming in the beginning of April, I didn’t even know how to open my terminal, or what a terminal even was. Now after only 3 days of class I know the difference between a GUI and CLI, and am learning basic commands for the CLI, such as: ls, pwd, chown, chmod, and grep. I know what git is, and I am also using Pivotal Tracker (which I know is an Agile system) and Github.

I also just learned about pair programming and rubber duck programming. If you don’t know what that is, rubber duck programming or debugging is when you are stuck on a problem, you explain it to your duck. There is something about explaining a problem out loud that makes it click. I was even given my very own rubber duck (who just happens to be a code ninja)! Any suggestions on what I should name it?

Rubber Duck

Hello world! —