How do I know what to do? Where do you find this information? Why do I act like a know it all?
These are questions I sometimes get asked at work that I don't have a definite answer to. (Except the last one though. I'm the humblest person. Ever.) So I took the time to think about it so I could have a better answer the next time I'm asked. And like the lazy dude that I am, lead them to this blog post for answers they be a-searchin' fer, no matter if you're a programmer or not. So I generalized it all for y'all. I'm probably just being Captain Obvious here but for the sake of having it laid out in a blog post, here it is.
Stock knowledge
A mind, once expanded by a new idea, never returns to its original dimensions. ~ Oliver Wendell Holmes Sr.
It never hurts to learn something new. Learn a lot. Keep surfing. Keep reading. Of course, it's always more fun to be on 9GAG but do try to spend a good amount of time on websites relevant to your craft. Read technical reference books, not just novels. You can read books relevant to your project at the moment or you can just read to add to your stock knowledge.
Expanding your stock knowledge is essential because this is the hat where you will be pulling out rabbits of immediately. You may not always remember everything at the moment you need to but it will come to you. You can use an architecture or design from one concept and try to apply it to solve your current problem. It's like filling up your water tank when you only need an exact drop at a time. Reading a lot will pay off. Someday.
Google is my bestfriend
When it reaches a point where my stock knowledge doesn't help me (which is often because I don't know that much about my current project), Google is my bestfriend. Specific to my craft, it almost always leads me to StackOverflow.com where programmers throw questions around and everybody contributes to it. I'm sure there's a site like that for the industry you are in. Unless of course you're the only one in your field then you'll have to build that yourself.
Kidding aside, I don't think I would have made a decent developer if Google (or a decent search engine) was not around. Check out these Google Search tips & tricks, and more advanced tips to find out how to fine tune your search results for that very specific research (or stalking) scavenger hunt.
Method to the madness: connect the dots
When Google fails me as a friend because it doesn't get me what I need, it's time to use what I learned back in grade school: connecting the dots. From the basic drawing exercise in kindergarten to what you do in solving early mathematic problems in grade school. You have a problem, you have given, you solve for X.
It's an oversimplification of problem solving but it's basically like that most of the time anyway. You always solve for X. So you do a gap analysis between what you know and what you need to achieve. When you know what the gap is, you draw the line (or build the bridge) to get to what you need to know. Let me jot it down in steps for you:
- Know the problem
- Understand the problem
- Figure out what you know
- Figure out what you need to know
- Fill the gap between step 3 and step 4
- Profit
Sometimes, big problems can be so overwhelming with the complexity or just the sheer magnitude of it but they're basically the same. Solve for X and this approach has worked for me so far. Step 2 is very important. Some of us don't understand the real problem and will become fixated on a tangential issue, missing the point instead. If you can't figure out 3 or 4, reuse the whole process recursively into those.
You see, this is where those complicated Math problems come in. Solving for differentials, integrals, or X isn't useless, you are. You missed the point. Complex math problems teach you critical analysis skills for problem solving that you can apply in real life. You were just too fixated with the numbers and formula when all it was trying to teach is how to connect the dots (literally in graphing and figuratively). Math is love, Math is life.
If you feel stuck, approach someone. A colleague, a team leader, a manager, or a paid consultant. They'll connect the dots or build the bridge with you.
How do you approach stumbling blocks? How do you think about problems? How do you do?