Congrats everyone! Liftoff 2016 concluded on Tuesday and you have escape velocity out of SoC and are well on your way to starting your summer project! It’s helpful to have a recap of everything that happened, especially for those of you who are overseas. Here’s where we sum it up in a single post so you can decide where to go from here.
Remember, for most teams’ Liftoff is a whirlwind tour of acronyms, and development. It is a “throw you into the deep end” type of workshop where we pepper you with lots of technical material. However, for many it will take a few weeks to start to get entirely oriented with what to do next. Look to your advisors (and mentors) for help on Slack, call them out! As explained at the beginning Liftoff is more a teaser for what you can do than a full fledged coding bootcamp costing K of dollars and with a much more substantial time commitment. Do read the original post because it contains all of the links that may not show up on a feed.
After showing a Code.org video, Min went over the three resources for Orbital: Slack, the Orbital website, and Skylab. We went over the Orbital timeline — the three milestones, the optional Mission Control sessions and the mentorship program for PG / A11 students. We then closed by reviewing the schedules and polling for the technical sessions that we were executing for Orbital.
went over the schedule for Orbital Liftoff this year. We went over the three
For the first long session, we are going over the design thinking workshop.
Go through the slides that Wee Sun has posted at http://www.comp.nus.edu.sg/~leews/LiftOff.zip, and then after reviewing the materials, watch and do with your partner the entire Design Thinking Workshop Video from Wee Sun, which is modelled after the original material from Stanford.
We review the types of projects that you can do in Orbital (pretty much anything) and how to assess your level of achievement, and we review the two most FAQs: Is my project worth <X>? and Is it feasible to do Y for my project? We also hosted the NOC group who made the stunning announcement that all Orbitees who complete their self-proclaimed mission are good to pass Round 1 interviews for their hallmark NUS program. Min also went over 5 project ideas proposed by mentors which would be suitable for teams not clear about their project ideas.
As we pointed out too, you can have your Orbital experience overlap and align with programming contests locally and worldwide.
Consider this (non-exhaustive) list (now merged and enhanced from Shubham Goyal’s list too)
- Google’s Cloud Developer Challenge
- Using data.gov.sg to do merge two different data sets for interesting results!
- code::Extreme::Apps (http://www.itsc.org.sg/code-xtremeapps-competition)
- Hackathons organised by Newton circus mainly as part of its UP Singapore series http://www.upsingapore.com/events/. All hackathons are weekend-long and usually have some new datasets for the participants to play with.
- angelhack (http://www.angelhack.com/; there’s one coming up AngelHack Singapore 2016 on 14-15 May this weekend!)
- Developer Weekend (organised by NUS Student Chapter of the ACM, all SoC students receive an e-mail blast about it)
- Hack&Roll (http://hacknroll.nushackers.org/) organized by NUS Hackers, the student organization that Jia Yee, David and Advay (all students in Orbital 2016 too) are a part of!
- Startup Weekend (http://singapore.startupweekend.org/) – This is not strictly a hackathon though, but no one prevents you from treating it like one 😛
- Facebook Singapore Hackathon . This event has happened in 2014, and 2015, but not yet for 2016. We don’t know if Facebook will organize it every year though.
Winston of Jolly Good Code has kindly made his presentation available to us. You’ll probably want to have a re-look at the Agile software engineering methodology he presented to you once you get down to the nitty-gritty of actually starting on your project.
Basic HTML / CSS [ Link to Slides ]
Jia Yee went from NUS Hackers went over the basics of HTML and CSS: the heart of the structure and the style of all things web. There’s quite a lot of things that can be done purely with good knowledge of HTML and CSS, including making an impressive web-based resume or website. You can peer at the heart of any website you can find in any browser and study how their HTML looks like (but don’t worry if you can’t understand some of the syntax, most of the HTML out there in the wild is written by machine or frameworks, and their HTML is usually pretty messy. Study these fundamentals well.
– I taught this session using Codecademy’s exercises in previous years. You can try that too, and/or follow the webcast from then. https://www.youtube.com/watch?v=iRldW_Wc8c0
– You will probably use your fav search engine to find more information about HTML tags and CSS directives, but usually a search for “<tag name> html” will work. The technical descriptions from w3schools.com is usually fairly good. They have HTML and CSS tutorials there too.
– We’ll be going over an extension of this tutorial in Mission Control #1 on Bootstrap (a specific CSS extension for clean responsive web design) as well as JQuery (used extensively in making website feel more dynamic), which will be next week at 17 May here at the Hangar by Min.
– Geeky stuff: Tim Berners Lee started the web in 1991. http://en.wikipedia.org/wiki/History_of_the_World_Wide Web
Min gave a quick overview of Droid describing different API levels of Droid, the difference between responsive Web applications and native apps (you may not need to build a Droid app to create a good project). We then covered the building of a basic Hello World app using a basic activity, and then went to build the Create part of an application that can do the basic CRUD (Create, Read, Update and Delete) functionality. We didn’t cover the Read part of the tutorial and the tips at the end, but we suggest that you complete the tutorial to get a working application. The tutorial is adapted from another tutorial on CRUD for Student Databases for the Fight Haze application, available at https://www.codeofaninja.com/2013/02/android-sqlite-tutorial.html. We’d suggest you work through that version for the full CRUD work.
There’s also Jun Wen’s previous talk on Droid Dev, from which the current session was modeled after: https://www.youtube.com/watch?v=emm07i1nWHI
Mentor Matching [ Link to Mentor profiles and Mentor projects ]
We finished the day with Mentor Matching back at I3 Auditorium. Team interested in mentorship need to tell us by the end of today whom they would like for their mentor. Read the pinned post on Midnight Mentor Madness -‘Morrow’s Mentor Matching Meetup pinned to the #general channel in Slack to get more details on the benefits of mentorship. Do note that as in past years, some mentors are more popular than others, so be open-minded about whom you might want to work with if you are interested in getting a mentor.
How we hire by Charlotte Park of Google
Charlotte brought Jamie and Doug to help answer your questions about hiring at Google. They took questions both in the session and outside the auditorium and referred us to some hints about how to prepare for the technical interview. Charlotte mentioned the Work Rules book by Lazlo Bock https://www.workrules.net/ and mentioned the tech interview for more seasoned engineering (but still useful for all of you, that was just held last week): https://www.youtube.com/watch?v=MyFxMpKn7yk
David from NUS Hackers went over this material. Big up for David on his presentation over at The Hangar! So at this point, you should have some gist of what python programming is like. Practice makes things better and guess what — there’s no Bell Curve God for this module. So take your time and get things done until you’re comfortable coding. You can also ask your advisors for some tips — they will be really happy to share, trust me!
Alternative learning platforms for any language (Python of course, but others too!):
- LearnPython.org – Min uses this when he teaches this section.
- Codecademy.com – Min uses this when he teaches this section, especially the lessons Advanced Topics in Python and The Devil’s in the Details
- Udemy – A list of courses (w/ star-rated reviews; fee and non-fee)
- Lynda – for fee, monthly subscription-based
- 20 minutes: AfterHoursProgramming Python Quiz http://www.afterhoursprogramming.com/tutorial/Python/Python-Quiz/
- Laurence also recommends Learn Python the Hard Way (http://learnpythonthehardway.org/book/), part of the general Learn <X> the Hard Way series.
- Here are the slides for the original version of the tutorial: python_tutorial.pdf . Note you can also find the videos of both parts of the Python tutorial online. Google has a few versions of a Python tutorial that is much better than mine, I think but it may still be worth it to work through your understanding of Python.
There are lots of additional tricks in Python that you can try, so do try to figure them out. Also important is to try to adopt the Python coding style, in the form of the PEP 8 “standard” or others: https://www.google.com.sg/search?q=python+style+guide For PG and A11 students: if you whizzed through our Py tutorial you can try watching some pretty advanced tips to get yourself more aligned to the Pythonic style:
https://www.youtube.com/watch?feature=player_embedded&v=OSGv2VnC0go#! Even seasoned (salted or pickled) Pythonistas benefit from watching this from time to time.
Project Gemini / Apollo 11: Teams aiming for a bit more than the standard project can try to do a mobile app or other project — it’s up to you. If you’re interested in still doing a web application, don’t necessarily corner yourself into using Py/GAE. There are many frameworks you can try. You could try Ruby on Rails (my personal favorite web framework, and experience that Winston was sharing is highly sought for in SG). A few of our mentors are also Rails specialists, but Python / GAE is also a good combo, and many of the advisors will be able to help you with that. Explore what’s right for you.
Google App Engine [ Link to Slides ]
Please note that you need the materials to follow along http://www.comp.nus.edu.sg/~leews/LiftOff.zip . Unfortunately, the recording did not go through, so you can check the related tutorial on Google App Engine (GAE) from Wee Sun’s recording from last year.
Ruby on Rails [ Link to Slides ]
In addition to Jia Yee’s intro, for RoR, Min highly recommends following some of the online tutorials. Min used Pragmatic’s Agile Web Development with Rails 4 as his method for learning Rails and once taught a full day workshop to his research group from this book. https://pragprog.com/book/rails4/agile-web-development-with-rails-4 .
Presented by Min, with assistance from slides originally from Darshini Santhanam, of Google SG. We watched two videos on Steve Jobs presenting the MacBook Air and a video by Michael Hyatt from Platform University about making a useful elevator pitch complete with the key problem statement. In the original presentation in 2014, Darshini also showed the before and after of Eric Schmidt, now chairman of Alphabet, Google’s parent company.
YouTube videos referenced: 1) Eric Schmidt [before] Public Speaking Class http://youtu.be/bA1I6MUOKkU . 2) Macworld San Francisco 2008-The MacBook Air Intro (Pt. 1) 3) http://youtu.be/OIV6peKMj9M 3) Elevator Pitch Winner – Katie Sunday https://www.youtube.com/watch?v=dqIEE-g_-Uc 4) Eric Schmidt [after] – Zeitgeist Americas 2013 http://youtu.be/hUPnhKf_Cnw
Web Requests and Server Frameworks [ Link to Slides ]
Xinyu, one of our Orbital advisors this year, also gave a fun-filled talk on the acronym and alphabet soup of learning development, and unpeeling the many layers of doing development. Dive in and get dirty, is what we’d do — you’re never going to get the perfect set up before trying things out. 😀 😀
Min also gave a related lecture on similar topics here: https://www.youtube.com/watch?v=B0Bu223_NmY .
Zhi An from NUS Hackers also covered the basic structure of the web in his session last year, available on YouTube: https://www.youtube.com/watch?v=zpbK78yt8RE#t=108. Slides and everything else for the presentation are at http://ngzhian.github.io/orbital/#/
Git Basics [ Link to Slides ]
Min gave the final sessions late after Ignition to cover how to go through Skylab to file your Milestones and to evaluate other teams. Please watch this or revise this video again when it comes close to the first Milestone timing.
Related videos from previous Orbitals
Min also posted this video to YouTube to help some students come to grips with all the new shiny code that they learned in the Google App Engine session. You may find this lo-fi video helpful to fill in some gaps in your understanding of what all the parts of the web work. https://www.youtube.com/watch?v=tC6hacD5Dcs
Students from previous years also found self-studying from the Udacity web application course also very useful for general awareness of “How the web works”. Some of the sessions may be on YouTube for free: http://www.youtube.com/results?search_query=cs253+udacity
This source of information is probably very useful for those of us whom learn best by watching. The Udacity course is pretty long but much more principled in its way of introducing materials to you in a “lecture” format, instead of dumping you all in the thick of GAE like we have done.
Other useful links (aka Lobang) by you, advisors, mentors and tutors:
- Trello (http://trello.com/), recommended by Juliana. This service is pretty good for developing user stories and tracking feature requests, a la Agile.
- General Assembly’s *free* workshop on “So you want to be a developer”, feat. mentor Laurence and Google folks, David Zhu. Need to register, please do so soon!
- Github Student Developer Pack (https://education.github.com/), recommended by Xinyu and Nicolas
- Microsoft DreamSpark for NUS students. Sign in to download Windows Products, inclusive of Server level products. (http://bit.ly/orbital16-msdreamspark)
- Amazon Web Services (AWS) Educate for Student (https://aws.amazon.com/education/awseducate/)
Got others? Do a mention of them on #general in Slack.
Good luck and see you on Slack and around in Mission Control!