Week 6


What we learned/did

  • We finished up Juke this week, which was our 5-part angular workshop. It was a relief to be done with it, but then I ended up redoing most of it on my own time.  We had an assessment about Angular on Friday, and redoing the workshop was a very good way to study. Plus everything makes way more sense the second time you see it. The assessment itself was (don’t hate me, any fellow classmates who might be reading this) pretty fun. It’s nice to break out of the pair programming routine now and then and just spend a couple silent hours really focusing on your work. Plus, I love Angular, as you might have guessed if you’ve been keeping up with my blog.
  • We also briefly explored web authentication, which is one of those really huge things that I never would have thought to learn on my own. I now know how to make a website that you can log in to, which has become pretty essential. And that thing where it says “log in with google”? Yeah, I can do that too.

My favorite parts

  • We had a pretty fun Harry Potter themed cyber security workshop called ‘Defense Against the Dark Arts. I find that even (especially?) as an adult, Harry Potter references really help me focus.
  • I have also gotten more serious about algorithm practice on my own. There is a prize for anyone who can reach level 4 on codewars by the start of senior phase, so I’ve been working on some trickier problems. I’ve also been attempting to write out code by hand and test it on paper before trying it on the computer, which is very useful and also very very frustrating.

Code and the city

  • I’ve escaped the city for the long weekend (see trees below) and the fresh air and unobstructed views of the horizon are pretty nice. But New York was also quite nice this week, weather wise, and I’ve found a few spots next to raised gardens where, if you crouch down and ignore your peripheral vision, you can make yourself believe that you are surrounded by nature, which helps with the sanity.
  • I’ve had a lot of really excellent falafel this week, mostly from the Halal truck parked tantalizingly between my gym and Grace Hopper, exuding the smell equivalent of siren song, but also from Roti, which I pass by all the time but tried for the first time this week and highhhhhly recommend.

My overall thoughts/opinions

  • I can’t believe junior phase is over! Looking back, I have learned so much, a lot of which I would never have taught myself. We have learned to connect databases, server-side code, and code for the browser through http and AJAX requests. We have been exposed to a vast number of npm libraries and dived deeply into a handful of them. That said, I am very excited for senior/project phase, where I can use more of my own creativity and problem solving abilities. I’m looking for some project ideas, so if you have any, please send them along!

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.

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.

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.

Computer-Generated Haiku

Better watch out. The machines can write poetry now, which means the next step is world domination.

To clarify, the final project from foundations last week was to write a program that randomly generates haiku. I thought I would share some highlights here. Luckily, computers are still pretty bad at poetry, although the first one seems a bit too accurate.

STRANGE INAUDIBLE

MINISUPERCOMPUTER

DISSERVICE THORO

~~~

FRIEND DECOMPRESSION

UNPROFITABLITY

INNOCENT FORK-LIFT

~~~

ENDEAVOR DODSWORTH

PATRONIZES PATIOS

PROLETARIAN

~~~

HATMAKER COWARD

INCONSTANCY INDERAL

IMMEASURABLY

~~~

DERMATOLOGISTS

UNILATERALISM

IRRESPONSIBLE

The program can also find haiku naturally occurring in a text. Here are a few from The Importance of Being Earnest.

ON A SALVER ALGERNON

INSPECTS THEM TAKES TWO AND SITS

DOWN ON THE SOFA

~~~

FURNISHED THE SOUND OF

A PIANO IS HEARD IN

THE ADJOINING ROOM

~~~

BEING EARNEST A

TRIVIAL COMEDY FOR

SERIOUS PEOPLE

And here are two from my senior thesis!

CAT RENOIRS ONLY

MALE NUDE IS AN INTRIGUING

PAINTING YET IT IS

~~~

OVER HIS SHOULDER

IS INSCRUTABLE IS IT

SADDENED DREAMY COY

Let me know if you have a text that you need to find haiku in. If you would like to see the code behind it, I posted my project on GitHub.

 

Week 1


I just completed week one at Grace Hopper! Here are my thoughts.

Stuff we learned/did 

  • The theme this week was computer science fundamentals. We had a very targeted review of some topics that, apparently, are quite common in interviews for junior-level developers. These included:
    • Data Structures! We built models of queues (a word I just learned to spell), linked lists, and binary search trees in JS.
    • The DOM! I, and many of my classmates, I think, had previously been relying on JQuery to make our websites interactive (because, like, why wouldn’t you, JQuery is magical). We learned to access and update elements in the DOM (like the paragraph you’re reading, or the header on this page, or the link you clicked to get here) without any of that Jquery magic, and even wrote a program that performs some of the magic of JQuery, making it seem less magical.
    • Algorithm efficiency! We learned about big O notation, which is a vague and imprecise (yet useful and omnipresent) way to describe an algorithm’s run time. I already knew all about this because I played guess my number with my 6th graders. Literally. You learn everything in the 6th grade.
    • Sorting! We implemented bubble sort and merge sort. It was a really great programming exercise and I kind of wish we had written more search algorithms, it might be something I decide to do on my own time.

