Java, Algorithms and Data Structures

books covering Java, Algorithms, and data structures

What’s Java?

Java is currently one of the most popular programming languages being used. It has about 10 million users.
NOTE: Java and JavaScript are not the same thing; in fact, they are not even related. JavaScript is a scripting language which is used mainly inside of web browsers. -Wikipedia

What’s an Algorithm?

An algorithm is a fancy step-by-step to-do list for a computer.

A recipe is a good example of an algorithm because it tells you what you need to do step by step. It takes inputs (ingredients) and produces an output (the completed dish). -Wikipedia

What are Data Structures?

A data structure is a means by which we store organize data to facilitate access and modifications. –Yacoby

What’s this difficult to understand jargon below?

Below I am actively adding answers to any brief code challenges I successfully complete for archival and reference purposes.

Advertisements

Fact Ketchup 06/16/2016

Ketchup is messy and all over the place, so are these facts:

  • I’m battling anxiety and exhaustion daily, and I’m losing.
  • My Javascript teacher’s name is Mike, my Java teacher’s name was Perry, my Intro teacher’s name was Leroi. They all have fantastic hair.
  • I’m behind on blog posts and my Epicodus lessons, but I’m learning not to be to hard on myself, and to persist in spite of the overwhelming workload building around me. It’s working.
  • I purchased, and finished, a box of Walker’s butter cookies this afternoon. They were so delicious. I.have.no.shame!
  • An organization advancing women in tech assigned me a mentor…a male mentor. Seems noble of him to volunteer for such an organization.
  • I don’t think Michael (Epicodus founder) wants us using kitchen chairs with the desks. He returns them to the kitchen in the evenings. Or maybe he just wants us to return them when we’re done…
  • This is my second weekend in a row going home. This weekend my sister will be graduating from high school!
  • I forget how far away I am from anyplace I’ve lived. When I remember I thank God for the blessing. #MightyLongWay
  • Visited Portland’s living room today before heading to the airport:
Pioneer Courthouse Square
Pioneer Courthouse Square
  • Met an empathetic robot named Pepper on Tuesday evening at New Relic:
IMG_20160614_214535
#MeetPepper

There’s more but I’m too tired to recall…until next time ❤

Behind Door #3? Hello Ember! 06/13/16

TRAIL

Admittedly I didn’t do any Ember in Chicago, and sadly this mistake will probably be repeated this weekend. On the bright side, my sister was gorgeous for prom this past Friday and will be walking across the stage this Friday. I’m so happy I’m able to be there for both and excited for her to begin college!

Considering how far behind I was last week I covered a lot of ground today and plan on continuing when I get home today.

Also we’re choosing group projects today through Wednesday, but because I’m behind I have no clue what I would like to make. I need to hurry and catch up. I’m hoping to briefly document what I learn each day once I’m caught up, but until then…

TRACKS

Going home reminded me of how unlikely my circumstances are and what it took to get here. I mean what are the chances, ya know, that I would be here in Portland, or that I would be in Nashville, Atlanta, Auburn etc., each experience serving a role in something much bigger?

My essential, but less than traditional progression reminds me of a quote by Alex Banayan I read on developer, Haseeb Qureshi’s blog :

All highly successful people treat life, business, and success just like a nightclub. There are always three ways in.

There’s the First Door, where 99% of people wait in line, hoping to get in.

There’s the Second Door, where billionaires and royalty slip through.

But then there is always, always… the Third Door. It’s the entrance where you have to jump out of line, run down the alley, climb over the dumpster, bang on the door a hundred times, crack open the window, and sneak through the kitchen. But there’s always a way in.

Whether it’s how Bill Gates sold his first piece of software, or how Steven Spielberg became the youngest director at a major studio in Hollywood — they all took the Third Door.

Quality Developer Qualities 06/09/16

TRAIL

I finished both the Independent Projects I was behind on! …and you were worried. Pfst! Not to mention how well my code review went. Now on to Ember.js. Rumor has it Ember is easier to set up than Angular, so there’s something to look forward to.

