How I would approach programming

This article will provide a general learning path for someone that has no experience in programming or computer science, it won’t be like watch video 30 in that tutorial series on that channel, but I will provide some resources at the end so you can get started.

Just as disclaimer I myself am still a long way form being a guru in computer science, I started one year ago and don’t know everything there is to know (shocker!) but this is from my experience since I was very successful in my learning journey.

Before we start

First of all congrats on deciding to jump into computer science, it’s a daunting and intimidating field to learn and master so good job and keep it up.

Before we get into steps I want to say that this won’t be easy if you have no prior knowledge of CS or programming, there is a reason why it has a reputation of being hard and why are jobs so high paying. A lot of people feel overwhelmed at first and give up thinking they’re not smart enough. It is hard but not for the reason you think. You’ll probably feel overwhelmed at first as I did as did everyone, that’s because there is just so much things to learn and new concepts just jump from nowhere all the time. Just don’t give up, it’ll take time but it’s not complicated and you don’t need a degree in mathematics to code.

1. CS Terminology

Before you get into code you should get familiar with Computer Science terminology. This post covers everything you need and then some. It’s written so that anyone can understand it even if you never used a computer before. Just wrap your head around those definitions and you’re off to a good start.

2. Basic logic

If you know math, great you can skip this step if you want. If you don’t no worries you don’t need math to code, as I said previously, but knowing basic logical statements is, in my opinion, a requirement. It’s way easier than math and propositional logic is a building block of programming.

https://www.youtube.com/watch?v=s16xd9XyDnY

I recommend this video.

3. Choose a programming language

Let’s get this straight – IT DOESN’T MATTER WHAT PROGRAMMING LANGUAGE YOU START WITH.

When you learn the basics in one programming language transitioning to another one is one day learning the new syntax.

That said I wouldn’t recommend starting with C++.

Believe me, just don’t, I know from personal experience.

One I would recommend to start with is Python because it’s easy to read, highly abstracted and one of the most used languages in the industry. Just download it from the official website and you’re set. Get a book or go to YouTube and search Python Introduction, I recommend Tech with Tim channel. Focus on understanding core concepts like variables, data types, conditionals, operators, loops, functions eventually making your way to object-oriented programming. When you know these things you can pretty much learn any other programming language that you want.

What you learn depends on what you want to do later with programming. If you have an idea or a path you’re following here are some suggestions:

  • Front-End development – Java Script
  • Web/Software development – Java, Java Script, Python
  • Game development – C++, C#
  • Android development – Java
  • IOS development – Swift
  • Data science – Python
  • Artificial Intelligence – Python

4. Git/GitHub

Git is something called source or version control system. It is basically iCloud for your code. GitHub is hosting platform for version control and collaboration. That’s the place where you store your code,

5. Start a Project

By far the best way to improve after you handled the basics. It’s not enough to know how to write code, you have to be a problem solver. That is what making a small personal project is going to teach you. Search online for some beginner projects like a blog site or tic tac toe. You will encounter errors and that’s great, learn to search online and find solutions, if the problem you have ever happened to anyone else it’ll probably be on stackoverflow.com. This is the main skill that you need as a programmer, learning code syntax and what’s a function or how to create a class is easy. The challenge is solving problems when they accrue and hand-held tutorials won’t provide that.

6. More advanced topics

When you decided what you want to do and have a language that you’re sufficient in with a few projects on GitHub you probably know how to continue your journey but here is a checklist of things a programmer should learn as a base after the basics.

Data Structures and Algorithms • Big O Notation • Data Structures • Arrays • Stacks, Queues, Priority Queue • Linked Lists • Hash-Tables • Trees • Heaps • Graphs & Graph Theory  • Sets & Set Theory •Algorithm Design & Analysis

Design • UML Modeling • Design Principles • Design Patterns

Tools • Git/Version Control • Linux Commands • IDEs

Databases • SQL • Database Design

Web dev • HTTP • API’s & JSON • Client-Server Model • Networking

Now here are some resources that helped me learn: