DEV Community

Cover image for A Complete Beginner's Guide to Programming

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 b...
Collapse
 
arminlinzbauer profile image
Armin Linzbauer • Edited

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

Collapse
 
dwd profile image
Dave Cridland

I always thought it was a Harry Harrison reference.

Collapse
 
terabytetiger profile image
Tyler V. (he/him)

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! 🎉

Collapse
 
esternin profile image
esternin

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 repl.it, and a very cool use for it.

Collapse
 
karlredman profile image
Karl N. Redman

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.

Collapse
 
ondrejs profile image
Ondrej

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!

Collapse
 
terabytetiger profile image
Tyler V. (he/him)

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.

Collapse
 
ondrejs profile image
Ondrej

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.

Thread Thread
 
karlredman profile image
Karl N. Redman • Edited

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).

Collapse
 
aspittel profile image
Ali Spittel

Good catch -- removed

Collapse
 
stecman profile image
Stephen Holdaway • Edited

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

Collapse
 
swanzer profile image
swanzer

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.

Collapse
 
caticatt profile image
Alex Ferreira

Great work!

Collapse
 
susanjsolomon profile image
Susan Justin Solomon

Up to the mark..simple..Excellent post

Collapse
 
aspittel profile image
Ali Spittel

Ah, thank you!!

Collapse
 
david_j_eddy profile image
David J Eddy

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

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

Collapse
 
aspittel profile image
Ali Spittel

Thank you so much!

Collapse
 
desi profile image
Desi

Killing it with the content lately! :D

Collapse
 
aspittel profile image
Ali Spittel

Thanks!!!

Collapse
 
andrei3ol profile image
Andrei3ol

Are you sure about Python in PCL?

Collapse
 
edwinrea profile image
Edwin Peña

Excelente post.

Saludos