Monday, May 2, 2016

Twelfth Week of LITG Program

On request by my mentor Tapasweni Pathak, I write this blog post to sum up the overall experience I gained via the LITG program. This is a bunch of questions and answers regarding the program. 

How was the experience with Learn IT Girl? 

It was a wonderful, educative and a rich experience indeed filled with many lessons to mold my career path. 

Was the time plan unmanageable? Did the project make you spend more hours than expected?

No. The time line was quite feasible thanks to the support and the guidance of my mentor. I spent nearly ten hours per week on the project work (nearly three hours on the five weekdays and the other seven during the weekend). Depending on the workload due for the week sometimes I had to work few extra hours(especially while coding the Python package). Nevertheless I could successfully balance the project work with the other academic work at the university. 

What all did you learn? 

Python programming language 
Selecting the most appropriate type of license for a given project 
Working with Github 
Web scraping with Scrapy library 
Functionality of Python packages such as etree, re, urllib2, xpath 
Developing a Python package 
Pushing a Python package into the Python Package Index 
Flask Python Framework 
Developing an API using Python and Flask Framework 
Deploying a Python application on Heroku 

Apart from these I could learn the following as well which would be much useful to me in future.

Working with tight schedules on strict deadlines 
Keeping record of the work by writing weekly blog posts 
Communicating with international mentors on project related professional matters 

Why did you choose to learn Python and why this project?

Python is a widely used language today but I had zero knowledge about it. Also it is a very easy to learn high-level language with many libraries and built-in support which attracts many developers. Therefore Python knowledge would indeed be a plus point for me in my career as a Software Engineer. That is why I selected to learn Python.

The project is about developing a Python API to extract the following Quora user information given the user name of the profile as the input. 

Name of the user 
URL of the user profile 
Profile picture link 
Follower count 
Following count 
Count of edits 
Number of answers 
Number of questions 

Future improvements include extracting the Facebook, LinkedIn profile links which actually requires login to Quora. This API is based on a Python package which performs the web scraping part of the project. Web scraping was a whole new concept for me. I had never really worked on it before. Also I had so many learning material available to grasp the basic concepts. The Horoscope API(https://github.com/tapasweni-pathak/Horoscope-API) and the pyhoroscope package(https://github.com/tapasweni-pathak/pyhoroscope) developed by my mentor follows the same concepts. There are many blog posts written by my mentor about developing Python packages and APIs. Therefore it was much convenient for me to learn the fundamentals of Python and other required technologies within a very short period of time. This was the major reason why I chose this project. 

How can your project help others? 

Both the API and the package can be used by developers in their projects. Also developers can volunteer to add more features to the package and improve it. 

The Github repository for the QUserAPI - https://github.com/hansika/QUserAPI
(Instructions to use the API are available at this link) 

The Github repository for the scrape_quora Python package - https://github.com/hansika/pyquora

The package can be installed in isolation(without using the API) by using the command 'pip install scrape_quora' 

This API along with the Python package can be used by developers who work on far more complicated tasks such as data mining using the information extracted from Quora user profiles. The API has been developed in a much intuitive manner for the developers to understand and use. 

The things that you would like to change in the next round of Learn IT Girl to make it better? 

I think the mid evaluation should be much more structured. Currently the mid evaluation is more like a self evaluation where the mentee evaluates her own learning. Not even the mentor is involved in this process. But I feel that if the mentee is requested to produce some working piece of software during the mid evaluation on which the evaluators(including the mentor) can give some constructive feedback, she will be even more motivated to do better throughout the rest of the program. Personally I would find this very helpful since it is always feedback and comments from people that keep me going and produce even better work. 

Would you like to mentor in next round? 

Yes. I would like to mentor in the next round. I would love to give something in return with the knowledge I gained and help a girl learn a new programming language. 

What would you like to advice next year mentees? 

Choosing the language that best fits you is critical. It should be something that you have zero knowledge and also something that would be valuable enough to spend three months of your time to learn. Go for a language that you think will remain in the industry at least for a few years. 

Choose a project that fits your potential. It should not be too complex and also not something too simple that you can complete within a few weeks. Choose something which will teach you enough new concepts to digest within a period of three months. 

Have a proper time plan. Get the help of your mentor to create it. Your work break down structure should be such that it does not clash or disturb your other personal or academic work. Allocate time so that you can complete the work due for each week. You know your work schedule more than anyone else. 

Above all have the passion to learn. Try out things by yourself. Bother your mentor only when you really cannot resolve your issues for several days. Do enough Google search before you ask from your mentor. It is your time to learn so take the maximum out of it. 

What were the things that you didn’t like about your mentor? 

My mentor was Tapasweni Pathak. She was a great mentor helping me immensely from the point of creating the time-line to the point of writing this final blog post. A bit strict at times especially when I was lagging behind due to my exams but of course a motivative character who actually drove me complete my tasks timely by adding deadlines. She is an awesome supervisor who can make anything work.

No comments:

Post a Comment