← Home

Tips for Getting Started in Programming

In this blog post, I would like to share some valuable insights and concepts to consider while embarking on your programming journey.

Begin with a Macro Perspective during Planning

When faced with exercises or app development tasks, it is common to fall into the trap of overthinking every detail right from the start. This approach often leads to losing sight of the bigger picture as new solutions for different sections keep flooding your mind.

This inefficient way of working not only slows you down but also drains your energy. Moreover, neglecting to consider the overall code structure from the outset can result in critical parts requiring redoing. Failing to address the fundamental structure, such as managing values, props, and children appropriately, may cause the app to malfunction. In the best-case scenario, it makes you overcomplicate everything to make things function.

To overcome this challenge, it is vital to plan a basic structure initially, focusing on the broader scope, and then gradually addressing specific problems.

Document Your Ideas

While concentrating on a specific problem, you might suddenly stumble upon a solution. While this is not a negative occurrence, it becomes problematic if you handle it incorrectly by allowing yourself to be overwhelmed with different ideas (as mentioned in the previous point) or presuming that you will remember the idea once you complete your current task. Regrettably, most of the time, such solutions slip from our memory, leading to unnecessary delays before we can recall them.

Therefore, although it may seem obvious, taking a moment to document your solutions as they come to mind is an excellent practice for safeguarding your ideas.

Prioritize User Experience

When first diving into programming, it's easy to overlook the importance of user experience. As you immerse yourself in the process of learning and completing a project, you might neglect to consider customer satisfaction.

While ensuring your program's stability and aesthetics are crucial, it is equally important to create an interface that attracts users to engage for extended periods. Offering a fluid and intuitive navigation experience should be a top priority.

If you develop a library or any tool that fellow developers may utilize, it is essential to make your code practical and simple to use. Your code should be a solution, not an additional burden for others to manage.

In a previous blog post I discussed how I came to realize the significance of user experience during the development of my Windows 98 library.

Don't give up easily

There will inevitably be instances when you get stuck while working on a project or learning a new programming language or framework. However, these challenges should not discourage you from persisting. This is completely normal and a part of the learning process, and it is essential not to assume that difficulty implies failure. There's nothing more satisfying than finishing that one project or finally gaining a comprehensive understanding of that programming language.

Demystify the Magic and Understand the Inner Workings

In the beginning, I used to believe that some programming concepts were shrouded in magic simply because I couldn't grasp their underlying mechanics. However, it is crucial to remember that just because something works without our full comprehension doesn't mean it is inexplicable. This happened to me, especially with things like, for example, iterators.

If you find yourself in front of something that you can't seem to figure out how it works, but it just does, is an opportunity for growth. You can learn a lot by attempting to replicate its inner workings. This exercise not only expands your understanding of what is achievable within a particular programming language but you finally understand how that specific thing works.

Sometimes, you even have a better understanding of how to use it and in which cases. It is one of the most effective methods I've employed to improve my coding skills.

With these principles in mind, you'll find it easier to get started on your programming journey.