August 01, 2017

A First Foray Into Coding

Why do You Want to Code?

I've had a lot of people come up to me tell me that they want to learn how to code. The one thing most, if not all, of them share in common is that they seldom know where and/or how to start. Learning to code goes well beyond simply learning how to write it. There needs to be a purpose; a reason for which you want to learn the skill(s).

The reason(s) should come from a natural interest, rather than to satisfy a superficial purpose (i.e. wanting to add it to your resume). Having a sincere passion to learn something makes the process significantly easier and more efficient.

So before you start hammering out code, ask yourself. "Why do I want to code?"

Remember, this should be something you WANT to do, not something you do out of obligation.

Where and How Should You Start?

There are dozens of online tutorial services that can help you start coding, so finding one in general isn't the the difficult part. The tricky part is finding the right one. Find and use resources that cater to YOUR learning style. You're doing yourself a huge disservice if you only use one source. Learning programming cannot be done in a linear fashion. To get the most out of the learning experience, try to mix and match different learning methods.

Varying learning sources serves several purposes:

  • You'll be able to pick up on key concepts faster, and more effectively
  • It'll help improve your understanding of a concept by seeing it through multiple perspectives
  • Learning becomes a lot less monotonous; the change in environment feels refreshing

That being said, it's okay and normal to primailry stick to one source, follow it, and then move on. If you feel as though a given concept is not explained to your satisfaction, that is when you should look to another source for clarifcation, but be sure to come back.

Resources

Here's a list of some of my favorite resources. Keep in mind that these are based on my opinions. Use this list as a starting point. Don't restrict yourself to it; go and explore.

  • Udemy (My favorite -- Almost always has a 90%+ sale so courses are $10-$20 and fully supported)
  • Egghead.io
  • TutorialsPoint (Concise)
  • Hackerrank (Test your skills here -- learn-by-doing approach)

The Mantra: Concept over Syntax

Focus on the underlying concepts! The syntax is just formality. You'll find that it's a lot easier to learn a programming language if you can relate the concepts to the code instead of the other way around. The syntax will come to your naturally after a while.

Picking the Programming Language

If this is your first foray into programming, I strongly recommend using Python. It's a langauge that is relatively easy to pick up; lax in terms of syntax, allowing you to devote more of your attention to learning the concepts. The 2017 TIOBE Index, a rating that indicates the popularity of programming languages, ranks Python at #5, trailing behind Java, C, C++, and C#.

Java is currently #1, so why not start with Java? Most educational cirriculums actually do start with Java and/or C++. These two languages, especially C++, have fairly steep learning curves for novices. Java's strictly-typed, verbose nature, and C++'s impeccable memory management capabilties make them extremely powerful languages in the industry. However, for beginners, these can also serve as bottlenecks.

Now, my intention is not to force you to learn and use Python, but it's an ideal choice. If you're game for a challenge, feel free to dabble in any language of your choice, including Java or C++. In fact, I actually started with Java and C++ myself, but I would've opted to start with Python if I had been exposed to it initially.

Are there other languages out there that are easier? Probably. But most of those are too simple to be useful. Starting with Python can help knock out two birds with one stone. Python is an extremely popular language in the industry. Having it in your toolbelt is quite useful.

With that being said, remember: the programming language you choose is nothing but a tool.

Coding Environment

Since I mentioned Python in the previous section, let's focus on it. You can use an IDE (Integrated Development Environment) or a text editor. Some programming languages are more suited for IDEs (i.e. Java), whereas others are more suited for text editors (i.e. Python). Text editors tend to work best with scripting languages like Python. Generally, you'll want to stick to using a text editor unless you're working on a significantly large project that uses APIs, large scale unit testing, etc., and that applies to almost all languages.

That's not to say that you can't use the other, if it's available. Objectively speaking, a text editor is the way to go for Python. They're lightweight, easy to manage, and highly customizable.

Here are the some of most significant text editors ranked from most favorite to least favorite in my opinion:

  1. Visual Studio Code
  2. Vim*
  3. Sublime Text 3
  4. Atom

*Not recommended for beginners! Extremely steep learning curve.

What's next?

Branch out, and explore! Progra,ming is a vast field with limitless potential.

Thanks for reading. I hope it was helpful. I'll be uploading more in the coming future as my schedule permits, so come by again!

Good luck!