I’ll be visiting home (Chicago) this weekend and plan on binging on my Ember lessons. Keyword: ‘plan’. Seriously, I’ll do my best 😉 .

Enough IQ, on to EQ!

EQ, as defined by Wikipedia, is the capacity of individuals to recognize their own, and other people’s emotions, to discriminate between different feelings and label them appropriately, and to use emotional information to guide thinking and behavior.

Good to know right? Why is this relevant in a web developers blog you ask? Wellll…

The dream is to learn enough code to make tons of money, retire from Google at 42 and buy a small undeveloped island off the cost of Dubai. The only problem with is that it simply doesn’t work that way.

Many budding developers are being sold the dream of code being a path to wealth; a means to escape economic disparity. It can be, but not with just a novice knowledge of a single coding language. There are professionals with a mastery of a particular language, looking for a career in another. My Java instructor Perry Eising once told me over lunch, employers are looking for developers that are “tenacious, great problem solvers, and great communicators.” She mentioned nothing about knowing the most languages. Of course employers are expecting candidates to have a foundational knowledge of web development, but apparently these soft skills are highly sought after as well.

This comes as a bit of a relief for me. It’s encouraging to know employers are expecting me to continue learning through my employment, and I look forward to doing so.

TRACKS

Why Epicodus? Why Portland? Why not someplace closer? WHY?!?

Simple. Growth Mindset.

FB_IMG_1461717345271

In 2010 I convinced an inner-city workforce center that my workforce training grant would be best used on a web development program over the usual CDL, CNA, LPN, and tradesmen training programs. It took me over a month and required a substantial amount of research and documentation on my behalf, but I finally got a yes. I would become a coder thanks to my tenacity, great problem solving skills, and great communication skills. (see what I did there?). It didn’t take long for me to realize, web development, not unlike learning a trade, would take months of practice to become a lucrative skill. Unlike a trade, there was no certificate or degree that would prove my ability. I needed an amazing portfolio to showcase my understanding of web development concepts.

So I set off on building a portfolio. In the mean time I freelanced in digital marking to practice HTML and CSS, and to generate income. I soon felt ready to apply for a junior developer position, and was politely informed, by several recruiter and interviewers, I simply didn’t have the skills. After all the work I put into my workforce training, and all the self-teaching I WAS NOT GOOD ENOUGH.

I felt like for every new concept I picked up there were 10 more barriers to entry. I needed to learn a back-end language or learn front end JavaScript. I was already working in HTML and CSS so continuing on a front-end path only made sense, so I just started and kept at it. I maintained a growth mindset. I decided I could and would learn; that those so called barriers didn’t exist and that they were admission instead. Admission into the field of development, admission of my shortcomings, admissions of being uncomfortable not being knowledgeable, admission that I WOULD NOT EVER GIVE UP.

I knew I needed more education, and I knew I needed to be in a place that would be equally as supportive emotionally as it was academically, and I found that at Epicodus

Epicodus encourages inclusiveness and a growth mindset in addition to offering its curriculum online for free. With regard to having a growth mindset, the curriculum actually reads “If you have a growth mindset — if you enjoy challenging yourself and view your failures as opportunities to learn, not mistakes to be ashamed of — you’ll be much more successful at Epicodus.”.


Also from our curriculum is some inspiration I would like to share with you for the next time you aren’t feeling intelligent:

  • Researchers have known for some time that the brain is like a muscle; that the more you use it, the more it grows.
  • Neural connections form and deepen most when we make mistakes doing difficult tasks rather than repeatedly having success with easy ones.
  • Our intelligence is not fixed, and the best way that we can grow our intelligence is to embrace tasks where we might struggle and fail.
  • People with growth mindsets correctly believe that capability and intelligence can be grown through effort, struggle and failure.
  • Mindsets can be taught; they’re malleable.
  • Praising someone’s process (“I really like how you struggled with that problem”) versus praising an innate trait or talent (“You’re so clever!”) is one way to reinforce a growth ­mindset.

