Posted in Uncategorized

4 Semesters of Computer Science in 6 hrs – Big O

I’m working through a 6-hour-long video series which covers such topics as Big O notation, algorithms, data structures, etc. : Basically, the nitty-gritty stuff that we didn’t cover in DBC.

First, a very simplified was to determine Big O –

n : If you have a single loop, your function is O(n).

n-squared : If you have nested loops, each additional loop adds one to the exponent. So, a loop in a loop would be n-squared; a loop, in a loop, in a loop, would be n-cubed, etc. These are bad news.

1 : If you have no loops at all; you go in, perform an operation, and get out, your big O is O(1).

log(n) : If you’re using any kind of recursion – or divide and conquer – your big 0 is O(log n)

On to the next lesson!

Posted in Nmap

Ups and downs

I started out my morning by going to the maker space to learn more about their project. They want to be able to ping users’ devices and use the results to list on their website the members who are currently in the space. The hope is that others will see this list, and will be incentivized to show up as well. Stretch goal is to implement a Leader Board, ranking members by the amount of time that they spend in the space.

As mentioned before, one of the hardest parts about this career change is keeping up with the conversations of senior programmers. I’m new to the vernacular, and am so fresh to the coding world that I often don’t even know what it is that I don’t know. The guys today suggested I start by exploring some of the things that they’re using for the project. So, I began by looking into Unix and Nmap. I’m still not entirely sure what Unix is or how it differs from the command line that I’ve been using (the commands seem the same…?), but Nmap has been interesting to explore. I’ve worked through the very introductory tutorial here.

Exposing my ignorance:

In order to fully comprehend this tutorial, there are more terms I need to explore.

  • Host
  • Router
  • How IP addresses work
  • Network
  • Ports

All terms that I’ve heard a million times, but which I’m realizing I don’t really fully understand. I feel lost at the end of days like today. But, I have to remember how much more I understand now than I understood 6 months ago. In 6 more months, I’ll be lightyears beyond where I am now. Always learning.
___________

Then, I had my mock technical interview. Unfortunately, due to internet issues, the interviewer kept cutting in and out. I only heard every third word that he said, making the interview pretty incomprehensible. I could tell he was frustrated with my inability to understand him and with me frequently having to ask him to repeat himself. Needless to say, it did not go well. Plus side: He asked me a coding question that I’ve never encountered before, so it’s going to be a good exercise to add to my stack of white-boarding questions.

Posted in Uncategorized

My first interview is nigh

I received my first callback today. It’s from a third-party staffing firm regarding front end and back end positions that they’re trying to fill. My imposter syndrome and overall awkwardness have me doubting my ability to land a job this quickly, but worst case scenario, this will at least be good interview-practice for me. In order to prepare for my meeting with them on Friday, I need to refresh some of my SQL and Rails skills. I decided to devote tomorrow to those two tasks, since the recruiter specifically mentioned them as requirements for their open positions.

Thursday, I have the hour-long mock technical interview that I scheduled through the firm that DBC contracts with. That should also be good preparation for the real thing on Friday. Other than that, I’ll spend Thursday during the day at the maker space, brainstorming the Raspberry Pi project with the guys there.

Overall, I’d say it’s been a productive 4 days out of DBC: Signed on to two volunteer jobs, got free membership at a maker space, met a handful of great folks in the industry, and scheduled my first job interview.

Also, this arrived in the mail today.

//giphy.com/embed/10UeedrT5MIfPG

Posted in Uncategorized

Out of focus

The cold that’s been developing for the past few days has finally knocked me over. I’ve got meetups all week that I’m going to try to drag myself to, but it’s a struggle to focus on anything at the moment.

Some good news though:

The co-founders of the maker space I visited yesterday have asked me to work on a project with them. They currently have a live web-feed of their space and want to add a new feature: using a Raspberry Pi, they want to keep up-to-the-minute track of who is in the space at any given time. This will allow members to check the list online in order to see if there’s anyone in the space that they’d like to meet up with. It sounds like a fun idea and I’m excited about the opportunity. I’ve never worked with a Raspberry Pi before, but I’m getting giddy over the chance to. Plus, this will be a good opportunity to learn new things, expand my skills/resume, and meet some cool people.

In other news:

I talked to the man yesterday about the other volunteer project that I was interested in working on. My plan today was to spend much of the day looking over the APIs they’re using and the code he sent me, but my illness is making that difficult. Regardless, I think I may be in over my head with his project. I’m going to be upfront with him about the fact that I’m a junior dev and there will be a considerable learning curve. I’m eager to give it a shot and help in any way that I can, but I worry that his expectations of me are too lofty for what I can actually deliver.

Posted in JavaScript, workshops

JavaScript Promises

