Getting Started with Programming

Maybe you have been interested in the inner workings of ChatGPT, wanted to create an app on the app store, wanted to automate your smart lights at home, or maybe you want a job in the booming tech industry. Whatever the case may be, this guide will provide you with a good roadmap to achieve your goals in programming whilst offering tips along the way.

Programming is used in virtually every facet of modern technology in this day and age and the field will only continue to grow as time goes on. Learning these basic skills is key to staying ahead of the curve and not getting left behind.

What will we learn

  • Where to start in programming.

  • The different paths of development.

  • How to go from beginner to advanced (Getting out of the tutorial cycle).

Let’s first start by acknowledging the different types of programming/development.

  • Software Development: Creating apps, games, frontend, and software for people to interact with and use.

  • Hardware Development (AKA. Embedded Programming): Creating programs to control robots, Raspberry Pi, Arduino, smart devices, etc.

  • General Programming: Creating terminal programs, artificial intelligence, automation, backend, etc.

All of these variations of programming are utilized by all big tech companies today. They all solve specific problems and are used in specific cases unique to the company’s needs and resolve important problems as well as innovate and engineer new products.

Now that we’re familiar with the different kinds of development let’s take a look at where to get started.

Where to start in programming

You want to code. Sounds very daunting when you start thinking about the end of the road, creating your own apps, but everyone must start small and start somewhere and gradually grow their skills. Before you start coding, create a set of goals you want to achieve by learning how to code. It could be as simple as “Become familiar with Python” or it could be to “Create a fortune 500 tech company”. It could also be a more generalized goal like “Get a tech job and become financially stable”. Once you have your goal, keep it in mind every time you begin programming as this will be your driving factor.

The simplest and arguably most important language to learn/know is Python. Python is a general-purpose language primarily used for General Programming. It's commonly used in Artificial Intelligence and Machine Learning, as well as Data Science. It can also be used for automation such as controlling smart devices in your home or controlling robots. There are many more use cases but let's look into how we can learn the language.

There are many ways to go about it but the method I recommend to every new programmer is to watch YouTube videos. It’s free and has SO much content on the platform. You can virtually learn anything on YouTube. I highly recommend watching Mike Dane/FreeCodeCamp’s video: “Learn Python - Full Course for beginners [Tutorial]”.

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

This video contains all of the concepts needed to become familiar with the language and programming in general. It’s relatively short and to the point clocking in at 4.5 hours. It’s very simple and incredibly beginner friendly.

After watching this video, I urge you to create your own small project. Creating your own projects is the key to becoming independent with programming. It helps to sync all of the concepts you’ve learned into your brain and retain them. To get ideas for simple python projects, I recommend watching this video by TechWithTim which will give you a great list of 15 potential ideas.

https://youtu.be/OXi4T58PwdM

They don’t have to be fully polished or work perfectly, and you don't have to make all 15 it could be 2 or 3. The important thing to note is that you are using what you’ve learned. This is the basis for true development. If you run into any problems and don’t know how to solve them, then Google is your best friend. Search up your error or problem and odds are someone has already run into the same thing before, and the solution has been posted.

Now that you are familiar with python and programming in general, let’s look at the different paths to take afterward.

The different paths of development

Now, this is where programming broadens. The playing field is open and you start diving into the more niche concepts. This is where your goal comes in handy because now you won’t be stuck pondering on the question, “What’s next?”. If your goal is to create apps and websites, then now would be the time to start learning that. If your goal is to create a complex AI research paper, then AI and ML will be your go-to. Personally, my goal was to take my mobile app UI art boards drawn on Figma and bring them to life, so I went into the mobile app development side of programming.

In this world of niche programming, it’s not about the languages you learn, but more about the libraries, frameworks, and SDKs you learn. Now, what does this mean you may ask? Python doesn’t have a specific tool built into the language to turn off a Philips Hue Smart Light nor is there an official, python branded solution to create a database. Someone else will create a tool in Python (or whatever the language may be) used to complete this task and these tools are known as SDKs (Software Development Kits). A framework is a subset of an SDK and a library is a subset of a framework. They come jam-packed with hundreds of lines of code to easily perform specific tasks in your code.

