Ivy Xing was studying computer science in college, but realized she needed experience building her own products. So she took the summer after her junior year off to enroll in Make School’s Summer Academy iOS track. Ivy tells us about the range of backgrounds in her Make School cohort, how she built her awesome iOS game Melonace (it’s in the App Store!), and how she landed her job as an iOS engineer at Edmodo!
What were you up to before you joined Make School?
I was a Computer Science and Math double major at Bowdoin College in Maine. I took an Intro to Computer Science class in my first semester just to try it – that was my first time learning computer science – and I really liked it, so I kept taking computer science classes. I took classes like data structures, algorithms, artificial intelligence, operating systems, security, and computational geometry.
Throughout college, I had internships and research jobs related to computer science. The research job involved data mining and studying machine learning theories – I had a lot of fun. During the internship, I worked on a variety of company projects and learned a great deal. Then, I wanted to go further – I wanted a way to build my own product from scratch, instead of working on other people’s projects or doing research. So during the summer of my junior year in 2014, I went to the Make School Summer Academy.
Why did you feel you needed more coding experience on top of your computer science degree?
My college is a top-ranked liberal arts college, but it’s very small, so our computer science department only had four professors. The iOS course was only held once every year or two and was kind of outdated. While I learned a lot of theory and foundational skills, and all the courses were very good, like most other colleges, mine didn’t teach the newest technologies and industry practices.
I wanted a more practical experience building a completely shippable product under the guidance of instructors who are familiar with the mobile development industry trends and standards. I definitely got what I wanted at Make School, and taking more computer science classes in college wouldn’t have had the same effect.
There are a lot of coding bootcamps in San Francisco – did you research other coding bootcamps before choosing Make School?
I researched several programs. I was searching for general summer coding camps that teach people to build something. I chose the Make School Summer Academy after reading student testimonials and testing some of the finished products. I was really impressed with how much the students were able to achieve from not knowing computer science at all, to building the game I was enjoying on my phone. In my research, I didn’t find those product showcases or final projects with the other bootcamps, so I thought Make School was the right choice for me.
How important was it for you to learn iOS and mobile development?
The Summer Academy teaches iOS, and I focused on gaming (I’ve always played a lot of games). Among the different fields in computer science, I was most interested in AI and mobile development. I really wanted to explore mobile development because it was something that my CS degree didn’t cover well.
Who was in your Summer Academy cohort? Was it diverse in terms of gender, race, life and career backgrounds?
I was very surprised to find out how diverse my cohort was. I was expecting more people like myself – college computer science majors. Instead, I worked alongside people twice my age, students who were still in high school, young adults who had never taken a programming class, and some professional programmers. We had more guys than girls, but it was still more girls than I had ever seen in any of my computer science classes. I was pleasantly surprised that in such a diverse cohort, everyone got along well and worked together to help each other throughout the Summer Academy. People with more programming experience often voluntarily helped students who had less experience.
Can you describe the learning experience at the Summer Academy?
Throughout the first half of Make School, each day began with a tutorial, which would involve programming a small game, and we would code along with the lesson. The lead instructor taught by example – he would give us the basic concepts of how the code should work, what each line should accomplish, and then ask us to write the code and expand on the existing features. He would come over to each student to answer questions, and make sure everybody finished the tutorial before we move to the next one. We also had occasional lectures on computer science theory, so the course alternated between hands-on and iOS theory throughout the first half of the program.
Once everyone was familiar with how the game development process worked, a professional game designer came in to brainstorm with each student on our own projects. His feedback was mostly based on how long the game would take to build and whether it would be an innovative and interesting game that people would want to play. Not every student cared about making money or gaining traction on the App Store, so ultimately the choice of what to build depended on the student’s preference. We then worked on our game for the rest of the Summer Academy. Instructors would help each of us set up the basic structure and discuss how to go about building it. They guided each of us throughout the entire game building process and always made sure that we got whatever help we needed.
Tell us about the game that you built during Summer Academy!
Before I went to Make School, I was really into this game called Drop 7, an iOS grid puzzle game based on math calculations. It inspired me to build a grid puzzle game in Objective-C for the Summer Academy project. My game is called Melonace. You can find it on the App Store or see screenshots on my website: ivyxing.com. The game has an interactive user tutorial and high scores. Users place watermelons on the board and try to explode as many watermelons as possible before their number of turns ends or the screen fills up.
You actually decided to continue at Make School and attend Product College after Summer Academy. Why?
I was very happy with what I learned during Summer Academy, so I wanted to dive deeper into iOS programming. I realized that I could take one semester off from Bowdoin and still graduate on time, so I arranged with the Make School staff to take 6 months of Product College. Then I went back to Bowdoin and finished my degree on time.
At Summer Academy, I was focused on building a game, but during Product College, we went deeper into iOS, built an app, and learned some web and backend. Also, when we were building a game, the iOS experience was tied with game-specific tools like SpriteBuilder, and I wanted to learn more about iOS engineering in a more general sense. After I left, Make School extended Product College from 1 year to 2 years. They have added a lot to the curriculum like virtual reality and web tracks.
How did Make School prepare you for the job search?
The Summer Academy helped us with networking and finding jobs. The Make School staff also reached out to a bunch of companies on our behalf. They had an entire spreadsheet listing the companies interested in interviewing Make School students. If we were interested in a company, we could put our name on the spreadsheet, and those companies would email us to set up interviews.
Throughout Product College, there was a very structured careers curriculum. My cohort only had 11 students, and we were the first ever cohort of the Product College. We had weekly interview lectures, where an instructor would conduct a mock interview with a student in front of the class and demonstrate how to solve a problem. Then we did individual mock interviews where instructors would give us a problem, we’d try to solve it like in an actual interview, and they would give us feedback. That was all very helpful. Even though Product College has a lot more students now, I know that Alan (the interview instructor) still teaches students interviewing techniques in small groups and sometimes individually.
Did you find your new job through Make School?
I did find my job through Make School. The current CEO of Edmodo knew one of the Make School co-founders, Ashu, who connected me with Edmodo. I got an interview with an iOS engineer and started as an intern two years ago. After two and a half months, I was hired on full time in 2015. Then after a year, I got promoted from junior to mid-level engineer, and I’m expecting to receive a promotion to senior engineer within a few months.
Tell us about your job at Edmodo!
I’m a mid-level iOS Engineer at Edmodo, an online platform to help educators organize their digital classrooms. My team has 5 iOS engineers, and we work closely with product managers and designers.
I work on a lot of different projects, writing new features and maintaining old ones. For example, I moved a good chunk of the app to use an entirely new backend. Right now we’re doing a redesign project, which basically means rewriting most of the app from scratch. I’m currently writing 3 of the 5 major features, along with some app-wide cleanups and architecture changes. I also mentor junior engineers and do a lot of code reviews. We have a completely separate platform layer to interface with the API that’s independent from the UI logic, so I work extensively in Platform as well.
Did Make School teach you everything you needed to know for your job at Edmodo? Or have you learned a lot on the job?
When I started at Edmodo, I was mostly interested in iOS, but I’ve now learned backend development while working at Edmodo. We have micro services written in Go and we provide another service at the top layer in Ruby to access them. We use Remote Procedure protocol though Thrift to communicate between services. My mentor at Edmodo was a full-stack iOS engineer. We had one-on-one sessions every week where he would teach me design patterns, iOS, and backend.
My mentor has left Edmodo, so I’m now the go-to person when iOS devs have backend-related questions. Product College did teach some backend, so I was familiar with the basic concepts.
Looking back, do you think you could have gotten your job right after college with your computer science degree?
That’s difficult to answer. A lot of companies that hire college students won’t require deep iOS knowledge to begin with, so you can pass the interviews with basic knowledge of data structures and algorithms, as long as you have decent problem-solving and critical thinking skills. I might have passed the problem-solving during the Edmodo job interviews and been able to start as an intern. But after I started this job, I feel like everything I learned at Make School came into play and helped me get ramped up really quickly. So while there were many ways to get the job, Make School also taught me something about how to do the job.
How do you stay involved with Make School? Have you kept in touch with other alumni or done hackathons or even taught at Make School?
Yes I do! The founding class of alumni are pretty good friends, so when we are all in the Bay Area, we go out to dim sum. I also go back to Make School for events and demo nights. Some of their students are interested in the education tech field, so I talk to them about the industry. I also travel to their headquarters to conduct mock interviews with students.
What advice do you have for other computer science majors who are thinking about doing a coding bootcamp?
All coding bootcamps are not the same! Weigh all of your options before jumping in and investing a large sum of money into a bootcamp. Do research on what they say and what they have actually delivered. Keep in mind that what the school promises you won’t always come true. A lot of bootcamps sell their connections and networks, rather than the actual curriculum. In my case I chose Make School because it focuses on the product building experience, rather than promising that they’ll teach us “everything,” because that is not possible in 3 or 6 months.
Becoming a good programmer takes time, focus, and lots of practice. There is no shortcut to it, no matter what other people promise you. If you don’t already have a CS degree and you are looking for a bootcamp to become a better programmer, I would recommend taking courses on CS foundation and theory first and then find internships and/or programs like Make School Summer Academy to get practical experience. If you are totally sure you want to have a career in computer science, the current 2-year Product College program is a great college alternative.