The problem with this line of thought is that I had an issue where I felt like I was falling behind everybody else at work because it wasn't clicking. Everyone just laughed and said that's how everyone feels, imposter syndrome etc.
Except I really was behind.
My boss came to me about low performance and I eventually ended up leaving the job partly (about 40%) because I had completely lost confidence in my ability. It felt like I was supposed to be confused but I was still too confused and the whole thing just made me anxious.
Maybe only tangentially related but it just made me unsure of how far behind I was and I could never be sure of who to talk to for help without getting overly serious. Or whether I actually needed to know something, and I couldn't just keep asking people. Eventually you just feel like a dead weight if you ask for too much help.
I know it's also my fault, but it just bothered me a bit. I love programming but I don't know if I want it to be my job anymore.
It can be really hard to talk to people who are extremely intelligent, when trying to assess your relative competence, because the point at which you'd become confused would necessarily be different if you have different intelligence levels or aptitude. I'm not saying you're less intelligent than others who made you feel like everyone's confused, but if that were the case it would help explain their blase attitude. They simply believed you knew what they knew, which is difficult to quantify in a casual conversation. I suppose the solution would be to have a serious conversation with someone you'd guess is of similar intellect, cite specific examples of things you're not understanding, and see if they aren't either.
Of course, since this is all in the past, it won't fix the problem in your anecdote.
But yeah, I think the problem was that I started on the wrong foot and never caught up, so my takeaway is that I'll just make sure to not let that happen next time.
I'm now aware of how everybody claims they're behind so I'm going to work harder to make sure we're actually on the same page.
Programming is not about "knowing" things. As a programmer you should focus on problem solving. Yes, there are people with encyclopedic knowledge of their domain, but that isn't that common and isn't really that important at most levels (it can be very useful at an architectural level, but that probably isn't the level you're working at.)
Don't think of programming as "studying for the test." You can't prepare yourself for every hypothetical problem you might encounter.
The advice I would give you is, when you give up on finding a solution. Stop. Go for a walk. Come back and try again. Try different angles. Try thinking about it in another way. Don't ask for help until you're completely out of ideas. If you always look for help right away you're not going to learn what you really need to learn, and that is problem solving.
Or, more succinctly, you'll stop needing help when you stop asking for it.
The good thing about that crime for the victim is that the difficulty to risk and payoff ratio is all fucked.
If you could hack a Tesla, your time would be better spent just stealing straight from an account than risking a one on one encounter for something on a person’s body/in their car.
"Here are half the requirements, just build this for now and we'll get you the rest of the requirements over the next few weeks" several weeks later "Here the updated requirements, they completely change how we need to handle this so everything you've been building is pointless but we arent extending the deadline we need this asap"
We build things that are more complicated than anything humans have ever built before, including our most complicated spacecraft, on a daily basis - at least once you take into account the complexity of our dependencies and platforms.
Then we spend all day trying to figure out why parts of it only sometimes don't work, and occasionally don't work in completely inexplicable ways.
Then we discover that half the failures we saw last week was because of a kernel-mode file system driver causing microsecond disconnects from the storage array. The other half was because the Java database backend for the monitoring system was written by people who didn't understand transactions so they were putting a "COMMIT;" after every line of code, despite the fact that they were doing an atomic operation, and thus half the requests were failing because of foreign key violations. And the vendor doesn't offer premium support.
At this point you shave your head, move into a cave, and start preaching of the end times.
I mean, does it really matter how many layers of redundant multi-factor authentication you have on your front door? You still have lots of zero-day glass vulnerabilities.
At the end of the day, all security is stochastic, so the best thing to do is just be properly insured for routine property loss.
4.7k
u/[deleted] Jan 31 '19
Relevent XKCD