“I Won’t Use Algorithms in My Job”

If you’ve hung around developer forums, you’ve probably seen this debate:

Camp A: “Data structures and algorithms are academic. In real jobs, you’ll never use them.”
Camp B: “Everything you do is built on data structures and algorithms. You just don’t…


This content originally appeared on DEV Community and was authored by Sebastian Van Rooyen

If you've hung around developer forums, you've probably seen this debate:

Camp A: "Data structures and algorithms are academic. In real jobs, you'll never use them."
Camp B: "Everything you do is built on data structures and algorithms. You just don’t realize it."

It reminds me of something from school:

"I'll never use math in real life."

And yet, math pops up everywhere—from splitting bills to calculating interest to understanding mortgage payments.

As a developer, I recently hit this same "algorithm reality check" while building SnipMaster, a text management and manipulation suite for Windows.

Specifically, I'm in the process of adding live PDF editing—and discovered that the entire feature depends on Text Block Recognition, powered by a heuristic grouping algorithm.

The Problem: PDFs Are Not Word Docs

PDFs are tricky. They don’t store text as paragraphs or sentences. Instead:

  • Text is a scattered collection of fragments with coordinates (x, y)
  • Line breaks are not guaranteed to represent real lines
  • Paragraphs don’t exist

If I wanted users to edit a PDF like a Word document, I had to solve a hard problem:
👉 How do I recognize text blocks in an unstructured PDF?

The Grouping Algorithm for Text Block Recognition

Here’s the algorithm that makes it possible:

  1. Sorting by Position
  • Take all text fragments from the PDF.
  • Sort them first by y (vertical) and then by x (horizontal).
  • This creates a logical reading order.
  1. Grouping into Blocks
  • Compare line heights.
  • Group fragments into the same block if they’re within 1.5x line height.
  • This heuristic keeps paragraphs together while avoiding noise.
  1. Creating Overlays
  • Generate invisible <div> overlays on top of each block.
  • These overlays are clickable and editable.
  1. Editing & Smart Saving
  • When clicked, an overlay turns into a <textarea> for editing.
  • On save, the entire block is replaced in the document, with line breaks preserved.

Visual Walkthrough

Here's a simplified sketch of how the algorithm works:

Raw PDF Text Fragments (scattered)
----------------------------------
[ "Hello", (x=230,y=100) ]
[ "World", (x=100,y=100) ]
[ "this", (x=100,y=120) ]
[ "is", (x=160,y=120) ]
[ "SnipMaster", (x=230,y=120) ]

Step 1: Sort by Y, then X
-------------------------
Line 1: Hello, World
Line 2: this is SnipMaster

Step 2: Group into Blocks (using 1.5x line height)
--------------------------------------------------
Block 1:
   Hello World
   this is SnipMaster

Step 3: Overlay
---------------
[Transparent Block Overlay]
   Editable textarea appears when clicked

From chaos to clarity—all thanks to algorithms.

Is This "Using Algorithms"?

Here's where I want your input. Some developers would argue:

  • "This isn't a real algorithm, it's just sorting and grouping."
  • "Heuristics aren’t the same as textbook algorithms."

But my take is:

  • Sorting is a fundamental algorithm (performance matters at scale).
  • Grouping with heuristics is algorithm design in the wild.
  • Without a data structure to store blocks efficiently, edits would be slow and messy.

So yes, this is exactly why data structures and algorithms matter in real-world projects.

Why This Matters Beyond SnipMaster

This isn't just about PDFs. Text Block Recognition pops up in:

  • OCR tools reconstructing text from scanned pages
  • Search engines breaking down documents into indexable chunks
  • Accessibility tools grouping content for screen readers
  • Design software that detects editable layers

All of these rely on the same principles: sorting, grouping, and storing structured data efficiently.

Your Turn

For me, the SnipMaster experience killed the idea that "I'll never use algorithms at work."

Every time someone edits a block of PDF text, an algorithm is silently:

  • Sorting fragments
  • Grouping them into blocks
  • Overlaying interaction zones
  • Preserving structure on save

It's math class all over again—you thought you'd never use it, until you do.

👉 But what do you think?

  • Would you call this "real algorithm work"?
  • Have you had projects where “boring” data structures saved the day?
  • Or do you still think DSA is mostly for coding interviews?

Drop your thoughts—I'd love to hear your take.


This content originally appeared on DEV Community and was authored by Sebastian Van Rooyen


Print Share Comment Cite Upload Translate Updates
APA

Sebastian Van Rooyen | Sciencx (2025-08-22T14:02:51+00:00) “I Won’t Use Algorithms in My Job”. Retrieved from https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/

MLA
" » “I Won’t Use Algorithms in My Job”." Sebastian Van Rooyen | Sciencx - Friday August 22, 2025, https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/
HARVARD
Sebastian Van Rooyen | Sciencx Friday August 22, 2025 » “I Won’t Use Algorithms in My Job”., viewed ,<https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/>
VANCOUVER
Sebastian Van Rooyen | Sciencx - » “I Won’t Use Algorithms in My Job”. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/
CHICAGO
" » “I Won’t Use Algorithms in My Job”." Sebastian Van Rooyen | Sciencx - Accessed . https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/
IEEE
" » “I Won’t Use Algorithms in My Job”." Sebastian Van Rooyen | Sciencx [Online]. Available: https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/. [Accessed: ]
rf:citation
» “I Won’t Use Algorithms in My Job” | Sebastian Van Rooyen | Sciencx | https://www.scien.cx/2025/08/22/i-wont-use-algorithms-in-my-job-2/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.