Nat had been a web programmer for 11 years when he decided to update his skills and attend General Assembly’s Android Development Immersive program in NYC. Although he had a background in Java, Nat says that almost everything he learned in the program was new, and has helped him start a freelance career as an Android mobile developer. Nat tells us why he chose General Assembly, the open feedback loop with instructors, and all about his Android game which is now on the GooglePlay store.
What is your pre-General Assembly story? Tell us about your educational background and your last career path.
I graduated from undergrad with a Bachelors of Science in Accounting. During my first job as an accountant, I relied heavily on Excel spreadsheets, and started using macros to automate calculations and processes; that was my initial introduction to programming. I knew that I liked programming more than accounting, and decided to teach myself how to program. As a result, I became certified in Java and Microsoft. I realized, however, that I needed to know more, so I applied for and was awarded a scholarship to Pace University in NYC where I graduated with a Masters in Computer Science.
For 11 years after that, I helped run the technological side of my family business. It was a dropshipping company where I helped set up the e-commerce platforms for buyers to meet sellers online.
So you already had a programming background- why did you feel like you needed to go to a coding bootcamp like General Assembly?
I decided to focus more on programming and Android in particular. When I saw an article about General Assembly and Google collaborating on a class. I knew it was my next step.
Did you look at other coding bootcamps or just General Assembly?
I did look at other options in New York, however, knowing that Google, who created Android, chose to partner with General Assembly made my decision an easy one. I decided that I should get the information straight from the source, especially since this was the first time that Google partnered with a course provider to teach Android.
Why did you specifically want to learn Android development? What is it about mobile development that interests you?
I had an Android phone before I took the class, and I liked to tinker with the phone. Also I come from a Java background, so I knew the roots of the Android development (Android is based on Java). I also like that Android is open source, unlike iOS, and that Android is growing fast – more people are getting Android phones.
When I started programming, developers were creating desktop applications – because that’s what people used. Now, however, technology is shifting more towards mobile development. Almost everyone has either an iOS or Android device. I enjoy staying current and working at the cutting edge of technology. Becoming an Android developer allows me to grow as a programmer while contributing to the growth of Android technologies.
What was your cohort at General Assembly like?
The 20 people in the class were a good mix of really good people from varying backgrounds and experiences. Some had no prior programming experience and others had backgrounds in computer science. One classmate was a mechanical engineer, another was a chemist, and another was a reporter. It was interesting to work on projects together; to see what everyone brings to a project from their backgrounds and how they approach things differently. Despite all the differences, we got along really well and many of us continue to keep in touch.
Because you already had a Java background, how much new information did you actually learn in the Android program?
My programming background was helpful in understanding Android, however, I still had much to learn specifically about Android, like Views, and Android specific techniques. Understanding the programming logic was useful, but the majority of the class focused on Android specific information which was new to me.
What was the learning experience like in the Android class — what was a typical day and teaching style?
The day was well structured. We started each day by reviewing material from the day before. Then we would talk about a new topic. What I thought was extremely useful was that the instructor would give us exercises and mini projects based on that new topic. The premise is that you learn more by trying and doing it yourself. The instructors would always be there if we had any questions. So after they teach a topic, they would give us a link to GitHub where the code repository is, and we would implement what we just learned.
In the afternoon there would be a new topic or an even more in-depth discussion about what we learned in the morning.
The teaching style had a student-centered approach where the student plays an active role in the learning. GA was supportive and very receptive to feedback. We had a structured curriculum, however, GA was always asking for and listening to our suggestions. Every week we had a session where the instructors would ask the students for feedback - what they did well, what they needed to work on, and what they should cover more. Even though they had a curriculum, as students, we had a lot of input with respect to what we wanted to learn. The instructors were knowledgeable and flexible. On a couple of occasions they created a whole new lesson for us because we requested it.
In addition to Java, what other technologies did you need to learn to become an Android developer?
Fundamentally, it’s Java, but we also needed to learn how to use Android features like views (Android’s user interfaces), adapters and persistent data. Every time you see a screen it’s a result of many different technologies, all of which we had to learn how to implement. We also used a lot of Google APIs as well as third party APIs to create more advanced apps. By the end of the class, many of us created apps that used features like GPS, Geolocation, image analysis and even networking between devices
Since the program was in partnership with Google, did you interact with Google representatives during the program?
We did interact with Google representatives throughout the program. We had the opportunity to tour the Google office and to meet Google engineers who presented on the new technologies they were working on, Google had also set up a video conference with another one of their engineers to talk to us about threading and to answer any questions we might have. We were encouraged to ask questions which ranged from questions about the Android Operating System to what day to day life was like working at Google.
How many instructors did you have and what were they like?
We had two instructors, both of them were professional Android developers. One instructor was from a dev shop,and the other came from a corporate environment; it was interesting to see how they approached programming differently based on their background and experiences. The instructors were very approachable and always willing to help, so much so that I sometimes felt bad for them because our questions would cut into their lunch time. They didn’t seem to mind though as they always stayed until everyone’s questions were thoroughly answered.
What was your favorite project that you created in the Android class?
We had four big projects. For the third project, the General Assembly team asked companies,to request specifications and requirements as if they were to hire a team of developers to create a new app for them. The instructors divided us into groups and each group was assigned different company projects to work on. Each team had four people and the companies included The New York Times, Vice, and touchLabs. My company was The New York Times, so my group built an app that featured The New York Times API, according to the specifications that the NYT team required.
What I enjoyed most was that we had the opportunity to work in groups, and tried to simulate a “real world” work environment. We used Agile methodology, we used a Trello board, and we all used GitHub for code version control. It was a rewarding situation, especially since it was a project that came from other professional developers.
What was your final project?
The instructors tasked us to build something outside of our comfort zones, which would then go on the GooglePlay store. So we had to make sure it worked on many different devices as the app could be used by the public. For me, I thought it would be a nice challenge to build a game, so I built a Tetris clone called Falling Blocks That Disappear When a Line is Formed. I had to create an input system, a physics system, a collision detection system, and a graphics system. The best part was when we presented the final project apps – you could truly see the big difference that three months had made. Many of us, myself included, didn’t know how to build an app before the class, and after three months, we were able to create complicated apps, using different APIs, and technologies. For the final project presentations, Google visited the GA space with a camera crew and we were featured in this GoogleIO video.
How did General Assembly prepare you for job hunting?
The preparation started at the outset. From Week One, we were assigned an Outcomes Coach to work with us every week. She helped us work on our resumes from the very start, so we would be prepared for the job search by the end of the course. Every week we would cover topics such as creating a resume, linkedIn profile, as well as skills including negotiation techniques and interview preparation. I was able to ask the Outcomes Coach any questions I had. Even after the course is over, GA remains supportive with constant contact from an Outcomes Coach.
GA also invited companies like touchLabs and Prolific Interactive to our classroom. Those companies gave us presentations on what they do, what their work life is like, and even invited us to visit their company. It was a nice way for GA to bring in partners and introduce them to us, giving us a warm lead to contact them about current and future opportunities.
What sort of freelance projects have you been working on since graduating from General Assembly?
The main project is an Android project using Unity, a gaming engine, for a company in California (I am working remotely).They gave me a mockup of what they want, and then I build levels based on the assets and the graphics that they provide.
Unity is a technology that I hadn’t used before, but I have a strong foundation with General Assembly, so it’s easy to pick up new technologies and apply them to Android. I took one class on Unity at Microsoft and was able to teach myself the rest of it.
Even with my Computer Science background and Masters degree, none of this would have been possible without building the Android foundation with General Assembly.
What’s been the biggest challenge in developing Android apps in the real world?
Android development is very different from iOS development. iOS has a handful of devices so you know exactly what device an app will be used on. But there are many companies that make Android devices and each company has their variation (because Android is open source), so you always have to take that into consideration when developing an app.
Have you stayed involved with General Assembly since graduating?
I have stayed involved since graduating. General Assembly hosts events from time to time, and my classmates and I all meet up. We’re also all connected via the GroupMe app, so we all stay in touch. It’s nice to have a support group with people who know what you went through, and understand what the job search is like. I went to General Assembly to learn about Android, but I left with a new group of friends.
What sorts of things are you doing to maintain and learn new skills?
I constantly read about new technologies that I see in postings. For example, a lot of postings have a technology called Rxjava and although it wasn’t covered in depth in class, my classmates and I were able to teach ourselves using documentation and examples because of the foundation and skills our instructors gave us.
What advice do you have for people making a career change after a coding bootcamp?
You get out what you put into it. Our class was from 9am to 5pm, but a lot of us stayed until 8pm or 9pm. We wanted to make sure we had a good foundation, take advantage of the opportunity to ask instructors questions, and get as much as we can out of it. All the projects we worked on, even earlier ones, have been useful to talk about in my interviews. The class is not a magic cure-all where you go in and all of a sudden you are set in a new career – you have to do the work. That said, it’s a good opportunity, so take it as an opportunity to learn more and it will help you switch careers.
Even with my background in CS, I had the option of teaching myself Android, but I’m happy I went to General Assembly. It was an opportunity to learn Android, have my questions answered by professional developers, learn best practices, network and make new friends.