Prof. Frenzel
9 min readJun 4, 2024
Python Fundamentals — Part1: Coding in the Age of AI

Greetings, fellow coders!

Nvidia’s CEO, Jensen Huang, recently stirred debate with his assertion that coding skills might soon be obsolete due to advancements in artificial intelligence. Huang indicated that the progression of AI in natural language processing might eventually replace traditional programming languages. AI could potentially take over most coding tasks, which would allow future generations to focus on areas like biology, education, manufacturing, and farming.

“Don’t Learn to Code” says NVIDIA CEO Jensen

Many industry experts are skeptical of the notion that AI will render traditional programming skills obsolete. Over the years, we’ve seen predictions about the end of coding, but the demand for programmers is still strong. Instead of eliminating the need for coding, AI is likely to make it more accessible. Tools can automate repetitive coding tasks, broadening the audience for coding, but the need for skilled programmers to oversee and optimize these processes persists.

Before we jump into the popular coding language Python, I want to explain why I believe his statement, while not entirely wrong, overlooks key aspects. The idea that coding will become unnecessary promotes dependence on AI and can ultimately weaken critical thinking skills, especially in the upcoming workforce. Relying too much on AI for coding could reduce code quality because AI-generated code may lack the thoughtful design of human programmers. Think about learning other skills like painting or writing. You can see how important human involvement is in creative and technical tasks. If we rely too much on AI for coding, we might see a drop in code quality and miss out on valuable, enriching experiences. Gen AI is certainly good at replicating existing software programs but struggles with creating new and innovative solutions.

Why You Should Still Learn to Code

Creative and Problem-Solving Skills

Coding is inherently a creative and problem-solving activity. While AI can assist in coding by generating code snippets or debugging, it does not replace the human element of creativity and critical thinking. These skills are necessary for solving complex challenges, developing unique applications, and designing systems tailored to specific needs and contexts. Creating an efficient algorithm often demands a deep understanding of both the problem and potential solutions. Human ingenuity is indispensable in such scenarios because it involves not just the application of known techniques but also the innovative adaptation of them to fit specific, frequently unique, requirements. This requires a level of insight and creativity that AI, as of now, cannot fully replicate.

With access to AI Co-Pilots, many Junior coders nowadays bypass foundational knowledge, resulting in a lack of necessary problem-solving skills and a deeper understanding of programming logic needed to debug and optimize code effectively. There are only so many rounds of ‘regenerating’ code with GenAI that make sense before you get stuck and literally start biting your own tail.

Jörmungandr, the legendary serpent of Norse mythology, biting its own tail.

Hands-on practice and real-world problem-solving help build a robust skill set that AI tools alone cannot provide. This process takes time. You might want to jump into your Tesla and drive immediately, but to truly contribute to your company’s value, you must invest time like your senior colleagues who have built a solid coding foundation. You might get there faster than they did, but you can’t skip much. Successful AI implementation requires a deep understanding of the underlying data and algorithms.

That does not mean we shouldn’t embrace AI tools, even at a junior level. They have already found their way into most corporate daily tasks and have been helping all of us automate basic coding tasks, freeing us up to focus on more complex and creative aspects of our work. So, it is hard to ignore that the rise of AI in coding will change the job market, with a greater emphasis on roles that require overseeing AI systems and ensuring their ethical use.

So times have changed, and relying solely on technical knowledge won’t be enough for career growth in data science and analytics. Concentrate on understanding data quality rather than complex methodologies and improve your communication skills. Clearly explaining your findings to non-technical stakeholders will significantly increase the impact of your work. These skills might be neglected if you depend too heavily on AI assistance early in your career.

Educational and Skill Development

Learning to code helps you develop logical thinking and problem-solving skills. These abilities are useful not just in software development but in many other areas, improving your overall digital literacy. Coding shows you how to approach problems systematically, breaking them into smaller, manageable parts. This methodical approach benefits fields like data analysis, engineering, and even business strategy.

Learning to code offers practical benefits such as improved problem-solving abilities, creativity, and systematic thinking. You will need to understand data structures, such as arrays or linked lists, and apply efficient search techniques like binary search. These concepts are represented using Big O notation.

𝑇(𝑛) denotes the time complexity of a binary search in a sorted array of 𝑛 elements

Understanding and applying such concepts is a key aspect of problem-solving in coding because it helps you assess and improve the efficiency of your algorithms. If you’re interested, you can start reading here: Big O Notation Tutorial.

I also find coding to be a wonderful creative outlet. It lets you bring ideas to life through designing websites, applications, and games, providing a sense of accomplishment and personal growth. GenAI helps you turn concepts that might have stayed on your computer or GitHub into interactive projects.

Future of Code

Despite predictions about the end of coding, there is still a high demand for skilled programmers. Master programs in the field continue to grow, and my courses are always waitlisted. This may not be the best leading indicator, but historical precedents show that new technologies often create more opportunities for programmers rather than eliminating the need for them. The development of high-level programming languages and integrated development environments (IDEs) simplified many coding aspects in the 1990s, yet the demand for proficient programmers has only grown. While the role of programmers might shift, their expertise will continue to play a significant part in developing and refining AI systems

