Week 5


What we learned/did

  • This past week was unique in that we focused exclusively on learning a single technology, and we practiced it through a single workshop that lasted all five days. The focus was Angular.js, the final element of the ‘SEAN’ (Sequelize, Express, Angular, Node) stack taught at Grace Hopper. To put it simply, Angular is magic. To put it a little less simply, it is a front-end framework that you can use to make websites interactive in a MUCH more elegant way than JQuery. Beyond that, using Angular adds a lot of structure to your code, naturally dividing it into small, single-purpose and manageable parts that are easy to read and follow. One of my biggest complaints up until this week was that we were not learning how to structure our projects in a logical way, but working in Angular for just one week has given me a very good sense of how to divide things in a way that makes sense.

My favorite parts

  • Well, I  guess I just gushed about Angular for a paragraph already, but I can keep going. There was this one moment when we had written out code for an entire workshop using some pretty complicated event emitters, and then the next day we learned how to use states in Angular. We went in and refactored everything, and we got rid of all the confusing stuff. Our code ended up being about half as long and way prettier. It was this satisfying:
    gif
    Also, we had a very cool CS Saturday workshop about cryptography. I can now tell you all about why large prime numbers are useful in encryption, as long as you don’t know anything about it yourself.

Code and the city

  • There were a couple of days this week that weren’t oppressively hot, which was pretty great. I went for a walk across the Brooklyn Bridge with one of my classmates and saw some pretty incredible views of the city (and a ton of great views of people taking pictures of the city). We also had our weekly learning team lunch on the Elevated Acre, a very pleasant park made of Astroturf which is, in New York, considered to be a form of nature.

My overall thoughts/opinions

  • Yay Angular! I can’t believe we only have one week left of junior phase, it’s such a blur!

Week 4

 What we learned/did

  • This week we returned to the front end side of web development. Instead of writing code for the server, as we have been doing almost exclusively for the past few weeks, we began writing for the browser. This is, in a sense, a simpler task, since JavaScript was originally designed to be a front end language. On top of that, all of my experience prior to Grace Hopper was with writing front end code, so I was definitely feeling more in my element.
  • We completed our first multi-day workshop this week. It involved building a trip planner website over the course of 3 days. On the first day, we designed the look of the page using HTML and SCSS (basically a similar but better version of CSS, I wish we had spent a bit more time on it, and will try to remember to study it more on my own time). On the second day, we made the site interactive using JQuery, and on the third day we made the data on the site persistent (still there when you refresh the page) by hooking it up to a database in the back end through AJAX. We were assigned different partners for each day of the workshop, and instead of keeping our own code from day to day, each day had a “starting point” written by an instructor that we were supposed to build off of. For me, this was pretty frustrating, not only because I never got to see my own work through to the end, but also because it can be very difficult to understand code written by someone else. However, as frustrating as this is, reading other people’s code is an important skill to have as a developer, since many jobs require you to build off of projects written by someone else.

My favorite parts

  • I had a bit of an “aha” moment with Friday’s lecture on AJAX. In short, AJAX allows you to make little mini-requests to the server so you can get new  information without having to redirect to an entirely new page. It’s the glue that holds it all together, and it’s pretty great.

Code and the city

  • At the moment I really have nothing good to say about New York in the summer, except the subway stations are basically free saunas, and walking down the street is like visiting a very informative multi-sensory exhibit of urine from different species of mammal. Also, the financial district has some pretty epic views of the water (for real, see above).

My overall thoughts/opinions

  • Overall, this was a tough week. There seemed to be a general drop in morale amongst the students. For me this was because some of the lectures felt repetitive, in particular the ones about CSS and JQuery which we covered extensively in foundations, and because of the general un-funness of the workshop that I mentioned above. Still, it went by fast, and feel like I know a lot more than I did a week ago. I’m looking forward to next week and to learning Angular.js, which is essentially better JQuery.

Grace Hacker

IMG_2674.JPG

Last Saturday, a few of my classmates and I decided to attend the Clarifai Artificial Intellegence Hackathon. Due to a bit of week-4 exhaustion, I am just now writing about it, and it’s going to be a pretty short post. One of my teammates from the hackathon wrote a really great article about it on her blog, and I recommend checking that out as well!

A hackathon is an event where developers (or sometimes non-developers) come together and create a project in a fixed amount of time, usually with presentations and prizes at the end. This hackathon was 12 hours, and the prizes were lighthearted (most secretly evil, most likely to slow human progress). My team took home the latter prize for a project called miss-direction, a chrome extension that you can sneakily download on your friend’s computer, and every time they try to get directions on google maps, they will instead get directions somewhere a few blocks away. I was lucky to have a very strong team, one of my classmates and one Grace Hopper alumna, who kept me grounded around hour 6 of straight coding when I started to hit a wall.

