1 minute read

Introduction

Sometimes in coding, what you learn technically is only part of the story. This week I worked on two topics — regular expressions and Python virtual environments. On the surface, they had nothing in common. But as I worked through them, they both taught me something deeper: how to manage complexity and think clearly.


The Problem

I wanted to:

  • Extract patterns like phone numbers and zip codes using regular expressions
  • Learn how to safely isolate Python projects using virtual environments

But honestly, I kept asking myself… Why is this so tricky?

→ Because regex forces you to think like a parser, not a human.
→ Because environment errors can break your code before it even runs.
→ Because both demand structure, not shortcuts.


My Approach

Regular Expressions

Using practice files, I wrote patterns that:

  • Matched phone numbers like 010-1234-5678
  • Validated 5-digit zip codes
  • Used re.match(), re.search(), and re.findall() correctly
import re
pattern = r"(010|02|031)-\d{4}-\d{4}"
text = "고객센터 번호는 010-1234-5678입니다."
match = re.findall(pattern, text)

I also tried reading through logs and detecting structured text with variations.

Virtual Environments

I studied how to create isolated Python environments with:

conda create --name myenv1 python=3.8

From that I learned:

  • Each project can (and should) have its own Python + packages
  • Dependency version conflicts are real, especially in machine learning
  • Isolation isn’t a “nice to have” — it’s necessary for clean development

What I Learned

From Regex

  • How to think in precise, symbolic patterns
  • The difference between finding some match and the correct match
  • That reading and debugging regex is just as important as writing it

From Virtual Environments

  • Why global installs always lead to trouble
  • How even one package version mismatch can cause hours of pain
  • That environment management is a critical dev skill — not just setup

What I Thought About

I expected to “just learn some syntax.” But instead, I:

  • Practiced deeper problem-solving through symbolic thinking
  • Felt how real-world problems (like environment breaks) derail projects
  • Understood that structure and control are part of being a serious developer

What I Want to Do Next

  • Build a regex-driven data cleaner to remove/mask sensitive text
  • Automate log parsing using pattern recognition
  • Apply virtual environments to all my future projects
  • Try venv, conda, and pipenv and compare their use cases

In the end, both topics reminded me of something bigger:
Good programmers don’t just write code — they manage complexity.

Tags:

Updated: