09 Nov 2017;
18 Aug 2018 (updated)



Let me begin by saying that I am not paid by GA to write this article. I just thought I'd share my experiences because last year, before embarking on my GA journey, I did a search for GA course reviews and I didn't find any. (The closest I found was Kevin Markham's blog post on his days as a GA DC instructor -- saw him on campus once.) My biggest fear would be to spend on education that didn't really match my goals.

So I went on an exhaustive search for data science programs that offered classroom training. There were a number of schools in the DC area, and it came down to three criteria: cost, location, and reputation. General Assembly offered the best value and a flexible part-time option. It's location was perfect for me, I could walk to GA or I could take the metro to McPherson Square if I'm running late. And, of the many coding schools out there, GA was one of the more established programs. In the end, I am glad I chose GA. They offer a lot of nice perks for Alumni, one of them is the alumni pass, which allowed me to take more classes for a fixed fee-- which allows me to compare and share my experiences on each.

Skip to sections:

Data Science

This was the first class that I took at GA, and I think it was the most 'selective.' I say this because, prior to enrollment, the admissions manager actually calls you for a short interview and screens your qualifications. I really appreciated this, because it also helped me guage that I was a fit and that the course suited my personal goals.

My profile:    I am self-taught in Python; I discovered it while drafting a TED Talk for a former boss (read here). I became obsessed with data science after I took Andrew Ng's coursera such that I hired a tutor to get me started in Jupyter Notebook. I would consider myself a "Stack Overflow" coder (still am). But you could say I could read Python, and at the very least, understand what is going on when handed a chunk of code. And I have the basic knowledge of statistical theory. (Well, ok, an advanced knowledge of stats. I think these qualifications more than meet the criteria to be admitted to the Data Science course. I felt that I was above the curve for the most part of class. So don't feel disheartened if these did not resonate.

Instructors:    We had two instructors for the course, they took turns in teaching the lessons. When one was teaching, the other was the TA. This helped a lot of us in the lab exercises, so the instructor could carry on with the lesson rather than waiting for classmates who were having troubles with github or coding. In my class, both instructors were smart and very well-qualified. They are industry practitioners, though I think one instructor was a waaaay better teacher than the other. I would have liked it if that one guy taught the entire 12 weeks. I also found that the two-instructor format made some of the materials disjointed. Subsequent lessons would make assumptions about what was taught in the previous lesson, but because they were taught by two different instructors, the continuity aspect doesn't always follow.

Every end of the class, you are asked to sign an "exit ticket" about how you felt. Was the lesson too hard? Too easy? What did you like or didn't like? I was frankly quite vicious with my comments to the instructors, I only thought that we all could benefit from honest feedback. I could feel that they do listen, because they make the adjustments in the next session.

Curriculum:    I found the curriculum well thought-out, and that the pace suited the skill level of the class. Just manage your expectations and don't expect to be Python gurus at the end of the course, though what is taught is quite sufficient to code and navigate your way through Python (with assistance from your S.O. -- yes, talking about Stack Overflow). The first thing they show you is the "data workflow." I think it's a GA-copyrighted schema. And then throughout the course, you tackle different aspects of this data workflow.

The early part of the course reinforces your knowledge in Pandas, which is a must for everyone who wants to get into data science. Most of the exercises are done in Jupyter, and some in Spyder. (I remember I had no clue on how to use Spyder on our first day of coding, to which my instructor quipped "maybe I'm going too fast" because he assumed that we knew how to work those programs. But if you can code in R or Matlab or STATA, it's a very familiar interface. Easy peasy.) After Pandas (data exploration), Matplotlib and Seaborn (data viz), you move on to the meat of Machine Learning. So you'll be taught concepts in statistics, linear regressions, gradient descent, physics, etc. If I would summarize what I learned in data science, it's the mastery of Pandas and Scikitlearn. And for a data science 101 course, I think this is fair. BUT! if you want to go beyond the material, the instructors are actually very knowledgeable. For my final project, I was tinkering with a few other packages for network analysis. The instructors were a great resource to bounce off ideas and brainstorm. I consulted with the instructors a great deal, on various machine learning topics, both for work and for my final project. My advice would be to take advantage of "office hours"(read: consultation hours with instructors).

Homework:    This said, the progress you have with the course is equivalent to the amount of effort you put in. You HAVE to do the homework, and the homeworks are frequent. They start off very easy, then become more complex as time went on. And there is great value in participating in class and doing the in-class exercises. Here's a trick: Use google when doing the HW. You'll be surprised at what people push on Github. You're welcome :-)

Final Project:    I was one of the few people in the class who were successful in completing a final project. You are given freedom in choosing the data project you want to pursue, and a lot of my classmates were interested in doing web scraping, which apparently is an ordeal to pull off given the short time frame of the class. (I think web scraping was taught as a flex session in the latter part of the course, and there is not enough time until the final presentations.) I went with a project on K-Means clustering, it was ultimately simple, but the work that went behind it was tremendous. I tried a lot of things we learned in class (dimensionality reduction), iterated over a bunch of models (K-Means, DBSCAN, Hierarchical), and benefited a lot from office hours. I felt that my final project was a great application of the entire data workflow: Data prep was 60% of my work, then data viz, then data analysis. Hence, the final project became a culmination of how much I've progressed since the beginning.

Update as of Aug 2018:    What a difference two years makes. I enrolled in the program again to prepare me for my Oxford journey, and to refresh myself with Python and the git environment. The same instructor from 2 years ago taught me, and this time he taught the class entirely (no co-pilot). He had two TAs help during the class.

The class profile is pretty advanced compared to two years ago. Perhaps this is reflective of the vast interest, and developments in the data science industry. Most had a good backing in statistics, some had programming background. I would consider myself in the middle of the pack. We covered most of the same material from two years ago, but the instructor had changed it up to focus more on NLP. In my opinion this was a good thing. I found the pace of the class just right.

Considering the strong profile of the class, I would say that one TA is inferior, more often than not s/he had no value added and it was more useful to ask your seatmate instead. The instructor was still excellent. He is clear with answering questions, and is very knowledgeable. (Fun fact, this instructor was Kevin Markham's TA back in the 6/7th cohort of Data Science in GA DC.) This year, I was able to challenge myself more because the class was pretty competitive, and it showed in the quality of the final projects. I also was able to join the in-class Kaggle competition, something that I did not do in 2016.


Beyond Income: A new classification of the world

Data Science Final Project (2016)


Ownership in IMF programs

Data Science Final Project (2018)

Data Analytics

I liked my experience in Data Science very much that I signed up for an alumni pass so I could take more classes at a discounted rate. I was very curious about the Data Analytics course, and naturally, that was the second course I took.

My profile:    I breathe and live Excel. I am comfortable with doing all my analysis in Excel or csv or txt, and can navigate multiple spreadsheets, pivot tables, vlookups, etc (except macros). I navigate larger datasets using csv or dta (the STATA file extension), but I was interested in learning about manipulating massive datasets, of which I have not had experience with. I had zero knowledge of SQL, what it does, how to connect to a server, etc.. I would consider my Tableau knowledge above average.

Instructors:    We have one instructor for the course and one TA. Technically we had two TA's who split the load. One TA handled the SQL part of the course, and the other one took over when it was time for Tableau. I think the instructor did a great job with the course, he had a welcoming and friendly demeanor to him. I also liked that he gave us a flex session on R and SQL. But I didn't have a lot of chances to interact with the TA's or the instructor.

The TA's are an excellent resource for homework help. I've never gone to their office hours, but I did see a marked improvement in the analyses and presentations of my classmates who sought help from the TAs. They sit at the back during class, but they barely listen to the lecture, so if you ask them something in-class sometimes you have to give them more context.

Classmates:    I must say that the class is pretty strong. Practically everybody had some training in analysis in one form or another. I found the class to be very competitive, dominated by 3-4 people, and I could not recite in class because I felt that my pace was slow compared to the rest (in the SQL portion, at least). I carried this sentiment throughout the whole course, and stayed in my own little bubble the entire time. I don't think I recited at any point other than when it was time to present our homeworks. My classmates really put in great effort in their homework, they come prepared with a plethora of charts with nice visual elements. Meanwhile here I am, armed with an excel spreadsheet in my first homework (mistake #1), then a PPT with one chart (mistake#2) and poor color contrast in the second homework. My comments on my presentation was that they couldn't read my slides! (Hence, visual design class..) And by the way, my classmates are really critical with their feedback. They don't mince words! (Which is great). So when it came to final presentations, I knew I had to step up my game!

Curriculum:    The structure made sense to me. Excel basics first, then SQL deep dive, then finally Data Viz. Before classes start, we had to complete an onboarding task on Excel which ensured that the class had the necessary background before starting the course. Most of our class logistics operated in Slack. We had a schoology account but I only used it once.

A major component of the course is to make presentations. I think we were asked to present at least three times in class: One in the excel portion, the other in the SQL, and then in the Final presentation. There was even a session on storytelling and data narratives. Honestly, my Visual Design class (which I review next) also had a session on storytelling, and did a better job. That's why I think visual design was quite complementary to data analytics -- but more on that later.

First, we had the Excel analytics. So you learn vlookups, match, pivottables. If you're familiar with these, this part of the course (about 5 lessons) is like a refresher. The AirBnB homework makes it interesting though (more on that later). Second, is the SQL portion. So we download this freeware PostGRE, and connect to the GA data repository and start our analysis. There were about 8 lessons on SQL. We learn the basics: select / from / where clause, then go into filtering and aggregating, then joining and doing sub-selections, and basic statistical functions. This all culminates in the second homework / presentation. Lastly, there are about 4 sessions in Tableau which is an overview of the basic functions-- making the viz, making the dashboard, making the story. I think the Tableau part was spread too thin. My classmates with zero background in Tableau struggled to even make their first viz. If you take Data Analytics only for the Tableau portion, I highly recommend joining the Tableau DMV meetup instead. You will learn more there than you will here. Plus, the folks running that group do great voluntary work! :-)

Homework:    The class is not as homework-heavy as Data Science. The first homework was to analyze AirBnB data and recommend profitable locations. It was quite interesting to see variations in how each of us tackled the question, and how our conclusions diverged. To me it was a very good reminder that analysis is relative! The second homework was the most difficult, and it could show in our class attendance on presentation day-- barely half of the class went! It was to do an analysis and 5-min presentation on Firefox (the browser). I was a little behind on the SQL material, but the homework forced me through the process and got me back on track with the class. It felt like an achievement that my six-nested SQL codes actually worked! But a whole lot of work. So my advice is to stick to it even when you're behind, and do the dilligently do the homework!

Final Project:    I wanted to get my money's worth and initially attempted a big-data project using the "Million Song Dataset." The whole data was 280GB, and it seemed like the perfect candidate for a SQL-Tableau hybrid final project. However, I couldn't host that big of a dataset in any of my platforms, and I couldn't just query the database without downloading it. After consulting with the course instructor I decided to scrap the idea, and scaled down tremendously: from 1,000,000 songs to 1,000.

The problem with the 1,000 song database was that it barely provided any information. It was just year, title, artist, and theme. If I could at least have the genre that would already make for interesting analysis. So I went to work and exercised my rusty web scraping skills. I was able to write a code that scraped the Wikipedia content box (the small box on the right side) with the genre, location, etc. But I couldn't loop over all the artists because the content box was not standard. So I did the 1970's thing of manually typing them in. It took 1 day and a half to put in info for 600 artists. But I was at least dead sure that none of my classmates had the same dataset as me. Halfway through the exercise I thought of cutting my losses and going with an NBA basketball dataset, and have actually begun some visualizations. But it was just too overwhelming of a topic and I had so much to say about basketball that I just scrapped that idea, and went back to music.

The Tableau portion was the simplest (and most fun) part of the exercise. I tested the limits of my Tableau skills -- and applied what I've learned from Visual Design class -- and came up with a pretty decent radio visualization where the bar charts resembled the radio's equalizer bars, and a pie chart that looked like a frequency knob. I really wish I did a SQL final project, and I felt that I stayed in my comfort zone (Excel) with this one, though I was proud of my final creation. My classmates scored me high on the data viz aspect so I feel it was a redemption of my poor data viz scores in the homeworks. You can find my final project below.


1,000 songs to hear before you die

Data Analytics Final Project

Visual Design

Coming from the perspective of someone who is not in the creative space, I was very happy with this class, it couldn't be any better. This was something entirely different from my daily grind, and a refreshing break from the monotony of daily data work.

My purpose for the course was to gain a design eye when doing my data viz or ppt presentations, and even in building websites (like this one). Of all the courses I took so far, this was where I gained the most, because it felt like I was learning something mind-blowing every week. I absorbed all the principles (say Gestalt!) like a sponge and I feel more confident about my design choices now. I have a greater appreciation on how editing and design can significantly improve the quality of a data viz. I now think about visual hierarchy in my work!

My profile:    I am self-taught in Photoshop, and started quite early (CS2, in 2005). So I know what most icons can do, I know how layering works, and have own rugged way of navigating Photoshop. It's enough to get me by with the creative stuff I need to do at work. I can edit photos and make basic shapes, but know no tricks. I don't even know what a clipping mask does or what it means to rasterize. I have no experience with Illustrator, though am aware of it's sorcery.

I have no design background whatsoever. My last art class was in high school. I would like to believe though that I can tell if something looks nice or not.. (or so I thought!) Personally, my design choices are always on the safe side. Nothing too outrageous or crazy. I put in a pop of color here and there but I really have no clue on what colors go well together or what fonts look best for a given project.

Instructors:     The value of taking an onsite visual design class is having to personally consult with your expert instructors, and gathering feedback with your classmates, and I truly benefited from this. There is one instructor and one TA for the class, both of them are really great mentors, very approachable like you're friends, but also objective with their critiques. And they have very flexible office hours. They'd come in an hour before class, and can stay late after class. We had a class that ended at 9:30, and we were doing office hours until 10+! I had a major mishap one day before final presentation, and the TA offered that we recreate the project together and could stay longer if needed. That was super sweet of her!!

I loved that they were honest (but nice) with their feedback, otherwise how would you know? I received final comments on my webpage design, like how they felt my logo could be better, or my colors were "eggplanty". My classmates are very nice and they would highlight the nice things of the copy; you can trust the instructors for the critical comments.

As I mentioned, the instructors are well-qualified and extremely connected in the DC design scene. They give you invaluable access to their established network of creatives and designers, particularly in the DC area. We've had resource speakers come at several sessions, like we had a fabulous designer panel on the last day of class (today!). It was great to see diversity in designer perspectives. The instructor also kept us informed with design events in the area (design week, talks, networking events, jobs, etc.). My classmates were very comfortable with consulting her about career plans. For an instructor, that must be heartwarming. Last but not least, she is a big fan of Mike Monteiro! She all gave us a copy of his book "You're My Favorite Client" which I promised myself I'd read over the holidays, and we watched a 1-hr Mike Monteiro workshop in class (The guy is engaging and funny! I learned a lot from that video). :D

Classmates:    The vibe of this class was great. I met really wonderful friends whom I hope to keep in touch with. I think the format of the class really helped us warm up to each other. We had a lot of group interactions, critiquing/consulting each others work, and doing exercises in pairs and groups. It was a very relaxed atmosphere, not competitive (despite the weekly deadlines!), and everyone seemed to genuinely root for each other. I felt really comfortable letting my guard down in this class, didn't feel ashamed to recite (even if I was a little insecure about not being a designer!). They presented really strong work in the end, I had a few favorites that blew my mind. Like that ethereal presentation of my classmate who did her all slides in photoshop. Now that's an idea I'll adopt in the future.

Curriculum:     For someone without a design background but knows a little bit of Photoshop, I felt that the curriculum was ample, and it touches all the bases. They teach a whole range of things, from Photoshop basics, like masking and layering; to Web Composition; Color; Typography; Interfaces; Responsive Designing; and how to pull them all together into a client pitch. It gave me a good foundation plus more (like logo design, and 'advanced' photoshop tricks like gradients). Like other GA courses, what you get from the course is proportional to what you put in. It is by no means comprehensive, so they give you a flavor of color theory, and suggest tools (that's how I found out about Adobe Kuler and Adobe Capture, and been using it ever since, for websites and presentations!). They have two sessions on typography, and introduce tools such as Fontface Ninja and Google fonts, which you can choose to apply to your Final project. I think the "keeping up to date with resources and tools" aspect of the course is what makes this course worth taking, among other things. Especially when you are not in the space, all these creative apps and tools can get overwhelming. I wouldn't know where to start! Taking this course gives more structure to your design thinking process.

Homework:    There is homework in this class, and it is quite frequent. You get pre-readings weekly, on which you have to log on to Schoology and answer 3-5 questions. But that said, the readings are short and absolutely helpful. It lays the groundwork for what will be discussed that week. It puts everyone on the same page. I like it because these are articles that don't typically show on my newsfeed. Like how google or facebook 'predicts' what articles would probably interest you? These readings do not fall into that category. So it is quite refreshing and informative to learn something new. Like design principles, or do's and don'ts. I truly feel that I will still come back to these resources after I've finished the course.

Apart from pre-work is the 'real' lab homework, wherein you turn in PDFs of your copy for every step of the design process. I believe I turned in about 5 pre-work assignments and 6 lab homeworks. It is actually fun to do the lab homework, but it can really take up a lot of your time, especially if you're not Photoshop proficient. It pretty much takes up one Saturday to turn in a decent lab homework. However, there is in-class lab time where you can work on your homework, and it helps tremendously in gathering feedback.

Final Project:    You are given the option to work on one of three ideas: (1) Liquidlabs, which is a customized juice company; (2) Beatbox, which gives you customized music playlists; or (3) your own. I chose to do #3, because I was working on a project on Fintech for Africa and part of the task was to produce a website, for which I volunteered. I thought it would be a nice journey of how the design process could be. And I felt that I could measure my progress with each iteration.

The final project is a culmination of all the homeworks. You begin the presentation with a research of the competition, then a discussion of objectives and strategy, then more technical stuff such as: moodboards, wireframing, iterations, color choices, typography, interactions, logos. You learn all of that in the class. Isn't that great value?! The whole presentation is strictly 10 minutes, plus 5 for Q&A. I have my presentation (in Apple Keynote) linked in the banner at the bottom, which is a comprehensive take on the whole exercise, but in case you don't have a Mac, here is a summary of the sample protoypes I toyed with.


Iteration 1

I went for the "in" thing that is the video background. Not all techy things look visually appealing.


Iteration 2

Also known as the "eggplanty" theme. Ultimately, thought I'd revert to this, albeit with a muted palette.


Final iteration

Opted for Blue/Red, which suggests stability and safety, at the risk of blandness and looking commercial.

I hope my instructor doesnt mind that I'd share snippets of her comments on my presentation. I thought it was super insightful and comprehensive. You could tell that she really listened to each and every presenter (and I was second to the last!), and it helped me improve my work tremendously.

... You did a great job grounding your project in your discovery phase—walking us through the goals of the site, the “simple and straightforward” approach that’s lacking in competitor sites, your millennial audience, and your particular timeline restrictions (which are so very common in real-world projects)...

...It’s clean, with lots of white space, and has good hierarchy. It’s easy for me to skim and understand what’s important on the page. You’ve done a great job keeping it simple and straightforward...

...I thought your debate about color was very interesting—trying to find a good balance of unique and trustworthy. I agree that if you want to go back to the purple, picking a slightly less-saturated purple ...[whats nice about] the blue and red is they aren’t TOO intense... Picking a not-pure purple would give a similar effect...

...I’m finding the text on your hero image a little hard to read. I might try adding a gradient, or maybe a box behind the text, to add more contrast...

...On-the-fence about your logo. It has some nice things going on with it, but there’s 2 things that aren’t working as well: It reads well at a large size, but is harder to read at a small size. [eliminating all the boring details here, but it was a comprehensive comment that is much appreciated and well-taken!], and (2) Not sure about the type for MoJambo because...

I have to share that I had a major blunder one day before my presentation. I was working on my website (THIS WEBSITE) and accomplished a new look and feel for, thanks to the lessons on visual hierarchy that I learned from the course. I realized that the colors I used in the previous version was horrible, the site was difficult to read and navigate. So, I made a new format and was eager to upload on github. To cut the long story short, I made a wrong git push and a -reset hard gone wrong erased ALL my friggin files. My desktop is immaculate now, not even the icon for the Mac Drive is there. My docs folder is empty, and I suspect that some of my system files were also deleted, because I notice negligible system errors here and there. I am only typing this now because I was able to do a git pull of an archived version of my website which I luckily uploaded minutes before the crash.

Panicked, I ran to the Apple store in the middle of the workday. They could not offer a solution and recommended that I do those expensive data recovery firms, which will do no good because I have an urgent case. And from my own research, once you delete on Terminal / Bash, there is very little you can recover. So, exactly 24 hours before I was to present, I had to recreate my whole Keynote. That includes re-doing my wireframes and protoypes that I painstakingly created in Photoshop. I was able to salvage a few aspects, copy-pasting from my submitted homeworks and git-pulling old versions of the mojambo site. And I realized that when adrenaline kicks in, you just go on overdrive. Ultimately, the presentation that took me a whole weekend to complete was done in 6 hours. I did not lose sleep over it. Anyway, judging from the instructor's comments, I think I pulled it off!

Good to know:     You don't need to know HTML to take Visual Design, though the course is all about designing a responsive website. You do all your wireframing and mock-ups in Photoshop, and then if you're advanced enough, you can prototype the user experience on I happen to know HTML and CSS and some JS, and it helped me come up with a realistic design in the end, but also limited my creativity because I often thought -- that ambitious design can't be done in HTML..!



Visual Design Final Project

Digital Marketing

It would be unfair to make a review of this class because I dropped out. So rather than post a review, I thought I'd explain my reasons why.

I dropped out because of two reasons. First was a valid one: I had the flu, and had to miss a significant portion of class. (It was pretty bad that I vowed to take a flu shot next winter season.) The instructors were very understanding, and they allowed me to stay on despite my multiple absences. But I was already quite behind with the material, and I had been traveling during the Christmas holiday.

The second reason was that I realized that the topic was not for me. The instructors were industry practitioners and they seemed to be knowledgeable about the material. From a consumer point of view however, I felt uncomfortable hearing how my decisions can be deliberately manipulated through marketing tactics. I felt that I did not need to go to class to learn the material, and overall I just felt that going to class and interacting with the instructors added minimal value. But again, take this opinion from a data science aspirant who does not directly need DGM in her day-to-day, but enrolled anyway for personal improvement, without any understanding of what she was getting herself into.