LaGuardia TechHire -- Open Code

Day 21: The Choice is Yours.

After a weekend of coding, I found that my insatiable appetite for food had translated to an insatiable appetite for web development. Monday’s are dreaded for most, but I came to class eager. Last week’s orientation an familiarization of the program allowed Kurt to jump right into the lesson. I was ready!

07f7cb47-d2d1-4f4f-a61b-6c257e459611

When starting a CSS stylesheet, we used to go element by element, customizing each one individually. There were a lot details that were standard unless you altered them. This inconvenience led us to the star selector * (No, I’m not talking about myself.). The star selector allows the user to target the whole stylesheet, this applies to CSS and HTML. That being said, watch out because it can lead to problems if you aren’t careful.  From previous exercises, I found two elements, in particular, that threw me off with there standard measurements: margin and padding. In star selector I can set both of these elements to 0%. Doing this removes the standard measurements and allows me to set set new values.


*{
box-sizing: border-box;
margin: 0;
padding: 0;
}

It was day three and time to learn more advanced web making. Before moving into modern web development, we had to learn about the past. Float is a method of website making that is based on putting text around an image. This layout is often used for basic web pages that consist of a banner, aside (menu bar), main content and a footer; nothing too complicated. After this, I was ready for more, ready to step into 2017 of HTML and CSS. Tell me about flex!! (It’s true I need to go back to the gym, but can flex my website in the meantime!) Flex is used with a lot of current websites, especially those which feature columns and boxed content. With flex, order is extremely important. All items automatically have an order of zero,”0″. which brings things to the top of the page. When assigning a different number order, larger numbers go lower on the page.

Most websites want to give their viewers a method of providing feedback. This is usually done through forms, or an area to get in contact with the web page provider. These areas usually contain a space to enter your name, age, email, and other demographics. In fact, I provide a contact page for my viewers to Get in Touch!  When making a form, there are a few types of inputs you can provide. The three we worked with in class are text input, radio input, and checkbox input.

As the name suggests, text input is place where the user can type a message. An example of this could be writing a yelp review.

Screen Shot 2017-11-10 at 11.41.04 AM.png

Radio input is where the user can choose only one of the options provided. An example could be entering age range, a person cannot satisfy more that one of these options.

Checkbox input differs from radio input in the fact that the user can choose more than one option. An example of this can be used when ordering ordering pizza online. Here you can choose more than one option, go on, your tastebuds deserve it.

Screen Shot 2017-11-10 at 11.42.27 AM.png

Wed development is much like life, you have an endless amount of options and opportunities. I began this blog with a post asking “Who Will You Be?” and the choice is always yours. Life will present situations much like a form on a website. Sometimes you can answer with all the thoughts you hold. Sometimes you have to pick and choose one option over others. My favorite, sometimes you can choose as many options as you want. (All, nothing and everything in between.) I am glad I can see so many parallels between the craft I am learning and the life that I am living.

 

 

LaGuardia TechHire -- Open Code

Day 20: If You’re Learning and You Know It, Clap Your Hands!

Idleness is fatal only to the mediocre. -Albert Camus

It is a luxury to be sure in life, to know exactly what is to come. That being said, it is imperative to learn as much as you can about your environment regardless of its manifestation (e.g., physical, mental, social, academic, etc.). I never used Atom before this cohort and it was important for me to familiarize myself with the text editor. I downloaded the program on both of my personal computers and loaded the projects I had worked on in class.

Screen Shot 2017-11-09 at 3.20.18 PM.png

During my exploration of the program I found there was an option to download packages and themes that customize your experience. I downloaded the ‘monokai’ syntax theme which colored my text in a way that made it easy to distinguish between elements. This was a big help for learning new code.Monokai Kurt also introduced us to a color picker app called Sip. This application icon states at the top of my toolbar and whenever I want to pick out a color, it’s right there. A key feature of this app is being able to pick up colors from anywhere on my screen. Bam! Hexadecimal at my finger tips!

TechHire–OpenCode is a program that requires immense dedication. That being said it is important for me to give web development my all. Google is a great place to look for answers, but i wanted more to reinforce and learn new skills. The Flatiron School is a well established web development bootcamp based in New York City. Their school just launched a beta accelerated bootcamp prep. This bootcamp prep is meant to build a strong foundation before you tackle an official bootcamp cohort. At noon I attended an online lecture by the co-founder of the Flatiron School himself, Avi Flombaum! He was wonderful in the way he introduced us to new material and explained topics. Learn.co is an online platform made by the Flatiron School used for learning web development. During the lecture we were introduced to the Learn IDE. I found it comedic when Avi told us the IDE was based on Atom. Zing, another way to reinforce my skills with Atom!

It is the part of a wise man to keep himself today for tomorrow, and not to venture all his eggs in one basket. -Miguel de Cervantes

LaGuardia TechHire -- Open Code

Day 14: The Waiting Game.

With the weekend over, my anxiety about the TechHire–OpenCode cohort arose. On the last day of the vestibule, we were told that our pending acceptance would be decided and communicated by Tuesday. It’s now Monday and I need answers. My mind went through a crazy whirlwind of questions. When will I find out? Will they notify people who were rejected? How long can I play the waiting game?image03.gif

During the weekend, everyone was booted from the vestibule slack channel and told they would be added to a new channel upon acceptance. Tomorrow might be the deadline, but come on! I alternated between compulsively checking my email and putting my phone on ‘do not disturb’ while I was in a separate room.   FullSizeRender.jpgMy patience, or lack there of, was soon rewarded with information regarding the TechHire–OpenCode cohort with Software Guild.There was no formal email. There was just a notification on my phone from the Slack application., a little orange bubble at the corner of an icon.I was added to a new slack channel. This channel was for the third cohort of the program. I was accepted into Laguardia TechHire–OpenCode with Software Guild. Though it wasn’t the formal acceptance I was hoping for, my excitement was not dulled! The formalities came later that day, so I was really in.

AVVww

 

I made it. Well, I made it in. Stay tuned for how I make it through.

 

The Journey

Day 12: Self Care. Improvement, Not Perfection.

Be yourself, but always your better self. -Karl G. Maeser

Firstly, I want to say how thankful I am to have had this opportunity with TechHire– OpenCode. This weekend provided time to reflect on the past two weeks. Web development has been a recent passion of mine and it wasn’t influenced by anyone around me. In the past, I have taken the advice of others as if they were commands I could not stray from. Pursuing web development is a sign of great growth for me. My parents, one of my biggest supporters, were absent in supporting this dream of mine. I did research and found TechHire—OpenCode, I applied myself, and worked to get a place in the vestibule. I am following my dreams, regardless of those around be because I am the one living my life, no one else. Immense work went into the vestibule, I focused on my work and gaining the courage to say no to others. Many talk about the “Yes” methodology of life, but that is something I’ve already adopted, and to a fault. I am learning that I can say no without being selfish. This vestibule has given me some strength in terms of putting myself first.

After much needed rest, I was able to do things outside of coding and step back from my computer. They (whoever they are) say that we make time for the things we really care about. This weekend had a theme of self care by ways of home improvement. As I have said before I am a Jack-of-all-trades. Handy work is something I really enjoy; if something is broken I will fix it. I found mirrors meant for trash that I decided to recycle and use for my office. My office of need of color, so I spray painted the mirrors to help brighten the space. (Yellow is my favorite color.) The stairs in my apartment was  a project I talked about, but never had the time to complete. Two hours later my stairs were complete.(But not dry, so I was stuck downstairs.)  Lastly, I needed a place to for Alfred, my money tree plant, where he could get adequate sunlight. Also, I was tired of looking at my old radiator. BOOM! Two bird one stone, I decided to build a radiator cover to hide my hideous radiator and provide a space for Alfred right near the window. Unfortunately, the five year anniversary of Super Storm Sandy, brought heavy rain and strong winds. Needless to say, today was not ideal for buying wood at the hardware store. I did however, take measurements and draw out a plan to avoid delay when the weather improves.

