I am doing courses on Udacity since their beginning, so I was quite curious when they recently introduced new courses in cooperation with Google. Those are:
All sounds interesting of course, and the one which got attention was the first one, which is about developing web applications on Google App Engine. It’s great that at the time of release whole class was already completed, so I could really do it on my own pace (i.e. complete in two - three weeks). Last weekend I completed final project (as free courseware) so I want to share my experience.
The syllabus of the courses is following:
Scalability Basics
Getting Started (setting project in Eclipse)
Storing and Retrieving Data
Advanced DataStore Concepts
Advanced App Engine Topics
App Engine and Mobile Apps
Course is labeled as Advance, meaning that you should have practical experience programming in Java. Empasise is on developing backend with the use ofGoogle Cloud Endpoints, there is no work on frontend, they provide nice frontend. For those who don’t know, Google Cloud Endpoints is service in Google App Engine which provides API to web applications but also provides client libraries for mobile applications (Android & iOS) and also Javascript web applications.
In this course the lessons are built around one project and lesson by lesson it’s built with introducing new concepts / services around Google App Engine. I think that in this course this concept fitted very well. on github there is repo with precoded stuff which serves as a starting point and with lessons, project is expanded with code.
Few of my insights after completing course:
- it’s good to have experience in developing Java applications in Eclipse with Maven (which if you are doing Java development, you probably already know). Instructors explains basic project setup, but don’t explain much of Maven for example. They do though show example for using archetype for End Points
- since this class has emphasis on Endpoints, I would expect some introduction to APIs generally. First lesson is more - less about scaling, which is the main purpose of GAE
- no explanation ofObjectifylibrary, i.e. why they are using it.
- I don’t remember that they mentioned how End Points are used in fronted - they did it in Angular.js so that would be good promotion if they explain in few minutes, but maybe that’s off topic in this course. Who is curious will find out anyway
- At the beginning (Lesson 2) programming quizzes looks very simple with detail explanation of steps how to solve it, so it looks pretty simple (which was little discouraging for me). In next lessons, quizzes are more straightforward, i.e. you have to implement some method and it’s up to you how :)
- I would say all major topics of Google App Engine Datastore are covered (Lesson 3 & 4):
automatic & custom keys, transactions, simple & complex queries with filtering and sorting, explanation of Indexes, eventual and strong consistency...
- in Lesson 5 other Google App Engine services are presented: cron, memcache, queues, again with concrete examples related to project.
- Initially I was disappointed that they don’t talk about unit tests, since I would expect that from decent programmers, but fortunately they did it and explain at the end of the third lesson (and afterwards)
- Lesson 6 is short lesson (demo) of using End Points in Android App (generating client libraries)
- Final project matters only for paid course, but it’s good practice also for those with free version to apply knowledge and practice doing additional features on Conference Project
After completing course, I would describe it as very good introduction to all developers who are programming in Java and like to have thorough introduction in Google App Engine concepts with emphasis on backend. Quality of course production is high (I would say it’s standard for Udacity, or at least courses which I saw) and humorous comments of instructor make this course enjoyable.
All content of this course can be found in detailed Google App Engine documentation, as experienced Google App Engine developer there were no special surprises for me, advantage is that in the course there is structure and introduction and explanation of topics naturally, so with attending this course you can gain lot of useful information quickly and also wet your fingers through programming.
For those who find this course hard or challenging I would recommendWeb Development. It’s for beginners interested in concepts of web application development and it’s done again on Google App Engine this time with Python, but if I remember correctly, it wasn’t so detailed about Google App Engine possibilities and services.
For me personally biggest take from this course were parts concerning Google Cloud Endpoints, since I am pretty familiar with other Google App Engine stuff and that code was in Java in which I don't have so much experience on Google App Engine.
Happy learning :)