Monogamous Angular2 EventEmitters 06/08/16

Trail

I COMPLETED THE MEAL TRACKER APP! Finally. Now all I have to do is the GitHub Lookup app…and all the work from this week. On the bright side, I’m halfway done with the GitHub Lookup app. It too looks like crap, but functions like a well oiled Hillary Clinton presidential campaign (see previous post).

Speaking of the Meal Tracker app, I wrote some code that I LOVE today! It’s so simple but it took me a lifetime to pull together. I had pretty much completed the entire project. My last step was to make a filter for healthy meals and unhealthy meals. Seems simple enough…but how do we define healthy. The easy route says count calories so that’s what I did:

  • 500 + calories = unhealthy
  • < 499 calories = healthy

So now when I create an object I want a method to assign a boolean (true/false) for healthy. Cool. Now to actually write the code.

I made the method from an if/else pretty easily. It’s a property of my class. Great. Now onward to the constructor… Maybe tack it before a declaration:

constructor(
public name: string,
public calorie: number,
public calorie.markHealthy(): boolean,
public detail: string,
public id: number) {}

Not likely kid. Eventually I figure it out though…

export class Food {
public healthy: boolean;
markHealthy(){
if (this.calorie >= 500){
this.healthy = false;
} else {
this.healthy = true;
}
}
  //This took me forever!!!
constructor(public name: string, public calorie: number, public detail: string, public     id: number) {
    this.markHealthy();
  }
}

*Applause

Last discovery of the day, and the purpose for the title of this post.

In Angular2, when creating custom EventEmitters, please note that this wonderful feat of technology is limited to one, YES ONE, object/data type/primitive per emit. You may not emit several properties of an object, or two of three indexes of an array! Nope, Angular2 ain’t having it. So just let it go. There can be only one. Angular2 EventEmitters are Monogamous!

Tracks

Speaking of one-to-one, every Friday (excluding 5th Fridays) there is an individual project. Just you and your wits vs the most obscure excuse for a to-do list to be completed with skills learned from the past week. One of the greatest keys an Epicoder can learn, and a quote from the founder of Epicodus himself “Every program is pretty much a to-do list”. If this makes no since now, just wait until your 1st level two programming class. It will become crystal clear.

All that to say, following your Friday fight to the death, or 5pm, whichever comes first, you relax all weekend (snuggled up with a few hours of homework) and return on Monday to have your code reviewed. Now it’s not a critical process, but the instructors (more on instructors in another post)  have no problem letting you know where you could improve. So far my individual projects have been great. I love the challenge of not working in a pair (more on pair programming in another post). It’s an opportunity to really assess your own weaknesses and to explore the topics from the week more.

Im usually the first to sign up for a code review and am excited for feedback, so it’s annoying to be behind and not having any suggestions for improvement, but I’ll be back on track soon. Until then DFTBA!

One Project Down, One To Go…sorta 06/07/16

Trail

Remember yesterday when I was WAY behind, well now I’m sorta behind. I’ve made a bit of progress, and I’m seeing the light at the end of the tunnel.

I’d like to share what I’m working on today. It’s a meal tracker, it looks like crap, but it runs like Hillary Clinton’s presidential campaign; flexible and adaptable, shifting  with every user whim, fueled with uncertainty on how it will actually work out. Just kidding, but not really.

A user can monitor what they’ve eaten over the course of the day, how many calories each meal contained, and any notes on any relevant details like topping foods with bacon, or removing the bun in place of a lettuce wrap. I’ve thoughtfully named it Meal Tracker and plan on using it once after deployment…for testing. Yep, I love this app.

Tracks

