Skip to content

A Complete Beginner's Guide to Programming

Ali Spittel on March 28, 2019

This post may seem out of place on a site for programmers, but I wanted to write something from zero. What even is programming? And, what are the... [Read Full]
markdown guide

+1 for the correct use of a comma in "Hello, World!". Far to few people do this correctly.


I always thought it was a Harry Harrison reference.


This post may seem out of place on a site for programmers, but I wanted to write something from zero.

Honestly, I've been looking for a good article to point beginners to as a way to introduce what programming is. This article will serve that role wonderfully.

Great work! 🎉


I like your style. One point: "A computer is a machine that processes and stores information" is a rather limited view of what computers are, and is not even true. Strictly speaking, a computer is a device for coherent manipulation of logical levels, but that's just being formal. Note how every one of your examples is about i/o. While I belong to the time when 95% of computing was calculation, you are of the time where 95% of [programming] time is devoted to UI, and computing is all about communication, mostly with the user, but also with the physical world.

Thanks for introducing me to, and a very cool use for it.


I appreciate your perspective but I believe you've conflated the various aspects of programming, and furthermore, the functions of a computer.

Computers have three fundamental functions: input, processing, and output. The concept of storage is a bonus.

I think that your statement about computing being all about communication does make sense in the context of modern day application programming Enterprise goals. It's certainly a valid perspective relative to context but it is not the definition as a whole.


Nice article, thanks.
But at one thing I'm a bit confused - you consider Bash as low level language?
b/c I really don't think so (for various reasons). Please explain why, if possible, thank you!


Instead of asking for a post's author to explain themselves, it's better to outline your reasons for disagreeing so they can respond appropriately.

Your current question is quite open-ended and could be hard for someone to accurately respond to with the clarifications you may be looking for without you presenting your point of view more clearly first.


Yep, understood. Well the main reason is that Bash has very little to do with HW (if something). It does not use pointers, memory management, it does not communicate directly with processor etc. It's a scripting language native for Unix-based systems, nothing more. It's written i C the same way Python is. It's just not as user friendly (for some) as other scripting languages. == My 2 cents.

Bash is a [x]nix shell language. [x]nix is based (history) on programs that perform 1 task well.... Bash is a shell to your operating system.

With that said, bash as a shell and batch processing language, absolutely has everything you can imagine to do with HW. By virtue of it's purpose you can programmatically control many aspects of your computer system through bash scripts (regardless of programmer friendliness).

While bash is 'only' a scripting language, it's still used on a daily basis more than any other language in the world -by sheer use of scripts over the number of distributions booted each day -often controlling hardware by proxy -most [x]nix computers would never boot without out bash (a hardware controlling perspective).

The purpose of programming is to automate some task (period) -regardless of language. Programming languages are all constraints upon constructs whereupon their only usefulness is to tell computers what to do from human perspectives (note plural perspectives).

Everything has it's purpose in programming. The trick is finding the right tool for the job. Otherwise, it's all the same thing (ones and zeros).


Thanks Ali. I am a beginner and found this very helpful. I noticed a statement towards the end where there may be a phrasing error, "..the computer is really smart in that it does exactly what it tells you too." Perhaps you meant to say "it does exactly what you tell it to do." Or, since you were speaking about errors in code, maybe you meant it as an example of the computer writing exactly what was typed? That would be clever! Anyway, thanks again. Much appreciated.


Where can you see programs in use?

I'd also add to this list any whiteware that sings you a song when it's powered on/finished, microwave ovens, digital cameras, photocopiers, the engine controller in your car (probably the dashboard too if it's a modern car) and any USB device - your mouse and keyboard included.

Once you start working with microcontrollers you realise just how much code is running around us all the time! It's pretty cool/terrifying


AS a dev w/ 10+ years professional experience programming...

This one excellent article! Ali, you're crushing it! Well done.


A good read, and I am no beginner. I recently publish these, more to follow and I think we share the same mindset somewhere Ali!


I talk and going through stuff with so many people

code of conduct - report abuse