<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Henry Anayo</title>
    <description>The latest articles on DEV Community by Henry Anayo (@hanayo).</description>
    <link>https://dev.to/hanayo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3966038%2F3815caf5-99ce-4a35-9754-7df3a62b9efe.jpg</url>
      <title>DEV Community: Henry Anayo</title>
      <link>https://dev.to/hanayo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hanayo"/>
    <language>en</language>
    <item>
      <title>I Had Zero Programming Experience. Two Months Later, I Built My First Real-World Solution.</title>
      <dc:creator>Henry Anayo</dc:creator>
      <pubDate>Tue, 28 Jul 2026 17:05:39 +0000</pubDate>
      <link>https://dev.to/hanayo/i-had-zero-programming-experience-two-months-later-i-built-my-first-real-world-solution-4840</link>
      <guid>https://dev.to/hanayo/i-had-zero-programming-experience-two-months-later-i-built-my-first-real-world-solution-4840</guid>
      <description>&lt;p&gt;Two months ago, I couldn't explain what a variable was.&lt;/p&gt;

&lt;p&gt;Today, I'm writing backend code in Go, working with APIs and databases, using Git, Docker, and PostgreSQL, and recently spent 48 hours building a solution to a real environmental and economic problem.&lt;/p&gt;

&lt;p&gt;The journey between those two points has been messy.&lt;/p&gt;

&lt;p&gt;And that's exactly what I want to talk about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Beginning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I joined Zone01 Kisumu, I didn't come in with years of programming experience.&lt;/p&gt;

&lt;p&gt;I came in as a complete beginner.&lt;/p&gt;

&lt;p&gt;I had to learn things that many developers consider basic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is Git?&lt;/li&gt;
&lt;li&gt;What exactly does &lt;code&gt;git push&lt;/code&gt; do?&lt;/li&gt;
&lt;li&gt;Why isn't my code compiling?&lt;/li&gt;
&lt;li&gt;What's the difference between compile-time and runtime?&lt;/li&gt;
&lt;li&gt;What is an API?&lt;/li&gt;
&lt;li&gt;Why can't my application connect to PostgreSQL?&lt;/li&gt;
&lt;li&gt;Why does my code work on my machine but fail somewhere else?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes, I spent hours trying to solve what seemed like a tiny problem.&lt;/p&gt;

&lt;p&gt;At the time, it was frustrating.&lt;/p&gt;

&lt;p&gt;Looking back, those problems were some of the most valuable things I could have experienced.&lt;/p&gt;

&lt;p&gt;Because I wasn't just learning syntax.&lt;/p&gt;

&lt;p&gt;I was learning how to think.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Go&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My first serious programming language has been Go.&lt;/p&gt;

&lt;p&gt;At first, it felt strange.&lt;/p&gt;

&lt;p&gt;I had to understand variables, functions, loops, pointers, structs, packages, interfaces, error handling, and a lot more.&lt;/p&gt;

&lt;p&gt;Then came the projects.&lt;/p&gt;

&lt;p&gt;I worked on exercises that forced me to actually understand what I was writing instead of simply copying code.&lt;/p&gt;

&lt;p&gt;One of the biggest lessons I learned was this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Knowing the syntax is not the same as knowing how to solve problems.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can memorize a programming language and still struggle to build something.&lt;/p&gt;

&lt;p&gt;The real skill is learning how to break a big problem into smaller problems.&lt;/p&gt;

&lt;p&gt;That changed the way I approached programming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then Came the Real Problems&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Things became more interesting when I started working on backend projects.&lt;/p&gt;

&lt;p&gt;Suddenly, I wasn't just writing isolated functions.&lt;/p&gt;

&lt;p&gt;I had to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Databases&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Migrations&lt;/li&gt;
&lt;li&gt;Environment variables&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Git workflows&lt;/li&gt;
&lt;li&gt;Project architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then came the errors.&lt;/p&gt;

&lt;p&gt;A lot of errors.&lt;/p&gt;

&lt;p&gt;My application couldn't connect to PostgreSQL.&lt;/p&gt;

&lt;p&gt;Git rejected my push.&lt;/p&gt;

&lt;p&gt;Migrations conflicted.&lt;/p&gt;

&lt;p&gt;The compiler complained.&lt;/p&gt;

&lt;p&gt;Packages were missing.&lt;/p&gt;

&lt;p&gt;Sometimes I fixed one problem only to create another one.&lt;/p&gt;

&lt;p&gt;But every error forced me to understand something I didn't understand before.&lt;/p&gt;

&lt;p&gt;Eventually, I reached a point where I could start a backend server, connect it to PostgreSQL, create endpoints, and actually see the pieces working together.&lt;/p&gt;

&lt;p&gt;That feeling was incredible.&lt;/p&gt;

&lt;p&gt;Not because the application was perfect.&lt;/p&gt;

&lt;p&gt;But because I knew how far I had come.&lt;/p&gt;

