Nope, Learning from Projects is not an Easy Task
By: Ramshankar Yadhunath
Tags: Beginner, Self Improvement, Projects, Data Science, Education

Nope, Learning from Projects is not an Easy Task

Five steps to maximise your learning from your own mini projects

Photo by Michał Parzuchowski on Unsplash

A month back, I published this article where I projected my views on why online courses alone would not help us become better data scientists. The crux of the article was about the importance of applied learning in data science and it garnered much positive attention and was shared vigorously across social media. However, I do realise that project-based learning is not easy given it’s inherent lack of framework. Hence, in this article I shall make an attempt to dive a little bit more into learning through projects and how we could make the most out of our time spent on working on a new pet project.

While I am a very serious proponent of project-based or hands-on learning, I would first like to bring to light a few limitations of this approach.

Self-learning through projects is not without faults

As we advocate projects and applied learning, we need to realise the ground truth that, “Online courses and MOOCs are still highly popular and in demand to learners across the world”! Even you and I often spend at least an hour every week surfing popular MOOC websites to survey the kind of courses that are being offered, some of us even join a few but fail to stick to finishing it because of our other engagements. But, the real question is “Why are courses still favoured, if not for the certificates?”. In my perspective, there are 3 main reasons to this —

Courses are great ways to learn new concepts from people with far better exposure and understanding than us. It’s always easier to learn from what somebody else has clearly understood and explained in simpler words.

from people with far better exposure and understanding than us. It’s always easier to learn from what somebody else has clearly understood and explained in simpler words. Project-based learning is unstructured and filled with uncertainties. Most of us lack the conviction to make a plan and stick to it while self-learning. Also, being fickle-minded is in the nature of every beginner. It is not because beginners lack focus, it is only they are driven by the frills and thrills of new concepts. This causes a silent degradation of the ability to excel in one particular area.

and filled with uncertainties. Most of us lack the conviction to make a plan and stick to it while self-learning. Also, being fickle-minded is in the nature of every beginner. It is not because beginners lack focus, it is only they are driven by the frills and thrills of new concepts. This causes a silent degradation of the ability to excel in one particular area. Project-based learning requires us to “quantify” our progress and this is exactly one of our worst fears. How can we gauge our expertise in a field? When do we know we have become more than a beginner?

2 of the 3 reasons above are direct limitations of project based learning and therefore, it is rather intuitive to realise that this kind of learning is no silver bullet.

But wait! What if we could find ways to work around these limitations and open up opportunities to learn efficiently from our mini-projects?

Time for a Weekend Retreat

Photo by Natalya Zaritskaya on Unsplash

Who does not like a weekend getaway? We all crave for the weekend to finally take a break from the busy work days we have. For me personally, weekends signify liberty. These are times when I can work on or learn something that I can’t on the other days due to the vast amount of class assignments and other extra-curriculars at the university.

That’s enough prattle. Let’s cut to the chase.

The idea is to view our personal mini-project as a weekend retreat away from the usual duties we have to perform. To a student, these “usual duties” can be the usual assignments and curriculum, while to professionals these can be their jobs. So, here are 5 steps that can help us treat our mini-projects as weekend retreats and learn more efficiently of these!

Step 1. Planning your Retreat

Most weekend retreats start of with this step, if not every. We all make a plan, layout our entire journey, surf the internet to find places we can visit and things we can do and maybe even pick up a map and trail out the journey we wish to take.

Now, this is what we need to extend to our mini-project — We need to make a plan and create our own map of what we will learn during the course of the next 2 days we have at our disposal.

There is no “universally right” way of planning when we are trying to learn. Plans work when we have a fixed goal, not when it is as abstract as “to learn something new in area X”. However, since we are talking about treating our project as a weekend retreat, let’s agree to plan our project outline in the way we plan our vacations or trips — Meticulously.

A good way to do this would be to create 4 sections in our plan (as depicted below) and fill these up based on what we would like to achieve through our personal weekend project.

CREDITS: Ramshankar Yadhunath

Time: How much time are we willing to spend on this, uninterrupted by other deadlines or professional engagements? It’s not a retreat anymore if you get back to your routine work!

How much time are we willing to spend on this, uninterrupted by other deadlines or professional engagements? It’s not a retreat anymore if you get back to your routine work! Concepts: What concepts or tools would we like to learn through this mini-project? There could in fact be a large list of topics we would want to learn, however we need to trim down the list to a few topics that could be learnt together as individual parts of the whole project.

What concepts or tools would we like to learn through this mini-project? There could in fact be a large list of topics we would want to learn, however we need to trim down the list to a few topics that could be learnt together as individual parts of the whole project. Output: What will be the output of this project? Would it be an analysis report that could be a blog post, would it be an end-to-end application or would it even be public? It is not an absolute necessity to write about or display every mini-project we work on even though it is highly advised by the internet to do so.

What will be the output of this project? Would it be an analysis report that could be a blog post, would it be an end-to-end application or would it even be public? It is not an absolute necessity to write about or display every mini-project we work on even though it is highly advised by the internet to do so. Resources: What articles/links/repositories/tutorials/courses exist on the internet that could help us in this project? Now, a lot of good resources are discovered only when we start the real work. Therefore, it’s okay to append into this list later. But, having at least a few links before starting will help stay focused.

While the above sections offer a good way to have a definite plan, it’s not going to be the case that we finish or use everything in those. Think of it like this — How many times have we made elaborate plans to visit multiple areas of attraction in a new place and always missed at least one spot at the end 😞. But, has that ever signified a bad trip? Never.

