2017 Wrap-up and 2018 Goals

Wrapping up a year is never is never a thing one wants to do. At least I don’t.

2017 was an amazing year; I built a full-stack app I was proud of with a course and started another. I was a perfect 12/12 months of blogging for the second year in a row. And, at the end of the year I scored an internship with The Practical Dev.

The beginning of this year has been the total opposite: I am being evicted as my apartment building is renovating and will not be renewing my lease and the shine of the internship has worn off as I struggle to find a place to live and get moved. I’ve made some pretty horrendous errors in the face of all this, after a strong start. I am probably not getting offered. I am okay with it now but wasn’t when I got my 2/3 of the way performance review. I was super depressed for a week or two.

But this is not what I want to talk about. I want to recap the year and look ahead for this one and what I can do after I move to turn things around.

2017 Highs After 2016 Lows

Isn’t it how it always is though?

The Good:

  • I completed a full course on web development without a break. I went through the colossal Web Developer Bootcamp with Colt Steele and built YelpCamp which I am not really developing anymore but am tweaking a bit here and there.
  • I started my own full-stack JavaScript app called Check Yo Self which is still in active development. If I am without a position for a little bit while I get settled into my new place so be it. I’ll continue to work on this app.
  • I got offered the dev.to internship.
  • I gained 300 Twitter followers which opened up a whole new network to me I didn’t have previously. This has been a boon to my job search.
  • I was on the Developer on Fire Podcast. It was super fun talking to Dave Rael again.

The Bad:

  • Couldn’t finish school.
  • That’s it!

Goals for 2018

I am currently looking for positions outside of dev.to. I enjoyed my time there but if I am being honest the way I utterly messed up after they gave me a chance…not even sure if I can look them in the face. I will have to, but it will be hard. Really hard1.

I am not a quitter though so while this is a setback it is a minor one and thanks to my friends and mentors Craig Lang and Pablo Rivera I am not dangling off the edge as much as I was. They’ve been instrumental in lifting my spirits.

Without further ado, goals.

  • Get hired as a junior developer working with a primarily JavaScript stack. Rails is okay as I built a Blog app in it, simple CRUD without auth or limiting certain interactions with certain users2. I’d prefer JavaScript though as I am more familiar with it3.
  • Move to a nicer home. This place is shite. So I am glad I need to move. It is just finding a place within the amount of time I am allotted that is the issue.
  • Stop worrying about vanity metrics for the blog. Pablo explained to me that if I’m not selling anything, looking at my analytics isn’t going to do anything for me. Traffic without a product is all but meaningless.
  • Learn: React, Redux, Angular, Typescript, Vue, Vuex, built-in JavaScript APIs and other JavaScript frameworks. I just bought Wes Bos’s React for Beginners course and am excited to dig into it.
  • Gain another 300 followers.
  • Finish Check Yo Self. I need to find time to work on side projects without burning out.
  • Create some interesting and useful libraries and open source them. This will be interesting considering everything I hear about women getting shut down in open source. We’ll see.
  • Dive more into animations with CSS and WebAnimations API.

There Are Probably More

But I am tired and can’t think of them right now. These are the main things I want to get done this year.


  1. Saying that made me start to cry. I’ve been crying a lot lately. It’s been really hard to know your shot at developing full time is dashed for a bit. I’m down, but not out. 
  2. For instance, anyone can delete a post by any user. Any user can delete a user. It was basically just an exercise for me to show I can navigate around a Rails app and am able to use my theoretical knowledge of OOP and MVC to a real world app. 
  3. I plan on learning other stacks as well. Learning Rails has been a fun experience even though it isn’t my preference. 

Things I Am Cooking Up

I am thinking of starting another podcast.

Most of the shows will be 15 > minutes as I really, really, really hate audio editing and cannot afford a dedicated editor for a weekly, seasonal show.

I am also not sure if I’ll hop on the S01E01 bandwagon or not. Seems it is all the rage in the podcast community but I am not certain it works for developer podcasts though one of my favorites works that way.

On Developer on Fire

I recorded an episode of Developer of Fire. It will be out sometime at the end of the month or beginning of next year.

First Feature and Pull Request

 

