• Home
  • About
  • Projects
  • Blog
Electric Chance

Life of an iOS Developer + Eager Learner

  • Home
  • About
  • Projects
  • Blog

Le Deli Counter: Parte Un

Let me just say that if you're not doing the Flatiron School's Web Development course on their Learn platform, you should be! It's not like Codecademy (no shade to Codecademy. I absolutely love it and to this day it helps me so much). It's actually not like any other coding resource I've ever used. But talking about Learn is a completely different post. I just wanted to put it out there that it's pretty awesome.

Now. (Le) Deli Counter. It's a section in Learn where I must create three methods that helps a 'deli' keep track of customers. I just completed and passed the first method with a little help from a fellow Learner. Basically I was doing good until I got stuck when a string wasn't returning as I needed it to. It failed to print the right thing. I would get: 

The line is currently: 1. Logan
The line is currently: 1. Logan 2. Avi
The line is currently: 1. Logan 2. Avi 3. Spencer

When I was suppose to get:

The line is currently: 1. Logan 2. Avi 3. Spencer

And here was my incorrect code:

def line(katz_deli)

if katz_deli.count == 0 
puts "The line is currently empty."
else 

line = "The line is currently:"

katz_deli.each_with_index do |value, index|
puts line << " #{index + 1}. #{value}"
end
end
end

I wasn't sure how to get each output of my value and index (1. name 2. name...) to print together in the same string instead of separate lines.

Then a kind Learner came along and supplied this knowledge:

Your code is currently doing exactly what you don't want because the instruction is 'for each person in katz deli print line with person added to line' when it should be 'for each person in katz deli add person to line' and after that (i.e outside of the each-loop block 'print line' '''

That made everything clear and I ended up with this code, the code that passed:

def line(katz_deli)
  if katz_deli.count == 0
    puts "The line is currently empty."
  else
  line = "The line is currently:"
  katz_deli.each_with_index do |value, index|
    line << " #{index + 1}. #{value}"
end
    puts line
end
end

I just had to call 'line' after the block. Before this code I also tried assigning the #{index + 1}. #{value} into a variable (customers) then adding it to 'line' outside of the block, but that wouldn't work because by defining customers in the block I made it a local variable a.k.a unusable outside the block.

Things are always so much easier in retrospect. I have two methods left to complete. I really want to complete them without help. I'll post about how it goes.

Peace.

Saturday 03.19.16
Posted by LC
 

Short, Simple, and Sweet: Each_with_Index

I'm working on a code in Learn, and the hint it it suggested that I use 'each_with_index'. So I do my Googles and come across my least favorite site when it comes to Ruby information, the-site-that-shall-not-be-named, but the one that comes up the most frequently. It wasn't that helpful, but with a little further scrolling I come across this video that made understanding each_with_index so easy! Check it out down below if you got stuck on this simple method comme moi.  Check below the video if you want to see my GIF reaction to the new info provided in the video.

Thursday 03.17.16
Posted by LC
 

Manipulating Arrays and How I Overcomplicate

Completed another lab. It took way longer than it should have because I overcomplicated everything. Initially I failed all the tests, because - well, I had to to find out what I needed to do to pass the tests. I don't know why I decided to also check out the spec file, because that's where I played myself. That's where I began to overcomplicate. So. for example: Instead of what the method should have been: 

def using_pop(songs)
  songs.pop
end

And here's what I did, based on what I saw in the spec file.

def pop(places)
  neighborhoods_in_northwest_brooklyn = ["Brooklyn Yards", "Cadman Plaza", "Clinton Hill", "Downtown Brooklyn", "DUMBO"]
  neighborhoods_in_northwest_brooklyn.pop
end

You see, where I played myself is by inserting the arrays myself - I'm giving variables and putting the elements in them. Pourqoi? Pourque, Laticia? Lesson learned. Don't overcomplicate. This was an exercise to make me proficient in array methods - and I was just adding the unnecessary. But! I'm not going to stress it. I'm learning and mistakes simply won't be repeated. 

This was me when someone helped me understand that I was doing too much - and I passed all 19 tests. Actually, thIs is me every time I finally understand something new in programming. 


Monday 03.14.16
Posted by LC
 

Implementing Prime: Not Knowing What To Do... Until You Know What To Do

