About How To Program and Programming Anything

Welcome to How To Program Anything (Learn How To Program Pretty Much Anything), founded by Asher Wolfstein and Novelty Factor LLC. How To Program Anything is, as of this writing (July 2021), a startup website intended for all aspiring makers, technologists, and programmers of all ages and experience levels.

The primary goal of How To Program Anything is to, well, teach the reader how to program just about anything. It does this through engaging and easy-to-digest articles, tutorials/projects, videos, programming examples, and more. The secondary goal for the future is to have How To Program Anything serve as a meeting place and resource. A hub for makers, programmers, and other technologists to come together and share their passion and knowledge.

Something employed on this page is the Verbosity Configurator. This allows the reader to adjust how much detail a given section will go into. Gist gives you the gist of the piece and the least detail. Abridged covers a bit more ground, conveying any additional context. Verbose is the most detailed and goes into everything. Please see How To Use This Site for more information about the Verbosity Configurator (a tool unique to this site as far as I know).

The above is from the YouTube channel 쿠삼 kusam and is based on a song by Louie Zong.

What Do You Mean, “Programming Anything?”

I understand that claiming that one could “program anything” if they were to follow the “instructions” on this site is a pretty stupendous claim. With that interest, Asher Wolfstein shall strive to clarify.

  • Gist
  • Abridged
  • Verbose

Choose a setting

The Gist of Programming Anything

If you learn the fundamentals of computation, you can use that knowledge to tackle and learn any computational structure. You can even invent your own structures, such as your own programming language or computational device. Those fundamentals of programming can be difficult to grasp or hunt down. This website aims to give the reader clear, fun, and useful instruction on terms they can understand.

The Short of Programming Anything

I taught myself everything I know about programming, starting on a TRS-80 Color Computer II at seven. Despite having never attended an accredited college, I gained work as a professional programmer. I worked with both a firm and as a freelancer. Throughout my journey, I observed two odd disparities. The first was that those much more “educated” than I seemed to have issues “problem-solving” consistently. The second is that many programmers only have the knowledge required to practice their trade daily and lack a deep understanding of the theories involved.

This is because of two things. The avenues for learning them often prove difficult to grasp. And the time investment in “learning how to make a wheel” seems less useful than using the already existing wheel. My firm conviction is that this lack of understanding or awareness leads many tradespeople to be hindered in their decisions. These decisions guide them in creating faulty programs, which impact the creators, maintainers, and users negatively. My goal with this site is to provide clear, fun, and useful avenues towards this deeper understanding. I hope to do it so that the reader can apply the lessons towards understanding any future computational environment.

The Long of Programming Anything

To do so, I must start at the beginning. My personal programming journey started when I was very young and has been primarily auto-didactic. I essentially taught myself everything I know about programming computers, starting at the age of seven. Despite lacking any “official” accreditation, I gained work as a professional programmer at twenty-three in a financial statement printing company. For the first time in my life, I met other professional programmers from various backgrounds, including local universities.

“There wasn’t anybody telling me how to do it, ever.”

It was there, or actually when I was leaving that employment that I learned of an interesting disparity. My manager Eric, upon my departure, told me of his intrigue towards my skills compared to my background. He stated that he felt he was losing an exceptional “problem solver.” In fact, a better problem solver than most of the college graduates he hired. He inquired how this came to be. I answered, “At every stage, from my TRS-80 Color Computer II to my first commercial-grade compiler, I had to problem solve on how to do anything. Nothing was handed to me. There wasn’t anybody telling me how to do it, ever. I believe that struggle has given me a deeper appreciation and understanding.”

I highlight this disparity because, upon reflecting on it, I determined that the way many people (have to) learn programming is inadequate.

“Programming shouldn’t be taught in universities…”

A non-programming friend of mine, Shannon (an opera singer by trade), came to an interesting conclusion one day after surveying the landscape of professional programming. She thought it inappropriate that universities taught programming. She speculated that much of the knowledge required for most daily programming tasks might be better suited in a trade school. There they could teach you the steps; in essence, the how. I remarked that she wasn’t entirely off base but that there was room in universities for the theory. These being the theories of computation.

I kept her comment in my mind for many years. I pondered about this other seeming disparity between backgrounds, skills, and knowledge. I think back to several conversations or times while I was learning the fundamentals. People could very well learn how to program, and quite well, without necessarily having to really know the theory behind what they were doing. They considered finite-state automata, computability issues, assembly code, or compiler/parser construction to be these esoteric arts that only an enlightened few knew.

