LaGuardia TechHire -- Open Code

Day Nine: My Road to Success!

First stop: Inspiration

Merriam Webster defines inspiration as the action or power of moving intellect or emotion. I gain inspiration from the things I hear, see, read, and feel each day. Below are some quotes that I find inspirational.

No one is dumb who is curious. The people who don’t ask questions remain clueless throughout their lives -Neil deGrasse Tyson

You should never view your challenges as a disadvantage. Instead, it’s important for you to understand that your experience facing and overcoming adversity is actually one of your biggest advantages. -Michelle Obama

When we drop fear, we can draw nearer to people, we can draw nearer to the earth, we can draw nearer to all the heavenly creatures that surround us. -bell Hooks

I’m rooting for everybody black. -Issa Rae

 

Second Stop: Motivation

Google defines motivation as the reason or reasons one has for acting or behaving in a particular way.  There are two types of motivation; intrinsic motivation and extrinsic motivation. Intrinsic motivation refers to the reasons within yourself that fuel a specific behavior. Extrinsic motivation refers to the reasons outside of yourself which fuel specific behaviors.

My intrinsic Motivations:

  • I want to better my environment and create a positive community.
  • I crave learning and I do not want to limit my mind
  • I do not want to be left behind as the world advances
  • I want to positively affect a wide range of people
  • I want to be the best version of myself
  • I want to live a comfortable life

My Extrinsic Motivations:

  • I want other to look up to me in a positive manner
  • I want to make my family proud
  • I need money to live comfortably (capitalism is the worst)

Third Stop: Resources

I believe true success can not be obtained alone. There is a saying that says “it takes a village” to show that it takes a group of people to perform a task. Other people may not actively be apart of a task, but they do contribute to your experiences. I have written lines of code on my own, but I gained the knowledge to do so from my peers and other resources. Resources to not only have to be people, they can extend to just about anything.

People:

  • My Family (Including my dog, Oliver)
  • My partner
  • My friends
  • My colleagues and classmates

Online Resources:

LaGuardia TechHire -- Open Code

Day Eight: I need ‘Array’ to get through this!

Humor is everywhere in that there’s irony in just about anything a human does. -Bill Nye

giphy (3).gif

After spending my weekend in a constant flux between sleeping and feeling guilty for sleeping, it was very difficult to keep from laughing during today’s career training portion of TechHire–Open Code. We focused on the imposter syndrome, productivity and being able to work on your own, as a portion of the program will be remote. I spent the whole weekend in a personal crash course on accountability and productivity. How’s that for irony!

The imposter syndrome is prevalent within the web development community.  The feeling of fraudulence often comes from a person believing that they do not deserve praise or title. People who experience this often attribute their success to circumstances distant from themselves. By doing this, ‘imposters’ do not have to internalize compliments. High achievers are a main demographic of imposter syndrome sufferers. Web development is a difficult field that only has room for high achieving individuals. In the past couple decades technology has progressed at an exponential rate. New technologies are being invented and implemented everyday while web developers are required to have a firm grasp on this ever changing technology. Entering the web development profession by means of a bootcamp might intensify the imposter syndrome because it is not a ‘traditional’ education. Feelings of doubt can easily seep into the psyche when a person feels amateur despite their actual work and knowledge. A video by Meg Duffy, dean of students at Grace Hopper Program, provides tips to combat the imposter syndrome for bootcamp students and aspiring web developers.

One cliche phrase that describes me well is ‘Jack of all Trades’. When I am faced with a concept that I cannot easily grasp my the world seems to tilt one degree about its axis. This shift is usually due to frustration and only takes a moment to recalibrate. Never the less, the shift is there and I sometimes feel like an ‘imposter’ myself. When beginning this program I was shocked at how difficult it was for me to grasp certain concepts. There are times where I have gone home without fully understanding of topic. Today was one of those days. During the web immersive portion of the day, I ‘learned’ about objects, classes, and arrays. As my luck would have it, our class was given an assignment to include these new topics in our code. My day stuck to the theme of irony, as we reviewed arrays at the tech event I went to after class. (Read about that experience here) By the time I got home (10:30 PM) my mental tank was approaching E for empty. The main point of objects, classes, and arrays is to condense and better organize your code. Naturally (high achieving as I am), I decided to work with my most cumbersome code. My newly titled, ‘RainPouring’ project needed a serious renovation. After reviewing my notes and staring at my code for a solid hour, I was still at a lost for how to transform my code. Once again, the internet proved to be a saving grace with my coding pot holes. I won’t discuss my serious religious beliefs, but Daniel Shiffman may be a deity in the web development world, or at least my web development world. As one of the lead contributors to Processing, I didn’t doubt his knowledge. When I saw The Coding Train on YouTube, I quickly bought my ticket and hopped aboard. I found tutorials that answered my questions, gave effective guidance, and kept me engaged.

