Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Monday, August 3, 2015

Going Up Against Anaïs Nin

Okay, I'm punching way above my weight class here, but I'm annoyed and I'm not at work and the Muse has gotten Inspiration out of hammer space and clobbered me in the head with it,

From the anime Vividred Operation? Sourced here.
so I'm just going to go ahead and do this.

Joe Kawano posted this quote (abridged) on Twitter. It's not his fault I'm pissed off but shout out to him and transmedia.

The quote is from Anaïs Nin, and it's this:
If you do not breathe through writing, if you do not cry out in writing, or sing in writing, then don't write, because our culture has no use for it.
Okay. No.

First of all, under no circumstances should you listen to anyone who tells you that you shouldn't fucking write. Believe me, if they are correct, it will not take you long to discover it all by yourself. No one else needs to communicate that information to you! At least on the basis of quality. Go ahead and keep telling the trolls to shut the fuck up and why.

Second, according to Wikipedia Anaïs Nin herself began writing by selling erotica to some guy for a dollar a page as a half-joke, half-desperate-need-for-rent. Which is an avenue I'm exploring myself and I don't see any shame in it. But in total awareness that I'm yelling at a dead woman whose body of work is vastly superior to my own: pot and the fucking kettle!

But what I'm really steamed about is the idea that you need to write in the throws of passion, or some strong emotion, to be doing it properly. Uh uh. I've done it before, and while I've produced some prime words that way it feels like sticking a fucking knife through my heart and leaving it there. And then picking up another knife.

I'd like to point out that Diane Keaton's character was wildly successful for years before she got her heart broken. Sourced here.
Also, those prime words? None of them have been published, either because I don't want to expose certain parts of my soul, or because I ended up with a high-quality scene disconnected from any other narrative. Could I build a story around a scene of passion? Absolutely. But there's a hell of a lot of bloodless, tiring word-churning involved I haven't done yet.

Look, if you're doing something creative for awhile without spectacular, immediate success, you're going to wonder if you should keep doing it. Here's the test. Take stock of your work and ask if you're doing it to meet a requirement, or meet a need.

I'll give you an example. In college I took computer programming classes because I wanted a job I could make good money at while I wrote. (Whether this was a good strategy I leave to posterity to decide.) Happily I got really into programming and thought "Hey! Maybe I can make video games! I love playing video games and I love writing, so making them myself should be ideal!"

So I read a book on graphics programming and learned the skills. And then I read another one. And another one. I spent hundreds of dollars on stupidly expensive programming books, trying to catch the right inspiration to make that killer game I wanted to make. But after years of this, I realized that I never went very far beyond doing the exercises in those books. I wasn't making anything I wanted to make, I was just doing wrote exercises over and over again. I was meeting the requirement these books set for me, then tossing them aside and moving on to the next book. I don't buy game programming books anymore.

With writing I don't have this problem. I can't meet a word count target to save my life, but I've got scads of notes and ideas and scraps and scenes and entire fucking novels in my trunk. A lot of this shit might never get published, and I may never do well enough writing to pay my bills or make a full-time career out of it. But I can't stop. I tried! And all I did was waste money on game programming books. I write to meet a need I have to express myself.

In short, if writing or painting or music or programming meets an inner desire, if it fulfills you, go to it as hard as you can. But if you're only doing it to meet an external demand, well, maybe try something else for awhile. The worst that happens is you come back to what you were doing in the first place, with a few new experiences to play with.

Now, I will encourage you to let emotion take you while you're writing. If you're pissed off, or crying, or laughing while you write a scene, that's a very good thing! But it's not a guarantor of quality (you still gotta polish that nacre into a pearl, fella), and it sure as hell isn't the litmus test for whether your writing is worthwhile. And now I feel obligated to purchase something by Anaïs Nin, so if anyone cares to make a suggestion, I'm all ears. Er, eyes.

*opens Amazon*

Wow, her stuff is not Kindle-friendly, is it...

Monday, December 20, 2010

Learning Real-World Programming

My apologies for the missed blog post on Friday. I got caught up reading Prospero Burns and honestly forgot that I had a post lined up. Hey, there are worse excuses for missing an update.

Anyway, I responded to a forum question a while back about what to study if you're thinking about a career in computer science (which I took to read "programmer"). The rest of this post is a cleaned-up version of my response, based on about five years' experience writing code for a living. If you think I'm going too far off-mission, well, tough. Go suffer the wrath of Trollquotes.

First off, you want to learn Unix or Linux if you want to be a well-rounded programmer. For all of Windows's dominance of the desktop PC market, most servers run on some flavor of *nix, so you're going to have to learn to love the command line. Ubuntu is easy to use as a desktop, comes on a live disc so you don't have to nerf your Windows gaming box, and has the full command line experience for you to play with. (If you don't know what a live disc is, God help you, and don't come crying to me when you reformat your hard drive.) Make sure you work out how to type in emacs or vi as part of your command line tour.

While I was in college I learned to program in C++ and Java. These are useful languages to learn from, because they're strongly defined, well supported, and complex enough that you can port your skills to just about any other language without too much difficulty. But as a practical consideration, well, I haven't touched C in years and only rarely use the Java. (That'll probably drop to "never use Java" now that Oracle seems bound and determined to screw it up. I still feel bad for Professor Lobo, who was firmly convinced Java was the language of the future. Now, I suspect, not so much. But I digress...)

Code gets compiled, and you will need to know how to do that. Not everybody gets to use an IDE. If you're learning C or C++, make sure you play with gcc and make. Visual Studio is fine, but will only take you so far. If you're learning Java, start compiling with javac before anything else. Once you're comfortable with that, Ant is a great tool for building larger projects.

Now, other languages. HTML and CSS aren't programming languages, but a basic knowledge of the tags is important if you want to be a web programmer. In which case you'll also need to be able to set up an Apache web server, which is not at all difficult after a few Google searches. Many *nix systems will come with it installed or as an easy add-on in any case.

Java servlets are good to know for web programming, but will require Apache Tomcat or Glassfish as your web server. These are both still easy to set up.

Javascript and Java are two different things - Javascript is generally the one that does all the fancy web graphics on Facebook or Twitter. Learn it if you need it.

For a simple introduction to modern web programming (i.e. Web 2.0, SOA, The Cloud), you might consider checking out Ruby and it's expansion pack, Ruby on Rails. It's got a very simple syntax that does a lot in a hurry, and Rails was designed to handle buzzwords like SOAP and Ajax with ease.

On to the nitty-gritty! Perl is the #1 language in parsing text files, so if you're planning on server programming, learn it as your second language. The syntax is (arguably) a little too confusing to start learning with, but once you get the knack for it you'll be fine. You'll also want to learn a bit of shell coding to go along with the Perl.

If you're interested in games programming, XNA is the simplest way to get started in 3D gaming. That means learning C#, which is about the only reason I know of to use that particular language. It's a lot like Java, so you won't have too much trouble getting spun up.

Avoid LISP like the plague unless you like artificial intelligence.

The best programming books I've found that are up to date belong to the Head First series. These are very accessible, and entertaining, but still give you a strong introduction to their particular subject. Beyond that, the O'Reilly tech books are rarely bad, so investigate them thoroughly whenever you want to learn about a new subject.

Programming can be a lot of fun, even if you never do it for anything other than a hobby. As a profession, it won't be a blast everyday; but at its best programming is a creative, rewarding way to make a living. So if you're in school and thinking about what career path you want to follow (or, like me, you want to be a writer but like to have money for food), give coding some consideration. If nothing else, hey, you can write a Pong clone for your own amusement.