Succeeding in Data Science — Chapter 4 Development

From author of the book, Understanding Deep Learning.

Chitta Ranjan
AiChef

--

<<Chapter 3 Theory

Whether you are a junior or a senior, you must know development. Because,

no one can implement your ideas better than you.

Photo by Christopher Gower on Unsplash

Think of you as a,

  • Junior

Well, there is a benefit of having no choice when you are a junior. Your primary task is development. You develop your manager’s idea into a product.

But at times you will come up with groundbreaking ideas. You can either go to your manager with only the idea or with its working model. Always do the latter!

A working model gives a tangible form to an idea. Without it, the idea is usually discarded because, of course, no one has time to implement your idea. No matter how great you think your idea is, it has little value unless developed.

  • Senior

Asking of seniors such as managers to know development is difficult. After all, a manager must not spend time (and rightly so) in development because the job entails something else. The same problem is often with senior researchers who innovate new solutions and work with engineers for development.

But your ability to develop your ideas yourself is still important! This is not because you should do the development yourself. In fact, it is unlikely. Your job is to get solutions developed by your team. But you can get a solid outcome from the team only if you can do it yourself!

We tend to justify to ourselves in senior positions that we need not know development. The mistake done here is

confusing knowing with doing.

Imagine you asked someone to make lasagna for you. It came to you but you did not like it. You found the pasta sheets raw, and the filling dry. You ask the lasagna to be redone. But you do not have any knowledge to suggest how to correct those issues?

It could take several iterations to get it right. Now if you knew making lasagna you can quickly suggest to 1. keep the pan hot when pouring the pasta paste, and 2. cover the filling with cheese, respectively, to correct both the issues.

The fact that the leader knows brings comfort to and confidence in everyone. The team is comfortable that they will get a guidance when they are stuck, and the leader has a clearer picture of the development activities to build a quality solution.

This is evident from some successful companies where their founders got their hands dirty, developed things themselves, and led a team from there. Look at Amazon, Google, Microsoft, Facebook, Shopify, Etsy, and the list goes on. The culture of these companies is vastly different (in a positive way) than some others where the leaders did not or cannot do it themselves.

The knowledge of development is quintessential because only then you can materialize your ideas into a reality. By yourself as a junior and from your team when senior.

This knowledge brings:

  • Better planning.

A plan is made best by the one leading from the battlefield. You do not trust orders coming from a general sitting elsewhere. Because realities are known only in the battlefield.

You can be in the battlefield only with your development knowledge. With it, you will understand the development details and their challenges. You will have Plan A and B. If needed, you can quickly come up with a Plan C.

Importantly, you will have realistic estimates of development duration. This establishes right expectations with your consumer and takes the pressure off of your team. Love the respect this brings to you!

  • No loss in translation.

Developers speak differently. They have their own acronyms, words, and phrases. For example, git pull , git push , merge conflict are typical repository maintenance linguistic.

You speaking the same language keeps you in the tribe. You are heard. You are respected. And, everything becomes efficient.

  • Meaningful review.

Review is essential for quality control. You are required to review your team’s development. It is a necessary practice because another set of eyes are better at finding issues. This practice is called pull-request review in the development circles.

How will you review if you do not know development yourself? You might have a short successful ride but eventually your lack of knowledge will catch up in the form of poor quality development.

It takes significant effort to develop and maintain a culture of quality development. Only your development knowledge can make it happen.

In summary, your development knowledge helps you belong to the tribe. The tribe of your team. You speak your tribe’s language. You are accepted. You are respected. And, you become part of an efficient system.

The development knowledge essential in data science are: algorithm development, data structure and management, and visualization. Algorithm development is a large area covering use of existing libraries, developing custom libraries, pipeline development, distributed computing, cloud, and so on. Similarly, there are several types of data structures and visualization. Learn them incrementally based on your needs. A few resources are in the references.

References

Algorithm Development

  1. “The Python Tutorial: Official Documentation.” URL: https://docs.python.org/3/tutorial/
  2. Introduction to Machine Learning with Python: A Guide for Data Scientists. by Andreas C. Müller, Sarah Guido.
    GitHub: https://github.com/amueller/introduction_to_ml_with_python
  3. Best Practices for Coding, Organization, and Documentation,” MIT Communication Lab.

Data Structure And Management

  1. Principles of Database Management: The Practical Guide to Storing, Managing and Analyzing Big and Small Data,” by Wilfried Lemahieu, Seppe vanden Broucke, and Bart Baesens.
  2. Data Structures and Algorithms in Python,” by Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser.

Visualization

  1. Fundamentals of Data Visualization: A Primer on Making Informative and Compelling Figures,” by Claus O. Wilke.
  2. Knowledge is Beautiful Hardcover,” by David McCandless.

Disclaimer: The post contains original content copyrighted to the author.

--

--