I spent a good week working on our CodePen Liquid Tag feature. It was my first time working with a team on a feature for an app that wasn’t solely mine.

I was nervous. But it was really fun.

Mac, our Senior dev instructed me. He remarked that it didn’t take me long to pick it up and off I went, getting the feature built with time to spare1.

Shortly after, I created my first PR. I can’t tell you how long I’ve waited to make a PR on a project I believed in. I got that chance and it went well.

Feature and PR

I find that, since I spent a lot of time learning JavaScript, Mongo, Mongoose, Node and the like, that digging into Ruby, Rails, ActiveRecord, and things like this aren’t too difficult.

One of the things that helped me was when Mac and Ben told me to look at another file. I was able to discern what to do, and cobbled together a basic framework of the feature. I then built upon that and continued to ask Mac questions which he patiently answered.

I submitted the PR and it was merged shortly after.

Yassssssss

I submitted a PR to another project but it wasn’t merged. I wasn’t ready then. But now, I have had two PRs merged and am working on a third feature.

Work Is Fun

The team is great. The perks are great, even for an intern like me. And I absolutely believe in what we’re trying to build.


  1. We don’t have hard deadlines, though, unless it is a critical bug or security flaw. 

The Simplicity of Ruby

When I first started this blog, I was learning Ruby and I loved it.

This was before starting freeCodeCamp or Zed Shaw’s Learn Python the Hard Way series 1.

When I decided I wanted to program for a living, I found some meetups and went to my first one in 2014, Code & Supply where Ruby was the topic; getting it set up on our systems and writing a pretty simple Ruby program.

Ruby was so simple. Take this, for example:

class MyClass
  def initialize(name, age)
    @name = name
    @age = age
  end
end

If you know anything at all about OOP, you know what is happening here.

Where the beauty of Ruby lies is in its eerily easy to read syntax.

class MyClass

creates a class where we’ll hold all our objects and methods.

def: define. Here we are defining a method initialize with two local variables
name and age. We assign them to the instance variables @name and @age in order to use them outside of the object’s scope. We end the method and class with the end keyword.

Outside of the OOP instance variable syntax, this is super easy to read and understand.

First Day Feels

It is 10pm and I really need to get to bed soon. But I just wanted a chance to write about how patient the team at The Practical Dev has been with me as I learn the ropes.

On-boarding was a breeze and I have already started digging into the codebase.

My first day was fraught with nerves and expectations that I had for myself 2.
Remembering that I am not the sole developer on a project and I have a team to refer to is taking some getting used to. The team is great and I definitely ask questions: have never been shy about that. I am just so damn shy and quiet. This is something I am working on.

They even purchased a lower lumbar cushion and keyboard for me, which I can purchase when I move on.

It has been a great first week so far and I am looking forward to the weeks to come.


  1. LPTHW is quite opinionated and I am not sure if it is still recommended to new developers. 
  2. And very little sleep. Trying to fix that. 

I Am Now Doing This Thing For Real

I have recently joined the The Practical Dev as an apprentice software developer.

Remember when I said that good things were happening? That was one of the things.

Ben reached out in a Twitter DM and it kicked off.

I filled out the required application. We had a video conference yesterday and today they made the offer.

I can’t tell you how excited I am to be joining the team 1. This transcends just being in tech or having a career.

There is so much I would like to day, to be quite honest. There are some things I can’t or don’t want to explain but.

I have lived a miserable existence, from the day I popped out of my mom’s womb. She was an addict. I was adopted but that drug use left me with some residual side effects.

I spent my youth and teenage years in a very bad state. Emotionally I was a mess. I was a bright kid, a great student. Things came super easy to me. But because of trauma and emotional issues, I couldn’t really go to college after high school. I eventually went as a 24 year old. But, as it was, emotional issues, depression, angst. All that prevented my from being successful.

When I was 22 my grandmother died. She was my rock. She was in my corner, even when I was a little shit. She was there. She protected me.

I was in a place where I could remain safe when I was in my early 20s. I was poor and out of it. She died and I felt like I let her down; I wasn’t much of anything. I was just another listless 20 something black girl from the hood drifting in and out of placements and falling through the cracks. I always felt like I let her down. I couldn’t help it, but the guilt has followed me.

