top of page
Search

Programming 101

From a person that only learned to code a few years ago. Dedicated to all the people that have asked me how to get started with programming.


So you've heard about programming. To your chagrin, it turns out Python isn't just a snake. AI isn't just a deus ex machina invoked in sci-fi for plot convenience. And a car without a driver drove past you and you swear you weren't on psychedelics. Welcome to the world of programming.


Programming is the art of turning caffeine into computer programs. The incessant war between you and the compiler. The process of problem solving using code.


Before I go into how you can learn programming, who should care about this? Whoever wants to learn to program, should learn to program. I don't think there is any age or skill gap that should prevent anyone from starting to learn something they want to learn. However, whatever you do, have a good reason to begin and continue. Don't just do something because of desperation, hype, FOMO or because you dream of getting free lunch at a large Silicon Valley tech company. There are easier ways to get a free lunch.


Now then, if you're dead-set on beginning this journey, let's dive into how you can learn programming.


1. Pick a programming language


I started with python. If you have a specific goal, then you may select a language in line with that goal. For instance, web development may require HTML, CSS and JavaScript while programming an Arduino requires knowledge of C++. If you are indifferent or would like to get to these eventually, I'd recommend you start with python. You will be able to learn rapidly because of how easy python is to understand, work on a Raspberry Pi, do backend development, machine learning, and much more.


2. Learn these three key things


Programming logic

  • how to create and store variables

  • data types (ints, strings, floats, etc.)

  • data structures (lists, dictionaries, etc.)

  • conditional statements (if/elif/else)

  • loops (while and for loops)

  • writing functions

  • how to think systematically when using all these

Syntax

  • writing style and conventions

  • does your language require semicolons at the end of lines or indentation

  • what's the syntax that implements the programming logic you know


Oddities of the language

  • in python you don't worry about memory allocation and pointers but in C or C++ you need to, SQL has something called join operations, etc.

  • what are common libraries people use (e.g.: numpy or matplotlib in Python)

  • where do people find documentation for your programming language


The first time you are learning a language it is usually the hardest because you are trying to learn all three of these at the same time. After doing it once, picking up other languages is just a matter of learning syntax and the oddities of that language.


Resources to learn these three things (this is word for word what I search for):

  • Go to YouTube and type "freecodecamp [insert name of programming language]" and then watch the 3-4 hour long tutorial for beginners of the language while following along with every example. This is their video for Python. They should help you set up an IDE (where you will be programming). If not, then work on Google Colab if you don't want to set up an editor or if you want to, download and use VSCode.

  • For quick tutorials or examples of code search for "w3schools [insert name of programming language]" in your browser. Learning through examples like this is very helpful. This is their site for Python.

  • Use Stack Overflow (a question and answer website for programmers) as well by searching for "[Any programming question you have] stackoverflow" in your browser. Many programmers have had questions about what you are stuck on and others have written answers to these questions.


3. Practice using the language


The only realistic way to solidify your understanding of a programming language is if you use it. You'll probably also learn a lot more by doing this frequently. These are some python projects you can try:


Hackathons

  • Devpost has a list of hackathons around the world. Participate in one, form or join a team, select a problem, use programming and technology to solve it. These are time constrained environments where deliverables are expected. I primarily learned and practiced through hackathons so I would highly recommend doing these. Hackathons are also a great place to learn from others, expand your horizons, connect with programmers working in industry, and much more. It's a great multiplier for your skills.

Data Structures And Algorithms

  • freecodecamp's video (never just watch a video, make sure to follow along so you're learning)

  • Leetcode (questions with real time feedback, used to prep for technical interviews when applying to software roles in companies)

Competitive Programming

Backend Development

  • Look for tutorials on using Flask (traditionally used) or FastAPI (a faster and more modern framework than flask) to make a web app.

  • Make a login system.

  • Create a CRUD app (that can do create, read, update and delete operations). These are some good ideas for what to make.

Machine Learning

  • Intro To Deep Learning With Pytorch (free course by Udacity). I began with this and learned how to use the Pytorch library first.

  • Then look into training models on datasets (try doing this on Kaggle), implementing work in ML research papers from scratch, or building ML applications.

Other Projects

  • Make a URL shortner

  • Make a pong or chess game

  • Web scraping using beautiful soup

  • Speech recognition

  • Chatbot

  • Web browser automation using selenium

  • Simultaneous Localization And Mapping (SLAM) using OpenCV

  • Line-following robot using a Raspberry Pi.


Bonus Tip: Document your learning. Videos and visuals of what you are working on go a long way when you want to explain to others what you have worked on. Make a GitHub account and a website like this one so you can showcase important projects you have worked on.


Becoming a good programmer is about becoming better at studying by yourself, hacking around with your code till it works, being an expert Google searcher, and being persistent with whatever you are working on.


That's about it. Good luck.






Recent Posts

See All

Insights On AI Research

Written in November of 2022. Thoughts from someone who just begun doing AI research this year. Research is not published in a vacuum....

AI 101

Written in May of 2022. Basic Python knowledge is necessary. Right now, AI is used around the world to build autonomous vehicles, power...

The Game Of Life

Welcome player. Stars slowly burn around the galaxy, planets whirl in orbits around them, and much more traverses the darkness of space...

Comments


bottom of page