all posts

6 Things I learned in my first year programming

article

a year ago

Starting something new isn't easy, let alone being a developer. Here are the 6 things that I learned in my first year programming.

Now I’ve always been into tech and even had a high school subject which focused on coding. But if you asked me at that time what I wanted to do with my life, the answer was simply: “become a famous at something”. So after I took a gap year and then got burnt out doing financial accounting I decided to make the jump to the world of programming and it was probably the most fun and equally most stressful thing I’ve done.

Between building cool applications to struggling with one error for several days, I learned a lot during this time. Here’s a few of the things I learned during my first years as a developer.

Patience is of the essence

Once I started getting better at programming, my mind flooded with ideas and I just wanted to get them out there. But as I learned, programming can be one of the most intense exercises in patience you’ll ever come by.

There were many times when I’d be in a hurry to solve a problem and I’d either created new problems down the line or just completely missed something. It takes time to read your language’s documentation, it takes time to go through the debugging process and it definitely takes time to watch that video that has been posted a solid 4 years ago.

But once you take your time to do something right, it is awarded with code that runs flawlessly and there’s no feeling that feels better.

Learning syntax is half the battle

“How do you convert a string into an int?”. “How do I declare an array?”. “What comes first? Case or switch?”. In the beginning of my classes, it seemed like memorizing syntax was everything you really did. I was very wrong. While it’s important to understand syntax and know how to use ternary operators, that was only one part of the battle.

The most important skills to master is problem solving and debugging. Learning how to think creatively and critically will help you to solve most problems. It’s also important to learn how to use debugging tools such as breakpoints and the autos menu, so that you can step through your code and see what happens and when.

Learn how to plan

Often times when starting a project, you just want to jump right into the code. And this approach may be fine when building a calculator or your version of Tic Tac Toe. But when you need to build a database backed, web application that has multiple pages and about 20 classes that each has hundreds of lines of code. Things get out of hand very quickly.

Planning may seem mundane but it’s actually a big part of development. Planning effectively prevents cases where you miss something and then having to back track in order to implement or fix it.

Now I would usually use pen and paper to plan and make notes, but I tend to loose a lot of my ideas and planning. So here are some free, cloud based tools that I use for my planning:

  • Draw.io, for drawing up relational databases and UML diagrams.
  • Figma, for drawing up site maps, wire reframing and building a basic UI.
  • Mindmup, for finding the best coffee beans of course…

Google search is a skill that needs mastery

I used to think that good programmers can get things done without help of any kind. But as time went by, I learned that using Google Search was just as important as things like planning, critical thinking and debugging.

Whether you’re scheming through the documentation or a tutorial, or just copying and pasting the entire exception into Stack Overflow, knowing how to navigate the internet is an important skill. This is because most problems we come across has previously been encountered and even solved.

Most resources you need is free

While there are many different formal forms of education such as colleges or Bootcamps, it gets harder to justify these options with the wealth of free resources online. Now while freeCodeCamp or Codeacademy won’t replace these formal options, they are still great ways to learn how to code.

I myself attended a college course and while there were a few issues (like a slightly outdated Azure curriculum), it helped me build my skills and get national and international qualifications. However, when I did research and built my own projects, I found out that there was a lot of information out there that’s both affordable and even free.

There are a lot of inexpensive books (like from Author Jon Duckett), blogs and tutorials that can develop your skills. I’m a .Net Developer so I can’t speak for resources for Python developers, but here’s my list of resources I used:

  • C# Corner & Tutorials: great resources and tutorials for .NET developers learning C# and other related technologies.
  • W3Schools: my go to resource for HTML, CSS, JavaScript, jQuery, SQL and Bootstrap lessons.
  • Brackey’s YouTube Channel: the best and most entertaining Unity games development content out there.
  • Microsoft’s Docs: everything you ever need to know about .NET from ASP.NET to Xamarin.

You need a hobby

Now maybe it’s because of my obsessive personality with things I enjoy, but when you get into programming, you tend to become a hermit. Lines of code were on my mind while shopping, going out with friends and even in my dreams at time.

It’s very easy to become consumed by coding because of the thrill of solving problems and building things but it can get damaging. A part from the stress and potential burn out, you can also compromise your work as your creativity and ability for logic decreases over time.

Finding a hobby that can get your mind off of programming for a while is very valuable. Some ideas could be:

  • Getting into a sport or going to gym to work your frustrations off.
  • Find something to master like an instrument or first person shooter.
  • Picking up meditation or yoga to clear your mind and soul.

Conclusion

Now I could’ve included a few of the smaller things like the value of becoming coffee enthusiast or why Larry Tesler deserves more recognition among developers, but these are the most valuable things I learned over the past year of programming.

Whether you are just starting off and found this post of value or have been in programming for a while and related to some of these lessons, I hope you enjoyed this post.

My goal is to document my journey as a developer and provide value and insight regarding this crazy world. So here’s wishing you luck with your journey.

This article was originally posted on Medium