Coding Tips: The Shield for Every Coding BattleNov, 4 2023
Understand Your Problem
Let me start with this: if coding seems like a mammoth task or an unsolvable complex puzzle to you, you're not alone in that regard. Even the most seasoned coders sometimes find themselves trapped in the labyrinth of code. But that's what we're here to overcome, isn't it? For the record, there are always simple and effective ways to combat these coding battles, and one crucial way is 'understanding the problem'. Now, I know you might think, "Really Benjamin? Understanding the problem? Isn't that, like, too obvious?" But you'd be surprised at the number of coders who often skip this crucial step and smack their heads against a brick wall of code.
In fact, in my earlier coding days, I remember being too eager to jump into coding without fully understanding what the problem was. I had to code an e-commerce website for a fictitious company as part of a school project, and I was so enthusiastic about writing codes that I didn't take time to comprehend the intricacies of the project requirements. Suffice to say, my excitement quickly transformed into frustration when I had to spend double the time de-bugging my codes. A trait I picked up from my equally coding-passionate spouse, Adrienne.
Break It Down then Build It
Now, once you are clear about the problem, the next step is somewhat similar to what my wife, Adrienne, loves to do when she has a complex recipe to prepare, "Break it down, Benjamin!" she'd say, "Partition the recipe into small manageable tasks." The same principle applies to coding problems. Coding can seem less daunting when you break the problem down into several small tasks.
Instead of trying to write a long complex code in one stretch, divide your problem into smaller sub-problems, and solve each sub-problem individually. This is a potent shield against code confusion and burnout, and it also aids you in understanding the logic and structure of your code better. Trust me, it'll make your debugging process far easier and manageable.
Use Comments Generously
Comments. Ah, these little notes that I once considered a waste of time have turned out to be an unbelievably helpful tool. It's similar to having a conversation with your future self. "Hey future Benjamin, this piece of code does this, and it's supposed to work this way". It's almost as amusing as calling your future self and telling him what you're up to. Humor apart, comments can be excellent reminders or explanations of your code.
Remember, coding is not just about you. Other coders may need to understand and work on your code, and detailed comments can make their life way easier. But, don't go overboard with your comments. They should be concise yet detailed enough to provide an understanding of the code.
Practice Code Refactoring
Code Refactoring is the art of improving your code after it has been written. The key here is "after". This means that you need not worry about writing the most efficient, most optimized code in your first attempt. Write the code that works then aim for optimization. It's the formula for winning any coding battle, trust me.
For instance, I once wrote a piece of code that was working perfectly well but it took longer execution time than I expected. With careful refactoring, I managed to optimize the code so well that it decreased the execution time by 40%. The joy I experienced then was akin to finding a long-lost treasure. It's super satisfying and gives you immense confidence in your coding skills.
Never Stop Learning
Coding languages and algorithms evolve faster than fashion trends these days. One day you're mastering a language, the next day there's a new version or another language that's trendy. So, the last bit of advice I have for you is never to stop learning.
Adrienne and I keep challenging each other and set learning goals. It's fun when you make learning a habit. Subscribe to coding newsletters, join online forums, participate in hackathons. These activities not only keep you updated with the latest happenings in the coding world but also give you ample opportunities to network with like-minded coders. So, go ahead, embrace the world of coding, and arm yourself with these shields. The battlefield of code awaits your triumphant march.