back
75 comments
I've had to externalize this behavior since having children: "I don't know. But we can look it up."

I do this all the time anyway-- need to decompose an audio sample? I have no clue, but I can read about it ... oh, look FFT. Calculate a loan schedule? Think I was curious about that several years back ... Google amortization ... Got it.

My children think I'm a genius (I have a 17yo that still thinks her dad is the smartest human on the planet) simply because A) I will deduce an answer aloud, B) admit that it's a guess but plausible, C) research when we get home, and D) summarize the findings (including my mistakes in deduction) in language they can understand. And I learn something along the way.

Can't learn past 30? Bullshit. I learn every day and plan to for the remainder of my life.

It sounds like you are already doing this, but now make sure that you not only answer your kids' questions, but more importantly teach them your A,B,C,D research/teaching steps! Give a man a fish, ... :)
I experienced this over the past two weeks when I was staying up 'til 4 AM trying to get this project to work: https://github.com/jlongster/dcpu-lisp

I knew it was possible because I could compile the program in my head, but automating that in to a program is a whole different task. Still, the concept was easy to prove. It was all in the details, and I constantly was reminded that I had no idea what I was doing. I've never written assembly before, and barely done any compiler work. Still, over 10 painful nights, it all came together.

What a rush.

> Still, over 10 painful nights, it all came together. > What a rush.

This. This is exactly why I'll spend 10 painful nights. For that moment of exhilaration. It's almost like a masochistic adrenaline rush.

Constantly feeling like you have no idea what you're doing can be a good thing.

It means you're constantly putting yourself in position to grow. It means you're challenging yourself instead of simply falling into a routine. After a while, it means you know what you're doing in a lot of areas that you wouldn't have if you'd just stuck to what you know -- so even if you don't know what you're doing in this specific way, you know what you're doing in a lot of supporting areas. Because of all the figuring out you've done in the past, you're able to figure it out this time too.

(This advice is remarkably applicable to parenting, as well.)

I know exactly what you mean. When I started in my new job (Tier 2 system admin), everyone around me was so advanced that I felt completely out of my league for months.

That feeling is beginning to abate just now, almost a year later.

It kind of sucks while you're in the grip of it - and no amount of ensuring myself "Damnit, Karunamon, you like learning, stop herping the derp" silenced that little niggling voice that says "Oh god what have I gotten myself into here, I'm so outclassed it's sad"

I'm no stranger to this feeling, however I always seem to figure it out. It's one of the traits that makes someone good a programming, there can't always be a code sample or someone there to show you how and you just have to do it anyway.

+1 on the parenting

Here's the secret which has brought me to some pretty interesting places over the last 10 years - "Go for the thing you find most interesting, irrespective of how hard it is".

What does this mean? I'm about to start a job optimizing and developing algorithms for high performance scientific computing, over 1000s of CPUs and terabytes of memory. I have NO IDEA how I'm going to do this exactly, but I also have complete faith that I'll figure it out and will do it well, because it's a really interesting problem, and figuring stuff out is what I do. It will make me a better programmer, better equipped to do other things I want to do, and better prepared for similar work in the future.

If something is easy, it's probably going to become boring. Find something hard and beat it into oblivion.

The smartest developers/people I know don't have to prove they're the smartest at every step.

They have the comfort to say "I don't know" and "You could be right".

Most importantly, they have an attitude of "I can probably figure something out that will work".

They rarely say something is not possible. They rarely say no outright.

They more often than not will say "Let me think about it and get back to you." They understand how delicate an idea is and how valuable it could be.

Being a problem solver every day, coming across new situations and getting better at it means this mindset is a normal, expected thing.

Problem solving is an optimistic skill, not pessimistic.

Problem solvers live in possibility, tempered by healthy, but not poisoning doubt.

What does this leave?

Those who are so full of their own doubts that they start to believe in the insurmountability of their doubts. They turn, like evangelists to spread their viewpoint and validate their insecurity and bring others down with their doubts.

I call them, the the doubt worshippers. Blind doubt is as painful as blind faith to me; especially where creativity and innovation are expected to occur.

Starting with a seed of believing in logical thought and debate, doubters now feed the monster of doubt, and live and see life through doubts, first, instead of possibilities tempered by doubts.

Doubters look at everything with what they believe to be a critical eye. Rather, it is one of doubt seeking to destroy, not tempering possibility so it may have a chance at succeeding.

Doubters love to play the position of contrarian, having something grand to say that's generally the opposite of whatever is being said, just to fuel their doubt muscle. Doubters are generally risk averse. Doubters generally avoid pushing their limits and growing. Yet, they're so smart and logical and skeptical.

Still, great things only seem to get accomplished in the realm of possibility and creativity.