I didn’t start feeling like I had something to live for until I was 28. I had been through hell and back, an emotionally violent relationship, I had been through the ringer. But something came around for me as a 28 year old young woman starting to realize that yeah, life is shit. It really is. But you literally crawled out from the jaws of death and now what are you going to do with your life?

30 Something…

I went back to school when I turned 30. I was a humanities major. I was still pretty poor. Making ends meet was hard.

I went to school, making good grades for a while. I decided that tech was where I wanted to work. As much as I liked to write, I liked tweaking my sites even more. I also knew that I would remain poor as a humanities major because I didn’t want to teach.

I got a Mac in 2014, a code editor, and I was off to the races.

I went to Pitt from 2015-2017 as a CS major. You may remember it.

Starting the University of Pittsburgh

Had a breakdown in the middle of those two years.

I couldn’t go back to school this year and instead dove head first into every project on my GitHub that isn’t for school.

I’ve built some pretty cool things that I am proud of and am working on even more things.

But now I get to do it for real.

Whew

I have not been eating much. That is how bad it has gotten for me. I am not complaining though. I have good friends and family. They have helped me through the rough times I have been having. I have been really coding for my life, not just for a cushy job. It means so much more to me because of that.

I have been searching for a couple months now. I was using a little Chrome extension called Streak CRM to track the process. Rejections would come in. Now, I have a CRM with an offer that I accepted.

Mom

My mom is 71. She told me she would like to stick around long enough to see me be something. She qualified that with, “Well, you are already something but. Still. You know.”

I knew what she meant. We haven’t always been on good terms. But I love her and I, too, wanted her to see this. I didn’t want another regret of letting another important woman to me see me floundering.

I bought my mom a little something from Amazon and added a note and gift bag that said:

“Mom, I did it. From now on Xmas for you will be special. I’m grateful for your support. Love you. Tiffany”

Makes me feel good.

Thanks, Ben and Peter

I mean, really. You two have taken a chance on an old lady who doesn’t have a degree but has a fire in her belly to actually learn and grow as a developer. I can’t thank you two enough. Truly. Thank you.

Well

Everyone has a story. I am glad mine is ending up like this. I hope for happiness and success for anyone who is on the outside looking in in tech. You got this. ???


  1. I am old. I am the oldest person on the team. Haha. I am young at heart though. Goes to show someone pushing 40 can break into the industry if they work their asses off. 

Update: Lots of Things Happening

I thought I’d post a short update about why I haven’t been blogging as much.

These past two months have been a whirlwind for me. I am looking for jobs and I have gotten some interest. I can’t say too much right now, but things are looking up.

The tweets that started it:

It was during a #DevDiscuss Twitter chat. Initially, Pablo Rivera tweeted to Stephanie Hurlburt about getting me a job. She tweeted back to tweet to her my portfolio, resume, etc and that I am looking for work. She would then retweet it to her large following of potential employers and companies.

I did:

And awesome…things…started…happening.

That’s all I can really say but I have honestly just been trying to process what is happening and how, when it comes together and tries, the tech community is the best there is…

Gauging My Progress

As I step through The Web Developer Bootcamp, I am beginning to realize just how much I’ve learned the last two years and how it is beginning to codify in my brain.

I am coming from a Humanities background but I have always had technical chops, working with circuits was a thing I liked to do; improvising is fun.

I was, a long time ago, a Computer Networking major but decided that I wanted to build computers instead of administering them. Before class started I chose Electronics Engineering Tech at my local 2 year. I did very well. I got an A in my first class, being the only black person as well, by the middle of the semester, the only female. This was the early 2000s.

I’ve always had technical chops. In fact, I taught myself electronics over the course of two years and was competent enough that my physical science professor wanted me to help her teach the electronics section. She was a physicist and my hero.

I prefer being an autodidact, if you haven’t guessed by now.

Translating Hardware Chops into Software Chops

I just played around with circuits and diagrams of those circuits with basic logic structure knowledge. I had and have the ability to learn logically complex things. The fact that it has taken me two years and 5 CS classes as well as learning on my own makes me feel really silly. I have always been the smartest person in the room. It is quite humbling to struggle with something that you feel you should get right away.

