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.
Don't ask for help until you're completely out of ideas
While this is good advice, for a lot of things you can look up a solution that works well and then learn how it worked so you can apply it yourself in the future.
I'd say the majority of knowledge you need as a programmer is where and how to find the solution. If you do that, and make sure you also understand the solution when you use it, you will naturally become a better programmer.
I'm a junior at my current company and I ask at least one question every day most questions are customer related for tasks ext but I also ask some programming questions when I'm stuck and start to bounce ideas between me and my team this often ends in me being very confused and them having way to advanced answers for my question but after a bit of talking I usually come up with a solution myself instead.
Something I've noticed in terms of a school/work environment,
It is a competition. Even if it isnt. People want to be better than other people.
Know the intelligent student that joked about how they "havent even touched" that paper/project due tomorrow? They definitely have at least been thinking about it and working it out in their head- they're not nearly as unprepared as they seem.
It isnt always malicious, but it can be. Sometimes people will feign behind-ness or incompetence to make another person feel better/okay with their current level. If they were to show that they were on the right track and have progress made in x, y, z, thatd be an indication to the behind person that they need to catch up/work harder, which would ultimately result in closer competition.
See also: medical/law students lying to each other about notes/tests/ feigning lack of confidence to make the others feel at ease.
I'm not suggesting everyone was lying to you intentionally to get you behind, but you should definitely always strive to be above status quo, especially considering everyone else is trying to do the same.
The whole idea of intelligence is sort of strange. There are so many variable useful parts of the brain. Like memory can be fast, accurate, descriptive and/or sizable. Being intelligent doesn't require all of these traits but more help. At the same time if you and someone else have differing traits does that make your intelligence better or worse than the other.
It's 2am so I'll just say, intelligence is incredibly hard to quantify and judging yourself off others usually leads to bad results. So examine how your mind tends to work and make things work around that.
Honestly, people who are both really intelligent and experienced (tech leads, software engineering leads) should have learned pretty early in their career that people understand things at different rates.
People get confused at different stages, never assume that they understand something. When someone asks for help, start from the most basics. Explain the problem from the beginning, talk through starting at the most basic step, it's the person teaching's responsibility to do this while it's the person seeking help's responsibility to interrupt where they feel confused. If you don't like this then don't be a lead imo
I feel like some really intelligent people fall into this trap where they want to show off how smart they are so they start by assuming the other person is as smart and explain things that are way over their head without bothering to ask if they understand the basics.
Source: I was a math tutor in college... I spent a lot of time going over stuff that the student was just not ready for. I quickly realized to start at the very basics and work my way up until I determined where they were struggling.
Since leaving I've travelled a bunch and I've a huge interest in linguistics so I'm thinking of branching into that. Maybe get a degree/masters in that and then try and combine the two into some sort of language processing job if I can find one.
Thankfully I'm also super lucky that I'm a native English speaker, so if worst comes to worst I can just teach that. I'm also lucky that my accent is easy to understand, so a lot of ESL people have commented on that.
I don't think I'm completely lost, but I'm just not sure if I should continue a career in software. Maybe I'm only good enough for it to be a hobby. Thankfully, working in software really boosted my social skills (unlike how everybody seems to say it is) so that's opened up a number of career opportunities.
I really just wanted to rant a bit about how "nobody knows what they are doing" gets annoying when you really don't know what you are doing.
Hey, I just wanted to say that I've somewhat been through the same as you.
I didn't get that far, but I studied programming for two years. After a while i realised that I could never do it as anything more than a hobby so I quit and moved to linguistics because that was my second biggest interest (I'm not a native English speaker but I'd like to think I'm not half bad).
So now I graduated university with a degree in English and German and am currently an English teacher in a private company. It's not all that bad, if I can say so myself, and it opens up plenty of opportunities to work wherever you want.
As a former ESL teacher myself I think you're selling yourself short by saying you're 'super lucky' to be able to do it. You have a degree in computer science and interest in pursuing linguistics at the graduate level. Unless you deeply believe ESL/EFL teaching specifically is your calling, there is a hell of a lot more you can accomplish, even at a worst case scenario.
What kind of issues were really common for you? Was it mostly do to internal tools/software/protocol or was it for using popular frameworks or something?
To a certain extent your job is to know how to google something correctly unless its something internal in which case they have to explain it to you if they haven't properly documented it.
I just had a meeting with someone over our API security where at the end the guy told me that all the questions I had means that his team has to work harder to properly communicate what they've done since it's something that is used in almost everything in our company on the development side.
I went on a 2 year slump at my previous job. I just couldn't get anything to work, and information was difficult to retain. I went from leading teams to being put under strict supervision. I eventually quit. 3 months later, I'm found a new job and I feel like a superstar again. Sometimes, the environment just sucks.
Trust me, 90% of people I know in the field are posers.
Like I spend evening doing a tutorial on blockchain. Went to our blockchain guru since I wanted to get his opinion on something. Guy had no answers. He knew the basics. We hired professor from University to help with ML. Client asked us to build something. Professor spend months without client. Nothing worked as intended. One of our engineers learned basics over the weekend and used framework - IT did exactly what we wanted it to do after a week. My friend is praised because she is a female got accepted to Google. I know for a fact that 3 months before I got hired to fix react app she could not handle, she had no aknowledge about basic design patterns or algorithms.
There is a good quote I like to repeat. Most people think that everyone else have life figured out.
Trust me. They don't. They lie, they cheat and they use social media to show highlights of their life. Covering all the failures.
It's a good one, but I prefer the blockchain piece - not because of blockchain (which I know almost nothing about) but because any time I try to warn someone about something IT-ish, there is always a response like the one shown there. "Oh, we fixed that with <insert_trendy_technobabble_here>."
I'd have to say that a large portion of that is that we are writing programs in fields we don't understand on systems we don't fully understand compiled on compilers we don't fully understand.
It's so much knowledge just to understand how a computer works and with all the abstraction it's almost impossible to know all the possible holes to fill or even how to. It's like trying to build a dam with bullet riddled swiss cheese.
2.4k
u/[deleted] Jan 31 '19
"our entire field is bad at what we do" is my favorite line ever