Exclusive doubters kill creativity and innovation.

I generally avoid self-doubting doubters. If a scoffing, smarmy, self-absorbed know it all can't openly entertain an opinion that isn't theirs, isn't really as open of a mind as advertised. Logic is a great tool, but it is not where creativity resides. Doubt and logic can be used to fuel ignorant, stupid, petty and fanatic ends as easy as anything.

There's too many folks who try to fake it until they make it. They are driven by managing their insecurities instead of building their strengths. Unfortunately you can't fake being able to learn the details, see how the dots could connect and making a new reality that actually works with them.

Find and cherish those who know the balance of living in creative and innovative possibility and letting the doubts be a healthy, but not ruling force.

0.05

> The doubt worshippers. Starting with a seed of believing in logical thought and debate, they now live and see life through doubts, first, instead of possibilities tempered by doubts. They look at everything with what they believe to be a critical eye, but it is one of doubt, and not possibility. Great things only get accomplished in the realm of possibility and creativity.

I'm sure I'm not the only one, but I can't stand these people. I've worked with one directly. The most frustrating part of the experience is even when you prove time and time again, that the goals they are so pessimistic about are achievable, they do not alter their outlook on future goals! It's as if their only comfort is in predicting failure and then passively ensuring it.

> The smartest developers/people I know don't have to prove they're the smartest at every step. They have the comfort to say "I don't know" and "You could be right". Most importantly, they have an attitude of "I can probably figure something out that will work". They rarely say something is not possible. They rarely say no outright.

Thank you for this. Most people I've interacted with throughout my life are afraid to say "I don't know", likely out of fear that they will seem stupid or inferior.

When you admit you don't know something, that's when you start learning. It's simply impossible to learn if you think you already know everything.

Such people are useful if you can stand them. Avoid them while you work out your idea, but let them tear it apart after you've developed it but before you commit serious resources to implementing it. It can only make your plan stronger.
As a smart guy once said "Logic can get you from A to B. Imagination can get you anywhere"

I think that sums up your post.

I don't think I've ever started a project that I knew how to do backward and front. Every thing I know about iOS programming comes from "oh crap, a client wants this, how do I do it?". Although, it makes every past project look worse and worse every time I start a new one.

Google it 'til you make it.

It depends on the technology of course but pretty much as fast as most of them move, most projects are going to involve new technology and a rapid learning curve to work with it. That being said, I think I am cut from a different cloth than a lot of developers, there are a lot of technologies that I do not know and have to pick up quickly but the part that I differ on is it seems that there are a lot of developers that scramble to adapt, where I never feel the pressure of that scramble. I can't explain it, but things just kind of fall into place for me. For any of you old enough to know the reference, I am kind of a Ferris Bueller like figure, where things appear to come easy for me. This can drive people crazy at times, my wife included because it appears that things are easy for me. While I do concern myself with adapting, I just don't stress about it, as I am confident in my ability to adapt. I personally don't feel that things are easy for me, rather I feel that things align for me a lot of times and I capitalize on that momentum. I never read stories from developers that have similar experiences, so I often wonder if my experience is an anomaly.
This is the same thought I had after reading Justin Kan's post (http://justinkan.com/what-good-is-experience). I was surprised by how much emphasis Justin placed on the importance of experience. I feel one of the best traits of an entrepreneur is the ability to learn quickly and figure things out on the fly.
Learn quickly and figure out things on the fly... for ten years. That's experience. :-)

That kind of experience ends up giving you the confidence to attempt hard things that you would never have dreamed you were capable of. But - and this was the point of the OP for me - it always feels like you are faking it and have no idea what you are doing, every single time.

In fact, if it didn't feel that way, then that would probably mean you stopped trying, stopped growing and doing new things and have actually stagnated in a rut.

