I’m choosing to go with the flow and try, in what will hopefully be a long series of articles, to give you the tools to use “AI” efficiently. (AI via WordPress created the featured photo)
I learned how to code by not actually learning how to code, I asked for (and luckily got) a book about PHP programming, this was happening in 2005 when I was roughly 11 years old and this was mostly my first foray into actual coding – it was relatively overlapping with figuring out I can have a website online for free with Piczo so this felt like a fun thing to try.
Obviously, I had no idea that PHP was a server side programming language, that it needed an interpreter, that I can’t just double click it to run. It was 2005 and I was 11, somewhat expected. After some reading and much confusion I ended up finding out about XAMPP which was to be my love for quite a long time to come. XAMPP is an application that bundles the Apache server (the bit that handles actually serving content – and in our case also interpreting PHP), MySQL (a database server), and phpMyAdmin (a web-based interface for a MySQL server) among others. Cool! Now I could actually serve those files and learn PHP and run into a thousand errors!
It was painful because I didn’t yet have the skills to search for what I need, part of the problem is I didn’t understand what I need and I didn’t really have a very well defined road/goal ahead of me. I proceeded to try most of the things described in the book, mostly about CRUD operations and in the end I understood what a web server is and does, what a database is and does, the larger concepts of “x needs to talk to y” and “that folder is important because it’s referenced in this Apache file” and so on.
Something that you possibly do not have right now are these “higher order” (let’s call ’em) concepts. You’ve not gone through understanding things either by learning them or by bit-banging them until they worked so the LLM will provide you with code if you ask it. If you’re smart about it, the LLM might actually package everything up for you in a nice Docker image! You still need to run that, make it accessible to the outside world, make it secure (or – make yourself secure in that process) and the hardest part – maintain it.
You’ll need to understand a lot of things, and as much as possible I’ll try to outline what those are (a short candidate list is understanding what NAT is, what an application server is, what an IP is, DNS, the different types of programming languages, OS packages, the different operating systems and way their work and… yeah it’s going to be a long list) as we go, and I’ll probably forget things but luckily you’ve got the world’s smartest companion in your local LLM.
Whenever I met people getting into tech I tried sticking the idea of playing around with technology to learn, set-up your own PostgreSQL server, maybe host a game server, modify things, break things, fix things, fail, try again, and so on – and I still believe that’s possibly the best way to learn – by practicing yourself on things you vaguely care about so it keeps the work interesting.
We should also talk about tools, but this is such a divisive topic that I’ll probably get spammed about my choices. Whenever I setup a new computer I generally install VSCode, DBeaver and vim, I feel I can mostly do anything I need with these. Nowadays I guess I should also mention claude-cli and codex since they have written the large majority of code I’ve touched in the past year (and have enabled my potential-ADHD to wreck havoc on my fun-idea-addicted brain by actually delivering them 50x as fast than I would’ve).
Do yourself a favor and do this – download VirtualBox and a Linux image of your choice and play around with the VM settings in all categories, try accessing that VM from your computer, try moving a file from your computer to the VM and vice-versa in at least 3 different ways. You should be able to do all these things without help from ChatGPT or the lot.
At the end you might know a bit more about linux distros, SSH, SCP, FTP, HTTP, Apache, Clipboard (cheating), virtual machines, architectures, and hopefully this’ll lay out the terrain for my future blog post that I’m self-pressuring myself into writing by writing this. We can work on that VM in the future and make it do more things that’ll enable you to use the LLMs knowledge to actually do things in the real world.
(This, so far, is a gross simplification because of a literal thousand reasons, but there’s a lot of folks that have access to the technology and without a bit of guidance won’t be able to thrive. I was helped back in 2014 when I was very young so this is, in a way, my way of giving back. )
Although, looking back on when I wrote this and today (a few months apart), you might not need all of this – you can just ask C* to do it for you and it’ll most likely do it and do it well. It just feels warm and fuzzy to understand it.
