July 26, 2023

re: Coding

This Post is part of the Blog Chain: Write An App (2023) Blog-Chain.

I've begun a journey:

For a long time, I've been a coder, but not a programmer (see: Coding). One of my goals for this year is to build an app. Nothing useful, fancy, or impressive. Just to get from zero to one using modern tools. I wrote a handful of Windows apps in C# in the mid-aughts circa 2008, and a variety of data analysis in R, Python, SQL, since then, but no one has ever paid me to write code.

I want to at least have the capability to earn an income by developing software, even if I never do. Deploying an app to showcase what I've learned is just a small step toward doing that.

I've done some work on getting familiar with version control on Github. Have also read up on modern programming languages, and have chosen to learn Rust. And as someone whose spent about 50% of their life on Mac and 50% on Windows, I'd finally like to commit to getting comfortable with Linux, where I'll be starting with the Ubuntu distro on Windows WSL.

💡 More of my tools, services, and media preferences can be found on Uses.

Yesterday, 2023-07-25, I installed Ubuntu 22 w/ Linux 5.15.90 under Windows WSL. Today I installed Rust, GCC, and Nushell (in that order).

Since I'm being transparent about my learning journey, I should also share when I have a question that some might consider "dumb":

❓ Why do I need GCC if Rust has its own compiler? I had to install this in order to get Rust to compile Nushell.

I'm guessing based off from one single search query: these are Linux-specific libraries that Rust depends on that are already contained within GCC.

Also:

❓ Why did I need to install the "pkg-config" and "libssl-dev" packages for Nushell? What are they? What are they for?

Apparently pkg-config returns information about installed packages, and libssl-dev implements OpenSSL for Debian bases systems (eg Ubuntu). I'm not comfortable that I know the whole story there, but that is probably sufficient for what I need to know right now.

I am already familiar with, and have set up VSCode on the Windows 10-side of my OS (outside of the virtual machine of WSL), and intend to connect it to the Rust runtime via the VSCode plugin, which should allow me to develop and target builds in VSCode as if I were within the Ubuntu-Linux container.

Often, guides in developing software, deploying software infrastructure, etc. assume you are running a Linux based OS, and suggest shell commands that obviously don't work while on Windows. So, having the Ubuntu-Linux WSL set up should allow me to not only toe-dip in learning a Linux-based OS, but also streamline learning Rust from tutorials that assume one is on a Linux distro anyway.

My next step (tomorrow?) will be to set up VSCode to connect to the WSL Ubuntu-Linux virtual machine via the plugin, test the terminal from there... (does Nushell load in the VSCode terminal? Does that question even make any sense? see: "dumb questions" above)... and hopefully compile my very own first helloworld.rs.

While I'm at it, I might as well make this a "Blog-Chain". You can see all the posts for my journey to write an app in "Blog Chain: Write An App (2023)".