Why do many companies still ask CS puzzle type questions in their coding round for DS roles
Laziness vs The Trap of Productivity & Ambition
This post deviates away from the general theme of programming / data science & it’s more focused on productivity. I think it’s a very relevant topic in this time of COVID when everyone is feeling burnt out while working from home. It has also been an interesting topic for me because I’m generally a very lazy person in personal life. Professionally, most of us follow some project management tool or methodology at our workplaces like Agile, but what about out personal lives? How do we (/should we) track our learning goals and side projects?
I’m one of those people who is prone to overthinking. Taking a Physics analogy, getting started or overcoming static friction is the hardest part for me. Once I get a few early wins in a project, it gets much more easier, similar to “kinetic” friction”. And as you get good in solving problems and get more experience, you tend to enjoy that process even more & start feeling “passionate” about it. That’s when “rolling friction” kicks in.
The Cult of the Done Manifesto, released in 2009 by Bre Pettis & Kio Stark, is one of the most influential written articles that I keep coming back to, time and again. And it aims to solve this exact problem of overthinking and procrastination. Here are the 13 maxims of the Done Manifesto:
The Done Manifesto
- There are three states of being. Not knowing, action and completion.
- Accept that everything is a draft. It helps to get done.
- There is no editing stage.
- Pretending you know what you’re doing is almost the same as knowing what you are doing, so just accept that you know what you’re doing even if you don’t and do it.
- Banish procrastination. If you wait more than a week to get an idea done, abandon it.
- The point of being done is not to finish but to get other things done.
- Once you’re done you can throw it away.
- Laugh at perfection. It’s boring and keeps you from being done.
- People without dirty hands are wrong. Doing something makes you right. 10.Failure counts as done. So do mistakes.
- Destruction is a variant of done.
- If you have an idea and publish it on the internet, that counts as a ghost of done.
- Done is the engine of more.
I also really like the idea of incremental and iterative “sprints” in the Scrum framework. There is something fun and addictive about marking a task as done or moving a card from 1 pane to another on a scrum board every day. In a hope to get similar motivation for my personal goals related to learning or side projects, I began tracking down my yearly goals on my own personal Trello board, which I’ve been maintaining for roughly 4 years now :
It started with 3 goals in 2017, all of them being MOOCs -
- Tableau specialization (Coursera)
- Python for Data Science by Microsoft (EdX)
- Data Analysis by DUT - Visualization and Dashboard Design (Audit)
I completed 10 more learning goals in 2018, and another 22 in 2019. This year, I broke down the goals by quarter. In the last quarter (Jul-Sep), I was able to complete the following 8 personal projects -
- Launch self hosted blog on Github (atleast 3 articles)
- Guide to Numpy book by Travis Oliphant
- SIIM-ISIC Melanoma Classification on Kaggle
- Bayesian Methods for Hackers : Probabilistic Programming & Bayesian Inference (e-book)
- Programming Languages Course - Part A by University of Washington (Coursera)
- Grokking Algorithms (e-book)
- ML Engineer Nanodegree (Udacity)
So far so good, right? But that’s not the entire story. It’s clear that productivity tools like Trello motivate you to do more and be more ambitious. I’ve definitely been able to overcome the problems of procrastination and overthinking by this approach. But I feel like they introduce some new problems into your life as well.
Firstly, these hacks and tools can increase your anxiety levels, with all the pending lists of to-dos and looming deadlines. Now, some amout of anxiety is good as it pushes you to get up and do something. But it can also make you feel guilty if you’re not “productive enough”. I think the below meme captures this feeling of guilt and anxiety really well :D
I’d been feeling some burnout lately as all of my professional and personal work happens in front of a screen sitting on the same desk at home. But even taking some time away to refresh can make you feel guilty when you are tracking your progress on tools like Trello or the Github Contribution charts like above!
Secondly, and perhaps more importantly, it increases your ego. This whole act of focusing on your short term or long term goals, and updating them everyday is inherently quite self indulgent. You can end up focusing on yourself so much that others’ needs might seem trivial in comparison & it sort of alienates you from your responsibilities towards others. What you’ve also done is created an image of yourself in your mind from which it can be very difficult to break apart. This is a very difficult problem to handle & I don’t think I have a solution to this problem right now.
A small step that I’m taking right now is to delete all my old Trello lists & past goals. I never deleted them in the past because I would cherish them all as accomplishments. So just tossing them away might help shed some of that baggage. Something else that I’m trying to do now is to include others in my “selfish” list of goals. Sharing my learnings on this blog with others can be one way of doing just that.
So these are some of my (half-baked) thoughts around using productivity hacks and tools in your personal life. You can use these tools to hack / fool your mind into the trap of productivity and ambition. This trap is mostly beneficial to you but it can end up creating new problems as well. If you agree or disagree with any of these opinions, let me know in the comments section below!
Looking at the design recipes for 2 common sorting algorithms in Scheme
Don’t teach yourself data science in 10 days, but in 10 years
Some valuable lessons I learnt in my recent job search experience
And why you don’t need another ‘How to become a data scientist in 2021’ listicle
An intuitive way to look at matrix vector multiplication, with applications in image processing
Most tech firm interviews include SQL problems for DS roles, so how should you prepare for them?
Implementing basic matrix algebra operations in Scheme using a Jupyter notebook
Building a gender classifier model based on the dialogues of characters in Hollywood movies
Simple EDA of my reading activity using tidyverse on R Markdown
My experience using productivity tools for personal projects
Comparing Tree Recursion & Tail Recursion in Scheme & Python
My notes halfway through the book Learn You A Haskell
My topsy turvy ride to data science
Books, MOOCs and other resources that I would highly recommend
The magic of SICP