DEV Community

Nitish J Prabhu
Nitish J Prabhu

Posted on

My AI Journey: A Java Developer's First Dive into the Python Ocean

Welcome to my new blog! For nearly a decade, my world has been defined by Java, building robust enterprise applications. It’s a world of classes, objects, static types, and the comforting embrace of curly braces. But the siren call of Artificial Intelligence and Machine Learning has become too loud to ignore. This year, I’ve taken the plunge and enrolled in the M.Tech in AI/ML program at BITS Pilani. This series is my chronicle—a journey from scratch, starting with a language I've never written a line in: Python.

My first week, which began on September 14th, 2025, was all about getting my feet wet and rewiring my Java-trained brain.

The Great Syntactic Shift: Python vs. Java
The first and most jarring experience was Python's syntax. Coming from Java, the absence of certain characters felt like walking outside without my shoes on.

The Missing Semicolon: My fingers instinctively reached for the semicolon at the end of every line. In Python, it's simply not needed. The line break is enough.

The Tyranny (or Elegance) of Indentation: In Java, curly braces {} define a block of code. In Python, whitespace is king. A block of code is defined purely by its indentation. This isn't just a style recommendation; it's a syntax rule. An extra space can lead to an

IndentationError.

Interpreted vs. Compiled: Python is an interpreted language. This means I can write a line of code in the interactive shell (at the

prompt) and see the result immediately. This is a refreshing change from Java’s strict compile-then-run cycle and makes experimenting incredibly fast.


Dynamic Typing: This was the other major paradigm shift. In Java, I must declare a variable's type, like String name = "Newbie";. In Python, you just assign it:

name = "Newbie". The interpreter figures out the type (

str, int, float) on the fly. It feels both liberating and slightly dangerous!

The Building Blocks: Python Fundamentals (Week 1)
My first week's curriculum seems to be based on the excellent open-source book, "Python for Everybody". We covered the absolute essentials, which correspond to the first couple of chapters.

  1. Hello, World! and Basic I/O

The rite of passage for any language. In Python:

print('Hello world!')

That's it. A single, clean line. For any Java developer, the comparison to public static void main(String[] args) { System.out.println("Hello, World!"); } is striking and immediately showcases Python's conciseness.

We also learned to get data from the user with the

input() function. A key lesson here is that

input() always returns a string. If you need a number, you must explicitly convert it, like

age = int(input('Enter your age: ')). Forgetting this is a recipe for a

ValueError!

  1. Variables, Expressions, and Statements

This part felt more familiar. The core concepts of programming are universal.

Data Types: We focused on the three basic types: integers (int), floating-point numbers (float), and strings (str).

Variables: Assignment is simple: variable_name = value. The course material emphasizes using "mnemonic variable names"—clear, descriptive names that help you remember a variable's purpose. This is a best practice that transcends any language.

Operators & Expressions: The standard arithmetic operators (+, -, *, /) and rules of precedence (PEMDAS) work just as you'd expect. An interesting subtlety in Python 3 is that the division operator

/ always produces a floating-point number. For integer division, you need to use

//.

A Glimpse of the Road Ahead: The Technical Deep Dive
While this week was Python-centric, a look at my course list for the trimester shows exactly where this is all heading. It's an entire ecosystem of data technologies.

The Data Stores & Pipelines course is a journey into the heart of modern data engineering. We'll be moving from traditional RDBMS to understanding modern paradigms like

Data Lakes and the Lakehouse architecture. I'm particularly excited to get hands-on with the tools that power Big Data:

Apache Spark for distributed processing, Apache Kafka for real-time streaming, and Apache Airflow for orchestrating complex data workflows (DAGs!). The syllabus also covers architectural patterns like

Lambda and Kappa, which will be fascinating to compare.

Then there's Data Preprocessing. As a software engineer, I know the 'garbage in, garbage out' principle well; this course seems to be the formal data science version of that. It covers everything from handling missing values and outliers to more advanced topics like

dimensionality reduction using techniques like Principal Component Analysis (PCA). It even gets into model explainability with frameworks like

SHAP and LIME, which is crucial for building trust in AI systems.

Finally, it all culminates in Data Visualization & Storytelling. This isn't just about making charts; it's about crafting a narrative. We'll be using Python libraries like

Matplotlib and Seaborn but also industry-standard BI tools like Tableau and Power BI. The curriculum emphasizes moving from

exploratory analysis (what does the data say?) to explanatory analysis (what story does the data tell?), grounded in design theories like the Gestalt principles of visual perception. It’s the perfect blend of technical skill and creative communication.

It’s a bit daunting, but seeing these specific technologies laid out makes the path clearer. Python is the key, but these courses are the doors it will unlock.

Final Thoughts for Week 1
It's been a week of unlearning and relearning. Unlearning the syntactic habits of Java has been the biggest challenge. But the reward is the sheer speed and readability of Python. What might take ten lines of boilerplate code in Java can often be achieved in two or three lines in Python. It feels less like commanding a machine and more like having a conversation.

Next week, I'm scheduled to dive into

Conditional Execution (Chapter 3) and Functions (Chapter 4). I'm looking forward to adding

if/else logic and learning how to structure my code for reuse—concepts that are very familiar, but I'm sure Python has its own unique and elegant way of handling them.

Stay tuned!

Top comments (0)