Package Managers, Compilers, And More?

Ever had an inkling to try something new? I think many people have wished they were a bit more tech savvy. Especially when technical jargon gets thrown across think tank spaces, industry, and even the news now.

No matter your tech-inspired goals, I think a good start to navigating and understanding how to develop software can from understanding the frameworks and utilities available out there. So today I'll be talking about package managers and host of other topics to get a little more intune to the tech space. 

Credits to the host site: http://netrunner-mag.com/2014/03/28/manage-my-package/

Credits to the host site: http://netrunner-mag.com/2014/03/28/manage-my-package/

 

You may be what package managers are, and how they apply to getting more stuff done and developing. If you are ready for a small aside, please humor me through this. 

Imagine that you are writing code for an airplane or a mobile phone. You are not going to code all of this from scratch. The nice thing about coding is that language have their own standard libraries for reading into data, opening files, etc. These libraries consist of things called methods or functions that given a little bit of information can carry out a process. Imagine having to write the same code over and over again, it'd be hard to read. That's we like to organize our code and modularize it into methods.  Furthermore, it would be difficult to create products if you had to learn programming without the use of any standard library methods. It'd require understanding much computer architecture before even getting to see anything close to airplane or mobile app software. And imagine mapping bits and bytes to actual processes on the hardware... ick. No, often we code software that takes our syntax, or coding language and turns it into ones and zeros for our hardware to execute. Note that anytime one language get translated into to another, it's called compiling. Compilers do the work of compiling and often they are savvy enough to provide additional optimizations and features to our code.

Package managers make it easier for you to download libraries and utilities onto your computer without having to go onto the host site to download a zip file, unpack it on your computer, install in the right place, make sure your computer knows where it is... and then repeat this process every time there's an update to that utility!! If you noticed the meme above, you only have to download and install the package manager for your computer's operating system once, and then you can use that package manager to install any another utility you need. If you are in the tech space you'll often hear things like apt-get install .... or yum install ...

These are the commands you would type into your terminal or computer in order to execute the package manager and to tell it you want to install a certain library or utility. You can check out a list of package managers here. You'll notice they're operating system dependent.

Last week I saved a ton of time when I installed a cross-compiler to take my C code and compile it into an executable binary code file that my raspberry pi could run. It's called a cross-compiler because it takes the code I developed on my machine (which has an Intel CPU) and compiles it into code an ARM CPU (processor) can read and run. CPUs or central processing units are the brain of a computer. Different CPUs from different companies often don't play very friendly together since the hardware is created differently, so a command of ones and zeros can mean something completely different or gibberish on one machine and be everything nice and understanding to another. 

I think that often there will be this talk up for how difficult getting started it because you need a virtual machine (VM) or a certain operating system (OS), but a lot of times we can get around this by simply installing some software utility that we can run from our current system. :)


Comment below what you would like to read about next! And let me know, what you think? Was this helpful?

More Tech Posts