Such A Notion Is Entirely Useless

After I learned many of these “occult arts” myself, I realized that such a notion is entirely useless. In fact, they serve only to intimidate and obfuscate those who might be interested in learning about them. It’s been my experience that the reasons people believe in such tom-foolery are two-fold. The avenues for learning those subjects are obtuse, and their investment is difficult to rationalize. Few of these resources bridge any knowledge gaps, proving difficult to impossible to grasp for the novice. Likewise, why learn the ins and outs of compiler construction when you have an excellent compiler to use?

I firmly believe the lack of this knowledge or a hazy understanding of it proves to be detrimental. It leads to ill-informed design and architecture choices by programmers. This negatively impacts the programmers, the maintainers, and the end-users in the long run in terms of usefulness and economy. It is my firm conviction that if one could be presented with clear, justified, and useful avenues for learning the fundamental theories and practices of programming, one could then lead themselves onward in learning (or even designing) any system of mechanical computation, be it computer, robot, or something not yet invented.

This is the problem this website hopes to solve. It grows from a desire to pull the strictly academic material down from its clouds, to pull the layman with room for improvement up from his oubliette, and finally, unite them.

Okay, Programming, But Why So… Different?

It would be a lie to say that I have no idea what you mean. This site is *waves hands around* different, and I’ll give you that. To understand why I must tell you about myself, who I am, and where I come from.

  • Gist
  • Abridged
  • Verbose

Choose a setting

The Gist of Being Different

I am a highly creative person. In that vein, I seek to express myself in all the ways that I can. I endeavor to create not just a wealth of useful information with this site. I also wish to create a place that is engaging, beautiful, and memorable. This means that there may be silly games, artwork, and even costumes. In the end, that’s just who I am, and I like it.

If the more “artsy” aspects of this site turn you off, then it’s possible this site isn’t for you. There are hundreds of other sites replete with stale examples, weirdly translated English, and difficult to piece together/incomplete ideas for you to go. If, however, you’re looking for something fun, interesting, expanding, creative, and just plain juicy, then… I made this for people like us.

The Short of Being Different

The desperation to learn and understand technology but be unable to find the resources that could help you is very real to me.  I have experienced the frustration of trying to problem-solve your way through learning what you want to learn.  My humble beginnings were as a budding ranch hand. I taught myself everything I know about computers, and my message is that you can too.

It doesn’t matter your age, your background, or your learning style. You can learn to command the mysterious machines in your life and bend them to your will.  All you need is the right programming tutorials, the right encouragement, and the right resources—all of which this site can provide.  I don’t want others who want to do amazing things with computers and technology to have to suffer through the same thirty-year journey I did: sifting through piles of information and unanswered questions. You should be able to do those amazing things now, and I believe, with my help, you can!

On Being Different

I also understand what it is like to be a very different kind of person that doesn’t always fit in. Being a programmer is nice, but I am an artist first and foremost, a programmer second. I have traveled from some humble beginnings to where I am now. On the way, I have looked for people who shared my peculiar ways. I discovered that of all the things I need to be, being true to myself is the absolute most essential. If I don’t allow myself to live the truth of what makes me who I am, I won’t ever be genuinely content nor happy. One must experience the pain that flows from appreciating the beauty of life. This is in contrast to running from it in so many myriads of directions.

My life is my own personal piece of art that I get to make without any rules or training. I tried to “do it all” in one place in earlier times, being my blog. I realized that it was much too crowded and noisy. But, you are mistaken if you thought I wouldn’t express myself and not wear my fursuit or make up silly games and other things because I was trying to be an engineer. I build little miniature games, giving life to technical concepts and explain them to you in an unconventional way. That’s who I am, and also, you might more likely remember.

The Long of Being Different

First off, I’m not actually a programmer. Okay, that’s not entirely true; I do know how to program and do so daily. What I mean is, like many people, I’m not just a programmer/engineer. I’m not going to rattle off twenty different occupations at you (producer, director, actor, cook, writer, programmer, designer, editor…), so don’t worry. What I am, I believe, can be summed up in one word. I am an artonaut.

What’s An Artonaut?