Having experience doesn't preclude being able to learn quickly and figure things out on the fly. There's a stigma often associated with experienced people that they become slow, complacent, and uncreative. If these traits are seen in more experienced people, I would be willing to bet that it is more of a correlation based on other things that are common in experienced people (having a family, already being wealthy, etc.)
I think it also helps to have (or develop) a high tolerance for ambiguity. You don't really know where you're going, and something may happen tomorrow that upends your business model. You have to be okay with that. I think experience with that process makes it a bit easier to focus on what you can control.
Dogen, the Japanese Zen philosopher has said (in the context of study and practice): "For example, when you sail out in a boat to the middle of an ocean where no land is in sight, and view the four directions, the ocean looks circular, and does not look any other way. But the ocean is neither round or square; its features are infinite in variety. It is like a palace. It is like a jewel. It only looks circular as far as you can see at that time. All things are like this." (quoted from this translation - http://genjokoan.com/)

I know a translator who once had a conversation with another, 70 years old, translator, my friend complained how with each book she translates her perception of language becomes murkier, the elderly translator replied, "you still have it good, I have to check the meaning of 'table' in the dictionary."

My point: with experience things become more complex, not vice versa. Certainty is usually a mark of naivety.

I assume, perhaps wrongly, that there are more efficient methods of becoming an entrepreneur than pure trial-and-error and plugging oneself into HackerNews, Quora, and irc channels, and reading books. People always ask, where do I begin? What's the most efficient way of doing X?

I'd love to see a mind map, or even a basic checklist, of all the skills you need in a typical startup and the different options for gaining that skill. Maybe I'm being too picky and demanding, but knowing what you know and what you don't know would be a nice efficient alternative to "I don't know what the heck I'm doing. Grit FTW!"

In my experience, I think you are assuming wrongly. The efficiency comes from speed, and nothing else in my opinion. It could be because I am too dumb to grasp theory, and can not learn without doing and failing/succeeding and then subsequently learning from the outcomes (be it good or bad), but the most efficient way is to speed up the doing, speed up the getting to an outcome, speeding up the learning , and then speeding up the full cycle.
What makes it a business is that the skills and problems are more unnamed than not. If it was really that well-understood, someone would be trying to automate the heck out of it. The business only has to get far enough to deliver a product or service; its solutions are basically guaranteed to be 80% - instead of telepathy we have cell phones, instead of teleportation we have vehicles. Et cetera.

Thus, grit. The combination of building from what you already understand, and being willing to experiment with what you have, is usually enough to make iterative progress, and occasionally it results in an unexpected innovation.

I definitely agree with the end of this. There's been many times where I've come up against something I need to learn - a new technology, technique, library integration, and wondered how I could figure it out.

Then I remember, years ago, thinking the same thing about the things I'm doing now. How I thought Python looked fancy and confusing, how configuring servers was arcane, and how I took hours to make a page POST a value to another page. And update a database (with no range checking, so that went into negatives, but it _worked_).

Now I can reasonably assume that given enough effort, I can figure almost anything out.

I've found that most people don't know what they are doing. Which as you pointed out is fine. But what I find very alarming is that most people don't ever take the time to mend their ignorance.

I've also found that since people rarely know why they are doing... The ones that can bullshit the best are viewed as more competent. These are the worst perpetrators of the ignorance issue. These are the people that become the token useless over compensated middle mananger.

Great post dude and i think i can relate to many of the situations you found yourself in. Hell every time i finish a module or feature on my current project i am always like ... What the hell ... It actually works. I do this because i remember not 5hrs or a day ago, i had no freaking idea what i was doing, the VIM screen was empty and had no idea where to start or how to solve what i wanted to do (specially if its a new language, new team or new technology your working with). Team always tells me to sit down and get back to work (jokingly) after i joyously get up and do fist pumps but i get happy when i have no experience in something but manage to stumble over things until i get it to work, cause the joy is not simply the thing works, its that i feel having no experience and getting something working no matter what the topic of concern is, is a big deal, whether its programming, math or traveling the world by your self when you have never left the house. It is a big deal ...

Right now though, i am working on a startup, just small, making some revenue to live of but finding it tough, very very tough, competition is aplenty, constant new technical problems ,design choices, no idea how to market cause just no experience (so far its been organic but we need a faster rate of growth)and i can honestly say this feels like it could be a particular case where i might not be able to make it out with a smile on my face. In all the other problems i had no experience with, i got this voice in my head that says, mate... you will do this no problems, you will get the problem solved but for this startup the voice is there but just not as strong cause its been told to shutup in more then one instance when things didn't turn out as planned. However, since I know in the past when i kept going things turned out alright I just keep going.

For a startup, there are just so many fronts that need some experience and as far as i can think back , I only ever had to face a single topic at a time for which I didn't have experience. Some examples have been when I worked on new math or programming problem or studying for any exam, solving a problem at work that is more inter personal, asking for a raise when i had never asked for one before, its all just one thing so its easier to focus all the attention on how to make that single thing work. But for a startup there are just so many fronts that experience would really help to make the event of starting a startup successful. Its painful sometimes ...

I guess this is the first step towards getting more experience :) and hey .. its fun

Some things you can figure it out as you are doing. Some times I think being in software development is cheating as I can do that in many cases.

But in most cases, I think you can do great harm and likely waste a lot of time (but probably learn a lot!) if you just go along blindly without having some clue of what you are doing. To take an extreme example, you really don't want to be in the air as your pilot is reading a "Flying airplanes for dummies" book.

And he uses being in a class as an example! If you knew what you were doing already, you wouldn't need to be taking the class!

Having said that, I also believe that much of the time, no amount of preparation can prepare you for what you need to do. You still need to figure out many things on the fly, and frequently, you don't learn those things until you actually do them.

