Friday, 1 November 2013

Post 0.5: My Plan of Action to get into Google

My Plan of Action to get into Google

Every week I will post one project or discuss one topic that shows I’ve got knowledge in the skills needed. The projects respectively the topics I’m going to cover are derived from the job position. 


Requirements needed

So what are the Google is asking for my desired position:
Requirement 1:
Currently pursuing a PhD in Computer Science or related technical discipline

Requirement 2: 
UI development with AJAX

Requirement 3:
Embedded systems and mobile apps (Android)

Requirement 4: 
Excellent implementation skills (C++, Java, Python).

Requirement 5: 
Experience in systems software or algorithms.

Requirement 6:
Familiarity with TCP / IP and network programming.

Requirement 7:
Knowledge of UNIX/Linux and APIs.

Projects and topics to implement resp. to cover

These are the projects and  topics I’m about to cover to fulfill the quoted requirements:
Regarding 1: 
No, I’m not pursuing a PhD in CS, but a in Mechanical Engineering. The missing technical skill in CS I’ll counter balance with the projects I’ll about to present in this blog.
Regarding 2: 
I’ll explain the core concept of AJAX and implement at least on application (e.g. in HTML/CSS/ JavaScript/ jQuery) that’s based on an AJAX concept.
Regarding 3: 
Realising two projects with Arduino, Raspberry Pi and one Android app
Regarding 4: 
I think this is a top priority Requirement. So, I'll implement not only one but various software in Java and/ or Python and also make it free and opens source for everyone.
Regarding 5: 
Explaining various concepts like Design patterns (MVC, Observer pattern, Factory pattern); Algorithm (especially search algorithms like BubleSort etc.; and complexity of these algorithm, i.e. explaining Big O concept)
Regarding 6: 
I’ll explain the core concept of TCP/ IP and one implementation that involves network programming.
Regarding 7: 
Realize some projects that involves running Linux systems (e.g. Raspberry Pi) and that uses some Webservices. Also implementing a software that uses APIs.

Content and Timeframe of my Projects

I'm currently involved in a project in my PhD studies. This project will last till mid Frebruary 2014. So, if there are no great changes, I'll apply in March 2014 as an intern at the Google Munich Headquarter. From today (1st of November 2013) to 1st of March 2014 there are 16 weeks left. So, if I wanted to make one project resp. cover one topic in each week then I'll have 16 projects resp. topics to cover all of the seven requirements I mentioned abouve.

These will be the concrete content of each week [Head up: some of the Timeplan and project currently don't match because I some things were easier to implement and I thought it would be boring just to present them here, while others were harder to implement and it took me more time to finish. I'll update the Timeframe soon]:
Week 1:
Explaining AJAX and setting up a website that's based on the AJAX concept, i.e. login form, etc. (Requirement 2)

Week 2:
 Also creating a funny game with JavaScript on the website, created in Week 1. (Requirement 2)

Week 3: 
Explaining MVC and Observer Design Pattern for a software that I'll implement in Week 3. (Requirment 5)

Week 4: 
Implement a software to manage students for my colleagues in JAVA and make it downloadable in the website I created in Week 1. (Requirement 4)
Week 5: 
Explaining different search algorithms (prob. BubbleSort) and explaining it's complexity with Big O. (Requirment 5)

Week 6: 
Implementng an Arduino project: A device that can detect an RFID-Tag. If it detects it then a LED light should blink. (Requirement 3)

Week 7:
Implementing another Arduino project. This time it should use sensors like temperatur or light sensors. (Requirement 3)

Week 8:  
Explaining  core concept of TCP/ IP and network programming (Requirement 6)

Week 9: 
Implementing an application that uses the concept of TCP/ IP and network programming (probably in JAVA and with a Raspberry Pi that has Raspian as OS) (Requirment 4, 6, 7)

Week 10:
Presenting a library software that uses RFID to detect books and Google books APIs to retrieve the information of the detected book. (Requirement 7)

Week 11:
Week 16:
Finishing this Blog by completing all the projects and thus covering all of Google's requirements mentioned above. Further more having gained more than 4.500 points on codecademy.

I don't know the specifics of the remaining weeks yet. But so far I would have covered the basics of all (except requirement 1 of course) the needed requirements. So, the remaining two months. I'll probably expand the projects I already created, dive deeper into the topics I already mentioned or will cover other topics. It will depend on what I'm about to learn in the weeks to come until I'll cover requirement 1 eventually.