Sometimes I look at other newbies and see they struggle with simpler concepts than I did. It makes me feel better 1 but I also want to help them become competent.

The Web Developer Bootcamp and Leveling Up

I have been studying for two weeks practically non-stop. I am seeing so much progress that it encourages me to keep going. I can ask relevant questions of the material, when I get stuck instead of running to Stack Overflow or Slack/Gitter first thing, I open up Dash Docs and read the MDN, which is beginning to make a lot more sense to me.

I can write simple algorithms much more easily than just a few months ago. I don’t know what happened or what switch flipped but I am really, really happy.

Being Happy For Other Developers Success, However…

I see developers all around me getting jobs. I am happy. I am really happy for them. This isn’t a fake happy. It is how things should work. You never begrudge another’s success.

I do, however, feel a pang of longing when I see the tweets and YouTube videos. I am waiting for my turn.

The helpful thing for me right now is knowing I am about a little over a half a year from being ready to apply for developer jobs. It is the solace I need to not get discouraged.

The Code

Some of the things I worked on.

Arrays

//Print Items in an Array in reverse //

function printReverse(arr) {
  return arr.reverse();
}
printReverse([1, 2, 3, 4]);

// Refactor to print on new line
function printReverse(arr) {
  for (var i = arr.length - 1; i >= 0; i--) {
console.log(arr[i]);
  }
}
printReverse([1, 2, 3, 4]);

// isUniform //

function isUniform(array) {
  for (var i = 0; i < array.length - 1; i) {
    if (array[i] !== array[i + 1]) {
  return false;
   }
 }
  return true;
}

// sumArray //

function sumArray(arr) {
  var sum = 0;
  arr.forEach(function(element) {
    sum += element;
 });
  return sum;
}

// max //

function max(arr) {
  var maxValue = 0;
  arr.forEach(function(element) {
    if (maxValue < element) {
  maxValue = element;
    }
  });
  return maxValue;
}

Objects

//Movie database for object practice

var movies = [
  {
title: "Taxi Driver",
hasWatched: true,
rating: 5
  },
  {
title: "The Social Network",
hasWatched: true,
rating: 5
  },
  {
title: "Steve Jobs",
hasWatched: true,
rating: 4.5
  }
];

function stringBuilder(movie) {
  var result = "You have ";
  if (movie.hasWatched) {
    result += "watched";
  } else {
    result += "has not seen";
  }
  result += '"' + movie.title + '" - ';
  result += movie.rating + " stars";
}

movies.forEach(function(movie) {
  console.log(stringBuilder(movie));
});


  1. The arrogant, competitive little snot I was still peeks through sometimes. 

The Web Developer Bootcamp

So I am still working on Check Yo Self, but, like I do, I jumped into another tutorial where you build stuff. I am so stuck on and afraid of the logic of Check Yo Self that I decided that I needed to shore up some knowledge of basic JavaScript 1 so I bought, and have started working on The Web Developer Bootcamp by Colt Steele.

Colt is a Bootcamp instructor in San Francisco 2 and has taught students how to be professional full-stack web developers for mountains of money. His Udemy course is usually $1000 but I got it for $10 on one of their deal weeks.

It is one of the highest rated courses on Udemy and especially recommended by web devs across the internet.

Relearning Basics

I started from the beginning. I did skip some HTML and CSS stuff but as I said on my Facebook page:

I guess starting out coding in HTML and CSS…It felt really easy and so I skipped over A LOT. Free Code Camp taught Bootstrap so I felt there was no need to learn deeper.

Taking the Web Developer Bootcamp course has opened my eyes to so much about semantic markup, what attributes, block level elements, inline elements, selectors, and properties are and their differences. Can’t believe I aced my intro to web dev class without knowing that much about basic web dev.

It is never a good idea to skip things, no matter how “easy” they seem. I am learning that.

Granted, as you get better there are things you can skip but if the language is new or the concepts are new, it behooves anyone to learn it. Do not skip it.

Course Curriculum

This is a full stack course where we will basically learn the MEN stack. He excludes Angular. Not sure why but we will end up building several front and back end projects ending in YelpCamp, a Yelp clone for camps using Mongo, Express, and Node.

Exercises.

Here is a form I built in HTML that I had an issue with 3.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Register</title>
</head>