Ben Pieratt, CEO of Svpply, shared a similar sentiment in this great blog post last year: http://pieratt.tumblr.com/post/5450242474/my-job-pt-1-i-have...
Reminds me of a theme that many historical icons embodied....a sense of self-education. But on a daily basis.

Ben Franklin was a self taught printer, scientist, etc...who went on to become world-renowned for each profession. He had no formal education or schooling either.

Name the last self-taught great scientist or mathematician, and the year of their birth.
It's all about perspective. As a lifelong learner, you're gonna have the highs of discovering an insight and the lows of realizing your ignorance. If you have the right mindset and character, then it's a challenge and up to you to deal with those highs and lows properly. Celebrate those wins, use that momentum and motivate yourself with those lows. Personally, what gives me the most problems is when there is too much of a gap in time or other resources and I lose that momentum. Getting over that inertia and rediscovering that spark for that subject or project can be difficult. Once I find it though, there's no stopping me!
It baffles me that people who seem to pay careful attention to the appearance of their websites are so careless with their fonts:

https://www.dropbox.com/s/3mi5ecf8xguccl4/20120424-025233-ni...

The allure of web fonts becomes stronger and stronger as availability and implementations improve, but people need to be careful: there are very few choises that work well everywhere.

Unfortunately, Windows' hideous rendering of web fonts in general is nothing new. I'm not sure why it's such a tricky problem, as even Linux does a better job.
Nate, the thing is, you do know what you're doing. You'd be having no fun if you were just doing things you already knew how to accomplish. You are intentionally choosing to do things where you know you will have to learn in order to achieve them. It's not that you are clueless, you just know how to achieve things you haven't already learned how to do.

You know how to learn. You know how and more importantly when to search on Google (which a shocking number of people don't). You know how to try things.

I wouldn't call that having no idea.

I always get stuck on new things and just get absolutely frustrated over things that i have no idea what i'm doing. I find taking a break and then coming back to it usually helps. The funny thing is once you figure it out you cant ever see how it didnt click in the first place
It took about 12 floppy disks. :)

Java is about four times that size (for a minimal distribution) nowadays.

Only because we've decided as a profession that optimizing for binary size is low priority when compared to speed of development, maintainability, and framework's features, among others.
There's no harm in admitting that you don't know what you're doing, heck it's a healthy attitude to take. It's when you head down the other path and don't acknowledge you're ineptitude or need for education/learning that things start to go wrong.
This is why one of the most important skills I look for in dev-types is their ability to learn and figure s#$t out. It's not only what you know today, but that you don't know what you don't know tomorrow, but you've gotta figure it out.
A new game for HN commenters: “Guess that reference”. A poster gives a relevant but maybe slightly obscure quote from literature and others try to guess where it's from. Here's mine:

“Do any of us know what we're doing? If we did, would we ever do it?”

Nate - did you talk about startups at UIUC circa 2010? If so, you (inadvertently) introduced me to the world of startups as well as the YC community, and for that, I am grateful. Life changing stuff - you have no idea.
So true. I have never, ever taken a job I knew how to do (fully). I blagged it, and learned it all on the job.
Fake it 'til you make it baby!
Not really. In that situation you're telling people you know how to do something you don't. In this situation you're telling people you have no idea but can probably figure it out.
I've lost count of the number of 22-year-old "seniors" I've met. It's a red flag word now, for title inflation.
This is inspiring read!
Power to the creators!
The optimistic viewpoint going into the unknown, i.e, the confidence that the answer is out there somewhere and you will find it, is one of the, if not the, most important success factors in any sort of greenfield venture.

I'm an older guy and even years ago when looking back, things that I just assumed would work out, even though an objective observer would perhaps disagree, always seemed to have more or less unfolded according to plan. It is almost as if life is much like some evil jungle vine that wraps and immobilizes one the more you struggle against it.

Here is one personal example - I was born into a family that valued education, it was always assumed that the kids were going to college - this was a little before the now current assumption that everyone goes to college.

Well, I hated school from junior high onward with an abiding passion and finally quit at the first available opportunity at the beginning of 10th grade. But it never occurred to me that I wouldn't go to college and I did, pretty much on schedule w/my peers (and I paid for it..) getting a BS in physics, MS in Computational Fluids/Mech Engrg.

Again, it just never really occurred to me that I wouldn't go to college as I was bailing from high school, kind of weird in retrospect. But I never even slightly doubted the outcomes - not in a defiant way, either, just a low key assumption.

And again, looking back, I can find many other examples my life or other peoples lives that follow this pattern.

I don't know if there is a term for this mindset, but I see allusions to it both in the OP and in many of the other comments here.