While watching Daniel’s videos I took notes and drew pictures to make sure I understood the information I was absorbing.

img_4247.jpg
Notes

 

The original code I was working with can be seen on my previous post; Day Three: Magic in the Number Three! The edits and comments to the my code today can be seen below. A new concept of a constructor tab was introduced to me today. Objects can be written in the original sketch page of a program, but it becomes a lot of work when you want to use more than one object. If you want to use 50 objects, a constructor tab is the way. Lines 12-13 show the code I would need to write if I did not have a constructor tab for only two rain drops. Two drops doesn’t count a rain. The constructor tab is necessary for what I am trying to accomplish.


Droptop[] rDrop = new Droptop[200]; /*instead of two sepearate objects,
i can use on line of coding with an array. An array is a list. '[2]' represents the
number of spaces in the index. in coding, counting starts from the number zero to account for the index.*/

void setup() {
size (800, 600);
for (int i = 0; i < rDrop.length; i++){ //i can use rDrop.length because it will represent the length of the strong (or how many spots are listed in the array"
rDrop[i] = new Droptop();
}
}
/* this shows how to call object in setup
rDrop[0] = new Droptop(40,4);
rDrop[1] = new Droptop();*/

void draw (){
background(48,88,155);

//umbrella
fill(234,242,12);
ellipse(400,300,300,200);

/*shapes to create umbrella and hide yellow, this code has to be
placed below the umbrella ellipse, so it is place 'over' the yellow*/
fill(48,88,155);
noStroke();
ellipse(290,325,75,75);
ellipse(515,325,75,75);
ellipse(440,325,75,75);
ellipse(365,325,75,75);
rect(252.5,325,300,75);

//umbrella holder
strokeWeight(4);
stroke(0);
line(402,315,400,400);

//lines 19-21 are where we initialize the array within a loop
for (int i = 0; i < rDrop.length; i++){
rDrop[i].display();
rDrop[i].move();
}

//lines 49-56 show just a fraction of the cumbersome coding from my original sketch

//clouds
fill(187,189,191);
noStroke();
ellipse(25,0,150,150);
ellipse(75,50,100,100);
ellipse(150,0,125,125);
ellipse(775,0,150,150);
ellipse(725,50,100,100);
ellipse(675,0,125,125);
/*order is still very crucial in the function of my code*/
}

Below is the code for the Constructor tab.


class Droptop{ //Here I am creating a class and making float values
color c;
float xpos;
float ypos;
float diam1;
float diam2;
float yspeed;

Droptop(float tempX, float tempYs){ /*float tempX and float tempYs are placed here
so I can alter the x position and speed easily in the parameters of my object. */
c = color(99,196,240,85);
xpos = tempX; //Here I assigned xpos as tempX so the value I plave in () will come from here.
ypos = 0; //I want all the rain to start from 0
diam1 = 20; //I want both of my diameters to stay the same, so they are not 'temp'
diam2 = 30;
yspeed = tempYs; //Here I assigned yspeed as tempYs so the value i put in () will be taken from here
}

Droptop() { /*Here I made a second version of the same function,
so it isnt necessary to fill (). This is called 'overloading'*/
c = color(99,196,240,85);
xpos = random(width);
ypos = 0;
diam1 = 20;
diam2 = 30;
yspeed = random(1,3);/*i did not want to make this speed uniform
depending on the amount of blank() used*/
}

void display(){
noStroke();
fill(99,196,240,85);
ellipse (xpos, ypos, diam1, diam2); /*This shows the format for the raindrops
so I dont have to type it continuously*/
}

void move(){
ypos = ypos + yspeed;
if (ypos > height){//this loop stays in effect as long as the raindrops are below the height
ypos = 0;
}
}
}