Meal Tracker should have been done Friday before 5pm. Even worse Github lookup (More on this in a second) should have been done two Fridays ago. I’m not a bum, I promise. There is a substantial amount of information to go over in a small amount of time hence the title “immersive coding bootcamp” BUT…I refuse to move at the pace of the curriculum if I don’t feel comfortable with the day’s material. Judge me not blog reader! Catching up after falling behind is never easy, but it is so rewarding when I can supplement Epicodus’ curriculum with other resources (some listed below) because I have a solid foundation.

It may sound like I’m pretty experienced in the art of falling behind, and that’s because I am. I would strongly suggest any future Epicoders not do so, but I don’t think I would gain as much from the program if I didn’t take the extra time. I feel more confident in what I do know because of it.

GitHub Lookup: Week 1 of Javascript’s Friday project.
Techie terms: Using the GitHub API, the application should accept form input containing a GitHub username, and retrieve public GitHub user information for display, specifically name and descriptions of public repositories.

Layman’s terms: I am making an app that will allow you to lookup a web developers name and projects on a site called GitHub.com by simply submitting their GitHub username.
My GitHub username is LATAEVIA. You can find all my projects here.

Resources:
I used many of these resources when I started and many are still useful to this day. Most are free, a few are partially free:

Udacity
Treehouse
edX
Epicodus
http://eloquentjavascript.net/
‘Learn Code The Hard Way’ series
Chris Pine’s Learn to Program
http://learn.shayhowe.com/

There are tons more, but these should get you going.

 

Independent Projects Galore 06/07/16

Coupled with a word of encouragement from my Aunt Carol, some inspiration from hiking Wildwood Trail here in Portland, and 12 weeks of  the best of intentions, I am hereby compelled to commit to posting in this blog daily. Because I haven’t shared every step over the past 12 weeks, I’ll be splitting these daily posts into two parts:

Trail:
This is where I am today, literally. I’ll be sharing from exactly that day and what I can see before me.

Tracks:
This is where I’ve been, and how I found my way here. This blog should serve as an informal archive of my experiences before, during and after Epicodus, but also as a map of sorts for anyone that’s interested in taking the same trail.

And so it begins:

Trail

In an effort to become more comfortable with the material from last week (Angular2) I fell behind substantially and now need to complete two independent projects. Future student you may be wondering why two if I’m only 1 week behind. Well I didn’t complete week 1’s. I got a bit haughty, and when I went back to add front end styles, I realized I hadn’t really met the project requirements. This is so not like me. I’m usually pretty spot on with these things, but the real lesson here is to never take advantage of having an opportunity to leave early unless you are COMPLETELY finished. It will come back to bite you in the knickers later.

So now I’m coming to you live, 3:47am June 7, from my cousin’s-cousin’s (more on this later) kitchen in Tualitin, OR, elbow deep in dog drool (more on this later also) in a caffeine induced state of artificial focus, having been a part-time dog sitter this weekend (more on this maybe in another post), stumbling on bugs well rested LaTaevia could have solved in the sleep she got.

#DontFallBehind

Tracks

My cousin’s-cousin’s kitchen is gorgeous. No it won’t help me fight fatigue but it’s nice to have a place that feels like home. When I arrived in Portland I stayed in an airbnb for a few days, and had no place to go after. I had been looking for housing for months, but nothing had worked out (I’m blaming my Chicago area code for all those unanswered calls). So two tips for the future Epicoder:

  1. Use the forum to find a roommate before you arrive. Dozens of classmates end up as roommates. Plus you know your roommate will have similar responsibilities if they are in Epicodus as well. The key here may be for you to be the initiator. Most people are looking for a room, so if you take the risk of renting a multi-room home or apartment and charge a fair rate, the roommates will come.
  2. If your struggle is really real, I MEAN REALLY REAL, there is what I would call a boarding house within walking distance from Epicodus. The lease is a minimum of 6 months, and rent was $450 in March 2016, which covered a small single occupancy room with closet, sink and mini fridge. The bathroom and laundry machines are communal. Info is as follows:

    Maxwell Hall

    919 SW 14th Ave.
    Portland, OR 97205

Back to my housing struggle..