It’s far more profitable to count your hits than sulk about your misses.

Step 2. Getting to your Destination

After making our plan, we next need to pack our bags. Essentially, this signifies “getting things ready for the big retreat”. Checklists are created, suitcases are sat on top of and conflicts arise about what to take and what to leave.

In the case of our project, “getting things ready” has a few meanings:

Installing necessary libraries and packages

Maintaining a checklist about what we want to learn and a means to monitor it

Preferably a notebook to take down notes

Anything else we might need

Installing libraries beforehand is usually not possible as we might not be aware of all the libraries that we need. However, we could ensure we atleast have the preliminary ones that we might need to work. Setting up a virtual environment is also highly relevant to any project we are working on.

Maintaining checklists and other productivity tips are highly subjective in nature and it would be best if each individual follows a method that seems to work well for them.

Finally, it is preferable to minimise our usage of social media and avoid distractions during this period of project-based learning, well unless you want to end up with a bucket load of guilt.

Small acts of pre-preparation will serve significantly during the main task.

Step 3. Enjoy learning, have Fun

On reaching our destination, the idea is usually simple — Have fun!

I don’t know if every reader feels that learning can be fun, but considering the fact that we are handpicking everything in this project starting from the plan to the tools to be used, there should not be too much of a problem to like what we are doing!

Since these mini-projects are our own personal attempts to build our skills, it is probably best to try and get out of our comfort zones in learning. The plan we had initially created can serve as a skeletal framework, but it is not required to consider these as hard and fast rules. All we need to do is have a tab on every action we take. For example, if we come across a new topic or concept that interests us while working on our mini-project, asking a few simple questions could help identify if this topic is worth the pursuit or not —

Will this topic help in generating the final output?

Is this topic more relevant in the industry when compared to an existing topic under the concepts list?

Are there good resources to learn this topic in depth?

Can it be learnt within the short time frame that is left?

You could add more to this based on what your individual requirements are.

Be smart and exercise the freedom that learning provides you with.

Step 4. Document your Retreat

Of course, we all love to take pictures and document our holidays. It’s a great way to store memories of the happy moments. And of course, to show our peers that we do have a life other than work.

The biggest problem however with a lot of our personal mini-projects are that they get buried. We don’t even remember what we learnt in a project because we never cared to write it down. So, when we finally have to talk to somebody about something we did, all we have are empty words. And honestly, that’s not very trustworthy.

Documentation here, need not be sophisticated and can just be simple enough to help us recap and remember that we once worked on something valuable and how that project helped us learn things we didn’t know before. If we are looking to go public with our work, this again helps as potential interviewers or peers will be able to identify with our efforts easily. Github is a wonderful place to store your repositories and showcase your projects.

Hardwork not written about is work that never existed.

Step 5. After you Return

Many of us like to come back from a trip and discuss about all of it to our peers. But, some of us don’t even tell anybody about our trips, we are the reserved kind.

Similarly, it’s not mandatory to discuss our projects once we are done. However, doing so will help us get positive feedback from the community and such feedback is always very important if we are to improve. We can publish our projects as blog posts or have them on our personal websites or even share them on community-driven platforms like MadewithML.

Now, the world is not all bed and roses. When people criticise, they often are very rude about it. But, sulking about a negative comment on our dear mini-project is as pointless an activity as is trying to swat a fly — Too time consuming and usually not worth it. Instead, we could try and identify with the critic’s thought process and use that to improve.

If you want to improve, learn to take feedback.

Why would this absurdity even help?

Well, that’s important to ask. Trying to draw a parallel between working on a data science project and a weekend retreat sounds like an extreme act of lunacy in the first look. But, let me bring back the 2 disadvantages that we had seen in project based learning at the start of this article —

Project-based learning is unstructured and filled with uncertainties

Project-based learning requires us to “quantify” our progress and this is exactly one of our worst fears.

The first step i.e planning our retreat helps us create a partial structure around our project. It’s highly flexible, but it does have a frame to keep us on track. There is no unbreakable rule of strictly following the plan, but every decision we take is guided by its ability to positively impact our learning outcome. In skill-building pet projects such as the ones being talked about here, the onus is on how much we can learn and how we can put those to use to support our growth.

The inability to quantify our progress can be done away with by creating our own metrics to gauge our progress. A few ways(not exhaustible) to do this would be —

Count the number of completely new topics/concepts learnt during this weekend retreat project

Rate your level of understanding on a scale of 1–10 on each of these new topics. So, the next time you pick up the same topic as a part of another weekend retreat project, you know how much you need to improve on.

If your project is public, ask for feedback from people you don’t personally know. There might be a lot for you to learn.

Finally, it’s okay to not complete 100% of our plan. When all 10 topics that we want to learn through a project are new to us, even learning 5 of them in depth is a job well-done(at least to me it is).

Final Points

Last but not the least, I do not want to leave you with unsupported evidence or tips as that won’t help you. The following link is a project that I worked on a week back or so using this “weekend-retreat” method I have elaborated above.

The new concepts I learnt by engaging in this project are —

Web scraping using beautifulsoup4

Deploying an ML app with Streamlit.io

Basic theory about content-based recommenders

If these are skills you wish to learn, the repository might be of help :)

The dataset that I created can be found here. It has 1000 instances and 14 features. You could use it for your future projects (I would appreciate a mention if you ever used it 😃)

The next weekend you have, get your hands dirty and dive right into what you don’t understand! Trust me. It helps more than we can fathom.