That's the name of the lesson I just completed on LEARN. 

Ummm... It was tricky! Basically I had to write a code that determined whether or not a number was a prime number - returning true if it was and false if it wasn't. At first I tried to use the pseudocode on the Wikipedia Primality Test page, but that didn't work. So I did some more research on primes and came across the form 6k + 1: 

If a number leaves a remainder of 0, 2 or 4 when divided by 6, then it is even and therefore non-prime (unless it is 2). If it leaves a remainder of 3 when divided by 6 then it is divisible by 3 and therefore non-prime (unless it is 3). That leaves just the remainders 1 and 5, or in other words, numbers of the form 6k±1. 

So I tried to rework this logic and use it as my code, but despite trying a bunch of different if and elsif statements I could only get 1 of the 2 tests to pass. It was always one or the other, not both. (I should have figured, when I tested the math out on paper it didn't work for numbers like 35 or 121.)

Then I came across this on Wiki:

Let's look at another example, and use trial division to test the primality of 17. Since we now know we do not need to test using divisors greater than √n, we only need to use integer divisors less than or equal to . Those would be 2, 3, and 4. As stated above, we can skip 4 because if 4 evenly divides 17, 2 must also evenly divide 17, which we already would have checked before that. That leaves us with just 2 and 3. After dividing, we find that 17 is not divisible by 2 or 3, and we can confirm that 17 must be prime.

This, with the combination of a contribution from a fellow student on LEARN and some Googles set the light bulb off - and the tests passed (literally the best feeling ever)! Hip Hip Hooray! 

Or Hip Hop Hooray!

PEACE.

Sunday 03.13.16
Posted by LC
 

Code: Debugging the Gender Gap

On Tuesday, I saw Code: Debugging the Gender Gap, which I've wanted to see for months. It's a film that addresses the gender disparity in tech. The film was hosted by Spotify (& Skillshare?) and registered for it through the always wonderful Women Who Code.

It was a great film. It started out with two girls talking, one saying why there was no difference between boys and girls when it comes to math - which I think is a brilliant way to start. Many inspiring women were interviewed, the founder of Girls who Code, Black Girls Code, and Code for Progress. I never knew about Code for Progress before this film. It was created by a Hispanic woman, it's based in DC and it addresses the lack of people of color in technology by pairing them with mentors and training them in code for five months.

They interviewed this amazingly energetic woman who was an animator. She graduated from Harvard with a degree in computer science then combined that with her love for art. She explains that with code you can do anything (I completely agree). You can always take code and combine it with something else you love. I really can't think of a topic I love that cannot be combined and/or ameliorated with code. Education and travel were the first two topics that came to mind for me when she mentioned that (this may be the reason why I'm obsessed with news about companies such as AirBnB, AltSchool, and Hotel Tonight). Back to this animator who works at Pixar - she goes on to explain how code is used in the movie Brave. Code is used to get the bounce in the main character's hair. I couldn't help but think that it is absolutely INSANE how code is behind the most intricate of things. 

It went on to mention an instance when there not being diversity resulted in the death. DEATH. It was when a car manufacturing company began to install air bags into cars and due to the fact that only men were on the development team the airbags were made by and for men - what did that result in? The death of women and children. That was a shocker to me.

On a more positive note they also talked about women being the pioneers of computer science and the decline of women in the computer science in the 80s. They mentioned Ada Lovelace, and talked about the rise of 'Computer Girls' in the 50s and 60s. Check this article out! 


It was also so funny to see how people viewed computers back then, I think at one point in a clip from a video from the 50/60s a man said something along the lines of him "not being able to see the need for more than 50 computers." Hilarious.

There was so much information in this documentary. I hate to sound cheesy, but it was both inspiring and informational. I'm going to see Code again in two weeks. I'll update this post with details I may have forgotten to include.
 

Saturday 03.12.16
Posted by LC
 

Slacking and Not Proud

These last two weeks have been a bit hectic and unstructured. I haven't been able to practice code the way I'd like to. I wanted to be 75% done with LEARN by now and instead I'm at 54%. I'm trying not to beat myself up about it, but honestly with better scheduling and stronger focus I could have reached 75% by now. 