So after feeling a little bummed about not finding a place that limits bathroom use to 5 people or less, I started scouring Pinterest for 12X12 decor ideas, and planned to stock up on disinfectant products. :/

Then my cousin T calls and says “Hey how’s it going?”, like I wasn’t about to spent 6 months racing for a communal bathroom, and I say “It’s great!” because it was. I was housed, registered, and could buy food. So T replies “Ya know my cousin M lives there.” with the same tonality she’d been using for the past couple weeks. You see I had been calling M for over a week with only a couple texts in response, despite having grown up with M as well. I had given up on connecting with him until the day before I left Chicago when T volunteered to call on my behalf. M apologized, explained he had been busy….then never followed up. So fast forward a week to my disinfectant shopping spree, M finally responds and invites me to stop by to meet his girlfriend and enthuastic dogs (read habitiual hand, arm, face lickers). No more than 5 minutes into the visit  they offered me a room to rent and I’ve been nothing short of safe and comfortable since. #JesusDidThat #WontHeDoIt

Career Cycle: Your Network Is Your Net Worth

I’ve turned down a total of 4 interviews for full time work since I’ve been here.
+
I have applied for ZERO full time jobs.
=
PROOF THAT NETWORKING WORKS!

I know, not all of us want to network, especially me. We may feel awkward, pressured, maybe even deceptive or misleading for all the shameless promotion. Truth is we have to just accept networking for what it is: career menses.

Yes I know it hurts, and a minimum of 5 days a month seems like a lot, but its an inevitable and essential part of our career life cycles. It’s all a part of becoming a professional, and nothing to be ashamed of. We all go through it and when its time, you’ll grow old and retire, but for now we need to take care of ourselves. Here are a few tips to help:

1) Who are you?

Buy cards. Scratch that, buy fantastic cards. Scratch that, let me design and order your fantastic cards. You won’t be disappointed. In the case that you are on a very tight budget, or you are refusing to support budding entrepreneurs, I encourage you to try out Moo.com.

2) What do you do?

Be prepared to sell yourself as the amazing professional you are! Don’t waste your breath on what you are not, or what you can’t do. It’s not useful to either party. My pitch until I complete Epicodus is as follows:

Hi! I’m LaTaevia, a student at Epicodus. I come from a front-end background, and I’m learning backend development now. Tell me more about what you do?

See, that was easy right? It could be longer or shorter depending on your field, or the person’s attention span, but just make a pitch that shares your marketable skills. You’ll fine tune it with practice!

3) Sketch a cool name tag (see above) and talk to strangers

So now you’re in a room full of people you don’t know and quite possibly don’t want to talk to with a pocket full of fantastic cards I designed for you and a 30 second or less elevator pitch. Join the club! Everyone there has someplace else they could be, but they too have a monthly quota to meet. Just remember everyone is there with the same purpose, to build their net worth, through building a network. Everyone in the room is a shark so put on your fin and start swimming.

Just walk up to someone standing alone and blurt out that pitch you wrote, shove that fantastic card in their hand, then wait for them to reciprocate. You’ll do fine! Worse case scenario you’ll have a good laugh to yourself when you remember how your career menses is going 🙂

If you’d like to discuss custom business cards, shoot me a line below:

Reed’s Cow

The curriculum at Epicodus can be stressful. Whiteboard art can help with that!

Saturday, May 7, 2016
image

Monday, May 9, 2016
Cow art is expanding:
image

Tuesday, May 10, 2016
image

Wednesday, May 11, 2016
image

Cow credit: Reed Lambier
Funny face credit…..not sure :/

Meme Me

Now that web developer memes are applicable to my everyday life:

 

Lumbersexuals are apparently overwhelmingly present as coders?
image


Nom Apple!
image


Seriously, cut back on the bootstrap. You know who you are. If you’re unsure, then it’s you who Samuel L Jackson is threatening, and I’d advise you to stop immediately.

image


Awww yeah, my kind of man.

image


‘Git’ it?
image


Finally me making applications everyday…