Levinux – A Tiny Version of Linux for Education
mikelev.in
mikelev.in
We've been looking at various ways in which we could introduce our Year 7s (11-12 yo) to Linux, and this checks all the boxes. It'll fit nicely within our existing schemes of work that go through HTML/CSS and JavaScript, and then lead onto Python in the next year.
Fantastic job, and thank you very much.
Okay, what is the ultimate goal here?
There are tons of approaches to learning to program, and reasons for doing so. You might want to build an empire, or just have a few extra skills in your back pocket. Levinux supports your pursuit either goal and everything in-between. It does this by focusing on one particular “short stack” approach: learning the least-possible software possible of the most timeless nature to enable you to do interesting things. It can be your primary programming environment, or just sort of a safety-net as you pursue other more sexy platforms like mobile app development.
If anyone is interested in another tiny Linux version, not necessarily for education, but personal use, I'd recommend CrunchBang (based on Debian). If you have an old laptop you want to give someone or a new netbook that doesn't have a CD drive, it's very easy to install via USB.
Edit: I just realized, "tiny" doesn't quit fit CB. So let's call it efficient and simple instead.
Also, I would say that Arch Linux can be as tiny as you want, but it's not a fire and forget solution and I wouldn't want to maintain an Arch system for friends or relatives ;)
The direction in which his imagination goes is back to his Amiga days, as I understand this: http://mikelev.in/2010/10/choosing-tools-switching-to-linux/
Forth doesn't seem to be what he had in mind or was prepared to provide. If you personally like learning and teaching Forth, then you're right, why not start with Forth?
(Please correct me if I'm wrong - I just started levinux, ran the initial download, then sshed in and tried 'cc', 'gcc', 'clang', and 'tcc' before giving up).
First of all, learning the command line, git, vim, and Python is a bit too much for a beginner to handle all at once. IMHO, vim alone will scare off a lot of people.
Second, being exposed to a lot of different programming languages is very beneficial for a beginner.
Vim, git and Linux are great, but they are tools for getting a job done. Once the fundamentals of computer science are learned, these tools can be picked up rather quickly.
I'm all for this approach, as I'm a huge Linux/vim/git fan, but all of this must come after the fundamentals are in place. It's very easy to overwhelm someone with too much information about tools and terms.
Now if you're the next Linus Torvalds, then this is an excellent approach. Us mere mortals shall marvel at your talents from afar.
Keeping the first explanation to this two use cases keeps it short and easy to remember, and not much more difficult than the other command line editors. pico or nano have the command in plain sight but I find them worse to type for beginners, and there is not much of a learning path from there.
Actually....I think I'm with vukmir on the beginner in education being somewhat overwhelmed and I'm confused as to why Linux Server skill is being conflated with programming.
"consider Levinux a stepping stone for newbs, because it gives you a taste of Linux Server and sets you on your way to being able to do SOMETHING within minutes......Push your code up from Levinux and pull it down from whatever other system you end up using in the future."
I agree that git and mercurial are alot to wrap your head around, but you don't need them.
The only defense against this seems to be the two-fold approach of getting your code into more than one place, and being able to rapidly reproduce your code execution environment. For getting it into more than one place, I take many lines of defense: making Levinux so small that it's easy to copy, partitioning the hard drives so that syncing an entire virtual machine over Dropbox is still fast and efficient... and finally, distributed version control.
I've found in my work with git and Mercurial, workflow is totally transformed always for the better. And while neither git or vim are technically part of the code execution stack, they are both fundamental to what I'm trying to teach. I'm taking some creative license in how I define a stack :-)
I don't think the "short stack" approach works because it doesn't come with any motivation.