I've been slacking and while that's not something to be proud of, I'm definitely glad that I'm able to call myself out and get my sh*t together.

By this weekend I will reach 60%. I don't care if I have to forego sleep, that will happen. 

 

Friday 03.11.16
Posted by LC
 

Musings: Does Anyone Have the Answer? (Tech's Diversity Problem)

I do a lot of reading about diversity in technology. I do this because I'm a black woman and I want to mentally and emotionally prepare myself for when I do gain employment at a company as a software engineer. Mentally and emotionally prepare myself for what? Imposter syndrome, unconscious bias and the statistical fact that the number of people like me in tech is extremely low.

I'm generally a super positive person, so when I first began reading articles about tech's diversity problem, I believed that these instances were the exception and not the rule. The more I read (and the more I speak to people in tech) the more it seems that it is actually the reverse. Action is being taken, but at the same time everyone is still learning. It seems that everyone is still at the stage where there is no definitive route to a diverse and balanced tech community. Especially for bigger, more established companies. Startups like Slack seem to be doing a better job at diversifying, than companies like Apple. 

But then again, Intel (an undeniably big company) is doing a good and steady job at diversifying their company (though retention is another story). So you see - no definitive route, no one specific group or (kind of) company has the answer (yet). It's interesting to see and read. There are new roles being created, consultants being brought in, programs being created, yet I rarely see news of a significant increase of PoC/WoC in technology. I do realize that this is going to take time. Companies like Girls Who Code, Code 2040, Hack the Hood, and Black Girls Code are readying the new generation, which makes me so, so happy! But what about right now? It's something I think about often. 

If you want to do some musings of your own on the topic, here are some articles that got me thinking:

  • #FFFFFF Diversity - Go, Erica Baker!
  • Why Doesn't Silicon Vally Hire Black Coders
  • Diversity in Tech and What We've All Already Lost
  • A Discussion About Inclusion
  • Twitter Bias
  • Black Girls Code Founder: Kimberly Bryant
  • Convo with Google
  • Pinterest and What They're Doing - Did I mention that I love what Tracy Chou has done/is doing...

There's so much more, but I'll leave it there. This is something I'll continue to think about and read about. It's something that I need to wrap my head around then figure out how to be helpful and take actionable steps. Where should I volunteer, what should I say or do more, how will I assist? What about you... What do you think or feel about tech's diversity problem?

Tuesday 03.08.16
Posted by LC
 

Twitter #HelloWorld Tour: Going into the Unknown

Disclaimer: I am unbelievably tired, so I hope what I am going to write makes sense.

I went to Twitter's #HelloWorld tour yesterday! I got the invite via Women Who Code. I believe that Twitter held 15 spots for WWC members. I promptly signed up, not knowing exactly what it would be about - can you blame me? It's Twitter so I figured whatever it is it was bound to be good. It was. The presentation on this tour was about Fabric, which is a tool that helps developers... well, develop apps! I thought it would be difficult to follow, but luckily it wasn't. Being there - at Twitter, surrounded by (super kind) developers, learning about cool products for developers - further excited me for this field that I want to join. 

I did leave wondering "What is 'diff'?" Definitely researching that this weekend.

It's been a day since I posted a blog post, and I just wanted to share that. I'm going to knock out in my bed now.

Code on!

Wednesday 03.02.16
Posted by LC
 

Musings: Doing TOO Much

I'm pretty sure that I need to focus on one or two learning tool at one time. Last week for example I focused on completing Week 1 of CS50 and my friends website. So LEARN took a backseat around Wednesday. I don't want this to continue to happen, I really like LEARN. 

So, my decision for this very busy week ahead of me will be to complete LEARN by March 7th. Then I can get back into CS50 and practicing sites. 

It'll also be helpful that I will be focusing on one language. Even though I don't have a problem switching from language to language - it actually helps me see and appreciate the commonalities between programming languages - I can really cement what I'm learning by focusing on one.

Okay. I might be fibbing.

I might still try to squeeze some CS50 in during the week. Can't help myself!

 

Monday 02.29.16
Posted by LC
 

I'm Working on a Website & I'm Stuck

I'm constructing a page for my friend (screenshots below) and I am absolutely stuck. I spent half of yesterday trying to put his logo above the navigation bar, but I

  1.  Got distracted by discovering, trying to understand (via Youtube videos) and apply Bootstrap to the website.
  2. Got distracted by Twitter (just being real)

I became frustrated quickly and I think that's because expected this to be a piece of cake, even though I haven't played around with CSS in awhile. Around 8PM last night I ran across this site, so I'll attempt messing around and applying this after work today. 

Here are screenshots of the main page, so far: 

Top half.

Top half.

Wish me luck!

 

Monday 02.29.16
Posted by LC
 

CS50: Week 1

So little time, so much to do. 

This course is REAL. Meaning, this course requires a significant amount of time. There are two (nearly) hour long lectures. There are 'Sections' and 'Shorts' that delve deeper into a specific topic that was covered during the lecture (loops, command line, etc.). Finally there are 'Problem Sets' and 'Walkthroughs' that help you get through the problem sets. Currently I'm half way through the four problems in Problem Set 1. The instructions are succinct and very helpful, so much so that I don't have to watch the 'Walkthrough' videos (yet! I still have two more problems to go) - it doesn't hurt that the problems have been relatively easy. I plan to finish the final two problems tonight, after I finish creating my friends site (which I'll post screenshots of and publish to my Github account).