&lt;p&gt;The 24-Hour Challenge&lt;/p&gt;

&lt;p&gt;Recently, I participated in the KijaniSpace Hackathon, a 24-hour challenge that pushed us to think beyond code.&lt;/p&gt;

&lt;p&gt;Our team worked on a problem affecting Lake Victoria: declining fish populations, unpredictable catches, pollution, and the spread of water hyacinth.&lt;/p&gt;

&lt;p&gt;We wanted to explore how technology could help address these challenges.&lt;/p&gt;

&lt;p&gt;Our idea was to combine different sources of information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IoT sensors for real-world environmental data&lt;/li&gt;
&lt;li&gt;Copernicus data for satellite-based observation&lt;/li&gt;
&lt;li&gt;AI to help analyze information and provide actionable recommendations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to continuously observe the lake, detect environmental changes as early as possible, and help stakeholders make better decisions.&lt;/p&gt;

&lt;p&gt;The solution wasn't just about building an app.&lt;/p&gt;

&lt;p&gt;It was about asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can technology help us understand what's happening in our environment before the problem becomes too big to ignore?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question made the project meaningful to me.&lt;/p&gt;

&lt;p&gt;And after 24 hours of building, debugging, discussing, changing ideas, and probably questioning our life choices a few times...&lt;/p&gt;

&lt;p&gt;We finished &lt;strong&gt;3rd&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That was a huge moment for me.&lt;/p&gt;

&lt;p&gt;Not because I suddenly became an expert.&lt;/p&gt;

&lt;p&gt;But because it showed me that even someone who started with zero programming experience can contribute to solving real-world problems with technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I'm Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My biggest lesson so far is that becoming a developer isn't about knowing everything.&lt;/p&gt;

&lt;p&gt;It's about becoming comfortable with not knowing.&lt;/p&gt;

&lt;p&gt;I still Google things.&lt;/p&gt;

&lt;p&gt;I still ask questions.&lt;/p&gt;

&lt;p&gt;I still get stuck.&lt;/p&gt;

&lt;p&gt;I still encounter errors that make absolutely no sense to me at first.&lt;/p&gt;

&lt;p&gt;But now, instead of seeing an error as proof that I can't code, I see it as a problem that I haven't solved yet.&lt;/p&gt;

&lt;p&gt;That's a very different mindset.&lt;/p&gt;

&lt;p&gt;I'm also learning that software development is much bigger than writing code.&lt;/p&gt;

&lt;p&gt;It's about understanding people.&lt;/p&gt;

&lt;p&gt;Understanding problems.&lt;/p&gt;

&lt;p&gt;Working with a team.&lt;/p&gt;

&lt;p&gt;Communicating ideas.&lt;/p&gt;

&lt;p&gt;Making decisions with incomplete information.&lt;/p&gt;

&lt;p&gt;And turning an abstract idea into something that can actually be used.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm still at the beginning of this journey.&lt;/p&gt;

&lt;p&gt;I'm currently learning more about backend development, databases, APIs, Git, Docker, and software architecture.&lt;/p&gt;

&lt;p&gt;My goal is to become a full-stack developer and eventually build production-grade applications that solve problems that actually matter.&lt;/p&gt;

&lt;p&gt;I also want to keep exploring the intersection of technology with areas I'm passionate about, including music, entertainment, and the creative economy.&lt;/p&gt;

&lt;p&gt;I don't know exactly where this journey will take me.&lt;/p&gt;

&lt;p&gt;But I know one thing:&lt;/p&gt;

&lt;p&gt;A few months ago, I couldn't write a program.&lt;/p&gt;

&lt;p&gt;Today, I'm building.&lt;/p&gt;

&lt;p&gt;And tomorrow, I want to build things that matter.&lt;/p&gt;

&lt;p&gt;If you're also starting your programming journey and feel like you're too far behind, here's what I'm learning:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You don't need to know everything before you start.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start.&lt;/p&gt;

&lt;p&gt;Get stuck.&lt;/p&gt;

&lt;p&gt;Break things.&lt;/p&gt;

&lt;p&gt;Ask questions.&lt;/p&gt;

&lt;p&gt;Fix them.&lt;/p&gt;

&lt;p&gt;Build again.&lt;/p&gt;

&lt;p&gt;That's how you become a developer.&lt;/p&gt;

&lt;p&gt;And this is only the beginning of my story.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Building an ASCII Art Generator in Go: What My First CLI Project Taught Me</title>
      <dc:creator>Henry Anayo</dc:creator>
      <pubDate>Tue, 30 Jun 2026 08:22:15 +0000</pubDate>
      <link>https://dev.to/hanayo/building-an-ascii-art-generator-in-go-what-my-first-cli-project-taught-me-f9n</link>
      <guid>https://dev.to/hanayo/building-an-ascii-art-generator-in-go-what-my-first-cli-project-taught-me-f9n</guid>
      <description>&lt;p&gt;When I started learning Go, I wanted more than just solving coding exercises. I wanted to build something that would force me to understand how different parts of the language work together.&lt;/p&gt;

