Ask HN: I am the dumbest person in the room. What should I do?
196 points| byrain | 11 years ago
I was hired 4 months ago to work for a quite desirable software company. On my interview and first days I was quite confident and a bit cocky I must admit. I thought I knew more that I actually did, but at the same time was aware that I was lacking specific experience needed for that particular job, but was very willing to work hard to develop myself, and actually saw that as a desirable challenge! I thought that mentoring and time was given to ramp up and learn the missing pieces. Non of that happened.
My teammates have tons of experience, and there is a clear “every man for himself” mentality. Most of them have big egos and really rotten and bitter attitudes. They are stars, they know it, and treat people who are not at the same level like idiots (like idiot me).
As a result, I stress through the work days trying to decode what my co-workers are thinking, and trying not to say the wrong words (which keeps me silent for most of the meetings, work days and then bleeds out into my personal life). By night I have a quick dinner and bury myself in intense study. Honestly, its horrible. My self esteem plunged, I am ashamed to communicate with talk with other people. It is wearing me out. I question myself several times per day if this is really worth it.
Questions:
1. I feel I handled this wrongly, and started with too much confidence. If I am the least knowledgeable person, and a co-worker ignores, despises and almost makes fun of me for your lack of experience, how should I act in order to maintain my dignity but also be humble enough to acknowledge the co-worker's knowledge?
2. Is it normal to be hired as a junior and just being thrown to the lions, with no help or time to ramp up?
3. Do all star/ninja/rock-star software developers have rotten attitudes?
[+] [-] sbjustin|11 years ago|reply
You can learn anywhere, why work with a bunch of people who are not going to build you up and encourage you to improve yourself and by extension, the team/project. What are you really getting from these guys if it's "every man for himself" anyways?
1. Forget that, be confident. Just focus on improving yourself and on things that can make you better at your job.
2. No. I expect my junior guys to learn on their own but am always willing to step in and provide guidance.
3. There can be some rough people in IT. If they're rotten they are probably less confident than you think they are, probably more so than you, but don't want you to realize it.
Lastly, I can tell you from experience, if you don't think it's worth it, it's not. There are fun jobs out there, go and get one.
[+] [-] sethetter|11 years ago|reply
On top of all that, the "every man for themselves" mentality is a way to make sure that developers look out for themselves instead of the company as a whole. This is of no benefit to the company, and the leadership should recognize this and act accordingly.
What good can come from behavior that ensures other teammates don't improve at the rates they should be?
I heard a quote recently:
"What if we teach them everything and they leave?" "What if we don't, and they stay?"
[+] [-] cwt|11 years ago|reply
[+] [-] amalag|11 years ago|reply
[+] [-] FLUX-YOU|11 years ago|reply
[+] [-] informatimago|11 years ago|reply
Assumedly every human being, given enough time, would be able to solve the same set of problems.
The thing is that we only have 80 years to solve them! And also, there are more problems to be solved than anybody can in this small time frame, even with a IQ of 1000 (speed of processing).
Now what does that mean for the slower minds, in a competitive environment?
You can still provide useful output, by restricting yourself to a small set of problems, and by employing more persistance and constance on solving a choosen problem.
The faster guys will often grow bored with a single problem and will have to skip from one problem to another (ADHD, etc). This is your opportunity: stay on the same problem longer than they can, and you will find solutions while they're busy approaching multiple other problems.
Yes, perhaps over a given period of time, they will be able to find ten solutions to ten different problems, but this doesn't mean that you cannot provide one solution to one problem, that they will have not approached and found.
People who are really great and competent at what they do, are usually very able and willing to teach (or at least give hints) to juniors and newbies, as long as you show signs of personnal studying and researching your problems. They don't like to spoon-feed lazy newbies. In general, you will also find this attitude on the Internet (irc, newsgroups, web forums), where you will find a lot of help, as long as you start by trying solving your own problems yourself, and are able to explain what you tried and where you're stuck.
If your professionnal environment doesn't allow you to learn with your colleagues, then you may consider changing it, because even if you were yourself a rock-star developer, you would still have a lot to learn.
[+] [-] picks_at_nits|11 years ago|reply
In the immortal words of Richard Karn: “I don’t think so, Tim.”
There are lots of things that are out of scope for a given person at a given time, and no amount of study will make them tractable.
The biggest issue with respect to the OP’s Impostor Syndrome is that very few of those things are relevant to the typical work of a programmer in a startup.
[+] [-] lamuerteflaca|11 years ago|reply
Sure, raw learning ability, or memorization speed which is what you are talking about, matters. But as long as you don't have a learning disability it pales in comparison to context. And we all have pretty much the same learning ability. Also, those people that are really smart have put in thousands of hours to acquire lots of context. The genius who can absorb new material by reading any subject in a single pass is a myth.
[+] [-] gress|11 years ago|reply
It's a mistake to assume that because someone is better than you at something, you are less intelligent. It simply doesn't follow, and as the OP is experiencing - leads to low self esteem.
Not all cultures are unhelpful and competitive. Take it for what it is - a tough culture rather than a group of unpleasant individuals.
You have little to lose by assuming that you are correct in your belief that you can learn and by being respectful but persistent in recruiting your colleagues to help with that.
[+] [-] lucb1e|11 years ago|reply
Oftentimes intelligence translates into speed: speed of understanding new concepts; speed of doing things, but far from always. In fact the latter is typically just practice, no matter how smart you are.
[+] [-] cheatsheet|11 years ago|reply
[+] [-] dsfsdfd|11 years ago|reply
This is non sense. Intelligence is not speed of processing.
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] lxfontes|11 years ago|reply
This.
Companies need a balance between 'move fast and break things' and 'keep things stable so we can make money'.
[+] [-] swayvil|11 years ago|reply
But those guys like to eat their own poo.
[+] [-] galfarragem|11 years ago|reply
[+] [-] rdlecler1|11 years ago|reply
[+] [-] jupiter909|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] Jemaclus|11 years ago|reply
My advice:
1) Shut up and listen
2) Ask them respectfully and professionally for advice when you need it
3) Shut up and listen some more
If you're an engineer, I also recommend the following:
1) Read everyone's commits, especially just before a feature launches. You'll learn their code styles and neat tricks that you never considered. If you have a question about why they did something, ask them respectfully. (e.g., "I've never seen that before. Why'd you decide to do it that way?")
2) Volunteer to be the bug fixer. When a support ticket comes in, be the first to grab it. Going in and fixing other people's bugs gives you more experience in reading new code and grokking it quickly, understanding how all the pieces of your app fit together, and everyone else will appreciate your initiative.
3) Ask your peers for code reviews every once in awhile. They will love that you respect their opinion, and they will be able to point out mistakes.
Above all, keep an open mind -- don't take any criticisms personally. They probably think you're a great person and your code sucks -- that's great! That means they can help you improve. If they think you're a shitty person, then you're in trouble... :)
Stay humble. Stay focused. Keep your eyes and ears open and learn as much as you can. When you feel like you're not learning any more or when you feel like you're actually the smartest person in the room, that's a good sign that it's time to go somewhere else.
Good luck.
[+] [-] MollyR|11 years ago|reply
I was also the dumbest person in the room for 4 years. I spent a ton of that time studying,asking questions,and playing catchup.
It eventually paid off though. Persistence!
[+] [-] lawry|11 years ago|reply
I agree, it's a good thing to be the dumbest person in the room, BUT a good engineer or developer does not only shine in the work he/she produces, but also in making sure it's clear for his/hers coworkers.
Clear and documented code beats smart code and hacks, and often you can bundle it in a library making it optional to truly understand the workings of the library to use it. (Unless performance is that important or you are doing HFT-alike things)
[+] [-] AOsborn|11 years ago|reply
Absolutely.
This is something that I cannot stress enough to junior developers that I work with.
This also applies to social and inter-personal skills as well as technical - just as you aim to continually improve your domain knowledge, there are always opportunities to identify and improve complementary skills.
If OP can determine strategies, survive and thrive in the environment described, this will be invaluable for progressing in a more accommodating workplace.
[+] [-] cJ0th|11 years ago|reply
I like that but many people get irritated and feel you're not proactive enough if you just occasionally ask questions.
[+] [-] cpfohl|11 years ago|reply
2. Sadly it's been the norm at both my jobs. It gets better after a while.
3. Yes and No. I've met some unbelievably smart people who are amazing teachers. "Rock Stars," however, are known for trashing dressing rooms. "Ninjas" are best known for backstabbing. And "stars" are divas.
[+] [-] spacemanmatt|11 years ago|reply
People who sign up for those roles get rode hard and put up wet.
[+] [-] cpfohl|11 years ago|reply
If you do decide to switch I'd make sure you're willing to stick it out a few years wherever you wind up. There's very little stigma (if any) to changing software jobs frequently, but more than one ultra-short-tenure job can look suspicious on a resume.
Assuming, however, that you want to stick it out at this "desirable" job, the above are my answers to your questions. Starting a new job is always hard. If you stick it out you'll learn a lot. If you don't no one will judge you for it.
[+] [-] swampangel|11 years ago|reply
If a developer condescends to you it's likely (a) accidental, because they don't know how best to explain something simply+accurately or (b) aimed at your current knowledge, not at you on a personal level. It might also be (c) they think you should have solved it on your own, which may/may not be true. In any case, all you can do is focus on the information and let the rest bounce off you.
The best favour you can do yourself is to be rigorous about following steps, checking your work and documenting things (just scratch notes for personal use).
Senior devs should be happy to help you learn, but won't like helping you fix sloppy/repeated mistakes. If you are confident that you've done your work with care, then others' bad attitudes shouldn't affect you as much (although it never feels good).
You may be able to turn this into a good experience. However, you may just be stuck on a team where where the pressure is on and nobody has time allocated to mentor you. If the situation doesn't improve, find a new job -- look out for yourself first.
[+] [-] eldavido|11 years ago|reply
As far as the prima donna attitude, first realize that in a typical software company everyone is insanely busy all the time and you need to negotiate some kind of mutually acceptable situation for how you can learn. Being on the receiving end of being interrupted 10x/day by a junior who doesn't know what's going on (voice of experience here) is incredibly disruptive -- so figure out what works for everyone by discussing it openly with your colleagues and manager. As long as you didn't misrepresent your skillset during the interview process, it's as much the company's job to make you successful (allowing them to get their money's worth from employing you) as it is your job to be diligent and work hard to advance your employer's interests.
It's always a give and take, that's part of working somewhere and business in general, you have to figure out how to line up your needs with the other party's (your employer in this case) for mutual benefit.
A word of caution: take all this feel-good "it's not your fault" stuff with a grain of salt. You're probably cocky because you're used to being the smartest guy in the room, but you are't anymore. That you've acknowledged this is a great first step, now work on fixing it.
Some practical tips: - Do you have a manager? Make sure you do. I define manager as "the person responsible for assessing your performance, making personnel decisions, and/or writing your review"
- Set up regular 1:1s with your manager. This is a reasonable demand and you should make it. Maybe once/month to start, 30 minutes, where you can discuss your needs. Make it a regular thing.
- Try to have the mentality of being open-minded and let it show through. You'll be surprised how far just being kind and admitting you aren't the expert will go with people.
[+] [-] D-Coder|11 years ago|reply
[+] [-] j2bax|11 years ago|reply
Try being super nice to these guys. Maybe you will find that they are just as insecure as you and you can break through their shells. If you give that an honest effort and they don't break, get the hell out of there!
[+] [-] monroepe|11 years ago|reply
[+] [-] engendered|11 years ago|reply
[+] [-] darkxanthos|11 years ago|reply
What other holes in their skillset can you fit in?
[+] [-] spacemanmatt|11 years ago|reply
[+] [-] markhamilton|11 years ago|reply
I'm going to go out on a limb here and say that humility might be the best course of action.
Keep learning, and growing. It's harder for some to do that when your coworkers are lower in skill because you won't have the mix of talent and experience. You need to learn not just in your field, but everything related to it: communication and interpersonal skills, business. Taking an interest in those and putting time into practicing or reading up on them is a great way to advance yourself.
Always be open to learning from your peers, but you don't have to think that their way is the best or only way. Even if they have more experience or seem smarter they're not always right (and the fact that they have the attitude of some mid-level developers means they are likely to still make the same mistakes).
Don't get too down on yourself for screwing up. Remember that you need experience just like everyone else and there's no shortcut for that. It will just be a matter of time before you're the same level of smartness that they are right now. You might close the gap some.
Keep kindling your passion for learning and improving.
-mh
[+] [-] stevenkovar|11 years ago|reply
Ask questions.
Your 'supeeriors' may be ninja rock star behemoths, but they are not immune to simple psychological techniques, like reciprocity. Asking questions and requesting favors has a tendency to make the other person actually like you more and be more willing to help you out further down the line.
It's counter-intuitive, but it has a lot to do with the sunk-cost fallacy and leveraging others' cognitive dissonance; i.e.: "if I'm such a great person/talent and I spent the time/effort to help this person out, they must be more like me than I previously thought."
Beyond the persuasive benefits of asking questions, you'll (ideally) learn more about yourself and come across as more open and approachable to your peers, which is good.
More importantly, don't compare yourself to your coworkers to determine your worth for the company. Are you better today than you were yesterday?
The best leaders and most productive people I know ask more questions than anyone else and are very skilled at listening to what people are telling them. Just because you were "thrown to the lions" doesn't mean you have to become one via trial by fire. Lions have too much pride.
Just ask questions. Position yourself to be better tomorrow than you are today.
Worst case: you're out of there and on to something else (which could very well be the same). Best case: people start seeing your value and you improve your rate of learning.
[+] [-] jd142|11 years ago|reply
If you represented yourself honestly during the interview process and they hired you anyway, then someone had confidence in your ability to learn. Check in with those people and see if they think you are picking things up at the rate they expected. A good manager will check in with you if you are moving a little slower than expected. A great manager will check in even if things are going as planned. Good managers are rare, great ones even rarer. Reach out to your manager if s/he hasn't reached out to you.
Even if you represented yourself honestly, there are going to be some jerks. Period. Some people will be of the opinion that someone with more direct experience should have been hired. It wasn't their decision and they are not your boss.
[+] [-] drrob|11 years ago|reply
On the other side of the spectrum; I began a contract job about this time last year...and I gave it 4 days before jacking it in. The job was just awful, but the people weren't the problem; it was the system we were working on (their revamped mobile website). It was already a year late (and still unreleased to do this very day) and architected from scratch by another contractor in a weird and unorthodox way. It was painful to work with, and as a contractor you feel like you should "know your shit"; it's embarrassing to have to keep asking the permies how the hell something works. Fortunately for me IT contract jobs are plentiful in the UK at the moment, but I'm guessing you're not in quite such a cushy situation.
[+] [-] jstalin|11 years ago|reply
[+] [-] spacemanmatt|11 years ago|reply
[+] [-] sebg|11 years ago|reply
[+] [-] gesman|11 years ago|reply
6 month + hands-on experience should get you very close to level playing field.
It been said that 1 year is enough to become an expert in any field having enough focusing and persistence.
What important in this is not their attitudes. It's your attitude on stuff that surrounds you.
If you believe that you need to call yourself dumb and punish yourself with thoughts and feelings of guilt while being surrounded with people who has more experience in certain fields - that's your belief/attitude.
It does not need to be this way - but it's your decision whether it is something that you are benefiting from and whether it make sense to change your attitutes|belief|definitions toward certain things.
[+] [-] lucb1e|11 years ago|reply
In this case I'd agree with you because the company probably does specific things and learning to do those well enables you to do your job well. But I don't think it's generally true that you can get an expert in any field within a year.
[+] [-] redfalcon6|11 years ago|reply
[+] [-] ainiriand|11 years ago|reply
[+] [-] etiene|11 years ago|reply
[+] [-] spacemanmatt|11 years ago|reply
[+] [-] rifung|11 years ago|reply
My advice is to try to take advantage of this situation where you are working with people who are smarter or at least more experienced than you. This is a great opportunity to learn, except that it seems you are with people who may not be willing to teach you? But I think you just have to try to find a way to connect with them and show them that you are interested in learning.
It's scary but if they are talking about something you don't understand, make sure that you ask questions. You should be careful not to divert the conversation too much but it's important that you show them you want to learn, and that you realize you have stuff to learn from them. Most people actually do enjoy teaching others, or at least that's been my experience.
In the end you should just not try to stress too much in my opinion. After all, it's just a job! I certainly hope you are "burying yourself in intense study" because you want to learn and not because you are afraid of not doing well in your job. Your lack of success in your job isn't only your own fault, it's also up to the company to make sure you have the resources you need.
Do you have a manager you can talk to about these issues? He/she may be able to help you navigate the team better. It sounds like you are working at a big company so there may well be some programs to get you a mentor too.