Ready, Set, Start Coding!

This is the first learning diary blog post for Software Factory / Facebook Academy course at University of Helsinki – Team SocketIO – I am really hoping that this will be also be my personal kickstart to OpenSource development.

For those of you who are not familiar with the project here is some information about it. http://www.softwarefactory.cc/2013/11/25/facebook-open-academy-2014/

In short: The Computer Science department at the University of Helsinki organizes the course in collaboration with the Facebook Academy. In the course students from all over the world contribute to open source projects and receive valuable experience. Every open source project has one or more mentors that guide this new horde of young developers with their journey to open source development. I chose SocketIO project as my first option and, gladly, I was placed in it.

Time for proactivity and self organization

The course itself does not have a strict form, it should be considered as an experimental learning experience, which means the more effort we (students participating) put into developing and contributing the more we learn and get out of it.

What is SocketIO? What is it for? Who made it?

SocketIO is a JavaScript library for realtime web applications. It simplifies the creation of realtime applications for every browser and mobile device by blurring the differences between various transport mechanism. SocketIO as of version 1.0 divides into two parts: Engine.IO and Socket.IO. Both of these parts have a server side and a client side. It is created by Guillermo Rauch and, at the time of writing this blog, entry socket.io has 49 contributors. By the end of this learning experience it will certainly have a lot more.

Team SocketIO

Our main mentor is Guillermo Rauch and assisting mentor is  Roman Shtylman, another well known open source developer. There are 14 students developing in this team but only two from the University of Helsinki, including myself. (Check my quick project notes in Evernote for more info about the participants.)

Collecting pieces of information, organizing yourself and familiarizing yourself with the codebase.

As I do with every bigger assignment or a project that I have in hand, I collect the pieces of information and store them in Evernote, collect the intermediate tasks and organize them on a Trello board.

Quick project notes in Evernote (Access everywhere notes – for ideas that pop up suddenly)
https://www.evernote.com/shard/s68/sh/6ac1f3e1-312a-458b-bc5d-df0c534dbc15/d74ac3ea47bf4619d69edd74372cb26d

Organizing everything with Trello (Simplified Kanban – also available for smartphones)
https://trello.com/b/RCuUQDlY/socketio-facebook-academy-software-factory

After getting started with the development I use Trello board to organize and record tasks that I have done with the related information.