home | recent | discover | new | older | flashback | bg | pokes | lists | moments| glided | shows | tags | anonymous | active(7) | tmvp | msp | mtp | mvp | mlp | mdp | otd | flip | s | login | register
feed | following | likes&reposts | drafts | bookmarks | subscribed | topics | replies | mentions | quotes | notify | messages | my posts | my ads | new ad | followers | following | support |

How To Learn Programming – The Guide I Wish I Had When I Started Learning To Code
Go to Home » Current News » General
How To Learn Programming – The Guide I Wish I Had When I Started Learning To Code


-Welcome to Postorous. Post freely - legally.-
like or dislike this topic: like | dislike | share | Please login

Report Topic | Add reply |Top Posts | Latest Posts | Photos | People | Related Posts | All | More From General | Browse | Start a New Post | Modify Limit | General Tags | Boards | Search | Ask | Watchlists | Favorites | Near me | You follow | Relevant people | Go down | [Refresh]

Top Posts

Postorous Previous Post: S*xtape: How It Got Leaked — Singer Tiwa Savage
Post Tag boards
Everyone can reply
uk: How To Learn Programming – The Guide I Wish I Had When I Started Learning To Code 2021-10-08 08:58:04am
How to Learn Programming – The Guide I Wish I Had When I Started Learning to Code
by Jacob Stopak



Just the thought of learning to code can be very intimidating. The word code is mysterious by definition. It implies a technical form of communication that computers, and not humans, are meant to understand.

One way many people start learning to code is by picking a popular programming language and jumping in head first with no direction. This could take the form of an online coding course, a tutorial project, or a random book purchase on a specific topic.

Rarely do prospective developers start with a roadmap – a bird's eye view of the coding world that outlines a set of relevant programming concepts, languages, and tools that almost 100% of developers use every day.

In this article, I propose one such roadmap. I do this by outlining 14 steps – each one discussing an essential concept, language, or tool – that professional developers use to write code, collaborate, and create professional projects.

I meticulously chose these 14 steps based on my own personal journey learning to code, which spans almost 20 years.

Part of the reason it took me so long to feel comfortable as a developer is that I would learn about specific topics without a broader context of the coding world.

Each of the steps in this article discusses a "coding essential" – something that I believe is critical to at least know that it exists at the start of your coding journey.

One final note before listing the steps in the roadmap: of course reading this article will not make you an expert programmer. It isn't meant to. The purpose of this article is to make you aware that each one of these topics exists, and hopefully give you a basic idea of how each one works so you can build on it intelligently going forward.


Without further ado, let's start at the top!

1) Familiarize Yourself with Computer Architecture and Data Basics

One of the wonderful things about modern programming languages is that they enable us to create fancy applications without worrying about the nitty-gritty details of the hardware behind the scenes (for the most part).

This is called abstraction – the ability to work with higher-level tools (in this case programming languages) that simplify and narrow down the required scope of our understanding and skills.

However, that doesn't mean it's useless to know the basics of the metal that your code is executing on. At the very least, being aware of a few tidbits will help you navigate workplace conversations about high CPU and memory usage.

So, here is a bare minimum of computer architecture basics to get you started:

Your computer's most important parts live on microchips (also known as integrated circuits).

Microchips rely on an electrical component called a transistor to function. Transistors are tiny electrical switches that are either off (0) or on (1) at any given time. A single microchip can contain millions or billions of tiny transistors embedded on it.

Most modern computers have a microchip called the Central Processing Unit (CPU). You can think of it as the computer’s brain. It handles most of the number crunching and logical tasks that the computer performs.

Each CPU has something called an instruction set, which is a collection of binary (zeros and ones) commands that the CPU understands. Luckily, we don't really need to worry about these as software devs! That is the power of abstraction.

If the CPU is the logical center of the brain, it is useful to have memory as well to store information temporarily or for the long term.

Computers have Random Access Memory (RAM) as "working memory" (or short-term memory) to store information that is actively being used by running programs.

RAM is made up of a collection of memory addresses, which can be used to store bits of data. In older languages like C, programmers do have access to working directly with memory addresses using a feature called pointers, but this is rare in more modern languages.

Finally, we'll touch on a component you're surely familiar with – the hard drive. In our analogy of the brain, this represents long-term memory. A hard drive is an internal or external device that stores data that should persist even after the computer is turned off.

Before moving on to more details about programming languages, let's spend a second talking about data. But what exactly do we mean by the word data?

At a high level, we think of things like text documents, images, videos, emails, files, and folders. These are all high-level data structures that we create and save on our computers every day.

But underneath the hood, a computer chip (like a CPU or RAM chip) has no idea what an "image" or a "video" is.

From a chip’s perspective, all of these structures are stored as long sequences of ones and zeros. These ones and zeros are called bits.

Bits are commonly stored in a set of eight at a time, known as a byte. A byte is simply a sequence of eight bits, such as 00000001, 01100110, or 00001111. Representing information in this way is called a binary representation.


2) Learn How Programming Languages Work
In the previous section, we mentioned that most computers rely on a CPU, and a CPU can understand a specific set of instructions in the form of ones and zeros.

Therefore, we could theoretically write code that tells the CPU what to do by stringing together long sequences of ones and zeros in a form the CPU understands. Instructions written in binary form like this are called machine code.

Sounds horrible to work with, doesn't it? Well it probably is, but I wouldn't know since I mostly use higher-level programming languages like JavaScript, Python, and Java.

A higher-level programming language provides a set of human-readable keywords, statements, and syntax rules that are much simpler for people to learn, debug, and work with.

Programming languages provide a means of bridging the gap between the way our human brains understand the world and the way computer brains (CPUs) understand the world.

Ultimately, the code that we write needs to be translated into the binary instructions (machine code) that the CPU understands.

Depending on the language you choose, we say that your code is either compiled or interpreted into machine code capable of being executed by your CPU. Most programming languages include a program called a compiler or an interpreter which performs this translation step.

Just to give a few examples – JavaScript and Python are interpreted languages while Java is a compiled language. Whether a language is compiled or interpreted (or some combination of the two) has implications for developer convenience, error handling, performance, and other areas, but we won't get into those details here.

3) Understand How the Internet Works
4) Practice Some Command-Line Basics
5) Build Up Your Text Editor Skills with Vim
6) Take-up Some HTML
7) Tackle Some CSS
8) Start Programming with JavaScript
9) Continue Programming with Python
10) Further Your Knowledge with Java
11) Track Your Code Using Git
12) Store Data Using Databases and SQL
13) Read About Web Frameworks and MVC
14) Play with Package Managers

     reply change report quote edited  hide post post child  

Share This Post:
[Twitter][Facebook] [LinkedIn][WhatsApp] [HN][Email] [Print]

[Post your reply]





(Add reply) (Top) (Latest) (Photos) (Related) (Go up) [Limit:default] [] [1post & 3views] []


AboutPrivacy PolicyFeedbackContactRulesReport a Problem