Here's what went down the second week of Harvard's CS50:

I've highlighted and defined the terms I knew nothing about.

  • loops 
  • boolean 
  • conditions
  • variables 
  • source code 
  • compiler: piece of software that takes source code and produces object code (zeros & ones).
  • command line arguments: other words at the prompt that tweak the behavior of whatever program you're running
  • main, printf - oh yeah, did I mention that they teach in C?
  • char: usually a single byte (or 8 bits) and it represents a single character (like the letter 'A' or an exclamation mark).
  • floats + doubles 
  • format codes
  • switches 
  • the process of a loop
    • initialize 
    • condition 
    • line in code gets executed 
    • final part gets executed (incrementing)
  • command line
  • data types (in C)
    • int 
    • unassigned int 
    • char
    • void
    • and more!

 

Sunday 02.28.16
Posted by LC
 

Big Magic in Coding

"Frustration is not an interruption of your process; frustration is the process."

I just finished reading "Big Magic" by Elizabeth Gilbert, it's a book about creativity; more specifically how to treat creativity and inspiration in your life. I'm indifferent about the book as a whole, but somewhere in the middle she said something that stood out to me that I believe can be applied to the coding process. 

"The fun (the part where it doesn’t feel like work at all) is when you’re actually creating something wonderful, and everything’s going great, and everyone loves it, and you’re flying high. But such instants are rare. You don’t just get to leap from bright moment to bright moment. How you manage yourself between those bright moments, when things aren’t going so great, is a measure of how devoted you are to your vocation, and how equipped you are for the weird demands of creative living."

She goes on to say:


“Everything sucks, some of the time.” You just have to decide what sort of suckage you’re willing to deal with. So the question is not so much “What are you passionate about?” The question is “What are you passionate enough about that you can endure the most disagreeable aspects of the work?”
 

Just a little food for thought.

Saturday 02.27.16
Posted by LC
 

What Kind of Learner Are You?

I'm not the biggest fan of putting people into categories, but somewhere along the road in my coding journey I began to realize the best way I learned code. It was usually through reading or watching a video, then trying out what I just learned, more than once. So I guess I fall into the reading/writing (writing does help me solidify things into my memory) and kinesthetic learner category - with a little bit of visual sprinkled in. 

I'm just putting this out there, because you can watch all the tutorials or read every book that you're told to read, but if you're the kind of person who really, finally understands something only after practicing a few times (by doing), you might (not a scientist here people, just speaking from experience) be delaying your progress. I know that if I listened to an audiobook about programming I would probably have to listen to it about 3 to 4 times before I really let what I was hearing sink in; that or I would have to write anything that stood out to me as I listened to the audiobook. By transcribing what I heard, I would be helping myself learn through listening. 

Anyway, how do you learn best? Or do you not "fit into a category?" Maybe you learn well in all ways - auditory, reading/writing, kinesthetic or visual. Either way, I think when you find what works best for you, you're doing yourself a service and will begin to utilize your learning time more efficiently. 

