Teach Yourself to Program

Shutterstock Images

OVERVIEW:

Trying to navigate your journey of self-taught development is like being dropped into the middle of the woods. Coming up with an execution plan is just as difficult as learning a programming language. The goal of this article is to help you find a path and make your journey a guided trip.

There are a few general things to keep in mind regardless of the path you take. First of all, there are thousands of different programming languages. Depending on your path, some languages can be essential. However, for the most part it’s important to realize these languages are really just companies. Every language or, company, will try and tell you their language is the easiest, and quickest language to learn. This can be very distracting when you’ve been struggling with your first language and might cause you to switch. This usually isn’t the best idea as you’ll be back to stage one.

Another important concept is how these languages work. Most “real” programming languages are called “Object Oriented Languages”. Examples would be Python, C#, Java, or C++. It’s very important to understand that these languages all use very similar strategies and architecture to accomplish tasks. I can’t express the significance of this enough! Because of this, it is why switching languages really doesn’t make anything easier.

The only real difference between these languages is the syntax and support the language owner offers. For example, if you choose C# as your language, you’re acquiring Microsoft as your partner. They have one of the best IDE’s available, and outstanding documentation to explain the language and provides code examples. One final note before we dive in, the best thing you can do is become really efficient at one language. Mastering your first language can take upwards of 6 months. However, after mastering your first language, you’ll be able to learn a second language within a few weeks! This is because you’re just learning new syntax, but you already understand the fundamental principles of Object-Oriented Programming.   

Shutterstock Images

Choose Your Path

The rest of this article will be broken down by the path you choose. How do you choose a path? Well, what do you want to make? What’s your purpose for learning to program? There are many different paths to take, but I’ll cover the most common.

Path 1: Web Development

Web development is one of the most common paths taken by developers. In this path, you’ll be designing the user interface of websites. Unlike the rest of the path’s, web development has some essential languages you need to learn due to the way the internet works.

Difficultly Level: 6/10

Learning Duration: 3-6 months

Path 2: Game Development

Game Development attracts a lot of individuals who love gaming. These programmers usually work hand-in-hand with design artists. The programmers focus on making the game and game objects work, whereas the designers create the characters and objects within the game. The programmers also use a special tool known as a Game Engine.

Difficultly Level: 7/10

Learning Duration: 5-6 months

Path 3: Server-Side Programming

This path revolves around handling data and storing it in a database. This can be one of the most difficult paths to take. Primarily this is because some of the concepts you’re trying to learn can be difficult to wrap your head around. However, tackling this path will make you one of the strongest developers in the industry. Switching paths from here can be very quick.

Difficultly Level: 9/10

Learning Duration: 6-8 months

Shutterstock Images

WEB DEVELOPMENT

This path is typically called the “Client Side”. Web Development is unique in the fact that there are some languages that you must learn and there’s no alternative languages. Every web developer needs to learn HTML/CSS and Javascript. This is because the internet follows certain protocols on how data needs to be formatted. These languages have been the heart of the internet since the beginning and it probably won’t change anytime soon.

HTML is the skeleton of a website. This is how text is separated on a website. HTML has a very simple syntax and can be quickly learned.

CSS is HTML’s partner in crime. CSS is the styling of a website. It changes colors, font’s, font size, pictures, etc.

HTML/CSS can be learned within a month. You’ll appear to be making tons of progress and might feel like your journey is nearing its end. However, that’s not true! Don’t slow down yet! HTML/CSS are not technically considered a programming language. This might seam bizarre at first, but you’ll understand down the road.

It is essential to learn Javascript as a web developer. This language takes your skills to the next level. You need to use Javascript in virtually all aspects of a website. For example, when you click a button a Javascript Function will run. Javascript lets you get data from a server and send data to the server. It also allows you to add a level of security to the client side of your website.

Learning Resources:

HTML:

https://www.w3schools.com/html/default.asp

CSS:

https://www.w3schools.com/css/default.asp

Javascript:

https://www.w3schools.com/js/default.asp

Shutterstock Images

