My Experience with Data Science Bootcamps, Part 1
This blog post is part of a series to give people interested in Data Science bootcamps in Seattle an overview of my experience. This post will cover my background, the application process and then my experience at General Assembly.
FIRST THINGS FIRST
I don’t think I would be able to accurately sum up my experience without first talking about my background and my decision to transition. If you’ve read my about page, you know that my background is in environmental health, a field that can be very quantitative, as well as data and modeling heavy. During my time as a consultant, I did a lot of work in SAS statistical programming language for toxic tort litigation and prior to that, had studied biostatistics during my masters degree.
In the summer of 2015, I found myself at a crossroads where I wanted to take some time off to focus on some personal projects and to reassess if environmental health was what I wanted to be doing with my time. While I really enjoyed the quantitative aspects of my job, I found very little reward in other tasks. Believe me, I understand that every job is going to have parts that you just don’t enjoy, but I decided that I wanted to enhance my data analysis and programming skills. It was by happenstance that I came across the Coursera Data Science course, having never heard of the field before. After reading more about the field and getting bogged down by the sheer magnitude of resources on the web that claim they will teach you data science, I decided to invest my time and money into a more formal education. I did consider going back for another masters degree or certificate, but since I already have a masters degree I decided to forgo that option. Given that I was unemployed at the time and really interested in immersing myself in the material, the UW certificate, which met once a week in the evening was not a satisfactory option either. That left me with two options in Seattle: General Assembly and Galvanize.
THE APPLICATION PROCESS
First off, the General Assembly DS program offered in Seattle is a part-time course, which meets in the evening twice a week for 12 weeks. Its intended for people who are already employed and want to broaden their data analysis skills. The application was brief and asked for information on my work and educational background, as well as my familiarity with Python. Following the submission of my application, I had a brief phone call with their admissions manager, in which he asked more about my background relating to data science and Python. At the end of that phone call, I was offered a spot in their class.
At the same time, I was also applying to the Galvanize program. For those who are not familiar (as I was not), the application process for Galvanize is initiated when you submit an application in which they ask more rigorous questions about your educational and work background. After that, you receive a take-home exam that you have to complete in four hours, which consists of Python, SQL and statistics questions. If you pass that take-home exam, you must then pass two interviews: a coding interview and a statistics interview. Given that this program is intended to be a full-time, career transition course, they want to make sure that you have an adequate foundation for starting the class. The benefit of this eventually became more obvious to me.
Now, when I was first applying to these programs, I was in the beginning of teaching myself Python (which I did through Coursera’s Python for Data Analytics course) and did not pass the Galvanize Python interview unfortunately. Because of this, I decided that even though I knew that General Assembly (GA) wasn’t going to get me where I wanted to be, I would take the GA course and work on the topics on my own. Ultimately, I just wanted to get started on learning with additional educational support.
MY EXPERIENCE AT GENERAL ASSEMBLY
I want to start this off by said that by the time that I started the GA course (February 2016), I had gone through not only the Coursera Python course mentioned above, as well as the entire Cody Academy course (just to review and prepare). Following this, I placed myself in the beginner-intermediate skill level with Python, but by no means expert. I also had a background in biostatistics, so I was familiar with some of the more common modeling techniques, such as multiple linear regression and logistic regression. All of this to say, skill level of my classmates varied widely, with myself somewhere around the top bracket of most experience in Python. A lot of time in first couple of classes was spent trying to get people up to speed with Python. I was always happy to help people but often felt that my time was wasted when that was happening.
The format of class every meeting was usually written as follows:
6:30- 6:45PM – Question and answer from the previous class
6:45 – 7:30PM – Lecture
7:30 – 7:35PM – Break 7
:35 – 8:00PM – Exercise
8:00 – 8:45PM – Second lecture
8:45 – 9:15PM – Exercise
9:15 – 9:30PM – Exit ticket (survey)
However, it was actually very rare that the class adhered to this schedule. For some reason or another, the second half of class often did not happen and we were left to just complete the exercise on our own time.
It kept me on task with learning data science skills.It provided a very concise overview of many of the machine learning models including linear models, ensemble models such as decision trees and random forests, KNN clustering, and PCA.Every class had a dedicated iPython notebook for lectures and exercises which made it very straight forward and simple to implement the models.Our TA was very knowledgable and approachable.You began a class project early in the course and were asked to submit draft reports and code at different checkpoints in the course.
Class was often delayed because of technical difficulties (git can be really hard to understand if you’re brand new to it) or lack of understanding with coding.The lectures only showed us a brief introduction into what each model did and how to implement it in Python, not the actual math and theory behind it. This is both a pro and a con, because with only three hours of lecture, you cannot really get into each topic in depth and most people do not have the math background to fully comprehend the depth in that time anyways.The exercises were often mirrored examples from the lecture and the code could be copied and pasted from the lecture iPython notebook. Because of that, I rarely felt challenged to think of the answer and constructing the model.The lecturer often seemed unprepared for class and flustered by questions.If you had done the readings ahead of class, the lecture was very redundant. There was a day in which the lecturer emailed us and told as that we really should watch a series of youtube videos on the topic before class. The iPython notebook that was used for the class lecture was exactly the iPython notebook that was used on the youtube example. That was a particularly frustrating day for me.Almost all of the student’s projects were incomplete on the day of presentation and seemed to lack depth. However, this is completely understandable given that most people were trying to complete their project while working full-time and taking this course. However, one could argue that it was a lack of guidance. For example, one student decided to attempt a Kaggle competition for their project and quickly hit a wall when her data was in Spanish- a language that she did not speak. Rather than changing her project and expectations, she still attempted to complete this project and had an incredibly poor presentation.
GENERAL ASSEMBLY – IN SUMMARY
Would I recommend this course? It depends
If you are a full-time employee who is only looking for enough schooling to familiarize themselves with Python, Pandas and Scikit-learn, this might be a great course. If you don’t have a lot of experience with Python this might be the course for you as well.
However, if you are, like I was, looking to make a career switch and wanted to leave the course feeling prepared to work in a data science role, this course will not prepare you for that. Within a week of starting this course, I knew that this course was not going to get me where I wanted or needed to be and re-applied to Galvanize. Thankfully, I got in this second time- with full marks on both interviews. I considered dropping out of the General Assembly course, which was scheduled to end the Thursday before my Galvanize cohort started, but decided to continue on with it as a prep for Galvanize. The familiarity I gained with Pandas and Scikit-learn did eventually end up being very valuable for me. However, ultimately, Galvanize ended up being much more beneficial for me, as I will elaborate on in a future post. Stay tuned!