Updated date:

How 2 Data Scientists Made Me a Better Programmer

Author:

Ravi is a traveler and foodie who loves to visit off-the-beaten-track places and understand the culture, history and customs behind them.

how-2-data-scientists-made-me-a-better-programmer

One of the benefits of working in a start-up is that you escape the tyranny of silosification.

For those who are not aware of this term, silosification is a neat classification of people based on roles, skills, and even designations into identified silos. This is usually practiced by large corporations who want to establish some sort of orderliness and hierarchy in the chaos that mostly prevails in their companies.

For example, programmers sit with programmers in identified areas, designers sit with only designers in cubicles specifically earmarked for them and similarly data scientists sit with only data scientists so that “proper” team bonding can be enforced. While I have nothing against this culture nor I am big enough to change the rules, my two cents is that, unless people of various disciplines sit and interact together with each other, abrupt learning capabilities beyond the normal tools of the trade cannot be developed within the team. Learning requires diversification. Period.

That is why in my organization, we follow an open sitting culture. Everybody (including the bosses) is free to sit anywhere he/she wants to. The only important criterion is that work should be completed on time. More than the roles, skills and designation, the place where you choose to sit should maximize your learning. That is, it!!!

And unknowingly (and fortunately of course!!), I found myself a seat, into a packed three-seater cubicle shared along with two eclectic, passionate guys; two data scientists to be precise who were fanatic about their craft. Let us call them dataset1 and dataset2(I am not allowed to make them famous, so sorry!!!)

Dataset1 and Dataset2 only used to do three activities the entire day.

  • Using algorithms and statistics to derive insights from structured and unstructured data.


  • Using their skills to sift through data, find patterns, look for specific keywords, eliminate false patterns, and identify data-driven trends that can make our business decisions more efficient.


  • Making me a better programmer.

The first two activities as you can see, belongs to their forte as experienced data scientists but the third activity belongs to me; more precisely their mentoring of me by sharing valuable tips and tricks of their field and ways of working that helped me to become a better programmer. These 2 guys were my first mentors in the industry who taught me the craft of programming from an entirely different perspective.

And here are some things I learned from them which enabled me to be a better programmer.

Cultivate a business mindset to solve problems

A data scientist needs to have a business mindset to appreciate the workings of the business model and identify the best-fit solutions that can solve the problem at hand. Only having great technical skills without appreciating the practical challenges of business is not going to help him or the organization which is looking forward to his expertise to identify newer opportunities.

The business mindset applies to programming also. For example, while designing a mobile application, we tend to fall into the trap of designing for Android users and IOS Users. This limits our thinking and subsequently our problem-solving ability. But once we remove these constraints of Android and IOS and start designing for human beings in general, we reach a new level of awareness.

The key here is to be formless of technology and mindful of business so that the best solutions can be derived paving the way to greater discoveries.

Cultivate intuitive capabilities

This is one of the most important skills every data scientist should possess in his/her arsenal.

Intuition is hard to define and understand simply because the knowledge gained by intuition is not based on a series of facts or a line of reasoning to a conclusion. Instead, we know intuitional truth simply by the process of introspection and immediate awareness. And great data intuition means identifying data patterns among humongous hordes of data when none of it is clearly visible on the surface. This comes with experience and regular practice of course and makes data scientists more efficient and productive in their work.

Similarly, great programmers typically display an intuitive understanding of algorithms, technologies, and software architecture based on their extensive experience and good development sense. They have the ability to understand at a glance what tools in their arsenal best fit the problem at hand. And their intuitive abilities extend well beyond development and coding. This makes them highly versatile in articulating both technical and non-technical problems with both a layman and a specialist audience.

Remember there is no magic bullet or magic tonic to cultivate intuition and be better in it. The more you practice and learn, the more intuitive you get. That is, it!!

Be a Versatilist

“Versatilist” is a good description of the professional needs expected in today’s world.

The term “Versatilist” was first coined in an article from Gartner (Gartner, Inc. Technology Consultants & Research Group) where it states: “Versatilists are able to apply a depth of skill to progressively widening the scope of situations and experiences, equally at ease with technical issues as with business strategy.”

And a data scientist in today’s world needs to be versatile in using multiple technologies at the right place and in the right time. As Paul Lappas the co-founder and CEO of Intermix rightly says.

"The best options are to get professional training, read books, and work on big data projects. You have to both internalize the knowledge and practice it. If you've learned passively but never practiced, you won't be able to code a project, and that will come out in an interview. Practice practice, practice!"

In a nutshell, a qualified data scientist knows how to use the right tool in the right situation to derive the maximum benefit. He is not restricted by the limitations of any tool and has an assortment of skills at his disposal.

In the same vein, versatile programmers learn languages from different language paradigms, whether it be object-oriented languages, functional languages, scripting languages, logic-based languages, or low-level languages. The key is not necessarily acquiring fluency, but gaining a conceptual vocabulary to attack problems in new ways.

Good programmers don’t just code but they keep learning key concepts that help them to resolve problems in new ways and find the most efficient solution possible.

Lastly, communication skills are important

Yes, you may be a great data scientist and having tons of skills and experience under your belt, but the most important skill you need to have is good communication which will enable to communicate your results to a non-technical person (read CEOs, CFOs, etc.) succinctly in order to elicit decisions from them on time.

As Alex Ng is a senior data engineer for Manifold rightly says.

"Aside from hard technical skills, a good data engineer should also have certain soft skills and qualities"

Good data scientists talk to people extensively to understand the problem before they even start analysing anything. This talking is the route to discovery and then finally zeroing on to a requirement which is what is exactly required by customers. Good data scientists draw more satisfaction in identifying and solving customer pain points rather than basking in their own halo of knowledge (read ego). They communicate to express and not to impress.

Similarly, great programmers understand problems clearly, break them down into hypotheses, and propose solutions cohesively. They understand concepts quickly or ask the right questions to understand, and above all, they don’t need every small bit to be written down in a document.

So If you want to become a great programmer, you need to make sure there is effective communication between you and your team. This not only keeps you at a higher plane of commitment but helps you deliver a quality product. Good communication is the stimulant to be successful in work and life.

As Anne Morrow Lindbergh has rightly said.

“Good communication is just as stimulating as black coffee, and just as hard to sleep after.”

Related Articles