&lt;p&gt;That's how I ended up building an ASCII art generator—a command-line application that converts ordinary text into large, stylized ASCII characters.&lt;/p&gt;

&lt;p&gt;At first, it looked like a simple project. It wasn't.&lt;/p&gt;

&lt;p&gt;Along the way, I learned about file handling, command-line arguments, error handling, data structures, and the importance of writing clean, maintainable code.&lt;/p&gt;

&lt;p&gt;In this article, I'd like to share what I built, how it works, and the lessons I learned along the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is ASCII Art?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ASCII art is text that's arranged to create images or stylized letters using standard keyboard characters.&lt;/p&gt;

&lt;p&gt;Instead of printing:&lt;/p&gt;

&lt;p&gt;Hello&lt;/p&gt;

&lt;p&gt;the program can output something much larger and more decorative using a predefined font stored in a text file.&lt;/p&gt;

&lt;p&gt;The application reads these character patterns from banner files and combines them to display the final output.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Breaking the Problem Down&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
One lesson I learned early was that large problems become much easier when they're divided into smaller ones.&lt;/p&gt;

&lt;p&gt;Instead of trying to build everything at once, I focused on individual tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading user input.&lt;/li&gt;
&lt;li&gt;Loading the correct banner file.&lt;/li&gt;
&lt;li&gt;Finding each character's ASCII representation.&lt;/li&gt;
&lt;li&gt;Printing each line in the correct order.&lt;/li&gt;
&lt;li&gt;Handling invalid input gracefully.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Solving one problem at a time made the overall project much less intimidating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go Concepts That Finally Clicked&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Working on this project helped several Go concepts make much more sense.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Reading Files&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before this project, reading from files felt abstract.&lt;/p&gt;

&lt;p&gt;Now I understood why applications need to read configuration files or other external resources instead of hardcoding everything.&lt;/p&gt;

&lt;p&gt;Loading the banner file was one of the most important parts of the project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Error Handling&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Go encourages developers to handle errors explicitly.&lt;/p&gt;

&lt;p&gt;Rather than assuming everything would work, I learned to check whether:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the banner file exists,&lt;/li&gt;
&lt;li&gt;the user's input is valid,&lt;/li&gt;
&lt;li&gt;the selected banner is supported,&lt;/li&gt;
&lt;li&gt;and the application can continue safely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good error handling doesn't just prevent crashes—it also makes applications much friendlier to users.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Loops&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ASCII art is built line by line.&lt;/p&gt;

&lt;p&gt;That meant looping over characters, then looping again over each line of every character pattern.&lt;/p&gt;

&lt;p&gt;This gave me a much deeper appreciation for nested loops and why they matter in real-world programs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Maps and Slices&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The project also reinforced how useful slices are for storing collections of data and how important indexing becomes when processing structured text.&lt;/p&gt;

&lt;p&gt;Instead of simply memorizing syntax, I finally understood why these data structures exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenges Along the Way&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not everything worked the first time.&lt;/p&gt;

&lt;p&gt;Some of the issues I encountered included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Characters printing out of alignment.&lt;/li&gt;
&lt;li&gt;Missing lines in the output.&lt;/li&gt;
&lt;li&gt;Incorrect handling of newline characters.&lt;/li&gt;
&lt;li&gt;Invalid banner selections.&lt;/li&gt;
&lt;li&gt;Debugging logic that looked correct but produced unexpected output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These moments were frustrating, but they also taught me that debugging is part of software development—not a sign that you're doing something wrong.&lt;/p&gt;

&lt;p&gt;Every bug forced me to better understand my own code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Biggest Lesson&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The biggest lesson wasn't about ASCII art.&lt;/p&gt;

&lt;p&gt;It was about thinking like a software engineer.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;p&gt;«"How do I write this program?"»&lt;/p&gt;

&lt;p&gt;I started asking:&lt;/p&gt;

&lt;p&gt;«"How should I break this problem into smaller pieces?"»&lt;/p&gt;

&lt;p&gt;That change in mindset made programming feel much more manageable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building this project gave me confidence to tackle larger applications.&lt;/p&gt;

&lt;p&gt;I'm now exploring backend development with Go while also learning more about cloud technologies and DevOps tools such as Terraform.&lt;/p&gt;

&lt;p&gt;Each project teaches something new, and every challenge makes the next one a little less intimidating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Looking back, this project wasn't just about generating ASCII art.&lt;/p&gt;

&lt;p&gt;It was about learning how to approach problems, read unfamiliar code, debug patiently, and keep improving one step at a time.&lt;/p&gt;

&lt;p&gt;If you're learning Go, don't be afraid to build projects that seem slightly beyond your current ability.&lt;/p&gt;

&lt;p&gt;They'll probably teach you more than another tutorial ever could.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>go</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
