Comments [0]
Getting yourself to the next level through pattern recognition
When I was studying neuroscience back at Brandeis, I remembered professors referring to the brain as simply a great pattern recognition system. I didn't quite understand what they meant at the time but it piqued my interest in patterns and how humans notice them and how their behavior changes because of it.
The past year has been constant action. No time to slow down and think. I seemed to only have time to recognize basic inefficiencies and address them with incremental improvements. But it wasn't until Justin forced me to slow down recently and think about the code I was writing that I started to notice that I was duplicating work and that I wasting time on everyday tasks. The more I looked, the more I saw pattern after repetitive pattern. Each one a small variant different from the others such that I didn't notice they were even there when moving at a quick pace. It wasn't until I slowed down to think deeply that I saw them so clearly. Paul Graham, Eric Ries and others in silicon valley advocate doing things as fast as possible. "Fail early, fail often" they say. The truth is though, to actually implement this effectively, you can't simply speedily hack out one site after the other, with no improvement in the speed or quality of the products you make. If you do you're really only shooting yourself in the foot. Your rate of churn will remain constant. After doing a lot, I realize busyness gets you nowhere. You can sit here and spend all your time shining shoes or cutting lawns or working cafes, but if you don't get the "big picture," or spot opportunities, you'll be doing that for the rest of your life. Don't get me wrong, I'm a big believer in the value of good work ethic, but it's like the old Chinese saying, if you're pulling a cart somewhere, you need to look up every now and again to make sure you're going the right direction. Which bring me back to patterns. Oftentimes, we don't invest time in stepping back and noticing the overall repetitiveness of our actions. So much so that we focus only on getting things done as quickly as possible and end up with little improvement in our rate of getting things done over time. The only gain we get is from our hands getting faster at typing, or some such basic human skill (which is ultimately a linear improvement to efficiency). I'll even make the bolder assertion that recognizing patterns is the basis of "awareness" that supposedly distinguishes us from more primitive animals. Humans recognizing patterns have noticed a need for symbolic abstraction of physical objects and concepts (language), have recognized that you don't need to use apples and oranges to add numbers (just use math) or that our reality is only defined by our sensations. Pattern recognition got us to where we are now and all that we know. Noticing repetitions, on all different levels of abstraction and seeing ways to automate repetitive tasks is critical to achieving ambitious goals. You need to build tools for yourself, both with your hands and in your mind, to get you to where you want to go. That's the key to exponential improvement.Comments [0]
One role at a time (effective self management)
These thoughts stem from a conversation with my business partner, Justin, who made me realize this concept in self management I hadn't considered before. I'd like to hear your thoughts on this theory as well. When you're managed by a supervisor, the divisions of labor are quite clear. With the case of a manager and a programmer, one person worries about timelines, business objectives etc. while the other person thinks about implementation. These divisions become murky however when you work alone. When you are both manager and implementer, you're forced to take on both roles. In my opinion, the key to successfully managing yourself lies in taking on ONLY one role at a time. While implementing, don't begin brainstorming or rethinking ideas. Keep business objectives in mind while implementing, but the management phase should have turned most of these business objectives into actions. If you don't this, you may end up in the constant cycle of second guessing yourself while coding, wasting time context switching and not getting anything done. Instead, spend time before you begin implementing playing the role of manager and spec'ing what you're building. Implemention should mainly be about how to technically get from point A to point B. Assuming a single role at a time is critical in not just programming but in any discipline with diverse tasks. If you organize events, you must separate the time you spend actively networking and the time you spend figuring out logistics for venue, time and other details. Treat yourself as multiple people. Solidify ideas at an administrative level, and change them only if there's a glaringly obvious reason during implementation. It's important to note here that being agile with this methodology of one role at a time means deciding on shorter term goals and meeting them quickly during implementation stage. This way, you're able to get to the next administrative cycle fast enough to be adaptive. There will even be times when you need to play multiple roles simultaneously to make a rapid change. Just keep in mind it wouldn't be effective in the long term. In my own life, I've started ensuring that I play one manageable role at a time and I've noticed that it's helped me stay on task enormously and finish things.The ability to delegate within oneself is critical for getting things done and eventually for figuring out how to delegate tasks to others.Comments [1]




