An INTJ-friendlier Introduction to Programming
Wednesday April 4, 2018
So you read my warnings and you want to get better at it anyway. Fair enough. Lots of INTJs do computer programming for work. I do, and have. It’s fun, but there are some definite traps, as I wrote about at that link.
Still, this is your journey, and why not see how it goes. Here are a couple of paths to try, along with some other notes.
Path 1: Code-modifier to Coder
If you are interested in programming in general, I recommend starting by throwing out first principles and just fixing or modifying someone’s code. Here’s one for you: Give this super old-school TCL program a shot.
- First, see if you can get the program running on your system of choice. You should see a GUI with two buttons.
- Change the file manager from Thunar to whatever file manager is running on your system.
- Can you swap the two buttons?
- Can you make it so F1 opens the “About” dialog instead of F2?
- Can you increment the version number?
- Can you add a third button that does something else?
- Looking at the app, how could it be molded to be useful to you, personally?
See if you feel motivated to make some changes from that starting point.
Then, consider: How else might you develop in this code-modifier role? Can you try modding a video game? Modding a PHP website template?
Path 2: Fake-coder to Coder
We can leverage highly abstract templating languages to learn how to code. I did this by learning Textpattern years ago and I still think it’s a great way to learn how to code. Textpattern uses “TXP tags” instead of a normal programming language. TXP tags are easier to work with than PHP, and as you start to get comfortable with them, you can start to throw in PHP whenever you like. The tags help you get immediate, programmatic results fast. The better I got at TXP, the more effective I became as a coder.
I started with TXP by modifying already-created TXP code to create the outcomes I wanted for my own code.
Meta-path: Embrace the Old and Powerful
Lots of INTJs lose motivation when they are confronted by new and shiny stuff. I mean, we’re the ones who go around defending the Stoics, and other old dead smart people, right? So consider: There’s a reason why I’m not telling you to download the newest, shiniest IDE and the newest version of the coolest programming language. Try out an underdog. Try something old. You might find it lowers the pressure and you feel less inclined to give up. In addition to TK, you might also want to try something like FreeBASIC which is actually really, really impressive for a BASIC variant, and gets a lot of praise for its efficiency, execution speed, and flexibility. Or maybe you used calculators in school, and want to keep programming on a calculator for now. Great! Whatever feels good.
These are things that will probably get you in trouble:
- Relying on tutorials. I recommend that all INTJs start with their own project rather than a tutorial project. Start with the “MVP” (minimum viable product) version, with very few features. Then build up from there. A good way to get frustrated is to spend hours on someone else’s book full of tutorials, and then realize you are bored to death with the “really simple application” you’re building.
- Over-optimizing your choice of language. “Does it do double, triple, quadruple duty? Can I use it to make iOS and Android apps? And desktop apps as well? How soon will it go obsolete? Does anyone recommend against it?” Tempting questions for the researcher’s mind, but wow, those can paralyze you within minutes. My advice is to start with whatever works and learn that thing so well that you just dominate. Before teaching Photoshop professionally (this was years ago), I used GIMP for little website graphics projects for years and learned about color modes, pixel-level operations, histograms, etc. By the time I picked up Photoshop, I was able to dive right in because I understood every underlying principle.
- Imagining yourself defending your choice of language, then asking “can I defend my choice?” Recipe for disaster, IMO.
- Starting huge projects. This falls under “doing” and “making”, and the typical INTJ skills are in the thinking arena. Sure, like everybody else we want to have a concrete impact on the world, but huge maker-projects are—and it’s hard for those INTJ egos to admit—just hard for us. I have this INTJ friend who curses at his dog about 10x more often when he is making things. The other day he called his dog a “dumba**” and I thought, “I wonder what he’s making?” You see what I mean? The pressure mounts. So start with little utilities. “Can I make this app open a folder in my favorite file manager?” “Can I make this web app show how much hard disk space is left on the server?” Add little features from there. If you want to think like a big-picture designer and create the master program, you’d better have a lot of those utilities under your belt or you’d better be delegating lots of the coding.
- Ignorance of meta-patterns. If you start to stress-eat and curse at your dog, or at other people, while you’re coding, or if you keep getting into internet arguments, pay attention. Your mind is trying to give you a psychology lesson. Take breaks, allow yourself to do this as a hobby only, and keep the pressure off. Keep analyzing, try not to become a stress case.
Good luck, and let me know how it goes & what you’re learning. Email’s in the sidebar.