An artonaut, fittingly a word I made up for myself, is at their heart a traveler. However, unlike an argonaut, they don’t necessarily travel around the world. Nor, like a cosmonaut, do they necessarily travel through outer space. Artonauts travel through the dimensions of quality: those real/imaginary places that touch and inspire us. We travel to learn amazing crafts that enrich us, explore the inner and outer dimensions that empower us, and find the beliefs and stories that we remember and hold on to. All while practicing the art of motorcycle maintenance (or something like that.)

Artonauts aren’t just open vessels idly bobbing down the Hermetic riverways, though. Central to an artonaut is what they have defined for themselves. Their identity is the will that they’ve chosen to employ in creating themselves. It often lies in stark contrast to their surroundings, both physical and social. Take me for instance, being the first one to define the term artonaut.

Take Me For Example

As of this writing, I am a thirty-eight-year-old maker and programmer of many talents, living in Fort Collins, Colorado (USA). I am a transplant, though, an imposter city-slicker if you will. Coming from a small semi-rural town in the Rocky Mountains where, when I was born, almost nobody sat around programming computers for fun (at least nobody that I ever knew.) As I grew up, I learned animal husbandry with my 4-H sheep and swine, how to build model rockets, and how to work on a ranch (mostly building fences), and all those other things that come with living in a small town. I actually purchased my first personally owned computer with the proceeds from my 4-H sales.

At seven years old, I taught myself programming on a TRS-80 Color Computer II 16k. I was able to grasp the concepts of ColorBASIC from the included manuals. This machine was a gorgeous piece of work.

No Mouse, No Hard Drive, No…

It had no mouse, hard drive, disk drive, or real operating system other than a ColorBASIC interpreter. You had to attach a special tape recorder actually to save anything. I taught myself in earnest and without encouragement, often toying with it in the cold attic or very early in the morning. I was enchanted by the idea that I could make this machine do anything I wanted. It could even do things I couldn’t do (or didn’t want to do) myself (like all my repetitive spelling homework.) If I count the year since I started, you could say I have thirty years of experience, but that would be disingenuous. What I really have is thirty years of experience teaching myself how to program. Much of this time was without the help of the internet.

One day my oldest brother’s friend Topher brought over his Nintendo Entertainment System. For the first time, I witnessed The Legend of Zelda and Super Mario Bros. play out on my parent’s large CRT screen in their bedroom. I had seen games before, such as on the TRS-80, but this was so far beyond what I had seen. The controllers, the presentation, the action, and the music were absolutely incredible to me, and frankly, blew my mind wide open. It was almost a religious experience. Here was a machine that could transport you into a completely fictional world in such a way that you could interact with that world and live out your own story. From that moment on, I was obsessed with designing and programming computer games. I knew that this thing, this medium, these tools… they were the future.

Is The Medium The Message?

From then on, I traveled. I couldn’t drive, and I didn’t have many places to walk. But I could sneak down in the wee early hours of the morning and play my Nintendo for hours on end. I traveled in my mind to all the places I could as everybody I could. I was Samus in Metroid, or Simon in Castlevania II (which I beat without a guide.)

Unfortunately, the small town had a lot of beautiful scenery to offer but very few resources for someone like me. My eldest brother brought home a textbook on how to program in C and C++. Despite not having access to a C/C++ compiler, I read the entire thing, intent on understanding how to program even more.

I Found The Internet

Then Al Gore invented the Internet. At first, I could only access it at school and the library. Those were the only networks that could support it. However, I quickly surmised a way of accessing it through my 14.4-baud modem terminal software. I used a Lynx browser by piggy-backing on the dial-up service the library offered. I technically wasn’t supposed to be doing that, but I was desperate (and clever). This was the final piece of the puzzle for me, living in that place, that allowed me to really flex and expand my world and consciousness as far as I could take it.

I realized, with the help of the internet, that I wasn’t the only one. For much of my life, I was the only one so enchanted by strange things. I was the only one so particularly passionate in obscure ways and so different and future-thinking than the people around me. A melancholic resignation had come over me, in a way. I thought that I would be the only one that would understand these things despite feverish late-night esoteric searches.

Do I Wear My Fake Fur On The Inside?

On the internet, I discovered artists, scenes, subcultures, music, and ideas I’d never heard before. I traveled even further and with a bit more maturity. I traveled so far away from that log house on top of the hill in those days. Table-top role-playing games like Mage: The Ascension fascinated me. Comic books featuring anthropomorphic characters like Associated Student Bodies gave me hope for the future. I realized that I was a homosexual rocking furry trans-futurist cultural creative.

