Monday
Mondays are hard, emotionally and physically. It's hard to reboot from a weekend of relaxation and relatively easy skills assessment, and even harder to delve deep into a subject of Python I'm not all too comfortable with--dictionaries. Even though our lecturers have a knack of explaining things in a really easy, almost matter-of-fact way that clarifies confusing concepts to us (or at least to me), our knowledge is usually truly put to the test during lab. I was paired with an awesome partner who resonated my exact thoughts on being on the same wavelength and page (of the dictionary, so to speak) as each other, and it made dictionaries seem so much less daunting.
All in all, I was so glad we got to practice using dictionaries as a counting tool, but I still feel I need some practice to solidify my comfort in storing this particular way to solve problems when it comes to counting occurrences of things in Python.
In the afternoon, just as I was feeling like my introverted self was starting to really surface, I found out that I was to pair by none other than myself! To be honest, I was pretty excited to see how this would go, because I've always wondered how fast I could get one of our lab exercises done alone, and I was ready to rise up to the challenge. It was not long after that I began to realize why the "two heads are better than one" concept really holds true; I was stuck on something for a quite a bit and realized later that it was something small and rather trivial that I overlooked, and lamented to the lack of a partner who would have for sure caught that in a heartbeat as a I was typing.
Great lesson learned; as much as pair programming can be daunting and unnatural, it is necessary for faster growth!
Tuesday
This was one of the more difficult days (if not most) for me so far in this program. As I mentioned, I'm not that great at dictionaries to begin with, and my confidence took a blow when it came to using dictionaries on our Markov Chains lab exercise. It was fascinating to learn about Markov Chains and how this algorithm works, but putting it to practice was a doozy.
It usually takes me a minute or two of thinking logistically how I would design and write my code before I delve in because I like keeping track of when, why, and how I should place things where I think they should be. That way, at least I'll have an idea of where it might have broken if/when it does and trace the bugs from there. However, this isn't the same approach other people might take, and it can sometimes make me feel like I'm not processing info or coming up with plausible solutions as fast as my partner is. I definitely do not enjoy feeling like I'm not bringing enough code to the table. In the end though, I told myself that it's whether I can review and retain the information that matters the most.
Wednesday
We continued working on our Markov Chains lab exercise today, this time with a "real world" application courtesy of Twitter's API. My partner and I got a little too ambitious with our content idea for our tweet generator that we ended up in data cleaning hell for the last hour or so until the end of the day. Dirty data, I hope our encounters will be infrequent and short.
On a happier note, my advisor approved my independent project idea! He said he liked it a lot and immediately understood how and why I wanted to build it, and was able to give examples of how he can see it being used in real life situations. Even though I know it's not always a good thing to seek validation to feel good about yourself, I think that it was quite rewarding in this particular case as it was coming from someone who is an expert in code, knows what is feasible for me, and can be a great resource when the time comes to get me there. It's truly a wonderful feeling!
I also met with Jen from Career Services during lunch hour for my career strategy session. As it turns out, she and I have a good amount of history and interests in common! We both enjoy doing artsy, creative stuff. We were both in our Yearbook teams in high school, wanted to become graphic designers at some point in high school/college, and ended up where we are now because of it. She's also a huge foodie!
Thursday
After all that Markov Chains stuff, I had thought that everything would just get even harder with Python classes, as classes are always something that online courses and books get to last. They are a lofty subject and hard to drill into your brain, but I think all those long paragraphs of explanations, analogies, and such from Learn Python the Hard Way really helped drive the core concepts into my brain for months prior to Hackbright, so it was actually pretty easy for me follow along our lectures on this topic.
And who knew you can actually draw things with Python? That was a cool thing to discover!
After class I wanted to revisit some old stomping grounds, and decided to nestle somewhere familiar to me pre-Hackbright: PyLadies study group! I could actually feel my body relax from all the tension that's been accumulating in my brain these past two weeks just by stepping into Clover Health. I was so happy to see the nice security guy at the elevators, the study group hosts, the neatly lined rows of tea and drinks in the fridge, and the [leftover] food.
We also got to see a great presentation from our guest speaker on how she analyzed social media groups, content, and activity around the 2016 presidential elections. It honestly made me feel just a tad bit smarter being able to recognize some of the libraries/modules she used in her data scraping and analyses that I would otherwise have no clue about if it weren't for Hackbright.
Friday
Classes galore! We stayed with our Thu partners for lab and advanced into more complicated features of Python classes. I had always been instructed to stay away from class inheritance, especially multiple inheritance (as LPTHW tells it, like princes of fairytales who cannot un-discover a forbidden forest that hides the dragon he must defeat, novice programmers cannot resist the lure of inheritance in classes), but it wasn't as bad as I thought it would be. If anything, our lectures on inheritance actually helped me solidify my knowledge on classes as a whole. Even if I may not end up using a ton of child classes that spawn off a million other parent ones in my code (who knows), at least I'll know how to do it if I ever need to venture into that forbidden forest!
At the end of the day, we had a nice, relaxing pizza social. No card games this time, just plain ol' talking, which suited me just fine!
----
Last Thoughts
This week's skills assessment was long. Like cancel-hangout-plans-with-friend-halfway-through-Sunday-because-this-will-take-10-hours-long long. I felt bad, as I haven't met up with Yammi in a while, but she completely understands, which is awesome. Focusing on this program has become my top priority, and it's a comfort knowing I have supportive friends and family who get that I would be doing myself a disservice if I didn't complete the assessment on time knowing I could have had more time to do it.
Also, can I just say that there must be some kind of rewiring happening in your brain when you transition into a [software] engineer that makes you start having an affinity for stickers?? Jesse has always enjoyed collecting stickers and putting them on his notebooks, dresser, etc. right away, and I've always kind of laughed at this eccentric behavior. However, now I find myself drawn to all the various GitHub Octocat stickers, and even just the random ones at meetups, shops, etc. Jesse is trying to credit himself for getting my on this track but I honestly think it's the little engineer in me slowly but surely showing her true colors.
Wednesday, April 19, 2017
Sunday, April 9, 2017
Hackbright Week 1: Excitement, Exhaustion, Rainy Thoughts, and Anticipation
I've officially completed my first week of Hackbright, including the very first weekend skills assessment homework! I think it's safe to say that it has all been what I've been expecting and more. It still feels surreal that I'm now back in "school" in an environment where my main purpose is to learn, learn, and learn more. I'm not bogged down by the need to please clients or write a million replies to emails. Instead I'm focused on just me and the betterment of myself.
First things first, can I just say that I've never had more need to snack, sleep, and recharge from all the extroverted activities we've had to do? I've never been much of a snacker...more of a sit-down-and-eat-a-nice-filling-meal-at-the-end-of-the-day kind of person. However, now that we're constantly being injected with so much new info and knowledge each day, it's like my brain is burning through its fuel so fast that it can barely keep up without an hourly dosage of granola.
Day 1: Excitement
I think I can safely speak for everyone in my cohort that there was not a single soul there not to be excited in the presence of other strong, likeminded women. Here I was, in the cream of the crop of picks at Hackbright, finally fulfilling my dream! We spend a good half of the day going through the long but necessary laundry list of housekeeping details.
Later, we split up into our Hogwarts houses (Gryffindor--I've always known I'd be in your house!), met our fellow housemates, came up with our attendance cheer ("Code More!"), and split for lunch. I had a great time getting to know a few of my cohort mates as we bonded over talk of food. In the afternoon, we had a short lecture on mazes and algorithms, and split into pairs for our first pair programming session. Even after having slogged through the painfulness of Scratch before, I was apparently still not immune to Blocky's similar traps. I cannot for the life of me wrap my head around these programs.
Day 2: Exhaustion
With the lack of sleep from the past week, the exhaustion had started to really kick in by Day 2. I found myself really focused in lectures and engaged in conversation, but by the afternoon I was really starting to feel that sleep would be a big component in ensuring success in this program.
Two of the biggest things I learned on this day?
1. Try to give things a try, and not just on the “try / except” statements (sorry, I had to do it), but in opening my mind to new ways of thinking and being willing to break code to make code (as aptly put by one of our TAs). I was so set on how my partner and I should place our code in this newly introduced method that I felt bad when our instructor came over, broke what we thought was a good code, and showed us that what my partner had suggested might be a solution was right after all. Also, being exposed to the beauty of the “while True” loop was not lost on me; thanks pair programming partner! You have opened my eyes to why two heads is better than one.
2. There is no way I should think that I could go out on a weekday night now and not suffer. I went to my boyfriend’s friend’s birthday dinner in Palo Alto after class, and as birthdays go, ended up staying there until close to midnight. What happened at the dinner? I can’t really say because the whole time I was there I wasn’t there; all I could think about was sleep and homework. Lesson learned: stay close to home on weekday nights lest you want to be the Debbie Downer of the bunch!
Day 3: Accomplishment
Nothing says a good week like a good Hump Day. Though I was still tired from the night/week before, I came in ready to tackle the day.
During pair programming, my partner and I honed in on math functions/operators and with every additional “Further Study” challenge we completed, the more I could feel my confidence get a small boost. My partner reminded me the useful range() function when it comes to iterating over an arbitrary number of arguments that a user inputs. range() has always been a weak spot for me as it hasn’t been drilled in my head that it is a number (or set range of numbers), and not an actual list to iterate over. I feel like I still need to solidify my comfortableness in using range() in the next couple of days.
In the afternoon, my partner and I were so engrossed with our self-made calculator that we decided to power through the challenges until the end of the day. It was an immense feeling of accomplishment that could not be beat by even the throbbing headache that ensued afterwards.
My boyfriend being the saint he is, came over to cook me dinner while I napped off the headache. Needless to say, I cannot be grateful enough for the wonderful support system I have so close to home!
Day 4: Rainy Thoughts
First things first, can I just say that I've never had more need to snack, sleep, and recharge from all the extroverted activities we've had to do? I've never been much of a snacker...more of a sit-down-and-eat-a-nice-filling-meal-at-the-end-of-the-day kind of person. However, now that we're constantly being injected with so much new info and knowledge each day, it's like my brain is burning through its fuel so fast that it can barely keep up without an hourly dosage of granola.
Day 1: Excitement
I think I can safely speak for everyone in my cohort that there was not a single soul there not to be excited in the presence of other strong, likeminded women. Here I was, in the cream of the crop of picks at Hackbright, finally fulfilling my dream! We spend a good half of the day going through the long but necessary laundry list of housekeeping details.
Later, we split up into our Hogwarts houses (Gryffindor--I've always known I'd be in your house!), met our fellow housemates, came up with our attendance cheer ("Code More!"), and split for lunch. I had a great time getting to know a few of my cohort mates as we bonded over talk of food. In the afternoon, we had a short lecture on mazes and algorithms, and split into pairs for our first pair programming session. Even after having slogged through the painfulness of Scratch before, I was apparently still not immune to Blocky's similar traps. I cannot for the life of me wrap my head around these programs.
Day 2: Exhaustion
With the lack of sleep from the past week, the exhaustion had started to really kick in by Day 2. I found myself really focused in lectures and engaged in conversation, but by the afternoon I was really starting to feel that sleep would be a big component in ensuring success in this program.
Two of the biggest things I learned on this day?
1. Try to give things a try, and not just on the “try / except” statements (sorry, I had to do it), but in opening my mind to new ways of thinking and being willing to break code to make code (as aptly put by one of our TAs). I was so set on how my partner and I should place our code in this newly introduced method that I felt bad when our instructor came over, broke what we thought was a good code, and showed us that what my partner had suggested might be a solution was right after all. Also, being exposed to the beauty of the “while True” loop was not lost on me; thanks pair programming partner! You have opened my eyes to why two heads is better than one.
2. There is no way I should think that I could go out on a weekday night now and not suffer. I went to my boyfriend’s friend’s birthday dinner in Palo Alto after class, and as birthdays go, ended up staying there until close to midnight. What happened at the dinner? I can’t really say because the whole time I was there I wasn’t there; all I could think about was sleep and homework. Lesson learned: stay close to home on weekday nights lest you want to be the Debbie Downer of the bunch!
Day 3: Accomplishment
Nothing says a good week like a good Hump Day. Though I was still tired from the night/week before, I came in ready to tackle the day.
During pair programming, my partner and I honed in on math functions/operators and with every additional “Further Study” challenge we completed, the more I could feel my confidence get a small boost. My partner reminded me the useful range() function when it comes to iterating over an arbitrary number of arguments that a user inputs. range() has always been a weak spot for me as it hasn’t been drilled in my head that it is a number (or set range of numbers), and not an actual list to iterate over. I feel like I still need to solidify my comfortableness in using range() in the next couple of days.
In the afternoon, my partner and I were so engrossed with our self-made calculator that we decided to power through the challenges until the end of the day. It was an immense feeling of accomplishment that could not be beat by even the throbbing headache that ensued afterwards.
My boyfriend being the saint he is, came over to cook me dinner while I napped off the headache. Needless to say, I cannot be grateful enough for the wonderful support system I have so close to home!
Day 4: Rainy Thoughts
So I knew this day would come; I had always felt the self-doubt bubbling beneath the surface long before Hackbright, but it didn’t really come out to play until Day 4 when I felt myself struggling to keep up with my partner on coming up with solutions to create our own list functions that didn’t use built in list methods like extend, append, etc.
Just FYI My partner did give me full disclosure that she had experience in the material, which I really appreciated because when I was struggling to understand how she came to the solution she did, I was able to pick her brains on her thought process. She was really patient in explaining it over and over again until the light bulb started glowing, although it did not fully light up until I took the opportunity to read the code repeatedly while she was at her advising session.
I guess I thought I had the concept of lists down before this day, but it turns out that slicing them is a whole other beast.
To top it off, it started storming that day, which I’d like to think was a reflection of my own mood, and while I was walking in the rain armed with groceries to the Powell Muni station, I realized I had left my coffee cup still half full of coffee on the shag rug in the lecture hall. To ease my mind, I ended up walking back to Hackbright, found out someone had already cleaned up my mess, and decided to leave a “sorry” post-it next to my seat.
Day 5: Fri-Yay!
By the time Day 5 rolled around, I decided to take the encouraging notes plastered all over Hackbright to heart and reminded myself that hard as it may be, this is not an arms race. Everyone learns at their own pace and are their own benchmark of success. Did I acquire knowledge I didn’t know a week ago? Hell yes. Did I push myself out of my comfort zone? I would say so!
It was great being able to socialize with the Hackbright staff during our Friday night social. I got to know a bit more about Joel, Kiko, and Ahmad that I don’t think I would have otherwise been able to. It was also just nice being able to relax and have a good laugh with everyone during Taboo.
I can’t wait to learn more and finally be able to acquire all the knowledge I need to build my independent project and call it my own!
Just FYI My partner did give me full disclosure that she had experience in the material, which I really appreciated because when I was struggling to understand how she came to the solution she did, I was able to pick her brains on her thought process. She was really patient in explaining it over and over again until the light bulb started glowing, although it did not fully light up until I took the opportunity to read the code repeatedly while she was at her advising session.
I guess I thought I had the concept of lists down before this day, but it turns out that slicing them is a whole other beast.
To top it off, it started storming that day, which I’d like to think was a reflection of my own mood, and while I was walking in the rain armed with groceries to the Powell Muni station, I realized I had left my coffee cup still half full of coffee on the shag rug in the lecture hall. To ease my mind, I ended up walking back to Hackbright, found out someone had already cleaned up my mess, and decided to leave a “sorry” post-it next to my seat.
Day 5: Fri-Yay!
By the time Day 5 rolled around, I decided to take the encouraging notes plastered all over Hackbright to heart and reminded myself that hard as it may be, this is not an arms race. Everyone learns at their own pace and are their own benchmark of success. Did I acquire knowledge I didn’t know a week ago? Hell yes. Did I push myself out of my comfort zone? I would say so!
It was great being able to socialize with the Hackbright staff during our Friday night social. I got to know a bit more about Joel, Kiko, and Ahmad that I don’t think I would have otherwise been able to. It was also just nice being able to relax and have a good laugh with everyone during Taboo.
I can’t wait to learn more and finally be able to acquire all the knowledge I need to build my independent project and call it my own!
Sunday, March 5, 2017
Saturday, February 18, 2017
Fried Rice, Rice Baby! Part 1 Completed: The Check & List (aka "Checklist") of Ingredients
So it's been a few weeks since I started on my fried rice recipe generator on Python. While I haven't been working on it nonstop or consistently (I took a break in between to learn the basics of Git, play around with Github, and polish my knowledge on the command line), it's something that I've been slowly chipping away at.
There's a lot of repeats in the code, such as asking the user for input on whether they have meat, veggies, or even the basic rice and eggs for their fried rice, which I'm hoping once I become more knowledgeable in Python I will be able to return to the code and point out ALL the parts that I can pare down, as it becomes quite laborious to scroll through all this code.
Anywho, here's a screenshot of what Part 1 of Fried Rice, Rice Baby can do! First it's an ingredient check of the essentials (day-old rice, eggs), then an ingredient check of optional ingredients (meat, veggies, "flavor makers" aka garlic/onion/soy sauce).
Why do I ask for these optional ingredients? Because as you will see later on, it affects the order in which things need to be cooked. For example, if you have bacon for the meat, which takes longer to cook and releases a lot of fat, as opposed to shrimp, which cooks fairly quickly and release no fat, you will need to add bacon first above everything else in a Bacon Fried Rice dish as opposed to Shrimp Fried Rice dish.
There's a lot of repeats in the code, such as asking the user for input on whether they have meat, veggies, or even the basic rice and eggs for their fried rice, which I'm hoping once I become more knowledgeable in Python I will be able to return to the code and point out ALL the parts that I can pare down, as it becomes quite laborious to scroll through all this code.
Anywho, here's a screenshot of what Part 1 of Fried Rice, Rice Baby can do! First it's an ingredient check of the essentials (day-old rice, eggs), then an ingredient check of optional ingredients (meat, veggies, "flavor makers" aka garlic/onion/soy sauce).
Why do I ask for these optional ingredients? Because as you will see later on, it affects the order in which things need to be cooked. For example, if you have bacon for the meat, which takes longer to cook and releases a lot of fat, as opposed to shrimp, which cooks fairly quickly and release no fat, you will need to add bacon first above everything else in a Bacon Fried Rice dish as opposed to Shrimp Fried Rice dish.
From initial outline (which you can see in a previous blog post):
To code:
To final output of ingredient check & list (aka "checklist" hahahah)
Sunday, February 5, 2017
Sunday, January 22, 2017
Sunday, January 15, 2017
LPTHW Ex. 36 Challenge - Fried Rice, Rice Baby! pt. 1
So over a year ago when I decided to apply to Hackbright and first came across the expertise essay portion, the prompt did not yet include the "but please...no recipes!" part. I'm guessing this was later added on because recipes seem to be the easy way out for this part of the application. After all, every recipe is naturally a step-by-step process.
Anyway, I wanted to do a recipe not because it seemed like the easy way out, but because I'm a huge fan of cooking. More often than not when I cook around my friends, I end up spending 15-20min spewing the recipe to them out of excitement (which they probably just pretended to be interested in).
One thing I'm really good at cooking is fried rice. It's one of the first things I learned how to cook when I was [basically] a toddler, and after years of cooking it I can practically do it in my sleep now. I never realized there was a science/formula to it until I tried to explain it to someone. For instance, you have to scramble the egg first separately from everything else, but only 3/4 way there to being fully cooked. But wait, if there's some greasier type of meat you want to use in your fried rice like bacon, you should conserve on your oil and just use bacon oil to cook the eggs, so the order in which the ingredients go in the pan gets all reshuffled again.
Now that I'm tasked in LPTHW with creating my own mini if-else-while-for-loop game, I can now revisit what I never got to submit for my Hackbright application: How to make some fly, fried rice, rice baby! (Note: my final expertise essay was better than a recipe for fried rice, just putting that out there in case you're wondering)
In this Part I, I will outline what needs to be done in plain English.
Let's cook up some fried rice!
Anyway, I wanted to do a recipe not because it seemed like the easy way out, but because I'm a huge fan of cooking. More often than not when I cook around my friends, I end up spending 15-20min spewing the recipe to them out of excitement (which they probably just pretended to be interested in).
One thing I'm really good at cooking is fried rice. It's one of the first things I learned how to cook when I was [basically] a toddler, and after years of cooking it I can practically do it in my sleep now. I never realized there was a science/formula to it until I tried to explain it to someone. For instance, you have to scramble the egg first separately from everything else, but only 3/4 way there to being fully cooked. But wait, if there's some greasier type of meat you want to use in your fried rice like bacon, you should conserve on your oil and just use bacon oil to cook the eggs, so the order in which the ingredients go in the pan gets all reshuffled again.
Now that I'm tasked in LPTHW with creating my own mini if-else-while-for-loop game, I can now revisit what I never got to submit for my Hackbright application: How to make some fly, fried rice, rice baby! (Note: my final expertise essay was better than a recipe for fried rice, just putting that out there in case you're wondering)
In this Part I, I will outline what needs to be done in plain English.
Let's cook up some fried rice!
---------------------------------------
#We are going to assume that you have the essentials: oil, salt, pepper
Ingredient Check:
1. Do you have day-old rice?
a. Yes -> move to step 2
b. No -> Go make some rice and come back to this tomorrow! break();
2. Do you have eggs?
a. Yes -> move to step 3
b. No -> Go to the grocery store and get some! I recommend Trader Joe's; their eggs are hella cheap!
3. Do you have meat/protein you want to add?
a. Yes -> All right, things are gonna get beef'd up here! Is the meat on the greasier, drier or moist side (think bacon vs. chicken vs. shrimp)
1. Greasier/high fat content (bacon/pork belly, ground beef/pork) -> meat.append(1)
2. Drier/ med-low fat content (chicken, turkey, pork/beef strips, tofu/soy) -> meat.append(2)
3. Moist (seafood) -> meat.append(3)
b. No -> Keeping it simple, I like it.
4. Do you have veggies you want to add?
a. Yes
1. Keeping it healthy, go you! If it's something you need more than 5-7 min to cook (think: potatoes, squash), prepare beforehand
b. No
1. It's ok, veggies are overrated sometimes ;)
5. Additional flavor makers:
a. green onions
b. garlic
c. soy sauce
#note: when we've reached this point, assuming user has bare minimum w/ essential ingredients: rice and eggs.
---------
#based on given ingredients, append instructions to full recipe print out
Cooking Process
1. Check meat status (skip to 2 if no meat)
meat codes: 1=greasier; 2=drier; 3=moist
if meat[0] == 1:
a. cook meat so you can use the fat. remove meat.
b. if lots of grease, pour some out
c. if not much fat, add a little more oil. careful not to coat too much of the pan
if meat[0] ==2:
a. append instructions 2-5, 7
if meat[0]==3:
a. append instructions 1, 4-8
2. Scramble and cook the eggs. Do not fully cook the eggs! Remove eggs and set aside once they are 2/3 way cooked
3. Cook your meat, when it's cooked on the outside, go to step 4
4. Add your day-old rice into the pan, break up the grains if they're sticking together
5. Using any of the flavor makers?
1. If yes, choose from the below
a. Using green onion
1. slice and separate the white & light green portions from the dark green
2. add in the white & light green parts to the pan and saute
d. mince the garlic and add to pan. Sautee!
e. season with salt, pepper, (and dash of soy sauce if using)
2. if no, skip to step 6
6. Add in your seafood and cook until color/texture has changed indicating it's cooked. move the rice to other side of pan to make room
7. Add egg back in the pan, stir around until cooked
8. Add green parts of the green onion in the pan, stir in with the rest and serve!
Subscribe to:
Posts (Atom)






