Facebook OA Kickoff / AI2 – Week 1 (January 28 – February 4)
I arrived in the Bay Area a week earlier on Friday January 23, with the intention of completing and offsetting school coursework on the Stanford premises in addition to getting adjusted to the time-zone and a brief exploration of the area. On the weekend and a day at San Francisco, I made a visit with a friend to Dropbox, Evernote, Google and surrounding startups. It was very exciting to see the work culture in Silicon Valley.
At the Facebook Open Academy kickoff, we were introduced to our team. The current team for App Inventor is in its third iteration, and Jose has had successful runs of a course on App Inventor with students from MIT as a formal course. Our team comprised of five CMU students, one from UIUC and me. Some members of the team had worked extensively with Java and apps via the Android Studio, and appeared to be from a combination of mainly CS, and one student from ECE.
Jose was extremely patient with us and I enjoyed his mentorship. He took great pains to familiarize us with the development environment and was extremely approachable, never out of reach for questions although he was having jet-lag.
For the first day, Jose got us familiarized with the team. We went through presenting our findings and corresponding apps and we broke the issues down into 3 columns, which feature on our trello: https://trello.com/b/hplMVWBb/open-academy-15-projects . The workflow is to create a proposal on Google Docs, receive feedback from the community, before coding it extensively and integrating their feedback such that a pull request can be accepted. Our first day was also spent reading the docs, configuring our IDE (in my case, Eclipse) and getting our hands dirty with the code and tutorials from the course conducted at MIT.
Our second day was spent familiarizing ourselves with the code base. It is interesting to note that AI2 compiles down to scheme, which is then used to generate YAML files for the creation of the program in Java. To support the live functionality of the debugger and official app at the same time, two different workflows are used to generate the Scheme needed. Hence developing a new block would require two different workflows. During the latter part of the second day, Jose got me up and running with the proper workflow of using Git, including the meaning of various branches. I am especially thankful for this run-through and am up to speed with using Git, with reference to a book on Git read on the plane.
It was very great meeting the new members of our team and I am now more confident of contributing to a mature code base, contributing to AI2, and finding the resources for AI2 as and when needed.