This concept of libraries, frameworks and SDKs are not specific to python but are a key programming concept. Typically, the more libraries, frameworks, and SDKs built on top of a language, the more users of the language.

Now onto the different paths of development. Many programming languages exist that fulfill different use cases. For the next language or SDK, you choose to learn, make sure it contributes to your goal.

I’m going to recommend some languages/SDKs for each use case. I will hopefully have guides on how to get started with all of these:

  • Mobile App Development

    • Flutter (Dart) [Cross Platform]

    • React Native (JavaScript) [Cross Platform]

    • SwiftUI (Swift) [Native]

    • Kotlin (Java) [Native]

  • Artificial Intelligence

    • Pandas (Python)

    • NumPy (Python)

    • SciKit Learn (Python)

    • Tensorflow (Multiple Languages)

  • Website Development

    • React (JSX which is a mix of JavaScript and HTML)

    • Svelte (JavaScript)

    • VueJS (Vue similar to HTML)

    • Angular (TypeScript)

  • Video Games

    • Unreal Engine (C++)

    • Unity (C#)

    • PyGame (Python)

  • Backend Development

    • ExpressJS (JavaScript)

    • Flask (Python)

    • FastAPI (Python)

  • Automation and Robotics

    • PyLabLib (Python)

    • Raspberry Pi (Python)

    • Arduino (C++)

  • General Programming

    • Blockchain (Multiple languages but most commonly Python)

    • Web3 (JavaScript)

There are many different ways to go about your programming journey, but ultimately the choice is up to you. Try to meet your goals in doing so.

How to go from beginner to advanced (Getting out of the tutorial cycle)

You may find yourself stuck inside the tutorial cycle, struggling to invent your own programs and products. The simplest answer to your problem is to create more of your own projects. Jump straight into the deep end. You will struggle, and that’s okay, it’s all part of the process. No pain, no gain. Don’t try to create the next Fortune 500 startup the moment you’re done learning python but try to create smaller projects using what you know to practice and improve your skills.

Another tip, try not to learn an entire language before beginning to create your own projects. 9 times out of 10 most of your projects won’t use very nook and cranny of a language, therefore meaning you don’t have to know everything. So long as you tackle the basics and then begin to create your projects, you will be fine with what you know.

And the biggest tip of them all, if you don’t know something, search it up. Use tools such as Google, Stackoverflow, ChatGPT, and GitHub to solve your problems. Virtually every programming issue or problem has been resolved on the internet before. An advanced developer knows how to utilize their resources to solve problems. If you get an index out-of-bounds error, copy the error in your console and paste it into ChatGPT or Google and it will return the solution to your problem in which you can add more code or remove a buggy piece of code.

Programming is very similar regardless of the language you learn. Sure, the syntax and use case per language vary but overall, the general concepts do not. The standard data types such as strings, integers, and booleans exist in every last language there is. Once you know one language, the rest becomes easy.

The last tip I can give is to use Git and GitHub for version control and code management. Git is a tool that keeps a local copy of your code on your desktop and keeps track of the different versions you make inside what’s called a repository. If you want to revert to a specific point in your project, Git will keep that copy. GitHub uploads your repository on the internet in which you will have a copy of your code anywhere, everywhere, anytime. So if your computer blows up, at least you can recover your project and all the progress made. It also helps in case you would like to collaborate with others on code as everyone will be able to the changes made to the project. Learning to effectively use GitHub is a skill in and of itself but it’s incredibly important in becoming an advanced programmer.

Conclusion

Programming is certainly a journey, but has emerged as such a critical skill in today’s world and is so important to learn and stay ahead of the curve.

As the job market is slowly becoming more programming oriented and having a degree in programming is like owning an iPhone nowadays, I hope this guide has set you up nicely for your journey in programming, and hope you can achieve your goals.

I hope this article was of use to you. If it was, feel free to read my other articles too with more tutorials, experiences, and guides!

In God we trust🙏🏾