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: 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 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

 

LaGuardia TechHire -- Open Code

Day 2: The Return to Kindergarden with uncertainty and SHAPES!

Two days ago I made major strides in my journey as a web developer. I was selected to join a vestibule at TechHire .My first day of the program was similar to most ‘first days’. The day was an orientation where I sat bright eyed and bushy tailed. (I haven’t woken up at 6am in some time!) All of my senses were on overload as I tried to take everything in; names of classmates, the framework of the syllabus, and the expectations of the program. After day one I jetted home to do some serious self reflection… Which I completed in my sleep!

*  *  *

When I got on the bus from Jamaica on my way to Long Island City, I didn’t know what to expect out of my second day at TechHire. Twenty minutes into my commute, I realized I forgot my book-bag at home! I should’ve realized with my pace being more sprightly than usual. I quickly checked my Google Maps to see what this mix-up would cost me in terms of commute time. I was relieved that I’d still arrive to class 15 minutes early without having to spend $30 dollars on a LYFT.

During career training I was curious when looking at the 6-question assessment put in front of us, wondering how this would tie into the next two weeks of this vestibule. After completing the quiz, it determined my primary characteristics are enterprising, artistic and social – not the first words society would use to describe a web developer. To be honest, I was very concerned to learn of my results. There are so many challenges that I’m going to face in pursuit of this career, and I wasn’t looking forward to more. Then I shifted my perspective, realizing these characteristics weren’t challenges. They made me more marketable – as an employee, as a thinker, even as a coder. Web development isn’t all binary with no creation, at it’s very core it’s about innovation and communication, both of which I enjoy very much.

After career training, I went to lunch to bond with my fellow classmates. We exchanged words about which characteristics we settled on, and even talked about ideas outside of class. We’re all coming from very different backgrounds, so it’s exciting to watch us all grow together.

We headed back to class afterward, this time to get focused on Java. I went up to the board to be a scribe for my teammates – we were getting an introduction on how to draw shapes on a canvas. And applause to us, because we drew the most complicated out of all three teams in the class! Drawing on a white board is one thing, but coding in an IDE is another. Learning how to draw shapes with code wasn’t easy for me in class, and the challenge continued when we were assigned homework. During my journey with ‘basic’ shapes, I wanted to push the bill and include color, and even a picture! My picture is probably an accurate indication of my ‘artistic’ abilities, yet it is also accurate of my creativity and determination to learn.

It’s exciting to learn about web development in a team setting. I think it can be very easy to isolate yourself with these kinds of projects, but the learning and even projects will be better the more we interact for sure. The more perspectives, the better the outcome.

The first two days of TechHire have been full of learning, about the program and myself. I’m beyond excited to see what the next few months will bring.

Screen Shot 2017-10-18 at 12.21.32 AM
Kindergarden Casa -Asher DeMadet
LaGuardia TechHire -- Open Code

Who Will You Be?

When I was little, people always asked me the question “Who do you want to be when you grow up?” That phrase has always seemed like a multiple-choice question where I was only allowed to pick one answer. That one option cycled between doctor, lawyer, and engineer throughout much of my Haitian, daughter of immigrants, upbringing. If I was ever passionate about something besides my one designated answer, it got a big ‘H’ mark, for Hobby.

I’ve learned during my quarter-century lifespan, however, that the question “Who do you want to be when you grow up?” isn’t multiple choice. There is an infinite blank space that I can fill up for how I live my life. I thought my family, friends, and society were providing the only possible answers for how to build a passion and a career. I recognize these sources have helped me construct core values, but it is my unique perspective and experience that ultimately drive my actions. I may sound like I know what I am talking about, but I only recently made this discovery. I’m learning how to build my life the same way I build a website – one meaningful step at a time.

I was always the person who brought others together. With my family, I made sure to highlight the qualities in each member that made us stronger as a unit. With my friends, I mediated conflicts between us. In school, I brought classmates together so we could succeed as a whole. I was, and still am, a bridge that connected the people around me in a healthy way.

Growing up in the 90s, my connections relied on face to face contact. In the early 2000s, my life changed completely with the introduction of household computers. No longer did I have to wait, because the Internet allowed me to connect to people I knew in real life and make new connections instantly. Throughout my high school and college years, the world became increasingly small to me – a series of infinite links and relationships, but many seemed superficial. Though the Internet provided an instant tie to others and their ideas, I’m excited to use computer science to bridge these experiences in the healthiest way I can. It is crucial that people connect in a way that encourages a positive community.

I recognize I’m innately good at helping others feel supported and heard. My passion for fostering connections is not without structure, for I back up my natural skills with academic theory. I recently graduated with a Bachelor’s degree in psychology from Hunter College in New York City, and I know for certain that my background in the humanities is making me a better computer scientist.

I’m excited to learn more about how to build a better Internet, an Internet that sees the world as human-focused as I do. Not only this, but it’s empowering that I can build an entire system of links, actions, and community with my own fingertips. Even in my brief experience self-teaching computer science, I believe it’s the missing component to fulfill what I am meant to do and help answer the question “Who do you want to be when you grow up?”

Guanacaste, Costa Rica