I am grateful for this program but more importantly, I am proud of myself. Self-care includes improving your environment (fixing my apartment) and following your dreams. I am taking bold and confident steps along the path of my life. Each day I work at becoming my best self. I am honored to say, this is a reality for me. I am a better person than I was yesterday.

LaGuardia TechHire -- Open Code

Day Ten: The Finale!

Since the beginning of the TechHire—Open Code vestibule, I have been learning the basics of Java applied in the Processing IDE. For our second coding assignment, with the help of Zein, I decided to create a screen that shows rain pouring. As I’ve documented in previous blog posts, creating this image was no simple feat. I spent days trying to get objects to move on the screen and improve my coding. Just in the context of this one sketch, I learned something new each hour. Even when I was away from the processing IDE, I had my pen and paper to trying to figure out improvements.

For our final project we were given a ‘prompt’ that really just gave us free range to create what we wanted. I was lucky for fluidity of this assignment, because I knew I wanted to continue working on this ‘RainPouring’ project. I mapped out my ideas on paper and tried to bring them to life.

The first task I wanted to accomplish was finding a way to have an umbrella on the screen without having to write so many shapes, which took up many lines of code. Again I find myself giving credit to Daniel Shiffman, because he taught me how to add images to my canvas. The first image I placed on the canvas was of an umbrella against a white background. This royally messed up my vision because it was an ugly box in the center of my background. I soon learned that there is more than one version of an image file. I needed to ditch jPEGs and find myself a PNG. PNGs preserve the transparency behind an image; I didn’t have to worry about a background. Lines 7 through 16 show where I declared and initialized the images I wanted for my project. Now that I had the image on the screen, I wanted to be able to do something with the umbrella. I learned that images work a lot like the familiar primitive rectangle. Lines 35 and 36 show where I call and use the image() function. By setting the image coordinated to the x coordinate to the mouse’s location (mouseX) I could make the umbrella move side to side. I didn’t want the umbrella to move up and down so I kept the y-coordinate at a constant.

</pre>
Droptop[] rDrop = new Droptop[400]; /*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.*/

Star[] twink = new Star[300];

int screen = 0; //creates global variable for screen
PImage umpic; //here is where I declared the umbrella image
PImage tweetpic; //here is where I declared a bird image

&nbsp;

void setup() {
size (800, 600);
umpic = loadImage("yellow0.png"); //I loaded the image in setup as oppesed to draw
//used a png. file to preserve transparency
tweetpic = loadImage("tweet.png");

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();
}

for (int i = 0; i < twink.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"
twink[i] = new Star();
}
}

void draw () {

//=======gloomy sunday=====

if(screen == 0){ //The following code is for a the starting rain screen
//lines 19-21 are where we initialize the array within a loop
background(48, 88, 155);
imageMode(CENTER);
image(umpic, mouseX, 400, 291/2, 300/2 ); //picture of umbrella; follows the mouse along the x-axis, width and heighe/2

for (int i = 0; i < rDrop.length; i++) {
rDrop[i].display();
rDrop[i].move();
}
//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*/
}//close screen 0

&nbsp;

//=======sunny side no eggs =========

if(screen==1){ //this opens the second screen
background(139,223,255);
fill(250,243,28);
ellipse(400,75,300,300);
imageMode(CENTER);
image(tweetpic, mouseX, mouseY, 400/2, 400/2); //picture of bird; follows the mouse along the x-axis, width and heighe/2
}

&nbsp;

if(screen==2){ //this opens the second screen
background(71,61,95);
fill(209,207,204);

for (int i = 0; i < twink.length; i++) {
twink[i].display();
}
ellipse(400,75,300,300);
}
}//close draw

