Programming Advice

Learning to be calm

Mark Joslin
4 min readApr 1, 2014

The best success I’ve had in learning something fast is to walkthrough creating a new project with a tutorial / mentor / course, THEN creating a project on your own. First you get guided through it and then you do it yourself. If you just follow tutorials, you wind up just being programmed yourself! Somebody says “create a web server” and you think “ok step 1, rails new, step 2, rails..”

While creating a project of your own, you’ll be forced to answer “What now?” each step along the way. You need to learn how to organize and focus your thoughts. This will determine your ability as a programmer. Everyone is special in their own way, but your raw ability that you compete in the marketplace on is your ability to pick up a technical problem and create a solution. There are people in the company that have similar pressures on them, but you’re a programmer. If you’re able to understand the problem (which often means spending a good amount of time just thinking on the problem) and create some abstraction in your head as to how these high-level input / output processes will occur, you’re on your way.

I describe most everyday programming as plumbing and you need to learn how to plumb effectively. Don’t delude yourself with your genius block of code that you copied & pasted from stackoverflow that you know how to write code. No, you know how to hook into existing code, which is an art form in of itself. There’s many black boxes out there that magically give you an output for an input. Your function is often to utilize the best of these and construct a nice data flow between them. Your imagination is key.

Programming is a craft at that forces you to look inward. If you’re an impatient person, you might produce lots of code that forces a solution into place because you didn’t have the patience to first think upon the abstraction. If you’re a miserable person, you might find a haven in code, but it might make you more miserable as you only see the failures. If you’re a courageous person, you might imagine large, big abstractions that can hypothetically take us to the moon and back. How you perceive the world directly determines your success in programming. You need to find an inner peace if you wish to be one of the best.

I’ve found the naturals to be the introverted, analytical ones. They can critically look upon an idea and follow postulate chains effectively. Yes, the smarter the better, but don’t let that discourage you. After awhile, code becomes so easy that it just comes down to your personal discipline. Discipline yourself and you’ll rise up quickly. A mind that does not like details will either adjust or quit. It’s not a failure of the person sometimes as much as it is a failure of the system they learned to think with — something all programmers can empathize with. There’s nothing wrong — just a natural dis-synergy that probably isn’t worth resolving.

When you have to build the next cool website, you can technically architect it in infinite number of ways — you can tread familiar paths or blaze your own. You take a problem, imagine a solution, and write that solution in code. It’s your imagination that needs the most exercise here. The good ones challenge their models, the bad ones run with bad models. To get over this hump effectively, you need to always create a solution in your head, refine it, and follow it. You’ll quickly come to learn your mistakes like we all do. Whatever you do, don’t stay comfortable.

The calmer mind is going to create higher quality solutions every time. This isn’t your key to laziness and “taking your time” with everything. It’s your end of the bargain to learn how to solve technical problems with discipline and grace. It means when you have a problem in front of you, you really just think on that problem until it’s solved. If you’re switching between Facebook and code editor, you’ll never get anywhere because you’re not addressing the core problem. Worse, if you call the whole thing “stupid!” and get frustrated at the codebase, you’re allowing yourself to get distracted by your self-righteousness.

Programming will certainly affect you. On one hand, you’re bound to be a sharper thinker; on the other hand, you might find yourself becoming alarmingly cynical after a few years because you’re always dealing with failure. When you view your purpose in life, you can compartmentalize it into “Objects” and delude yourself with a level of “control” over each. Or you can see yourself as just a walking calculator that solves technical problems. This will only discourage you and drain you. Life still is.. life. It’s mysterious where we came from, why we’re here, what we’re supposed to do, and how we’ll do it all in less than a 100 years. It’s still a wonder and ought to be appreciated. Otherwise, everything becomes so mundane.

The moral of this lesson is that you need to be strong in your resolve toward your own personal happiness. Just be calm. Never take your code personally; you didn’t do anything and you aren’t a stupid idiot if you can’t figure it out. The worse you condemn yourself, the less likely you’ll ever return to the task at hand. My advice would be always stay stupid and courageous. Face the unknown. We can do some much bigger things than we’ve been doing in the past century. You can be part of that.

--

--