Here's an article I read a while back about learning/mastering skills quickly: http://rypeapp.com/blog/learning-styles-master-skills/ - hopefully you find it helpful.

Friday 02.26.16
Posted by LC
 

How I Watch CS50 Videos

  • I watch them at 1.5x the normal speed, sometimes 2x, but then I have to be REALLY focused. 
  • I take notes. Think of it as you sitting in on a college class, because you basically are.
  • I play back anything I don't understand until I understand it.
  • With appreciation! Because I still can't believe it's free.

I'm currently on Week 1. Week 0 focused on binary and gave examples through Scratch.

In Week 1 the first video goes over + mention the basics:

  • loops 
  • booleans
  • conditions
  • statements/functions/methods
  • the compiler 
  • comments 
  • command line argument

All that good stuff. Which is probably why I can watch it at 1.5 - 2x the speed. Let's see at what rate I'll be moving in three weeks. 

 

Thursday 02.25.16
Posted by LC
 

Twitter

There are articles all over the internet about what Twitter is doing right and what Twitter is doing wrong. Who they've fired, what they're adding to the app, or why they're bond to succeed or fail. When it comes to these topics I just know what I read, but what I do know from experience is that Twitter is an amazing place for someone who is transitioning into coding. 

People are usually kind. They are twitter chats for new coders, like the #CodeNewbie chats on Wednesday's. You can follow VentureBeat, Tech Crunch, New York Times Technology, Wired or Re/code for the latest news in technology. You can follow the CEOs of your favorite tech company. You can make a list with all the women in tech who inspire you. Even better, if you're feeling weird about seeing so few or no women of color in tech when you read about tech, you can subscribe to a list with solely women of color in tech. Actually, thanks to a brilliant woman on Medium here are 185 Black Women in Tech to Follow on Twitter. You can make your own list!

Twitter is unlike any other platform when it comes to getting information or inspiration for technology IMO. Plus, (not tech related) it's hilarious! If you watch television live (like I do with the Walking Dead), sharing your outrage and reactions with others can be fun.

 

Wednesday 02.24.16
Posted by LC
 

Build Things!

I reached out to someone in tech who I admire. Someone who transitioned to tech and in my eyes is kicking ass. She was kind enough to have a 15 minute conversation with me on Sunday, and she said something that stood out to me. She said that I should build things. 

You probably read that last line and thought "duh," but since I started teaching myself how to code I've mainly been following instructions (on Codecademy) or reading about code. I built things when I was learning HTML and CSS, but haven't attempted to build anything new since I started learning JavaScript. 

Things are starting to spice up as I continue on Learn.co. I just finished their Blackjack portion, where I completed a simple Blackjack game. Nothing crazy. Lots of fun doing it, because I got stuck numerous times. 

I want to make two sites a week. I actually googled "making a website a day" and a woman named Jennifer Dewalt popped up. She built 180 sites in 180 days. That's the way she taught herself how to code, by doing. She saved up, before teaching herself how to code full-time - awesome! - but I don't have that luxury as yet. I want to build 2 sites a week until...(still determining the end date). The sites will follow a theme, that I'll post about later. With my current schedule I'm not sure when I'll begin this. I'm pretty scared about how this will go, but I see that as a good thing. 

Tuesday 02.23.16
Posted by LC
 

Harvard CS50: Week 0

Harvard is offering its CS050 (Intro to Computer Science) course online for FREE. I'm only in the very beginning and it is – as to be expected of Harvard – impressive and entertaining. They even offer a certificate at the end that you could proudly display or share afterwards (for 90 bucks). I won’t be signing up for the certificate, I’m just enjoying the free, quality education.

The course starts off with binary code, which always seemed so scary and complicated from afar, but it is surprisingly easy once broken down. The lectures are taught via videos (ranging from 45 minutes to an hour, from what I’ve seen so far) and are accompanied by mini videos that aid and add to the main lecture videos. There are also Problem Sets, that I will update you on later, after I’ve completed them.

More info HERE.

 

Monday 02.22.16
Posted by LC
 

Resources and Suggestions

Learning how to programming is not an easy road, but luckily there are so many resources right at our finger tips! Here are some resources that I've used + plan to use, as well as some suggestions:

Books: 

  • Eloquent JavaScript by Marijn Haverbeke
  • Learn to Program by Chris Pine
  • C Programming Absolute Beginner’s Guide - I haven't gotten to this yet. 
  • Ruby the Hard Way by Zed Shaw - Next up.

Websites:

  • Codecademy (I will always recommend this to someone new to coding)
  • Code School
  • Learn.co
  • HackerRank - for programming challenges (which I personally can use all the help with)
  • edX.org (amazing resource! Not only for computer science and/or programming, they have classes for an array of subjects)
  • Coderbyte  - I honestly have only completed one challenge on this site. There is a monthly fee if you want access to all of their challenges. They provide solution to all challenges.

In-person

  • Go to a meet-up! - Women Who Code may be the best thing that has happened to me! I always leave their meet ups feeling confident and inspired. I'll post more about WWC later.
  • Find a friend or acquaintance who knows about programming - I'm still on this search. 
  • Go to a Hackaton - I will be attending my first one in March. Get this, it's a "Hip Hop Hackaton!" 

I'll update this as I learn or hear about more resources.

Sunday 02.21.16
Posted by LC
 

My Code Story

I began coding a few days after I overheard two third graders discussing the Hour of Code (Shoutout to Code.org!). Being the curious person that I am I asked them about it; they explained it to me and I still had questions so I went home and googled “code.” I eventually came across Codecademy.

I started with their HTML & CSS course. It was 7 hours long, but somehow felt like two. Learning HTML and CSS on Codecademy was cool, but it didn’t really give me the confidence to build things outside their site. So I did HTML and CSS on SkillCrush, which was great. As practice I made a personal site with the Brooklyn Bridge as the background and a little blurb about myself - it was simple and fun.

I created and recreated so many personal blogs, I didn’t have a domain name to attach them to, but it was still fun. Next I moved on to Codecademy’s Make an Interactive Website, and that introduced me to…

Javascript:

I can’t remember this course actually teaching me anything about JavaScript, but it brought its existence to my attention. Again, like HTML and CSS, the Interactive Website Course was fun and easy. So feeling pretty confident, I moved on to the Javascript course and everything was going nice and… you guessed it - easy - until I reached objects. This is when I bust a sweat (okay, not literally) and I found myself going to the forum for help - or if I was too stubborn to go to the forum. I’d step away for an hour or a day and come back with fresh eyes. Something interesting happened when JavaScript got difficult. I realized that I really love this “code” thing. I love the rollercoaster ride of feelings as I learned  to code.

The roller coaster of feeling usually went something like this:

  1. Feeling like a boss breezing through exercises.

  2. Feeling confused when an error occurs, because I thought everything was right.

  3. Feeling calm, because I think “Okay. Something is wrong, but I got this!”

(Two hours later, same problem)

  1. Feeling frustrated after making many changes.

  2. Feeling victorious when you finally see where you messed up.

  3. Feeling content when the code finally runs *insert victory dance*

But I love being stuck on a problem for an hour or two, then “miraculously” just getting it. It is such an awesome feeling, even at the most elementary level – I mean, let’s be honest  – Codecademy courses aren’t extremely hard. They’re a tricky pest, but in the grand scheme of programming I know that conquering Codecademy is just the surface of the 12 tier cake of programming that I plan to get through. Nevertheless, regardless of how elementary, that feeling of victory will always feel AH-MAZING.

Now, I’m getting into Ruby. I’m using this program called Learn from the Flatiron School. It’s teaching me how to use code in conjunction with my Terminal. My Terminal - I had no idea this even existed. In the past I only used Sublime Text to play around and make sites with HTML and CSS; now I use it for the Learn lessons. Everything I do is uploaded onto Github (which still intimidates me, even after a great WWC workshop that explained Github and its importance).

I’m also restarting Harvard’s CS50 course on edX. For some reason (insanity?) I started it this fall, while in the middle of my final semester of school.

I’m not going as fast I would like, but I’m always moving. I’m staying consistent. If there’s a day I can’t do work in Sublime and Terminal, I find time to watch a video on coding or read about coding (there are two programming books in my phone). 

Can’t stop, won’t stop!

*Article photo courtesy of #WOCinTech and their amazing stock photos!

 

 

Saturday 02.20.16
Posted by LC
 
Newer / Older

Powered by Squarespace.