Below shows how my code runs.

Oct-26-2017 05-02-19.gif

LaGuardia TechHire -- Open Code

Day Four: Work Work Work Work Work Work

The goal of TechHire is synonymous with my goal for attending the vestibule: learn web development skills and get a job in the field!

On the first day of the TechHire career planning, we focused on our strengths and weaknesses. These were the advantages and obstacles, we thought we had before truly starting the program. We also wrote what we wanted to learn from this class. This was all so we could map out our ‘Day One’ selves to then compare to our graduation day. This was so we had our expectations written on paper and hold ourselves accountable to the progress we make. 

On the second day of the TechHire career planning our class was given a 6 question assessment of our traits to determine what jobs are best suited for us. My results were enterprising, artistic, and social. The traits I was assigned did not fit the mold of a web developer, nor did a job in web development appear in my detailed results. 

On the third day of the TechHire career planning our class was shown videos about literacy in technology, Hackathons, the difference between back-end and front-end development, and the 13 types of programmers. A continued source of information for this section of the program comes from UNCUBED. A video, An Intro to Tech Literacy, was shown so the class could get a better idea of three main fields in web development: front-end, back-end, and data engineering. A supplemental YouTube clip from Expert Market was shown to emphasize the difference between front-end and back-end developers. The third video, from Devpost, provided the class with expectations on Hackathons. The video taught the class how to approach Hackathons, it is required to attend at least one tech event. The fourth video, 13 Types of Software Developers, gave the class more information on specific fields in web development. Based off these specialties, I am interested in front-end development, application, and QA testing.

The ideal job is one that usually just stays in someones thoughts unless they are intentional about making the ‘ideal’ a reality. I put my imagination of the perfect job in web development to the test. There are endless websites to find jobs, but there are a few which specialize in tech careers. The websites that helped me most during my search were from UNCUBED, GitHub, HackerRank, and Dice.com. Most companies hire developers under the title of ‘Software Engineer’ and this is where I am likely to begin my job search. When searching for work in the past, I have always entered the title I wish to hold in a search engine. From there I am given a slew of results I must narrow down based on the skills and experience required for the position and the type of company. I would like to work at a company that is established, meaning, its well on its way to attaining their mission statement. This does not mean I am opposed to start-ups, companies such as Facebook are considered start ups. I am concerned with the security and the direction of a company as a whole. Each day I strive to live in alignment with my core values and I want this to continue in my work place. It is key that I support the beliefs and goals of the company I will work for. 

Though I want a career in web development, it is important that I find a company which satisfies my other interests. It is a goal of mine to obtain an MBA and use my business knowledge in conjunction with that of web development. I was relieved to see that developers are in great demand at business companies. Well established companies have a place for developers without 5+ years of experience. IBM was one such company where I would meet their requirements upon completion of TechHire. Two other companies that I met the requirements for were Trivago and Lyft. The requirements I would meet in these jobs were; a bachelors degree, experience with Java and SQL, have strong problem solving skills, and willingness to learn other languages or frameworks. There were also some requirements I didn’t meet such as, knowledge of Python, Ruby, and an assortment of other languages. Based on my pervious work positions I realized that few people who are hired actually have every single requirement. Most skills are learned on the job.

Image result for baby on computer gif

Based off the requirements for the positions I qualify for, the title held would be ‘Junior Web Developer’. I am only just starting out and that I okay. It is important for me to remember that like a ‘baby’ my brain is a sponge for information.

 

An entry level position is only a starting position. It is an opportunity to learn skills for your next step. I am meant to be in a senior position, but to do that I have so much more to learn. TechHire will only be a platform from which I learn basics. After this program I intend to learn more languages such as Python and Ruby. I also intend on getting my MBA so I can be well versed in all of my interests and passions. I must prepare myself not only so I can get the job, but that I positively impact the company once they hire me!

LaGuardia TechHire -- Open Code

Day Three: Magic in the Number Three!

I am not a fan of odd numbers, but today I find myself chanting the popular phrase “The Third Time is a Charm!” Today I woke up without envy for those who were able to sleep longer than I. My morning was accompanied with a full breakfast and I even managed to remember my book-bag today. Check. Check. Check.