<body>
  <h1>Register</h1>

  <form class="register">
    <label for="firstName">First Name: </label>
    <input id="first" type="text" name="firstName" placeholder="John" required />
    <label for="lastName">Last Name: </label>
    <input id="last" type="text" name="lastName" placeholder="Doe" required />

    <div class="sex">
      <label for="male">Male </label>
      <input id="male" type="radio" name="gender" value="male">
      <label for="female">Female </label>
      <input id="female" type="radio" name="gender" value="female">
    </div>

    <div>
      <label>Email:
        <input type="email" name="email" placeholder="Your email" required />
      </label>

      <label>Password:
        <input type="password" name="password" pattern=".{5,10}" required title="Password must be 5 to 10 characters" />
      </label>
    </div>

    <div class="birthday">
      <label for="birthday">Birthday: </label>
      <select name="month">
        <option value="Month">Month</option>
        <option value="Jan">Jan</option>
        <option value="Feb">Feb</option>
        <option value="Mar">Mar</option>
      </select>
      <select class="day">
        <option value="Day">Day</option>
        <option value="first">1</option>
        <option value="second">2</option>
        <option value="third">3</option>
      </select>
      <select class="year">
        <option value="Year">Year</option>
        <option value="1978">1978</option>
        <option value="1979">1979</option>
        <option value="1980">1980</option>
      </select>
    </div>

    <div class="terms">
      <label for="terms">I agree to the terms and conditions </label>
      <input type="checkbox" name="check" value="terms" required />
    </div>
    <input type="submit">
  </form>
</body>

</html>

Here is some CSS from the basic CSS section that I just finished. There is something like 42 hours of video and assignments.

/* Style the HTML elements according to the following instructions.
DO NOT ALTER THE EXISTING HTML TO DO THIS.  WRITE ONLY CSS!

/* Give the <body> element a background of #bdc3c7*/

body {
  background: #bdc3c7;
}


/* Make the <h1> element #9b59b6*/

h1 {
  color: #9b59b6;
}

/* Make all <h2> elements orange */

h2 {
  color: orange;
}

/* Make all <li> elements blue(pick your own hexadecimal blue)*/

li {
  color: #459BE6;
}

/*Change the background on every paragraph to be yellow*/

p {
  background: yellow;
}

/*Make all inputs have a 3px red border*/

input {
  border: 3px solid red;
}

/* Give everything with the class 'hello' a white background*/

.hello {
  background: white;
}

/* Give the element with id 'special' a 2px solid blue border(pick your own rgb blue)*/

#special {
  border: 2px solid #459BE6;
}

/*Make all the <p>'s that are nested inside of divs 25px font(font-size: 25px)*/

div p {
  font-size: 25px;
}

/*Make only inputs with type 'text' have a gray background*/

input[type="text"] {
  background: gray;
}

/* Give both <p>'s inside the 3rd <div> a pink background*/

 div:nth-of-type(3) p {
  background: pink;
}

/* Give the 2nd <p> inside the 3rd <div> a 5px white border*/

div:nth-of-type(3) p:nth-of-type(2) {
  border: 5px solid white;
}

/* Make the <em> in the 3rd <div> element white and 20px font(font-size:20px)*/

div:nth-of-type(3) em {
  color: white;
  font-size: 20px;
}


/*BONUS CHALLENGES*/
/*You may need to research some other selectors and properties*/

/*Make all "checked" checkboxes have a left margin of 50px(margin-left: 50px)*/

input:checked {
  margin-left: 50px;
}

/* Make the <label> elements all UPPERCASE without changing the HTML(definitely look this one up*/

label {
  text-transform: uppercase;
}

/*Make the first letter of the element with id 'special' green and 100px font size(font-size: 100)*/

#special::first-letter {
  color: green;
  font-size: 100px;
}
/*Make the <h1> element's color change to blue when hovered over */

h1:hover {
  color: blue;
}
/*Make the <a> element's that have been visited gray */

a:visited {
  color: gray;
}

Other Courses

Eventually, I’d like to be an iOS dev at some point. So I bought a Swift course from Steven 4 and award winning iOS dev from the Hacking With Swift series, Paul Hudson.

