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 on the Python Package Index - https://pypi.python.org/pypi?:action=display&name=scrape_quora&version=0.1.3
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.