My Favorite Parts 

  • Pair programming: in each workshop we are assigned a different partner who we work with the entire time. This has been a really great way to get to know my classmates better, and it also makes 6 hours of basically nonstop programming way more doable. Another benefit is that it forces me to talk through my ideas and make sure I really understand them, usually while drawing many scribbly diagrams. I can now do a breadth-first search in my sleep.
  • Game night: Settlers of Catan and gluten free pizza… What more could I ask for?

Code and the City 

  • New York has always intimidated/overwhelmed/disgusted me, and now I live here! I’ve heard that it’s better to live in New York than to visit, and I have to agree. It’s great to have a nice, quiet room to retreat to at the end of the day (although by doing so, I am contributing to the gentrification of yet another Brooklyn neighborhood, so there’s that).
  • I actually really like FiDi, where Grace Hopper is located. The streets are twisty and turny and you can never tell where you are. To me, the flowing streets feel way more natural than a harsh grid and it makes the whole place more liveable.

Overall Impressions

  • I have  to say that I expected the work to be quite a bit harder. The workshops are challenging enough, but there hasn’t been anything that I really struggled to finish. I am definitely learning a lot, but in general I expected the pace to be faster for such a short program. We will see if it picks up in the next few weeks.

Stuff I started using 

  • If you ever need to take notes on a coding lecture, I recommend Quiver from the App store. It lets you go back and forth between normal text and nicely formatted code pretty seamlessly. I never pay for apps, but this was a good use of $10.

Foundations

Blueberry smoothie and a page from Eloquent Javascript
My typical workspace. Blueberry smoothie and a smoothie-stained printout of Eloquent Javascript.

I recently completed Week 3 of Foundations, which is the remote course that makes up the beginning of the Grace Hopper curriculum. We are spending this time building a strong foundation of knowledge so that we can get started right away with the tougher and more interesting stuff when we arrive on campus.

In order to be accepted at Grace Hopper, you already have to have a pretty good grasp of the basics of programming (loops, arrays, functions, recursion) and be confident enough in your abilities to complete some tricky challenges in a timed test. So far in Foundations, we have reviewed those topics on a much deeper level than I originally learned them. I thought I knew what an array could do, for example, but I had only scratched the surface before now. The major themes so far have been object-oriented programming and inheritance, but I’m not going to try to explain that here, check out my links if you’re curious!

The structure of the online course is a combination of videos recorded by Grace Hopper and Fullstack Academy instructors, followed by coding challenges. One recent coding challenge involved rewriting some common methods that are built into JavaScript, which I found to be a really helpful exercise. There are also a number of outside resources that we are expected to complete. We all have access to Codeschool, which is an extremely informative (if a little dry) tool for learning a variety of coding skills. Codeschool has been our main source for lessons on HTML/CSS, and even though I thought I was relatively experienced in that area, I still learned a lot from the tutorials.

The foundations instructors have been very responsive and helpful. There is an online forum where we can communicate with them as well as with fellow students, and I’ve been able to get all my questions answered pretty quickly.

Overall, I’ve enjoyed foundations a great deal, but I can’t wait to get on campus and start learning around other people who will shame me if I spend too much time on Facebook or take a break to watch 3 episodes of Sex and the City.

p.s. One of our assignments was to make a simple guessing game to practice our html/css. I find it weirdly fun to play. Check mine out here!

Hello!

Hello friends, prospective coding Bootcamp students, complete randos, mom. The last time blogged, I was writing about my super fun times studying architecture in Copenhagen in the fall of 2013. Since then, I have performed a number of 180-degree career pivots, involving a two-year stint as a math teacher, and have now landed at the precipice of something very exciting.

I have been toying with the idea of a career in computer programming ever since I took my first (and only) official computer science course as a freshman in college. On and off since then I have become engrossed with codeacademy courses, coding challenges, and even applied to a different Bootcamp two years ago, only to back down because I wasn’t entirely sure it was the right path for me. I finally got serious late this winter when I ran into my Ghost of Christmas Future (long story) at a board game café and had one of those sudden moments of clarity.

I started Free Code Camp* shortly after that, and soon found myself hiding in the teacher’s lounge working on coding projects while I was supposed to be doing my real job. I took this as a good sign, and applied for some in-person coding Bootcamps so that I could take this thing to the next level. Ultimately, I decided on Grace Hopper Academy, which is where I am now.

Well, not physically. The first four weeks are remote, and I will write a little more about what I have been working on during this segment in my next post. For now this post is plenty long, I personally rarely read more than three paragraphs of anything on the internet. Join me on my journey through learning to code and living in New York for the first time! I promise to keep it brief and witty while also insightful and informative, you know how I am. Thanks for reading.

*For anyone out there interested in learning to code or do web development, I simply cannot recommend Free Code Camp enough as a place to start. They walk you through the basics of HTML/CSS and Javascript, then set you loose on projects that build a ton of independence and real-life skills. The community is also great and extremely helpful. Definitely check it out.