Today, I attended a workshop about JavaScript Promises. I had used promises once before, without really understanding them, and I definitely wasn’t at a point where I could explain what they were or why they were necessary. Today was helpful, though I think I’m only one inch further along in my understanding.

In order to reinforce my own learning (and maybe help some other newbies out), I think I’ll recap the skills that I tackle each day and try put them into easier-to-understand terms.

What is a promise?

JavaScript is “single-threaded”, meaning that multiple tasks can not run at one time. Each task runs sequentially, one after the other. Unfortunately, this means that if task2 relies on information returned by task1, it might run task2 before task1 has returned anything, causing task2 to return undefined.

For example: If you want to edit a user’s email address, you would first have to search for that user’s information. So, you’d query the database (task1), looking for a ‘user’ whose current email address is johnsmith@fake.com. Then, we’d want to wait for the database to return John Smith’s information. Unfortunately, JavaScript doesn’t know how to wait for the database. Since JavaScript has completed it’s job with task1, it’s going to move on to task2 even if the database hasn’t returned the information that we need yet. When task2 runs, JavaScript will get to the bit about our ‘user’, and have no idea who the ‘user’ is, since it didn’t stop and wait for a response in task1.

This is where the “promise” comes in. It essentially acts as an IOU. JavaScript runs task1 and says, “Ok, I know you asked me for this ‘user’ thing. I’m going to do my job and ‘.then’, whenever I hear back from the database, I’ll remember that you wanted something called a ‘user’.”

Still confused?

Maybe I am too…but not quite as confused as I was before I took the two hour workshop. The instructor (a T.A. from Fullstack Academy) was very helpful. Though I felt bad that I was the only one of the 12 RSVPs to show up to the workshop, it certainly was nice to get one-on-one instruction in this. He recommended I watch this video to strengthen my understanding of why promises are necessary:

Additionally, this site does a much better job of explaining promises than I did:

https://scotch.io/tutorials/javascript-promises-for-dummies

To view the tutorial exercises, check out the forked repo:
https://github.com/jepetersohn/promises-public
The solutions are in my branch.

Posted in Uncategorized

First day out

Sitting at a coffee shop in the Merchandise Mart, trying to figure out how to get the most out of the (potentially) lengthy period of unemployment that I’ve just entered. It’s my first day after finishing career week with Dev Bootcamp. I’m sure I feel like most others in my situation do: optimistic, enthusiastic…terrified, overwhelmed. What if I’m not cut out for this? What if my passion isn’t enough to turn me into a quality coder? What if, during my period of unemployment, I completely forget everything I’ve just learned? What if every potential employer I encounter recognizes that I’m a huge fraud who’d never even heard of the command line up until a few months ago?

These fears are helpful motivators; I’ve determined to spend this period of unemployment keeping myself busy with code and finding ways to improve. One of the most important things I’ve learned during my time at DBC: Rather than comparing my current skill level to the skill level of others, I should focus on comparing my current skill level to my former skill level. When I think of it like that, I can be proud of the fact that I didn’t know what the command line was, and now its navigation has entered my muscle memory. It’s also a reminder that there’s always room for growth, and always more to learn. That’s what brings me to the coffee shop this morning: I’m waiting for a JavaScript promises workshop to begin that I found posted online. I’m a little early. Rather than following my first inclination to play games on my phone, I decided to use the time to follow the suggestion of others who had once been in my shoes: Start a blog.

After considering what the heck I should write about, I decided I’d focus on the new things I’m learning and the journey I’m going through towards making a huge career change. The journey from complete amateur who’d never heard of the command line to someone who is worthy of employment in web development.

Posted in Uncategorized

At the maker-space

Rather than sit on my couch and code, I found a local “maker-space” where I could sit around other people and code. Since it’s my first visit, I got a tour of their equipment. Side note: my transformation into a techy must be in full effect because I found myself genuinely interested in the gadgets they have (3D printer, Raspberry Pi – among other things I’ve forgotten the names of).

I sit surrounded by sawdust and power tools I’d be too afraid to use, while a few programmers sit around me and work on their own projects.

This is a great space!

Today’s agenda:

Hone my PHP skills.

The volunteer position I’m interviewing for this afternoon is built in Codeigniter with PHP. While I’m comfortable with the basics of PHP, I worry I’ll be in over my head taking on a large project built entirely in it. I’m working on preparing myself for the opportunity though.

—-

After a productive morning of PHP, Apache, and job-hunting, the owners of the maker-space invited me to join them for lunch across the street. It is admittedly intimidating trying to keep up with the conversation of people who, combined, have likely been programming for longer than I’ve been alive. It was great getting to know others in the industry though. Once I get passed my imposter syndrome, I could see this becoming a good niche for me – something I’ve never felt in other job before.