Yesterday’s career training segment created some uneasiness, but I was hopeful that those feelings wouldn’t resurface with today’s session. With ‘web development’ being such a vague term I needed more information on how I could fit my ‘uncommon’ traits (i.e. Enterprising, Social, and Artistic) into this field effectively. In this ambiguous field, there are 13 types of developers that are widely agreed upon. Of the 13, three kinds of developers struck a harmonious code with me. (The number three again… odd.) Front-end developers are focused on how a website looks and how user friendly it is. Application developers are similar to front-end developers because they work closely with designers and have common concerns. In the tech world, these two developers put some value on keeping their work ‘sexy’; attractive, hip, and in demand. (Not unlike myself) QA development is extremely interesting to me and very far from ‘sexy’. These developers seem to be completely off the radar, yet they are the ones who test other code. Coding 101: Test Your Code!

Attending a Hackathon or another tech event is a requirement of the TechHire Vestibule. A Hackathon is where people who are interested in the field of technology get together for focused learning and production. With the collaboration of others, Hackathons provide an environment to hone skills in a short amount of time. Before today I thought I had no place even thinking about the goings on at a Hackathon. I assumed only coders and highly accomplished figures in others fields were allowed. Knowing what happens when one assumes should’ve told me just how mistaken I was. With the help of Devpost, we formed a three-pronged approach to tech events: Before, During, After. Before attending, you want to have a goal in mind. Why are you going to this specific Hackathon? Are you looking for a job? Are you looking to network? Are you trying to learn new technology? During the event, it is crucial to attempt completion of your goals with action. Though there are many talented people in their own rights, the beginner coder also has a place at a Hackathon. A person can watch groups if not contributing first hand. It is important to take advantage of sponsors. They can be used to learn about the job market, practice pitches for ideas you have, and even practice the interview process, or ‘pitch yourself’. The third prong of the plan is most important me, The After. Hackathons can go for days straight, but it is important to hold on to the connections made during them. Networking doesn’t work if you do not continue the lines of communication. It is important to send a follow up email, connect on social media, and check into upcoming events.

The web immersive portion of today’s class was tied together seamlessly. Today we learned about the almighty lighting talk. I have been to film festivals where people are given 30 minutes to showcase why their films should be produced, but today I experienced a completely different monster. Each TechHire applicant was allotted three minutes to present his or her assignment from the previous day. (I know you all remember my ‘Picasso’ portrait of a house.) Naturally social, public speaking was never a great feat until today. I had three minutes to describe a kindergarten quality painting that took me well over an hour to construct. Not only that, the whole class was looking at my code for points they had missed and points I had missed. The whole class was looking at my code with questions and comments budding. The whole class was looking with their eyes wide, their ears clear, and their noses sensitive to malarkey! I had a moral obligation to expose my code, expose my thought process, and frankly, expose my ego.

The lighting talks taught me of the great importance of comments and the readability of one’s code. This lesson continued when we were assigned to add animations to a coding example we were provided. Comments are extremely important because they help log thought process and organize code. In my experience, my code is more readable because of my comments. Others are able to distinguish which lines of code belong to what they see when the code is run. This assignment was particularly difficult when figuring out how the add float() and assign variables. One of my struggles from yesterday followed me into today, mapping out my canvas! It’s easy to have an idea in my head, but executing it with my limited coding knowledge is still a high hurdle. I was able to lower that hurdle with the help of loose-leaf paper, a yogurt container, air freshener, and some markers.

During the past few days I heave learned my biggest benefactor was and continues to be time. I spent hours coding with new tools I was given today and I anticipate trying again after this entry is posted. The material is difficult and I am attacking it with a smile. Today has boosted my confidence of the path I am walking. I may have feelings of apprehension towards odd numbers, but it may be true what people say: “There is Magic in the Number Three!”

You can see how I translated my ideas and the final result.

IMG_4223IMG_4224Screen Shot 2017-10-18 at 11.35.48 PMScreen Shot 2017-10-18 at 11.36.18 PMScreen Shot 2017-10-18 at 11.36.34 PMScreen Shot 2017-10-18 at 11.36.48 PMAsher_Zein_Float181017