Which brings us up to speed.

You’ve read the beginning of my story, but it is definitely not the end. I have faced several hardships since becoming an adult. They are touched upon sometimes at my own personal website, World of Wunk. There’s something I’ve learned throughout all my travels, though:

To fulfill my most extraordinary will, being true to myself is absolutely essential. I must manifest the meaning of what makes up my substance, of who I am, or suffer great regret.

Asher Wolfstein, World of Wunk

I’ve never been consciously afraid of being who I am, though sometimes I’ve had difficulty doing it. I am not embarrassed by my authenticity. I do not have to hide my interests or flair because I’m not looking for your approval. That’s why this website, and everything I do, is different.

The Art of Living

If artonaut isn’t good enough for you, then I am an artist first and foremost and a programmer second. My life is my own personal piece of art that I get to make without any rules or training. I tried to “do it all” in one place in earlier times, being my blog. But I realized that it was much too crowded and noisy. But, you are mistaken if you think I won’t express myself and not wear my fursuit because I was trying to be an engineer. I build little miniature games, giving life to technical concepts and explain them to you in an unconventional way. That’s who I am, and you might more likely remember.

If the more “artsy” aspects of this site turn you off, then it’s possible this site isn’t for you. There are hundreds of other sites replete with stale examples, weirdly translated English, and difficult to piece together/incomplete ideas for you to go. If, however, you’re looking for something fun, interesting, expanding, creative, and just plain juicy, then… I made this for people like us.

I Can Program, and You Can Too!

The takeaway from this sordid tale is that I have never forgotten where I came from. The desperation to learn and understand technology but not be able to find the resources that could help you is very real to me.  I understand the frustration of trying to problem-solve your way through learning what you want to learn.  Personally coming from humble beginnings as a budding ranch-hand, I taught myself everything I know about computers, and my message is that you can too.

It doesn’t matter your age, your background, or your learning style. You can learn to command the mysterious machines in your life and bend them to your will.  All you need is the right programming tutorials, the right encouragement, and the right resources—all of which this site can provide.  I don’t want others who want to do amazing things with computers and technology to have to suffer through the same thirty-year journey I did: sifting through piles of information and unanswered questions.  You should be able to do those amazing things now, and I believe, with my help, you can!

This Site’s Theme (The Dark Mode)

I love dark mode. The first time I encountered dark mode was on my phone unsurprisingly. I believe it was the Twitter app. I switched it on, and oh my god, I fell in love. Since that time I’ve looked for dark mode on everything, including my operating system, websites, and desktop apps. It’s so much easier on my eyes, and really, in the end, it may even use less electricity. It’s a win-win!

Because I love dark mode so much, I designed the How To Program Anything site in “dark mode.” I’m aware that some people may prefer “light mode,” though I don’t understand why. Light mode for this site doesn’t currently exist. If there’s enough demand for it, I’ll develop a light mode (and maybe some other modes?) In the meantime, please bask in the dark mode glory that is this site.

Is How To Program Anything Right For You?

My goal with this site is to provide technical (sometimes highly) information in a fun, unique, accurate, and hopefully engaging way. As a writer, I am an artist first with this site, a programmer second. That may seem like an odd priority arrangement for a site like this, but it is made deliberately. There are plenty of sites where you can “learn programming,” both paid and free. In fact, the market for programming tutorials is pretty vast, and competition is fierce.

Programming Is Fun, Creative, And Quite Personal

It’s always been my feeling that programming is fun, creative, and quite personal. It is much like writing a book, except that your book can actually get up and do things. The programs that people end up making are expressions of the things they wish to do. That’s how it was for me when I programmed my Macintosh IIsi to do my monotonous spelling homework. And that’s how it is for me today, as I work on computer games and robots.

I’m not here to bore you, or dryly shove minutiae at your face, nor even tell you what to do. I’m here to open up the world of programming to every seeking mind and expand its limitless possibilities. I want to inspire the creative, the homebrew, the dreamers, and the engineers, with the idea that they too can program computers. They can bend these machines to their will.

I hope, amidst all the myriad resources out there detailing everything under the sun for the umpteenth time, that this can be an entertaining quality diamond amidst the sand for some. If this site’s character and personality, or artiness, are somehow unsatisfactory for you, there are plenty of other high-quality resources out there for you to peruse.

Image Based On A Photo by Clay Banks on Unsplash