AI is here to work alongside you, not take over. It handles repetitive tasks and helps with code generation, but you’ll still be needed for complex projects to keep quality high. This teamwork makes software development more efficient and innovative since AI tools can cut down on errors and boost software quality and security. With AI doing the routine stuff, you can focus on the more strategic parts of your job. Integrating AI into coding means you have to think about legal and ethical issues, especially in critical fields like healthcare and finance. New jobs will pop up, like overseeing AI systems and managing ethical concerns, so it’s good to build skills that work well with AI. Careers in AI and coding are on the rise, with lots of high-paying jobs for those who know their stuff. AI is changing fields like healthcare and finance, creating jobs that mix tech skills with specific industry knowledge.

The future of coding is intertwined with AI, and while the landscape may change, the fundamental skills of programming will remain valuable.

The Coder Mindset

Perhaps I’ve convinced you to stay on the path of semi-traditional coding rather than becoming a full-time Prompt Engineer or No-Code Developer. In that case, let’s talk about the coder mindset and what it requires.

The Coder

Coding demands a specific mindset characterized by perseverance, attention to detail, and continuous learning. To be effective, you need to be proficient in at least one programming language, possess strong problem-solving skills, and balance technical expertise with soft skills like communication and collaboration.

GitHub Contributions

Keep learning and contributing regularly to stay current with the latest technology trends. Dedicating time each week to improve and share knowledge helps you enhance your skills, stay competitive, and contribute to the tech community. This steady commitment to growth and learning will serve you well in your career.

Coding involves debugging and problem-solving. It can be frustrating and time-consuming. As a coder, you need to be persistent and patient, almost enjoying the process more than the result. The learning curve can be steep, with initial challenges often seeming overwhelming.

Coding — The Learning Curve

As you practice regularly and follow a structured approach, you’ll notice that complexities become easier to handle. Break complex problems into smaller, manageable parts to find effective solutions. Small errors can cause big issues in code, so be meticulous to maintain accuracy and precision. Engage with the coding community through forums, study groups, and collaborative projects to gain diverse perspectives and support. Work towards producing clean, well-documented code to uphold the quality, readability, and scalability of your codebase.

My Advice

You are at the starting line. As with any new language, you begin by understanding vocabulary and grammar (syntax). You regularly review the new terms and practice consistently to become fluent, or at least get over the fear of making mistakes. Here, your programming environment — be it Python, R, or SQL — serves as your learning partner. It will tell you when you make mistakes. Debugging is an important skill to train.

I recommend building a consistent coding schedule, finding a problem you are interested in early on (budget planner, trading strategy, game?), and staying curious and adaptable. Don’t fear mistakes; they are part of the growth process. Building an MVP should be your priority at the beginning; the code might not be clean and efficient, but it works.

As you continue, you will learn that the process of coding can fundamentally change how you think and approach problems, fostering a mindset shift toward systematic problem-solving. Don’t overwhelm yourself. There are multiple technology stacks out there waiting for you, but for now, focus on one and master it before you start expanding your tech stack.

A few principles that have served me well are: DRY (Don’t Repeat Yourself) and KISS (Keep It Simple, Stupid). DRY emphasizes writing code that is modular and reusable, minimizing redundancy and making your projects more maintainable in the long run. KISS is about avoiding unnecessary complexity in your code. Favor straightforward solutions over overly convoluted ones, as this can make your code easier to understand, debug, and improve.

Why Python?

When I started in investment banking and equity management, Excel and VBA were my go-to tools. As I moved on to scaling and converting ideas into algorithms, SQL, Matlab, and R became my new staples. R might not be as popular these days, but it’s still my favorite for quantitative finance projects and time series modeling. R Shiny dashboards have made my work accessible to others, so it’s hard to let go of it. But times have changed, and Python is now the leading language.

R vs. Python

Once upon a time in the land of coding… there was a mighty language called Python, known for its simplicity and power. Legend has it that Python could tame the wildest datasets and solve the trickiest problems with just a few lines of code. Data scientists from all corners of the world flocked to learn its secrets, unlocking the true potential of their data and embarking on adventures of predictive modeling and machine learning. Today, there are many reasons why Python is our new favorite:

  • Python’s rich ecosystem includes a vast collection of libraries and frameworks, simplifying complex programming tasks and supporting the entire machine learning lifecycle from data preprocessing to model deployment.
  • The active and supportive Python community provides numerous resources for learning and troubleshooting, making it easier for beginners and experts alike to enhance their skills.
  • Knowledge of Python opens doors to many high-demand roles in tech industries, leading to numerous career opportunities and competitive salaries due to its widespread use and versatility.
  • Python’s cross-platform compatibility allows code to run on different operating systems without modification, ensuring flexibility and ease of use across various environments.
  • Integration with tools like ChatGPT and GitHub Copilot automates code reviews, generation, and debugging, reducing human error, increasing efficiency, and boosting productivity by generating code snippets, catching bugs, and suggesting optimizations.
  • New languages like Mojo aim to combine Python’s syntax with systems programming and metaprogramming features, enhancing performance for machine learning tasks while maintaining Python’s ease of use, showcasing its continuous evolution and relevance in the tech industry.
Prof. Frenzel

Data Scientist | Engineer - Professor | Entrepreneur - Investor | Finance - World Traveler