I won’t be starting that course until after I start the other course I bought Modern React with Redux and Webpack.

Got all of these courses for $10 a piece. Not too bad.


  1. Not just jQuery. 
  2. His apartment has me starry-eyed and wishing for a dev job and I am totally California dreamin’. 
  3. A form. Of all things. 
  4. Guy’s last name is always escaping me. 

Making The Tedious Easy With MDL Templates

Wanting to just get the app up and running 1 , I sat down yesterday and paged through some of the Material Design Lite Docs.

For some reason I never noticed the tab that said, Templates. I about cried.

I really didn’t feel like getting into too much detail with the HTML and CSS 2 so this was a welcome addition to what I already had.

Essentially, there was a template called Text Heavy Website. Since my app is processing text mainly, I hit the jackpot.

There are still some things I need to add, like the sidebar that will hold the texts that the user stores on the database but most of the boilerplate is written.

Good guy Google!


  1. Actually working on it, you know. 
  2. This is just boilerplate; I have a lot of HTML and CSS to write as I add more components. 

CRUD: My New App, Check Yo Self

I have taken a bit of a break from the coding/learning thing as I suffer from a bit of depression every now and again, outside of the usual. It’s a woman’s thing, as they say.

So while I was a bit down and cantankerous I took a break to tweak a few of my sites and read some documentation. After the bout of depression subsided, I dove into SQL.

Create, Read, Update, Delete: CRUD

I asked around in the Code Newbie Slack and asked my buddy Alex if I could use localStorage to store the markdown documents.

Let me backtrack.

When I was designing the app, I got the idea of having the markdown documents collect on the side of the app, sort of like the design template I was using. I knew I’d need to store those documents and really didn’t want to dive into databases.

I thought about using localStorage. Alex told me that localStorage has a capacity limit. I really don’t know how many texts someone would store and come back to, and while text files are minuscule, I don’t want to risk it.

I could go the I Need a Resume route and use setSessionCookie which would require less overhead. But if the user clears their cookies, all their texts would be wiped out.

I still plan to use setSessionCookie but I am not sure how I am going to work it in with storing the texts in the database.

CRUD is a SQL thing. 1.

ORMs and JavaScript May Save Me, Big Time

While learning SQL at Treehouse, Andrew Chalkley, the teacher, explained ORMs, or Object Relational Mapping software that helps you interface with a database in different languages. For instance, ActiveRecord for Ruby and Hibernate for Java.I was having a hard time understanding how to store the texts the users input, store the texts, and retrieve the texts up until that point in the course. Everything we did in the course was hard coded and I definitely understood I could not do that. ORMs to the rescue. Searched for an ORM for JavaScript and there are many, either through npm or other means, there are plenty. Still researching. Since I am using Postgres on Heroku, it needs to play nice with it and I found one called sequelize.js that looks like it will do the trick:


var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');

var User = sequelize.define('user', {
  username: Sequelize.STRING,
  birthday: Sequelize.DATE
});

sequelize.sync().then(function() {
  return User.create({
    username: 'janedoe',
    birthday: new Date(1980, 6, 20)
  });
}).then(function(jane) {
  console.log(jane.get({
    plain: true
  }));
});

This snippet seems quite easy to grasp and will make interfacing with Heroku’s Postgres addon even easier. 2.

Coding Again

I plan on scanning more docs and getting the HTML up and going. I felt overwhelmed with the amount of stuff I needed to code. This is one area that hinders me still: not breaking big projects up into little pieces. I decided I have been at this enough that I should actually take Russ’s 3 and break that shit down. I fired up Drafts app on my iPhone and wrote down every task I needed and wanted to complete. Then I shifted those over to OmniFocus and Taskpaper. There are more tasks to add but I feel a sense of relief knowing that the ideas are down, and that I should work on one small bit of code at a time.

Thoughts?

I never know how to end these things. Let me know what you’re hacking on in the comments. Or not. It’s all good. ????


  1. Create: INSERT INTO, Read:, SELECT * FROM, Update: UPDATE SET, and, Delete: DELETE FROM. So that’s why they call database apps that are simple CRUD apps, which I understand finally. 
  2. Check out sequelize.js 
  3. Code Newbie field general, 1000XP