Some cool things about the hackathon:

  • There was almost too much free food
  • We got close to doing something that I would actually call hacking – manipulating the Google Maps API to do something it wasn’t intended to do. Turns out google is really good at preventing you from messing with its stuff. But we beat it!
  • We were in the General Assembly (another bootcamp) offices, which are beautiful. They use ipads for things that we use post-it notes for at Grace Hopper. Plus, they have a giant chalk drawing of Bill Nye.
  • The guy sitting next to us was using virtual reality goggles for his project and we got to try them on.

Week 3

tessel hackathon project

Our prizewinning project for the Tessel hackathon

What we learned/did

  • Most of the week was dedicated to understanding promises, a structure that allows you to write readable code for handling asynchronous operations. Without promises, it’s very easy to get lost in a sea of abandoned brackets and semicolons whenever you’re trying to get the computer to do multiple things that take time, like connect to a server or database, and you need to wait for those things to happen before you can do something else. Promises make it way cleaner and easier to read (and apparently faster to process?) but are also a bit tricky to wrap your head around at first, so it’s good we had a full week of introduction to it.
  • We also did a couple of projects using sequelize, which is a library that is built on promises and allows you to query a database without using SQL (just when I was on a roll)
  • Lastly, we had a test on friday to see how we were doing on sequelize and express. I actually enjoyed it, spending two hours silently coding on my own was, in a way, a good change of pace from pair programming, and it was good to be able to see what I could do without help.

My favorite parts

  • On Friday afternoon, we had a tessel hackathon with the Fullstack Academy students. I’m proud to say that my group took home the ‘most creative’ prize for building a machine that could sense an awkward silence and play cricket noises, wave a ‘well this is awkward’ flag, and text you a conversation starter. I’m especially proud of this considering that the other two winning teams were all men, and my team was all women.

Code and the city

  • I figured out the metro card thing. You have to keep it in your wallet and not let it rattle around in your bag with your loose change. Still though, MTA, if you’re reading this, you need to get over this whole magnetic strip thing, it’s 2016.
  • I’m about to go above 14th street for the first time since living here. Wish me luck as I enter the grid.

My overall thoughts/opinions

  • This was a pretty fun week! I learned a lot and I also had some really good partners that made it go by quickly. It kind of felt like one long day with naps in the middle.

An illustrated metaphor for HTTP

Complicated concepts are often best explained in metaphor, so I’m taking a shot here at explaining Hypertext Transfer Protocol through  a childhood experience.

You know that ‘HTTP’ that usually starts off urls? It represents one of many protocols that servers and clients (that’s your machine accessing the web right now) use to talk to each other. The HTTP tells both machines what to look for when parsing the information, and a developer with knowledge of these protocols will also know what to look for and can use the information being passed back and forth.

A protocol isn’t a language, it’s simply an agreed-upon structure for conveying information. For example, when my friend Oriana and I were bored in 9th grade history class, we would pass notes back and forth that obeyed ‘Galen and Oriana’s Disgruntled Onomatopoeia Protocol.’ It looked like this:


Here’s what that same conversation might have looked like in hypertext transfer protocol:


Hopefully this elucidates one aspect of the complex and seemingly magical Internet.

Week 2


Stuff we learned/did 

  • This week we left the friendly and familiar land of JavaScript, which had been starting to feel almost as natural as writing in human English, and entered the murky waters of “The Back End.” In developer speak, this means servers, Internet protocols, and databases (mostly just servers, if you want to get technical, but the other two are deeply involved). JavaScript was originally designed to be a front-end language, but with Node.js, it has become possible to use it for back end tasks as well (and in some ways it is very well-suited for this). Basically everyone and their mother has written some or other library that extends the capabilities of Node.js, and many of them are very useful. What that boils down to is that we have been learning a new technology about every 2.5 hours.

My Favorite Parts 

  • SQL is a programming language designed specifically to work with databases (arguably the programming language for databases). This week we learned SQL in about 24 hours. I went from knowing nothing about it to being quite confident in my ability to use it for normal tasks. That was pretty cool

Code and the City 

  • I’m still trying to like this place. I’m currently mad about the fact that I have to swipe my subway pass about 20 times before it will let me in, which causes me to miss a lot of trains and get a lot of funny looks, but I still have 3 days left on it so what can you do.

Overall Impressions

  • I can no longer complain that this is too easy.