I go by WhiteDuck, and this is my first post here.
I’m an open source contributor in the making, a learner, and someone who believes that the best way to grow as a developer is to build in public, break things, fix them, and share the lessons along the way. This blog is my logbook.
Why “WhiteDuck”?
If you’ve ever heard of rubber duck debugging, you already get the idea. Explaining your code out loud — even to an inanimate object — often reveals what’s wrong.
WhiteDuck is my reminder to slow down, think clearly, and never be afraid to ask “simple” questions, even if I’m asking myself.
This blog is my white duck.
My Background (So Far)
I’m still early in my journey, and I’m intentionally saying that upfront. I’m not here to pretend I’ve “made it.” I’m here because I’m learning every day — sometimes smoothly, often painfully.
My focus right now is:
- 🧩 Programming fundamentals
- 🛠️ Open source contribution
- 🐧 Linux, command line tools, and developer workflows
- 🔍 Reading other people’s code (and understanding it)
- 🧪 Breaking things, debugging them, and writing about the process
I care deeply about how software works under the hood, not just how to make it “work once.”
Why Open Source?
Open source is where real learning happens.
It’s where:
- You read code written by people better than you
- You encounter real bugs, not tutorial-perfect ones
- You learn collaboration, communication, and humility
- Your work can actually help someone else
Contributing to open source forces you to grow — technically and personally. It teaches you how to ask good questions, how to accept feedback, and how to keep going even when things don’t make sense yet.
That’s the environment I want to learn in.
What I’m Working On
Most of my learning and experiments live on GitHub:
👉 Check out my GitHub: WhiteDuck
Why I’m Writing This Blog
This blog is not about showing off polished success.
It’s about documenting the climb.
Here’s what you can expect:
- 📝 Lessons from things I just learned (sometimes the hard way)
- 🐛 Bugs I ran into and how I debugged them
- 🔧 Setup guides, mistakes included
- 💡 Concepts that finally “clicked” after confusion
- 🚧 Honest posts about getting stuck and unstuck
I believe that learning in public helps everyone:
- Beginners see they’re not alone
- Intermediate devs recognize familiar struggles
- Experienced devs might spot things they once battled too
If something I write saves you an hour of frustration, then it’s worth it.
Who This Blog Is For
This blog is for:
- Beginners who feel overwhelmed
- Learners who think they’re “too slow”
- Developers curious about open source but unsure where to start
- Anyone who believes progress beats perfection
You don’t need to be an expert to belong in tech. You need curiosity, persistence, and a willingness to learn.
My Philosophy
A few principles I’m trying to live by:
- Learn deeply, not quickly
- Read the docs (then read the source)
- Ask questions early
- Break things safely
- Share what you learn
- Consistency > motivation
I don’t aim to know everything. I aim to understand things properly.
What’s Next?
In upcoming posts, I’ll be writing about:
- My open source contribution attempts (wins and failures)
- Setting up development environments on Linux
- Understanding unfamiliar codebases
- Tools that genuinely help beginners
- Mistakes I don’t want to repeat — so you don’t have to
This is the start of a long journey, and I’m glad you’re here for it.
Supporting the Journey (Optional)
If you find my work useful, or you just want to support an open source learner finding his way, you can do so here:

No pressure — learning together is already enough.
If you’re also learning, struggling, or building something — welcome.
Let’s figure things out together.
— WhiteDuck 🦆
Top comments (1)
Greetings, WhiteDuck. Happy to see such a comprehensive post as your first here at DEV Community. Love your GitHub profile readme, by the way.
Look forward to hearing about your experiences, including learning to code and your own contributions to Open Source projects.