GAME DEVELOPMENT

Game Development can be a very fun path to take as you get to build your own games! Keep in mind, this field is known to be extremely competitive. The industry has evolved to the point where it’s very difficult for one person to make a successful game. Large corporations dominate this field spending nearly $20 million dollars per game with roughly 200 developers.

Game Developers typically use C++ as their language. This can be a difficult first language, but don’t let that discourage you. Dominating this language makes you one of the best developers.

There are alternatives to C++ such as C# and Java. Both are very good and effective languages. Keep in mind C++, C#, and Java are extremely similar. The major difference is that C++ works with Pointers. Pointers let you handle the memory of a computer. The reason game developers prefer this language is because the ability to directly handle computers memory can make your game run much faster.

Game Developers have a unique tool they use called a Game Engine. A game engine is where you build your game. It’s a platform to integrate code and game objects, such as the games character or a tree. The most popular game engines are Unity and Unreal.

Learning Resources:

C++

http://www.cplusplus.com/

Game Development with Unity

Shutterstock Images

Server-Side Programming

Server-Side Programming is a very good path to take and gives you solid programming skills that can be used in various other paths. For this path, it is essential to learn an Object-Oriented Programming language. Expect to spend a decent amount of time on this, it will be the heart of what makes you unstoppable.

You’ll come to realize there’s some “hate” that flows in the programming community. What I mean by this is that developers choose a specific stack of languages and an unexpected “hatred” begins to evolve towards others who choose a different stack. The reason I bring this up is because Server-Side Programming doesn’t have a specific language you need to know. There are lots of options. However, you want to make sure you pick a language with outstanding support. If you fail to do this, 4 months down the road when you can’t figure out a problem with your code it’s increasingly difficult if there’s little support to help you.

Regardless of programming hatred, you need to lean an Object-Oriented language. Examples are: C#, C++, Java, Python. All of these languages are top tier and used by some of the biggest corporations in the world.

My personal preference is C#. I also find C++ and Python to be awesome languages. The reason C# is my preference is because you get Microsoft as your partner. There is an abundance of support in this community which is necessary when you spend upwards of 12 hours to 2 weeks on one problem.

As a server-side developer, you’re dealing with data and storing it inside a database. SQL is usually an important language to know. These concepts can ramp up really quick and will leave you in a cloud of fog for months. Part of choosing your language is that you’ll need to choose a database service which is compatible with your language. As a beginner, your best route is to choose a service that allows you to make a local server/database on your personal computer. That way it is free, and you can learn the techniques needed. Eventually you might convert to a Cloud based server, but those can be costly and are not necessary right away. Examples of a database service to use is MSSMS, MySQL.

YouTube is a great spot to watch “fail” videos, but it will become your best friend to learn code. Understanding the pipeline of data flow requires many different explanations. A large part of server-side programming is data encryption. You need to make sure your data can’t be hacked or leaked.  

After learning your programming language, a big step is being able to perform CRUD operations with data in a database. This stands for: Create Read Update Delete. This is a fundamental concept that all languages address in their own way.

Learning Resources:

C#

https://docs.microsoft.com/en-us/dotnet/csharp/

SQL

https://www.w3schools.com/sql/

C# CRUD

https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application

Conclusion:

I’d like to mention some common misunderstandings. First of all, Java and Javascript are not the same. They are completely separate and unique languages. Same goes for the C languages, such as C#, C++, and C. These languages are independent and follow their own rules.

You might find yourself 5 months down the road staring at the wall contemplating your life decisions and wish you kept your day job bagging groceries. Don’t worry, every programmer feels like this about once a week. But this feeling is followed by the feeling of scoring a Super Bowl touch town. When you figure out a bug in your code and get it to work, you’ll have a very rewarding feeling. It is these high and low feelings that drive you.

If you find yourself consistently up at 4:00am writing code, welcome to the club. It is common within the community that developers hit their groove at about 9:00pm and don’t stop until the sun comes up.

Leave a comment

Design a site like this with WordPress.com
Get started