&nbsp;

void mouseClicked(){
background(255); //background flashes white to represent thunder
if ((mouseX >= 0 && mouseX<= 225 && mouseY>= 0 && mouseY<= 150))
screen= 1; //if the clouds are pressed it goes to sun screen
else if((mouseX>=600 && mouseX<=800 && mouseY>= 0 && mouseY<=150))
screen= 2;//if clouds are pressed it goes to sun screen
}
<pre>

The second change I wanted to give my project was to be able to change the weather from rainy to sunny. To do this I added a mousePressed() function. I wanted to be able to press a place on the screen and have the weather change. I chose to say that if I clicked the clouds something would happen. Lines 81-87 show the additions I had to make. In order to do this, I had to find the area that clouds covered on my canvas. I set parameters in the clouds that said if the mouse were pressed there something would happen. I knew I wanted it to be sunny, but the almighty question was ‘how’! After watching coding tutorials by professional coders on how to make complicated games, I began to get a grasp of the basics. It to me well over three hours to grasp these basics, but it did! I had to set up another screen. I created an int named ‘screen’ and assigned it the value 0. This can be seen in line 7. I had to then add this scene change to my if conditional statements. After each parameter of the where the mouse has to be pressed, I put ‘scene==1’ or ‘scene==2’. After learning how to do this, I got excited and decided to make two scenes! (Mind you, it’s now 9am)

Now that I had a new scene, I needed to decorate it. This wasn’t particularly difficult because I know how to create backgrounds and shapes. When it came down to actually writing the code, I had A LOT of difficulty. How to say this information is for one scene and this information is for another scene? If statements to the rescue! Lines 30-54 show my answer to this problem. I could place the information of a particular statement inside of an if statement that was specific to a certain scene. ‘If in scene 0, perform this. If in scene 2, perform that’. My first scene had the rain pouring and a moving umbrella. With the second scene I was able to make it turn into night where I had a moon and stars.

Screen Shot 2017-10-27 at 1.00.31 PM.pngScreen Shot 2017-10-27 at 1.01.03 PM.png

Below you can see the two classes I made, each has its own tab on Processing.

RainDrops:


class Droptop{
color c;
float xpos;
float ypos;
float diam1;
float diam2;
float yspeed;

Droptop() {
c = color(99,196,240,85);
xpos = random(width);
ypos = 0;
diam1 = 20;
diam2 = 30;
yspeed = random(1,4);/*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 circles
so I dont have to type it continuously*/
}

void move(){
ypos = ypos + yspeed;
if (ypos > height){
ypos = 0;
}
}
}

Stars:


class Star{
float xpos;
float ypos;
float diam1;
float diam2;

Star() {
xpos = random(width);
ypos = random(height);
diam1 = 10;
diam2 = 10;
}

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

Today’s presentation of our final projects marked the end of the TechHire—OpenCode vestibule. Each Participant was allotted seven minutes to present there project. These seven minutes included setting our laptops to the projector, talking through our code, running our code, and lastly a Q&A session. I am generally a great public speaker, but Friday had my nerves rattled. I felt the pressure. My presentation could make or break a possible invitation to the full TechHire—OpenCode program. I felt the pressure. After setting up my laptop, my anxiety steadily receded. I was able to talk through my code in a manner that showed my understanding and dedication to the project. I was surprised to hear subtle gasps when I showed the interactivity portion of my sketch. There was less than a minute left for Q&A and I was able to still answer two questions without gabbling. My supportive classmates gave me a round of applause, which erased all doubt about the quality of my project.

These past two weeks have taught me so much in the world of web development. I learned about job placement and techniques in coding. The most important lesson I learned during my time with TechHire—Open Code is that there is no limit to what I can accomplish if I put my mind to it.

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 Eight: Intro to Java… Script?

TechHire has a requirement of attending one technology related event. I contemplated going to a hackathon but I was not confident with my skill level in coding. I am a person who enjoys going to events and mingling, so I wasn’t nervous about finding an event that wasn’t too focused on a person’s coding skill. Besides the world wide web, I had a few other resources to find an event that satisfied TechHire’s requirement. When it comes to events New York City is in abundance. After scrolling through just my Eventbrite, I had over 6 events I could attend in the allotted time frame provided by my instructor.

I chose to attend ‘Learn to Code NYC: Into to JavaScript’. Though we are learning Java on Processing, I thought the two languages couldn’t be so different because of their name. Seriously speaking, I have played with JavaScript very lightly and know the general syntax of the language. That being said it was an Introductory course, no pressure right? Well, half right… After spending hours discussing how to evade the imposter syndrome, I still found myself in well within it’s reach. One phrase that sticks in my head from my elders when I’m feeling ill prepared is “don’t embarrass me”. I care for embarrassment even less than green eggs and ham, Sam I am! I managed to concoct reasons of why I wasn’t qualified enough to attend an introductory course! For some, these thoughts would make a person feel stuck, unable to decide one way or the other, but not I. I told myself that I would learn as much Java script as I could in two hours. My binge learning began with me downloading an iOS application called ‘Learn JS’. The application made my 2 hour commute feel like 30 minutes. I didn’t fully notice the delays that seemed to strongly affect that the commuter next to me.

Screen Shot 2017-10-26 at 11.06.47 AM.png

Galvanize is the company that sponsored and ran the class. Their building space had an open floor plan that made everyone inside feel like family. The open floor layout encouraged me to talk to other attendees even though i wasn’t confident in my knowledge of JavaScript. As the class began, I took a seat next to my TechHire classmate, Danny. The JavaScript class wrote code on an online IDE on repl.it. I was relieved that TechHire had us make a Github account, because I was able to easily login and save the code I wrote in the class. In the class we learned about how to make functions and I learned about arrays. The syntax of for statements is similar to Java. Learning about arrays and functions here was very helpful to the assignment I had to tackle after the event.


//how to create a function
function pigLatin (str){
var firstChar = str[0];
var restOf = str.substr(1);
return restOf + firstChar +'ay';
}

function makePigLatin(sentence){
var words = sentence.split(' ');
var translated = [];
for(var index = 0; index < words.length; index = index +1){
var val = words[index];
var pig = pigLatin(val);
translated[index] = pig;
}
return translated.join(' ');
}

After the class I talked to the instructor, Donnie D’Amato. He calmed my worries about being a newbie and encouraged me to pursue my dreams, especially if they are difficult. Donnie gave me a great confidence boost when he took the time to show me his Codepen.io page. He showed me his current projects as if he was trying to network with me! Though he was teaching JavaScript, only a couple of his projects had any JavaScript in it. About 90% of his projects were solely CSS and HTML. This comforted me because, as an amateur, I didn’t feel like I had to learn a million languages at once. I can  possible create anything with any language. Dawn’s most frequently used phrase in class is “There is more than one way to skin a cat”. Don’t I believe that now!

LaGuardia TechHire -- Open Code

Day Five: Repetition is Key to Learning!

Our class was provided with 14 coding examples to help us learn new material as well as reinforce material we already knew. The assignment was to add comments to original code exercises, then alter that code and add comments to our edits. The idea of 14 folders filled with code was daunting to say the least. After a few deep breathes , I tackled my first example, basicActiveSketch: Screen Shot 2017-10-21 at 6.32.27 PM

When I opened the pde. file into the Processing IDE, I was shocked to see such simple code. The once daunting task started to look like a walk in the park. Below, one can see my comments and code edited by me.  I made very modest changes to this code to make sure I had a firm grasp on the basics. Line 13 contains my first edit, where I changed the strokeWeight (thickness of the line) to 4. I changed the y-axis position of the square and circle to have the same value. Even though they possessed the same  y- coordinate, the shapes are drawn differently in Processing. For ellipses, the coordinates represent the center point of the shape. For rectangles, the coordinates represent the first point (the top left point) to be drawn. Processing then draws the remaining three points based on the diameter specified. If you want to have Processing draw a rectangle based on the coordinate representing the center point, a function must be called before hand. The names of the functions that can be used are ‘rectMode(CENTER)’ and ‘rectMode(RADIUS). I used this exercise to better understand the landscape of the canvas for future projects. The following examples went by similarly and I started to find the assignment tedious.

Basic Sketch Edit
Basic Sketch Edit

/*
Demonstrates a basic active sketch.
 By Dawn C. Hayes October, 2017
 Edited by Asher October 2017
 */

void setup() {//this is a void do the function will no return a value
  size(300, 300); //the canvas size is shown here
}//a curly bracket is needed to contain size within the setup function

void draw() { //This must have a curly bracket to include the following statements
  background(255); //the background is white
  strokeWeight(4);//the thickness of the outlines is 4 pixels
  line(75, 75, 225, 75); //Here is a line that slants downwards
  point(150, 150); //the point is in the center of the canvas
  ellipse(22, 45, 20, 20); //here is a circle because the height and width are even
  stroke(255,0,12);//the outline is a red color
  rect(75, 36, 15, 15); //here a square
}//a curly brac<span 				data-mce-type="bookmark" 				id="mce_SELREST_start" 				data-mce-style="overflow:hidden;line-height:0" 				style="overflow:hidden;line-height:0" 			></span>ket is needed to contain the statements in the draw function

My initial apprehension soon turned into frustration. By the fourth example, I about had it will the assignment altogether. I was tired of saying why ‘void’ was used, and why curly brackets were necessary. The point of the assignment hit me like a ton of bricks (Like most lessons in my life) by the fifth example: If Conditionals. The notion of adding conditions to code seemed tangible in english, but looked to me like ‘wingdings’ ( Screen Shot 2017-10-25 at 7.22.29 PM.png) text font in my IDE. After a solid 10 minutes of staring at the Processing IDE, I pulled up my imaginary bootstraps and tried to understand the code. The edits and comments I made for this example can be seen below. My first edit began with changing the size of the canvas and the color of the background within the setup function. The code within the draw function is where my uneasiness resided. Line 12 and 13 shows that made a grey circle in the center of the canvas. The if statement was contained in lines 14- 15. After some trial and error I was able to read the code in a way that made sense in my head; “if the mouse is pressed, then the background will turn blue”. When I held the mouse down, the whole canvas was blue. I did not see the gray circle while the mouse was pressed, because Processing was acting on constantly performing the if condition. After I released the mouse, the grey circle reappeared with a blue background behind it. I was so blown away by the discovery of the if conditional, I almost forgot there was originally a pink background. Where did that pink background go?! admittedly it took me longer than it should have to find this answer. Since the background was declared in the setup, I would no longer see it after the background changed in the draw function. Processing repeats the code in the draw function continuously, but only once in the setup function. As it turns out, the code was written using the English alphabet the whole time.


/*
Demonstrates control, iteration, logic.
 By Dawn C. Hayes October, 2017
 Edited by Asher October 2017
 */

 void setup() {//void prohibits a return value
 size(100, 100);//size of canvas
 background(255,120,220);//background color is pink
 }//curly bracket to close above statement

 void draw() {//void prohibits return value
 fill(175);// the color of the circle is gray
 ellipse(50,50,25,25);//circle in the center of canvas
 if (mousePressed) {//if the mouse is pressed
 background(0,0,255);//background is blue
 }//close if statement

 }//curly to close above statement

All in all, the assignment taught me beyond Conditionals, Loops, Boolean, and other code material. I learned a lot about about myself. My patience was tested and with that I learned how to turn my frustration into motivation. I scoured the internet for answers and was surprised at my level of resourcefulness. This journey of becoming a web developer is not easy, but for some reason my excitement to keep trekking cannot be contained!


		
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!