Why Do You Write Code? Exploring Different Motivations

People write code for various reasons, depending on their goals, interests, and professions.

When I first started learning about data science, I was told to learn how to code. This was immensely intimidating and already confusing. As I dove deeper into learning how to code, I got only even more confused. I was taking a python course, as suggested by many people online when trying to break into data science. The only problem was, it was teaching me how to code like a developer first, not a data scientist, which are two very different things.

This isnโ€™t to say learning Object Oriented Programming and the plethora of computer science classes isn’t useful, it just isn’t exactly necessary in the beginning if what you want is to analyze a dataset, not be a software developer.

Why do people write code

While data scientists, developers, and other professionals write code, their goals and approaches to programming are quite different. Hereโ€™s a quick look at some of the main reasons people code:

  1. Building Software Applications
    • Developers write code to build apps, websites, and systems that solve specific problems. Whether it is creating mobile apps, business software, or video games, developers focus on delivering functional, scalable, and user-friendly solutions.
  2. Data Science and Analysis
    • Data scientists and analysts write code to process, analyze, and visualize data. Their goal is to extract insights, identify trends, and build predictive models. Their code is used to clean data, run statistical models, and present findings through charts and dashboards.
  3. Automation
    • People often code to automate repetitive tasks. For example, writing scripts to handle file management, data entry, or system monitoring. Automation saves time and reduces human error, making workflows more efficient. As a data scientist, I automate some of the more repetitive tasks like data profiling, summarizing, and cleaning.
  4. Algorithmic Problem-Solving
    • Competitive programmers or people who enjoy puzzles often code to solve algorithmic challenges. This is a great way to improve logical thinking, optimize solutions, and explore new algorithms for fun. There are many data science competitions and challenges for this too.
  5. Creative Projects
    • For many, coding can also be a creative outlet. People use code to create digital art, music, games and more. Itโ€™s a way to blend creativity with your technical skills to bring your ideas to life.
  6. Scientific Research
    •  In academia and research, people code to model simulations, run experiments, or analyze large datasets. Researchers often code to test hypotheses and gather empirical evidence to support their work.

Clearly, coding isnโ€™t just about creating softwareโ€”it serves multiple purposes, from solving practical problems and analyzing data to exploring creativity and advancing scientific research.

While I was trying to learn data science, I was often confused as to why I was learning how to build applications and software when taking different coding courses. While those are certainly helpful, it felt like it took a lot longer for me to grasp the data science side of things.

So what should a data scientist learn?

To begin with, data scientists and analysts should learn SQL, along with Python and R basics. Personally, I learn better by experimenting myself rather than following along, and I think many others also fall into this category. I recommend these languages first because they each have their own unique features and utility.

Developers have this concept as well, since languages like C++, C#, Python, Java, JavaScript also each have their own uses and strengths.

Data Science vs Development

While both data scientists and developers write code, their goals and approaches to programming are quite different. Hereโ€™s a quick breakdown of the key distinctions:

  1. Objective
    • Data Science Programming: The main goal is to extract insights from data. Data scientists focus on data manipulation, analysis, and building models. Their programming centers around exploration and experimentation, often producing scripts or notebooks that may not need to scale to production immediately. Data scientists work in an exploratory way, testing hypotheses, tuning models, and analyzing data. Speed of experimentation is often prioritized over code structure.
    • Developer Programming: Developers focus on building robust, scalable software applications that are meant for continuous use. Their goal is to write clean, maintainable code that can integrate into larger systems, handle various edge cases, and scale. Developers follow structured development processes, focusing on clean, maintainable code that can scale and handle various use cases. They think long-term, ensuring systems are robust and easily upgradable.
  2. Focus on Algorithms vs. Data
    • Data Scientists: Prioritize data handling (cleaning, transforming, and analyzing data) and implementing machine learning algorithms or statistical methods. They use tools like Pandas, Numpy, and Scikit-learn to work with data efficiently.
    • Developers: Focus on algorithms and systems architecture, often optimizing for performance, memory usage, and maintainability. Developers work with frameworks and libraries to build the backbone of web, mobile, or desktop applications
  3. Development Lifecycle
    • Data Science: Often works in an exploratory, iterative fashion. Data scientists frequently write code to experiment with different approaches, tune models, and analyze data. The goal might not be to write perfect code, but to find the right insights or best model.
    • Developers: Follow more structured development cycles, such as agile, focusing on writing production-ready code, managing deployments, and continuous integration. Their code typically passes through testing, code review, and version control systems like Git.
  4. Tools and Environments
    • Data Science: Works with tools that facilitate quick experimentation, like Jupyter Notebooks for interactive coding, and libraries like Matplotlib for visualization. The environment is more analysis-driven, and data scientists often work alone or in small teams on specific models.
    • Developers: Use*IDEs (like VS Code, PyCharm) and a wide range of development tools, including debuggers, linters, and version control systems. Their work often involves collaboration within larger teams, writing scalable code that will be deployed to a production environment.
  5. Code Structure and Optimization
    • Data Scientists: Code may be less structured, with more focus on prototyping and experimentation. The priority is usually speed of execution for the specific analysis at hand, not necessarily the maintainability or performance of the overall system.
    • Developers: Code must be modular, clean, and maintainable. They use design patterns, follow coding standards, and ensure the system can handle a growing number of users or large-scale operations. Efficiency in terms of performance and system architecture is key.
  6.  Testing and Validation
    • Data Scientists: Emphasize model validation and accuracy through techniques like cross-validation, but unit testing code is often not a top priority unless the model is being deployed into production.
    • Developers: Heavily rely on unit testing, integration testing, and continuous testing to ensure code reliability and performance. Their work often involves ensuring everything works under different scenarios and conditions.

Wrap up

Essentially, programming for data science is exploratory and focuses on working with data and models, while developers focus on building robust, scalable, and maintainable systems. Both roles involve coding but with different mindsets and priorities.

Whether you’re learning data science or software development, it’s important to start with a clear purpose in mind. Understanding why you want to learn to code. It will help guide your learning path whether it’s to build applications, analyze data, or automate tasks. Once you’ve defined your goal, focus on finding the best starting point. For example, aspiring developers might begin with Python, JavaScript, or C# to build applications, while those interested in data science should explore tools like Python, R, and SQL. Plan a structured approach, starting with foundational concepts and gradually moving toward more complex projects to build your confidence and skills.

Check out this post to understand the most essential python libraries for data science.

Leave a Reply

Your email address will not be published. Required fields are marked *