Saqib’s Site

Concepts vs Tools

May 23, 2023

Most people learn tools instead of leraning concepts first. As a consaquence, they often lack the funcamental knowledge of how things actually work


Like for example, many CS students use VS Code with mulitiple extensions for compiling and running code, which i’m not saying is necessarily a bad thing but here is the issue; most of these people don’t even know how to manually compile their code manually or use a terminal. This is because they heavily rely on these huge IDE’s from day 1 without even bothering to look into how the language they’ve been using for month even works.

Now what to do

You should learn concepts before diving into a spicific tool. Let’s say you are learning gpg (tool) and you are watching some stupid video on how to encrypt a file using gnupg. You will be able to encrypt your file by copy pasting the code but you wont be able to understand what you are doing simply because you lack the basic understanding. If you knew how encryption works, what are private, public keys (concepts), only then you will be able to understand what you are doing.

Same goes for “Learning Linux”. If you are a new user, dont start with learning a tool, start by reading the DOCS, read the history of linux, how a decentrailized system works, how it’s different from windoze and macos. Then you can move towards learning a GNU tool.

Read the effin docs

Reading docs should be the first thing you should do when learning a new skill. Docs are made by the developers of the project so its one of the best resource out there. Sadly, some people don’t even know docs exist. I done seen niggas go to youtube toturials instead of reading docs when learning a new tool or language. And if you are not able to understand the docs, just know that you lack the fundamentals. read the effin docs

Look at the source code

Explore free software, go to github, gitlab or any other platform and take a look at the naked code. Learn how a project is maintained. Look at PRs, issues etc. Just spend time on git. Trust me you can learn a lot by just looking at public repos. I done seen niggas use an open source tool for years and not look at the source code even once. Breh, alteast know what language your software is written in.

Compile program manually

Not all the time but sometimes. Compiling source code can be helpful in learning how packages work, what are its build dependencies etc. You can optimize and customize the software too by manual compilation. Just read the compilation instructions on the wiki/readme compiling

Try to stick with the minimalist software

Let me elaborate. Let’s say you want to download a huge file using multiple connections (parallel downloading). Instead of using some bloated propriotary software (1DM), you can just use a minamal cli tool like axel. Why? Because not only does axel do the same job but also is minimal, open source and has a man page, so you can look at it and have a basic idea of how it works. Also minimal software = small documentation = easier comprehension.


Priorityze conceptual learning over tools. Once you have concepts, learning tools is easy peasy.

PS: I’m black btw, i have the pass.

Written By Saqib [→ Reply-To]