
Ask HN: I am the dumbest person in the room. What should I do? - byrain
I see a lot of articles and posts about hiring the right person, dealing with underachievers, etc, but still did not see one with underachiever&#x27;s perspective.<p>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.<p>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).<p>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.<p>Questions:<p>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&#x27;s knowledge?<p>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?<p>3. Do all star&#x2F;ninja&#x2F;rock-star software developers have rotten attitudes?
======
sbjustin
I'd go work somewhere else and here is why:

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
Couldn't have said it better myself. There is nothing to be gained from
elitist attitudes. Sounds to me like they want to hoard their own job
security.

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?"

~~~
sbjustin
Awesome quote! I'll definitely being using that in the future.

------
informatimago
Basically, intelligence is a speed of processing.

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.

~~~
lamuerteflaca
Since you provided no citations yours is just an opinion at best. I'll throw
mine in. You are wrong, IQ is about context. The more context you have about a
subject the smarter you will seem. Your IQ will increase proportionally with
the number of subjects you acquire context in. It is better if the subjects
are diverse. Also, the more context you have the faster your processing speed
will seem to get (In reality it stays constant, your neurons will only fire so
fast)

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.

~~~
chaosfactor
There is a strong correlation between IQ and reaction time. A leading theory
is that IQ is basically a measure of reaction time.

On the other hand, IQ is steadily increasing on average. This may, however,
reflect how as society develops better abstractions, it tends to increase our
reaction time.

------
Jemaclus
My rule of thumb is that I always try to be the dumbest person in the room. If
I'm the smartest person in the room, I'm not learning. I want to surround
myself with people that know more than I do about things I know little about.

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.

~~~
cJ0th
> 1) Shut up and listen

I like that but many people get irritated and feel you're not proactive enough
if you just occasionally ask questions.

~~~
akoncius
still it's better to listen and try to understand everything instead of
suggesting stupid solutions without deep understanding of problem. I've seen
many cases when new dev joins company and instantly suggests some solutions to
some problems without any knowledge of domain. Unless you are expert at that
domain, you should do that "shut up and listen" in the beginning. OR raise
respectful questions to get that knowledge of domain/programming skills.

------
cpfohl
1\. Act they way your Grandpa would have: with deference to their knowledge
and a healthy dose of confidence (you _did_ get hired by these people).
There's a pecking order, and that's OK, but don't let the socially deficient
define how you feel about yourself.

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
My long view of every developer called a rock star, ninja, or other
superlative around me: Burnouts, egotists, manic-depressives, except for a
couple who healed and chilled out and became mature developers.

People who sign up for those roles get rode hard and put up wet.

~~~
aepearson
I can't tell you how reassuring this is for me, and probably others.

------
swampangel
While this doesn't sound like a great working environment, my advice while
you're there is to ignore the tone of your coworkers' comments and focus on
their content.

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
First, recognize that _this is the feeling of learning_. Being the smartest in
the room is great for the ego, less so for long-term growth and improvement.
So be thankful.

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
Another small practical tip: Instead of asking questions 10x/day, arrange a
daily chat (maybe half an hour) so you can combine them and interrupt only
once a day.

------
j2bax
Romans 12:20 "If your enemy is hungry, feed him; if he is thirsty, give him
something to drink. In doing this, you will heap burning coals on his head."

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
Your co-workers sound horrible. While I agree that you could learn a lot from
the experience, even so I wouldn't want to work with those people.

~~~
engendered
Everything is relative. When someone is defensive and self-conscious, it's
incredibly hard to give feedback of any sort without them feeling "like an
idiot".

~~~
army
Yeah I have a hard time telling what's definitely going on from the OP's
description.

I personally find the most difficult people to work with are the people who
have trouble filling the gaps in their knowledge themselves AND are evasive
when they don't know something.

------
darkxanthos
Here's a different perspective: Don't compete along the dimension where you're
outmatched. Sounds like you could win a lot of points by playing the
grasshopper to their kung-fu master and act as the glue for the group working
to gain a holistic view of the team.

What other holes in their skillset can you fit in?

~~~
spacemanmatt
Holistic hole-filling is pretty much my secret sauce. I endorse this tactic.

~~~
slopnv
May you expound on this holistic hole-filling? Thanks!

------
markhamilton
I haven't read the other responses but here's my take

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
The "worst case" scenario (in terms of this current company) is that you are
let go or quit—that's not so bad in the grand scheme of things. So, what
experiments can you try to either improve your reception or learn as much as
possible before that moment..?

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
You say you were confident and cocky during the interview. Think back. Did you
mis-represent the depth or breadth of your knowledge and experience? _You_
were aware that you lacked experience. Did you make the hiring committee aware
as well. If you represented yourself as something you are not, that might
explain a little of the attitude from others. Not excuse it, just explain it.

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
Typically I'd say give it at least 6 months before making a decision about
whether you'd want to stay in the job. Obviously at 4 months in you've already
given it some time, but a little longer won't hurt (well, clearly from what
you've said it will hurt, but I'd hang on a little longer, just to see if
things suddenly 'click').

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
My experience is that these are the situations where you learn and grow the
most. It might be horrible now, but think about boot camp (the real thing).
It's horrible and miserable and you want to quit. But at the end you're
stronger and (better) prepared for what might come.

------
spacemanmatt
Life is too short to spend it like that. Find a team that accepts you as you
are and is willing to grow with you. The learning available from coworkers
like that is not positive growth.

------
sebg
Ask the most questions. Do not "try to decode what others are thinking", ask
them. If they are going to be terrible then let them be, your job is to ask
questions.

------
gesman
1 month of hard learning should allow you to up your game pretty
significantly.

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
> 1 year is enough to become an expert in _any_ field having enough focusing
> and persistence.

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.

------
ainiriand
1.- Don't quit. 2.- This is only going to make you stronger. 3.- Rockstar
developers are most of the times people with small social skills and/or with
little empathy. This is a BIG generalization, but what you say proves my
point. Dealing with this kind of people is not easy, you must entice them to
show their skills so you can learn from them.

------
etiene
Plot twist: nobody has a clue of what they're doing either.

~~~
spacemanmatt
Related: Some of us know where we're trying to go, though. Maybe.

------
rifung
I suppose you could try looking for a new place, but seeing as you are just 4
months in I would try to make your situation work first.

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.

------
whacker
I work with both sides of the spectrum. Sometimes I feel like I am the stupid
guy in the room. However

\- I must remember that I might see myself as stupid, but remember, they still
hired me, against intense competition.

\- I have realised that even though I feel stupid, I _am_ more able than some
of these rock stars in some areas.

\- I open my mouth in meetings anyway - I have nothing to lose really - either
I make a contribution, or I get ignored, or I get taught something new.

\- The smartest folks I know are also _very_ kind, and _very_ nice. This is
because they apply the same intelligence to interpersonal relationships too -
to quote one such smart friend - he says he asks himself: "Do I really have
any reason _not_ to be nice?", and that reflects in his behaviour to everyone.

\- The "smart loners", I have seen are that way because they are insecure.
They either believe that teaching or talking about their knowledge devalues
their own - or they may be scared of being "found out".

\- As for myself, and for you - remember that its just a job. You show up, try
to do what you are told, and hopefully get to come in again tomorrow to do the
same thing. The opinions of your colleagues do not define your self worth -
that must come from inside you, and from the act of caring about something
greater than you.

------
bjourne
Guess I'm in the rock star league, but I don't think I have a shitty attitude.
I've worked with lots of weak programmers over the years and it can be
disconcerning but that doesn't mean you should be an asshole for that.

When people you work with asks "what's this strange Dictionary class you're
using?" you take a deep sigh (internally, not so that they hear it) and
explains that "a dictionary is a hash" and then they ask "what is a hash?" and
you say "it's something that converts from one type to another, say english
words to german words"

It causes conflict no matter what you do so you try to reduce the risk of it.
"What is a linked list?" you answer correctly and helpfully "It's like an
array it's easy to insert and remove elements from. I've some books at home
explaining data structures you might want to borrow?"

It's only when people refuse to take advice that you get the right to be
impatient with them. For example, you might review someones code and point out
the logical errors in it and if they don't believe you, you might even make a
test case which crashes their code. If they then say "well, that's unlikely to
happen in production anyway" then you know you're wasting your time with them.
Better just let them "sink" on their own.

Btw, have you asked your colleagues for help? Maybe they are introverted and
that is why you think they have a rotten attitude? Maybe they aren't as bright
as you think because I've never met a great programmer who wasn't always
willing to help underachievers.

~~~
army
If you're learning, it's really important to have the skill of narrowing down
what it is you don't know and formulating a clear question about it.

I've seen all sorts of failure modes with that:

* People asking overly broad questions, e.g. if they are having trouble using, say, a dictionary class: "How do dictionaries work?" rather than "I'm trying to do x with a dictionary and I can't figure out how to make it work - I tried the put() method but it doesn't do what I thought." This makes it very difficult to dig into what's actually being asked and provide a relevant answer.

* People not admitting what they don't know. E.g. maybe they just don't have a clue what a dictionary is, yet won't admit it.

* People making a lot of assumptions and not articulating them. This tends to manifest as a really specific question that doesn't make sense. E.g. "I tried to build a spellchecker and dictionary is not returning the right thing." Then it turns out they assumed dictionary was prepopulated with the English language. This is even worse if the person can't/won't explain their thought process when prompted.

* Not reading any of the docs. I ran programming tutorials at one point and it was remarkable how many questions would have been answered by the introductory paragraphs of the tutorial if they'd read them instead of skipping it then spending 10 minutes struggling with a problem that didn't make sense to them.

* Unwillingness to talk through things systematically, e.g. explaining code line-by-line. It's surprising how often people will ask for help, then lose patience with you once you want them to spend any amount of time explaining things. This is enormously effective - half the time they realize their mistake on their own.

------
asafira
A lot of people are giving you some great feedback here, and I hope, at the
very least, it's giving you more confidence in your actions at the workplace.
I've definitely been in a similar situation, and I empathize.

A lot of people are suggesting you leave, but I think that's rash and there
isn't enough to make that obvious. Here's why:

1) Your issue is a people issue, not a work-subject-matter issue. Is it
possible to switch teams? Group dynamics can vary tremendously, even with some
underlying company culture.

2) My take is that you need to find that middle ground between cocky
interviewee and suppressed team member. Regardless of how you think reactions
might be on the team, you certainly don't want to continue what's going on now
if there aren't signs that things will get better. Take the extra liberties
you have as a new member of the team and ask questions; your team really
should be open to them. Otherwise, try hard to get to know your teammates, and
otherwise be a genuinely good person to them.

To be clear, I'm on most people's side here that something needs to change,
but it might be worth considering things outside of flat-out leaving right
away.

------
ebbv
The way I see it there's two possibilities here, and really these are
possibilities on a person by person basis, but we're mostly concerned about
the majority of your coworkers/teammates:

1) Your coworkers really are douchebags. In which case, you should find
another job. Working with douchebags is never worth it.

2) Your coworkers are OK people (I think it's safe to assume they're not
nice), but afflicted with all too common terrible tech industry inter-personal
skills. Being more experienced and knowledgeable than you, they recognized
your over confidence right away and it turned them off of wanting to be too
friendly with you. They assumed _you_ are the douchebag, not entirely wrongly.

The second case might be fixable, if you talk to them honestly. Ask for some
advice or help. I wouldn't just come to them teary eyed with your heart on
your sleeve, but try being friendly. Most people will take it as a compliment
if you ask them for help.

Of course if they react badly to your inquiry, then yeah, they really are
awful turds and you should find a new job. This time try to find one with a
better environment.

------
jensg
1\. Actually it is better to be the dumbest person in the room, you can learn.
It is another problem if you are the smartest person in the room. How do you
get new input/ideas. Take it as an opportunity to learn. "It's better to annoy
someone with questions than piss them off with incompetence". If you get a
task assigned just take your time, don't try to compare yourself with them,
they will work faster than you. If you make something make sure you understand
everything and you should ask questions if something is not clear, fuck their
attitude. Make something you can defend by understanding everything. Take your
time to understand it. If you half ass something there won't be time to fix it
later on. Try looking into being assertive.

2\. No it is not normal, but if you work a little longer you standup for
yourself and ask questions, they may expect the same from you.

3\. The best people are the ones that are open for discussions and discover
new ideas or views.

------
mobiplayer
My 2c... I do work inside a very knowledgeable team, so I can relate to some
feelings (although the guys here are quite cool).

1\. You were hired. That probably means your colleagues approved having you
with them. Part of what you feel is the famous imposter syndrome. On the other
hand the best way to handle that attitude from someone else is to be honest:
"I don't know, I haven't worked with that, I've not experience on that" are
valid answers and I hear them from the most experienced guys. Nobody mocks
them. If you're open and honest and your colleagues mock you, well... No need
to say you should move away :)

2\. Not unheard of.

3\. No idea, but success and accomplishment gives a sense of power. Power
rottens a lot of people.

This is just another step on learning about life. I've been there and I still
got some of those feelings, despite everyone around me being extremely
supportive to each other.

------
collyw
Ask lots.

Its easy to feel intimidated in an environment where you perceive everyone as
smarter (like my first job). Even what you consider stupid questions. That
happened in my first job. Not so much big ego's but smart and introverted, and
not very good at communication. Don't worry about looking stupid.

As a result I didn't do very well. Appraisal time came around and I was told I
was close to getting fired.

Basically I took another job before that happened, and learned from my
mistakes. At the time it seemed all my fault, but looking back it was pretty
poor management. Next job I asked about anything I was struggling with (it
helped the group were a bit more extroverted in general).

If it doesn't get better after a few more months, its probably time to move
on. There are plenty of decent places to be a junior.

------
recycleme
This is a classic fight or flight situation [0] where you are choosing flight.

There is no use being quiet at work. Everyone knows you are a junior so it's
ok to act like one. Ask questions. Say "I don't know how to do this. Can you
show me?" You'll find that even the "rock stars" don't know everything. It may
be hard to ask those questions without feeling discomfort, embarrassment or
even anger. Leverage those feelings to ask the hard questions. This might help
alleviate some of the suffering you experience after work.

If none of that works then it's time to look for another job.

[0][https://en.wikipedia.org/wiki/Fight-or-
flight_response](https://en.wikipedia.org/wiki/Fight-or-flight_response)

------
rvdm
I have been in both junior employee and senior managerial positions during my
corporate career ( I consult now ). While it's your superior's job to keep
stock of morale etc. it can be hard at time to read people, especially when
dealing with naturally introverted people.

Have you considered simply bringing this issue up with your colleagues?

There has to be a reason they hired you in the first place. Somebody must have
seen potential in you.

From my perspective it sounds like you're either just not a good fit (
unlikely ) or aren't getting the nurturing you need.

Nobody is perfect, nobody knows everything. Everyone has to start learning
somewhere. Some straight up honest conversation with your colleagues could go
a long way.

------
serve_yay
I don't really like helping people but i don't think I have a bad attitude
about it. I don't mind referring people to the same resources I found useful
for learning. But spoon feeding you knowledge or skills, sorry, that's a
different job and not one I signed up for.

Unless it's explicitly a mentor-mentee situation, that is. But I'm not gonna
act like we're equals and then be teaching you all the time. It reminds me of
when I was in school and was assigned "group projects" where I did all the
work.

Consider the possibility that your feelings about their attitude is partially
a manifestation of your bruised ego.

------
raldi
Google "imposter syndrome"

~~~
jqm
Well, to be fair, some people that have imposter syndrome are actually
imposters.

Not implying this applies to OP, but in general.

------
zaphar

        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?
    

There are two questions here. First of all confidence is not a bad thing. When
too much confidence encounters reality then adjust but don't beat yourself up
about it.

Second, admit when you are wrong but don't feel ashamed. Realize there is
dignity in admitting you don't know. If the work environment is toxic and your
coworkers are a barrier to learning then you might want to think about finding
a new place to work. If on the other hand approaching them with humility
breaks down those barriers then it might be worth sticking around and learning
some things.

    
    
       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?
    

In my experience it's roughly half and half. There will undoubtedly be times
when you join a company and they expect you to just hit the ground running.
There will be other times where the company won't expect you to be productive
for 6 months. It varies.

    
    
        3. Do all star/ninja/rock-star software developers have
        rotten attitudes?
    

Personally I don't think there is such a thing as ninja or rock star software
developers. And if someone actually thinks of themselves as one then they
probably have too high an opinion of themselves. And that can often lead to
rotten attitudes.

That said there is such a thing as experienced and wise developers. And when
you find them then it's important to treat them as a valuable resource. Many
times someone elses attitude is just as much about how _you_ approach them as
it is anything else. Being too cocky can lead to a little bit of teasing.

Bottom line don't get discouraged when you are surrounded by lots of smart
people. That's a fantastic position to be in for growth. But carefully
consider if the environment will allow growth for you or not. Toxic
environments it may be better to get out and find a better pond to be a small
fish in.

~~~
peterfirefly
> Personally I don't think there is such a thing as ninja or rock star
> software developers.

Ingo Molnar?

------
matt_s
Can you provide more detail? Like is it the technology being used? The way the
technology is being used? Internal jargon about the business? The business
process itself?

Maybe your co-workers are over complicating the solutions to things because it
makes sense for them to do so. I've seen this before and it can be hard to
follow and detrimental to anyone else trying to understand.

Take one of them out to lunch, pick their brain about stuff to get to know
them a little better. It might help understand how they approach problems.

------
dkokelley
1\. It's OK to feed their ego. Explain that you are impressed with their
knowledge and experience, and you are interested in learning from them.
Confidently assert your ignorance (it's better than misrepresenting your
abilities) and work to improve. Provide value however you can (even if it
means doing menial work, unrelated to your primary job).

2\. I don't know what is normal. What is normal for me may not be normal for
society at large, and this may not be normal for the company you've joined.

3\. I sure hope not.

------
hkarthik
The environment you work in has a toxic culture that is absolutely hostile to
junior level folks. Unfortunately, this is a sad state of affairs in our
entire industry right now. You have to specifically look for environments
where the management team is making a concerted effort to improve onboarding
for new hires.

My suggestion would be to look for another gig. You learned a hard lesson
about being humble and not inflating your ego during the crucial hiring
process, but don't prolong this pain any longer.

------
charkha
I will answer them in the reverse order:

3\. Absolutely Not. There are a lot of amazing Jedi like developers, who are
not only the best at what they do, but elevate the level of the whole team,
and help make everyone around them become incredibly productive.

2\. I think this is pretty normal. You actually want to be in an environment
like this early on in your career, so you can learn from these people and from
the wealth of their experience. Experienced people are good at spotting design
flaws, and common pitfalls in solutions to problems because of their
experience.

1\. This is actually a big red flag. You may want to see if everyone in the
team is behaving like this with you. If so, either this workplace has
extremely bad work culture, or they have a perception that you're really dumb.
You cannot be dumb, or incapable, because hey! you did get hired at this
place. But either of these two situations I mentioned is a big red flag. So
what I would suggest is to try to look for smaller projects, or sub problems
where you can work relatively independently, so you can have the satisfaction
of having contributed to the company, and build that level of trust and
reputation in the team, and also in parallel try to interact with others in
the team with the intention of finding a 'mentor' who understands you and
helps you guide through the politics of your workplace. If nothing works or
improves in a say a month or two, it is a good idea to look for a different
team within the same company, or switch to another company.

Good Luck!

PS - I work for msft

------
Bahamut
You should have an honest discussion with the co-worker(s) about their
attitudes - speaking from experience of having done the same to another, it
often is not intentional. It is usually done out of frustration from being
overtasked and having to teach/walk someone through something on top of normal
work.

For #1, say straight up that you don't appreciate the other person's attitude
if it comes up. We are professionals, and so each person should be treated
with respect. If someone fails at that, it needs to be addressed pronto, or it
will just repeat itself.

For #2, from what I can tell, it is unfortunately - the expectation is sink or
swim, the junior developers need to find a way to make things happen. I was
fortunate and scored my first job at a non-profit, where I had the freedom to
experiment & learn, as well as do heavy pair programming.

For #3, absolutely not. I personally stress that I am willing to mentor people
when I interview them, and carve out time to help as much as possible. I have
some stellar co-workers who do the same. I also have put in a lot of work to
help change the culture at my company, especially on the engineering side. I
stress mentorship and collaboration - even a junior developer can help change
things for the better with the right people skills and strength of mind.

------
SubuSS
A ton of interesting comments - let me add my opinion in there too:

\- Intelligence IMO is two fold. Speed of processing and domain knowledge.
Clearly one with a lot of the former, gathers the latter faster though. Right
now - The only thing I know about your co workers is that they outweigh you
greatly in latter. Considering you were hired and assuming your confidence had
some reasonable foundation, the only solution here is time.

\- I try not to allow the attitude of others to define my experience
somewhere. If it gets unbearable, I just leave - but in general, our field
does seem to attract a varied set of folks instead of an uniformly 'nice'
group. I give some bandwidth for this.

\- getting one of them assigned as your mentor by your manager and making your
success an explicit winning condition for him is a good option. Get it done
ASAP.

\- there is a little bit of ramp up here. Even a rock star team is going to
have a set of work items no one wants to do because they are 'manual' or
'easy' or 'boring' and so on. Take these up first, ace them then progress
towards the core.

\- finally, no one is going to remember your interview as much as you do.
That's a red herring. I have done about 400-500 of them, I definitely don't
remember any promises. I hired based on the amazon fit + smarts. Rest usually
gets lost in the mess.

Good luck!

------
stevoo
I can say that i was in your shoes several years ago when i joined my first
company.

Coming straight out of Uni with a good CV i lacked work experience. Academic
code and Work code is two completely different worlds !

So at my job for the first 1 - 2 years I sucked ! Really sucked. I was working
as hard as i could, trying to figure everything out, and having several
massive programs that we were working on it made it extremely hard. And as
you, all the developer were each person for him self. Nobody bothered in
giving me a bone to help me out. They just throw me to the wolves.

Every time i asked a question i got a vague answer and even some times some
rude comments about asking that question !

A few years after i stick in there i am as good as all the other developers
which at that time i though they were exceptional ! So yes, for the 2nd
question. Developers hardly care for any one else. I have told my CTO that it
was every man for him self for several years in my reviews. If someone helped
me out a bit in the beginning it would have been up to speed from the first
year.

So not only the star/ninja software developers have rotten attitudes but i
would say that 90% of them dont care about the junior developer.

My recommendation, is that if you like your job, stick in it until you get
good at it. And trust me you will. If you CTO tells you anything, just tell
him it is impossible for someone to catch up with out the experienced
developers help and that they are all for them selfs.

I wouldn't think about quitting. The next job will most probably be the same.

------
bpg_92
Hey! I just want to share an experience, hope it helps. I am a mechatronics
engineer who got into a software company in my last year. I did it for the
experience, I didn't even know JS, just C++ and some java. They thrown me into
front end develpment in a framework I didn't even know it existed. Some hard
months came through. Some people where nice and humble, some well selfish and
didn't bother to explain anything. So I kept on learning, started with JS,
Html and CSS. I downloaded books and videos, read a lot of blogs (I got to
know HN there and I am a user since), got into the world of develpment,
started to ask questions on StackO, trying to answer some. Latter got into
Angular, ExtJs, mongo and many other stuff, I am glad I got in in the first
place, the fact that I didn't know anything and that I felt I didn't belong
made me study harder. Nowadays I work there part time, got my first big
project and some customer for it, and I am in charge in the whore software
part. I got to realize that the software industry is a wide wide field, just
look for something you feel confortable at and give your best. There is always
news things to learn, that is why I love software develpment :)

------
foohoo
This is how I felt going through my university course. I knew I needed to
learn a lot at the beginning but it felt like everyone was way ahead of me.
This made me nervous to talk to anyone and it also made me anxious about my
grades. I didn't want to come across as an idiot and therefore I started doing
what you are doing, intense self study and keeping to myself. Two things came
from this, one (a good thing), I pushed myself hard, got a good final grade
and I learnt how to progress. Two (a bad thing) I never interacted with my
peers and the stress at some points was unbearable.

My advice (looking back at my experience), be honest, if I had just dropped my
act and accepted that other people were ahead of me and stopped the measuring
I would have found out that there were others that felt just like me and there
were lots of people that were more than happy to help (I found this out way
too late!). You will also find that the stress will be relieved and your days
will become easier. Just keep up the self study and still have hard goals set.
If you take this advice and things don't get easier at work - then I would
take a long look at the environment at whether or not I would want to continue
working in it.

------
azurelogic
I pity your situation. I've been there. I was still in school, when I got the
opportunity to work as a contractor with a team that had their shit together
in an epic way. Everything they wrote was tested. Unit tests, acceptance
tests, integration tests, and thorough exploratory QA. They were working on a
legacy system, but everything they touched got nicely refactored and wrapped
in a big hug of tests. 100% agile, always pair programming, and their process
was smooth. I had never heard of any of it, and it was amazing to experience.

Unfortunately, the domain was super deep and insane to wrap your head around,
and almost the entire team was made of introverts who wanted their machine to
keep whirring along perfectly. I'm an extrovert, and I was so green it was
ridiculous. I was one of the best students in my classes, but I felt like an
idiot when I was at work. I left questioning why I had chosen to become a
developer everyday for about 5 months, when finally things started to click.
Unfortuately, these people had already formed an opinion of me. My boss was
superb though and offered to move me to a different team. I jumped at the
chance. I joined a team of more junior guys that got more chance to work solo.
I blossomed in that environment. I taught myself things without fear of
judgment and banged out features like a champ.

My manager was considering me for hire when upper management laid off a
sizable chunk of the IT/Dev staff and froze hiring. I already had been
interviewing elsewhere and ended up in as a consultant, which was a perfect
fit for me to learn and grow. My advice is this: learn what you can from them,
try to sharpen your skills, and don't be afraid to jump ship when you need to.
I hope that helps.

------
igrekel
Having had to deal with a few people who were in your position, here are a few
points to consider. \- Realize that you being cocky at the beginning likely
didn't help you with the way your coworkers are treating you. \- NEVER pretend
that you know or that you understood something unless you really do. Its okay
to not understand something, everyone knows that if you do not admit it,
you'll never learn and therefore are a lost cause. This is the major problem I
have seen with people in your situation. \- Do not get caught in details,
focus on understanding the big picture and get the basics right. Always put
things in perspective. \- Volunteer to do grunt work, will make you gain
experience and put things in perspective. \- When something isn't clear, do
not assume it works in a way thats practical to what you are doing and go on,
go ask instead. Otherwise you doing grunt work will lose everyone's time. \-
When you don't understand something, explain what you understand or how you
see thing and why, let your perception be corrected. \- Do not get yourself
too tired by studying outside of work. Some study is fine but you need rest to
learn and perform.

------
traviswingo
The most important thing to remember and believe is that the most intelligent
people ask questions. Not knowing something is totally fine as long as you
recognize you don't know it and are willing to put in the effort to learn.
These so called ninja rockstar engineers are just being assholes if they're
walking all over you simply because you're a junior. They knew literally
nothing at one point and I can guarantee they still have a ton to learn.

As for your questions:

1\. Dignity? Seriously, having a question or not knowing something shouldn't
affect your dignity. You'll severely limit your learning speed if you're
afraid of what people think of you when you're not as knowledgable as everyone
else in the room. That to me sounds like an excellent situation where you can
learn a lot.

2\. It's pretty normal to be hired at any level and just be expected to start
producing. Scrappy startups will typically be more like this than larger
companies.

3\. No.

Lastly, if this place is as bad as you're making it out to seem, go find a
better place to work. As engineers we literally have thousands of cool places
to pick from and awesome teams are a dime a dozen. You're not a tree, pack up
your shit and move!

------
PythonicAlpha
For a beginner in high tech, it is rather common, that he or she feels
incompetent.

Maybe you also can look at it the other way around: When you are not a
beginner, but well settled in IT, will you always know things? No. I once was
in a room filled with high paid persons where most where longer in the
business than I did and where also higher paid than I did. But they just did
not know what I knew. I had made the software to run 10x faster than before
and they where amazed. I knew, that it just was naturally, but they did not,
because they did not have my particular experience and did not know some of
the details.

I think, much of the IT business is basically showing confidence. IT is about
always being ignorant -- but ignoring this fact -- and get used to it.

Being in the IT business means always learn new things and always be beginner
even when you have been in it for thirty years. The trick is to get used to it
and don't show fear in the face of the wild dragon called "The Unknown".

That is just part of the business -- and don't fear to ask, because it is
sometimes the only way to overcome the unknown.

When others make fun of you, just ignore them. Some day, they will have to ask
you!

------
caio1982
I'd say most humans beings would rather not work with assholes if they were
given the opportunity to work with decent people instead. Just a hunch. So my
advice is pretty stupid but honest: don't accept to work with assholes,
period, then you'll make a tiny change in the world. Being a genius, a ninja
or a rock star developer doesn't entitle you to be a jerk with anybody. I've
always liked myself to be the junior in the room, you learn so much that way,
you absorb so much that it's really rewarding in the long run. That part is
really nice and you do the right thing feeling that way IMHO, there's always
so many things things to grasp that you better go with this attitude. However,
it's your choice to stay in such situation. I guarantee to you that are
uncountable places out there with really nice people (equally genius, who
don't call themselves ninjas or rock stars) who actually care about juniors in
the room but you have to look for them instead of going along with this "be a
macho, just take it! it's a wild world!" mentality of many IT people.

------
ropman76
Don't confuse rock star developers with people being assholes. If your
arrogant attitude turned off your coworkers, then when you stop being arrogant
the situation should improve. If your coworkers are assholes it will not.
There are people out there who will thrive in situations like this. I am not
one of them. I have spent time in jobs with assholes like this and the time
and money was never worth it.

------
acscott
1\. Feelings can be useful tools. "Confidence" is not "worth" or "value".
Self-Esteem can be confused with confidence. It's important to be precise.
Being snubbed by a co-worker, your question is really related to social
skills. People act like jerks for many different reasons, but a confidence
founded in reality--and not others opinions--is a strong and real confidence.
You are there to solve problems, create solutions, do that, your reality
confidence will grow.

2\. You ask if it's normal I suspect to see if you would encounter this
"style" elsewhere. It's probably more common than not depending on the
organizational culture and budget. Older, bigger, companies that bring you in
as a "junior" level usually have mentor programs and some even formal.

3\. I don't know the answer to that. The word "all" usually is a signal that
the answer is no. But to achieve a very high level of expertise probably
requires foregoing lots of other learning (i.e. social skills) that other
people encounter as they mature. But rotten attitudes can be found everywhere.

------
SQL2219
You see this attitude on every tech answer board. Responses like: why the heck
are you doing X, when you should be doing Y like me, I'm brilliant.... Since
you've only been there for 4 months, stick it out, and deal with it as best
you can.

I know this is going to sound ridiculous, but start going to the gym and build
some muscle. This will build your confidence, and put your pencil neck co-
workers on guard.

------
kendallpark
> 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?

It sounds like you're in the same situation as the so-called "rockstar
developers" once were. It's sort of like the perpetual rookie hazing process.
Make the freshman feel like crap and once you become the upperclassman, it's
your turn to treat the freshman like shit because you've earned it. Seems like
this company has some of that going on.

> 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?

Yes does happen but no it is not acceptable. Any company that does this--I
would suspect they don't have amazing development practices overall.

> 3\. Do all star/ninja/rock-star software developers have rotten attitudes?

As a rule of thumb, when I hear a company talk about their "ninja rockstar
programmers," I run far far away. These are buzzwords typically used by
incompetent companies with inflated egos. I'd actually be willing to bet that
they're not as great developers as they make themselves out to be.
Furthermore, good developers are good team players.

I previously worked for a company with "rockstar" developers. The company was
so full of itself and the developers (while many were nice and friendly) were
mediocre programmers that thought their domain expertise made them great
programmers. There was one guy that would speak down to me as I was learning
the domain when I was by far a better coder than him.

TLDR; Find a new place to work, your environment sounds toxic.

------
dxbydt
As someone who was in your shoes, lemme suggest the following - the enemy is
not your coworkers with big egos, or the work days, or meetings or whatever.

The enemy is your own ignorance.

You are bothered because they know stuff and you don't. There is literally
nothing they can do about this. You are not in a school where people will take
the time to teach you how to do your stuff. This is work. Say you hire a
carpenter and a painter to build some furniture & paint your roof. The
carpenter feels very insecure that the painter is so good at painting. How
exactly does this help the carpenter improve his skills ? So work on your
studies. You say you are "very willing to work hard". So just do that. Ignore
all this interpersonal he-sucks-self-esteem-rockstar-dignity etc. This is not
some Lifetime drama. Ramp up fast. Focus on your skills & the rest of the
issues will fade away in the background. Atleast, that's how I solved it when
it happened to me.

~~~
te0x
That may work, but there's something wrong with him not feeling comfortable
communicating with coworkers. The problem sounds bigger than his own personal
issues.

------
sangnoir
You might be experiencing imposter syndrome, and it makes you question if you
deserve to be there.

I suffered from imposter syndrome when I got moved to a new team (same
employer) by myself after a cohort was moved.I felt like I wasn't properly
onboarded and I did not have a fellow noob to ask "silly questions", and I
suffered for it. I was tasked to do a major-ish feature and I completed it
with no confidence: it was scrapped from the first release & I felt like I had
failed. When a colleague was asked to 'redo' it, he only added about 5% more
and called it a day. Looking back at the code: it was good work, and it was
95% of what was required (to me at the time it felt like 20%).

I will tell you what I would have told myself then: don't be afraid to ask
"silly" questions - don't let _your_ egobget in the way.(try to figure it out
first though). Also: it's a great opportunity to learn.

------
kukudi1028
I think you should understand a few things:

1\. Experience is temporary. It means either you or your coworkers can be
better or worse someday. For the moment they look more experienced than you
are. But it's not forever if you keep learning while they think they can
relax.

2\. Experience is not a solid proof of knowledge and skills. It's only one of
the many reasons that lead to success. What are the others? What are the
things that you can't do without experience?

3\. Both making fun of other people and thinking people make fun of you is a
waste of time for the real genius. They know what make them feel good is not
from others.

4\. Keep learning is always the right thing to do. Don't think it's intense or
tiring. It's always this intense and tiring. If you don't know if it's worth
it, just keep doing it and you'll find out. You can't say if climbing a
mountain is worthy unless you yourself is on the top.

------
wellpast
(1) As long as your goal is to aggressively learn and grow and understand,
then your dignity is certifiable. (I'll even print you out a certificate if
you ask!) So act as one aggressively interested in learning. If these guys are
really that good/worth their salt, they will appreciate your eagerness to
learn from them.

(2) This isn't uncommon. Our industry needs to have better professional
training for juniors IMHO.

(3) No. I've found that the better someone is the more interested they are in
teaching and bringing others up to the task. The guys with rotten attitudes
tend to plateau and remain B+ players at best.

A couple words of advice:

* While you should always seek good mentors, it's imperative that you take your growth into your own hands. Read and practice as much as you can on your own. Read the book "Mastery" by George Leonard.

* Read the book Mindset. In the parlance of that book, rotten attitudes generally equate with the "fixed mindset" and those guys will plateau.

* Focus on your self. It may be the right decision to run away from these bitter jerks. But you may find that by focusing on your growth some of them may loosen up and help you grow. You can still learn from jerks, and as long as you stay growth mindset, you will surpass them over time. Patient focus and study! (If the environment however is truly toxic for you, then, yes, flee. If you flee, however, flee to an environment that is still challenging and has expertise that you can aggressively learn from.)

* Focus on your (future) self. Don't think "I'm an idiot now" (even us experts are missing a huge mountain of knowledge and understanding and are idiots ourselves). It's a gift to "see" what you don't know. Because now you can go work toward filling that gap.

Hope this helps!

[edited. fixed typos and clarified advice]

------
aespinoza
Let me tell you my point of view. It is all about the company culture. There
are cultures that breed stars, and that usually ends up being bad for the
company.

The company I am currently working at, has a flat structure, with everybody at
the same level basically. We have a lot of _real_ celebrities here, people who
are really know for what they have done, and exceptionally brilliant.

But the culture here is of knowledge share. People are open to share what they
known. There is no real internal competition, the competition is focused
externally. This has made our company grow faster. Junior developers are
absorbed on entry, and they stop being Junior, and just become engineers.

What I have experienced in companies where stars are allowed to breed, is that
the competition is internal, which damages progress and direction. Such stars
start looking to the outside as fast as they can they never really integrate
into the company.

------
irixusr
I've been there.

I was hired for just having a phd in engineering (unrelated to CS) and knowing
about hacker news (it was an interview question!).

I was in over my head technically and with little time to catch up. Most of my
colleagues were chill, but three or four were jerks. Nasty types, who fed on
other's pain. My manager was a cool guy.

I entered a feedback loop of negativity which affected my focus at work.
Eventually I quit and returned to working in my field (which I don't enjoy,
but at least I can perform while I'm training in something better)

Positives:

I learned about programing practices, which is useful to my current work.
Within my field, I was already a good programer. Now, for my colleagues, I'm a
ninja.

Experienced start up life. The good. The bad. And the ugly.

The negative:

Wasted time.

My advise would be to figure out if you can make it for a year or so. If you
can make it, hold on and move on afterwards. If you're about to break, pull
the rip cord.

I pulled the cord after three months. No regrets.

------
iamcurious
1\. Don't worry about the past. There are things you can do _now_ that will be
good for the project, the team and for you personally. You have things to
contribute.

One of the simplest things you can do is ask for explanations. Listen
actively. This is hard, but you will get the hang of it. You might even find
that they aren't such jerks after all.

They might feel like you slow them down, until they see the obvious mistake
they hadn't thought, then they should be grateful. If they aren't grateful,
you are in a bad environment, start looking for greener pastures.

2\. It doesn't make sense to do this, it is a waste of good potential, but
don't assume malice. Instead, search for something to do that will give you
time to catch up. Ask it outright. You are a professional, that implies trust.
They trust you to make decisions, they trust you to make the best use of your
time, they trust you to refuse a task when you are not up to it or you don't
think it should be done. (You might still be required to do it anyway, but you
get to have a written complain and you should be able to resign in good terms
with everybody. If not, jump ship immediately.)

3\. Relationships, even shallow work relationships, take effort. Understanding
people is hard. Getting yourself understood is hard. There are plenty of jerks
everywhere and sometimes there is no way around it. But sometimes there are
workarounds. Few people are jerks all the time. Sometimes it is a
misunderstanding. Sometimes you have to negotiate. If after trying other
approaches, you still find them with rotten attitudes, find some other place.
When you are surrounded by rotten people, life might seem to long.

Improve your communication and political skills[1], that will increase the
value of your current technical skills and give you the ways and means to
improve them even further. (If you wish so, you might find there is more to
life.)

[1] "How to Win Friends and Influence People" is a classic book on the
subject.

------
charliepark
> Do all star/ninja/rock-star software developers have rotten attitudes?

I work at IFTTT, and honestly can't say enough good things about the women and
men I work with. Thoughtful, smart, great programmers and designers. Although
all are world-class, I don't think anyone on the team would describe
themselves in "all-star/ninja/rockstar" terms.

If you do look for a new position, I'd encourage you to look at companies'
"about us" pages to get a sense of their culture, environment, attitude, and
so on. (Ironically, the IFTTT "jobs" page is in serious need of an overhaul.
Working on it.) Companies that do it well: Etsy, Kickstarter, Dropbox, Airbnb.
Also, this great video from &yet:
[https://vimeo.com/97239546](https://vimeo.com/97239546)

~~~
localfugue
I just had a look at your "about"[1] page - In all seriousness, why do you
have to name your "about" page as "wtf"? If it's for humour quotient, it
doesn't look good.

[1]: [https://ifttt.com/wtf](https://ifttt.com/wtf)

------
anm8tr
Wow. It sounds like you are working for the same company I worked - for a very
brief time. Is this a JavaScript shop by any chance? ;)

Regardless, you've been there four months; that's long enough to have made it
work. It's toxic and abusive and you have to remove yourself from the
situation ASAP. If you can afford to quit before finding another job, do so.

I do appreciate all the advice of how to make this work, and it's good advice
in general, but bad advice for this situation. While the abuse may ease up
after a while, the pecking order will remain the same and they will still be
assholes. It's hard to learn through a bruised ego or a broken spirit.

On a side note, I have been the dumbest person in a company. I compensated by
being the hardest working. The "smart ones" loved that I did the work while
they did smart things.

------
tomek_zemla
I would question your assumption that you are the dumbest person in the room.
Your analysis points in quite the opposite direction. The rather toxic
atmosphere you are describing, driven by egos with bitter attitudes indicates
these people do not understand the meaning of the word team. And creating
stressful atmosphere is usually counter productive to creative developments
and innovation.

As a freelancer I worked in very many places. I have seen what you describe. I
have also seen the opposite. Really smart people with educational attitudes
helping juniors to fit in, learn and contribute to the team work.

My advice is focus on learning as you already do and find a more
human/friendly environment to work in ASAP. Prolonging situation like this can
take a serious toll on your life. And how long you want to work for/with
assholes...?

------
tokenadult
_3\. Do all star /ninja/rock-star software developers have rotten attitudes?_

No. The very best of the best know that work in a for-profit business
corporation is teamwork, and they know how to build up their colleagues so
that the whole team is stronger. (Source: an immediate relative who works in
the industry.)

Meanwhile, don't let the bastards grind you down (to quote Joseph Stillwell).
Just build yourself up. Learn new skills every day. That's what everyone in
your industry has to do, really.

AFTER EDIT: Sensing disagreement from someone who has surfed by, I would like
to know more about your observations of the workplace where you work. I'm in
earnest about my comment; the developers I know who have the top skill levels
as coders are also more than happy to help build up the skill level of the
whole team.

------
cyphunk
If you are lucky you will be the dumbest in the room long after you aren't.
Behaving as or even being the smartest isn't very productive toward learning.
If you desperately need the job then you could be more cautious but if are you
are not in a desperate situation then be the idiot, allowing you to soak up
whatever you can learn or get fired by people too self-consumed to see the
value in that. Keep in mind that there are probably others around you that do
not understand everything but might be too shy to throw a wrench into things.
And even people that do understand everything having a jester around to get to
the basics has a valuable effect.

You'll only find an environment that fits you by getting booted from the
environments that don't.

------
balabaster
That just sounds like a shit environment to work in. I know it's easier said
than done, but find somewhere else to work. These guys sound like dicks. They
are not stars. A star would mentor you and help you to get a leg up. That
said... there is a certain amount of karma being dished out because you were
cocky in the interview. Perhaps they think you should be able to hold your
own. I guess you learned your lesson :P Of course, you have to have a certain
amount of confidence in an interview to get your foot in the door - don't make
the mistake that confidence and cockiness are the same thing. Perhaps they
genuinely liked your cockiness - it sounds like it fits in with their culture.

1\. Handle it the way you would handle anyone else being a dick in your life.
Hold them accountable for their behaviour - call them on it.

2\. Yes, it's quite common to be thrown to the lions - in fact, it's more
common for this to happen than not to happen. A certain amount of this career
is an ability to dig in and figure it out - for right or wrong. It's not ideal
and it's certainly not in anyone's best interest for it to happen this way,
but more often than not, that's exactly what happens. The sooner you get
comfortable with this, the better. If you honestly care about your craft, the
first few weeks/months of any job worth having is uncomfortable as you get up
to speed. The only thing you can do here is learn to cope with that discomfort
and try not to let it stress you out until you're up to speed. Don't make any
decisions, nor let anyone voluntold you to do something within a timeline that
adds additional discomfort during this time.

3\. No. People with big egos have this rotten attitude. "Star/Ninja/Rock-
stars" usually get big egos by being treated like the world revolves around
their [often exaggerated] abilities are the only thing that holds the company
together. If you treat someone like a superstar long enough, eventually they
succumb to thinking they can act however the hell they want. This is why
"popular" kids at school act like brats - because nobody holds them
accountable for their behaviour.

------
sheepmullet
Put yourself in the other developers shoes:

Imagine you are under a lot of pressure to deliver and have been behind
schedule for months. You are close to breaking.

Then management hires a new developer to fix the issue. Management says they
are amazing. Only it turns out the new developer is a total newbie. To top it
off the new developer is cocky, can't handle feedback, and doesn't really
listen.

In that kind of environment a lot of developers will go "not my problem" and
do the bare minimum to help the new team member. It is not right and it is a
sign of a toxic work environment but it doesn't mean the other devs are
assholes.

My advice: let a couple of the other devs know you are working really hard
outside of work in order to get up to speed.

------
kwhitefoot
1\. Yes you handled it it wrongly, just as most of us did. Shouldn't matter
that much. Now you know, you can adjust.

2\. No this is not normal, most managers understand that a new employee needs
support to get started.

3\. Definitely not, most of us are friendly people, keen to help our co-
workers contribute to the projects we work on after all if you don't
contribute it means the rest of us have to work harder (ok perhaps I'm not a
rock star dev, but I'm pretty good).

Lastly, try to find out what's going on, make sure that you understand the
dynamics of the situation so that you can adjust your own behaviour if
necessary. But if the working environment is really just toxic rather than
simply demanding start looking elsewhere.

------
imgabe
The only questions I've regretted are the ones I didn't ask. If you don't
understand something, speak up and ask about. Maybe it will cause some of
these "rockstars" to think less of you, but honestly I much prefer working
with people who take the time to ask a question when they don't know
something, rather than trying to figure it out themselves, getting it wrong,
and creating twice as much work along the way.

For what it's worth, all the smartest people I've ever met are not the ones
bragging about everything they know, but the ones who are constantly asking
questions and trying to learn more about everything.

------
atlantic
Your efforts in burning the midnight oil are laudable, but becoming a good
developer takes time and experience; there is only so much you can do to speed
up the process. And you also need some work-life balance, especially at your
age.

Nothing wrong with a bit of confidence. You need enough humility to ask
questions when you don't know how to do something. But you also need a bit of
attitude to carry you past the inevitable obstacles and push development
projects to completion.

It sounds like you've fallen in with a bunch of idiots. You don't have to be
apologetic about being a newbie; we've all been there. Get out and find
another job. Good luck.

------
jkoudys
I consider myself a strong software developer, and let me tell you: if someone
is acting like a dick now, it won't matter if you're on the same level as them
or not. So long as you're treating them with courtesy, respect, and keeping
communication open, if they're not treating you the same in kind then that is
their shortcoming.

To your #3, while I'm confident in my abilities, I don't think truly excellent
developers have rotten attitudes. Someone who thinks they're perfect already
will stagnate. Personally I _want_ to look for rooms where I'll be the dumbest
person there. It's how I grow as a developer.

------
jdonaldson
You're probably on the wrong team, can you change? The developers are probably
pretty good, but talent and attitude are completely orthogonal. My guess is
that there's one or two folks on the team that have this sort of negative
mindset naturally, and they've infected the whole team with this style of
interaction.

Maybe it's for political reasons, or maybe it's just their own personal
insecurity. Bottom line is that you're not doing yourself any real favors
being around them. They are not the gatekeepers for engineering expertise.
There's plenty of other great developers to study, look up to, and emulate.

------
Practicality
I doubt you are the dumbest. Probably just the least knowledgeable.

You landed the job you wanted! That's awesome. That's success. In all
seriousness everyone has a lot of holes in their knowledge. Nobody knows all
these things, we don't live long enough.

The youngest/newest person on the team always has the advantage when it comes
to the _newest_ technology. You don't have as much to unlearn, so you will
pick it up faster.

If you can get yourself a niche, become the expert/specialist in a particular
new technology that the team needs (or could use), but has little experience
with you can suddenly make yourself very valuable.

------
limeyx
Wow, sounds like you landed into one of my previous jobs :)

If things are really that way (and you aren't just feeling worse about
yourself than is deserved) then leave.

Don't just up & quite unless you can afford that but take the time to find
somewhere with an environment that fits what you want better and can allow you
to grow.

Being thrown into a challenging project is one thing but with no support is
quite another.

I had a similar experience and I was miserable. Add to that when anything I
did went wrong people came down on me really hard but everyone else seemed to
get a pass ...

Took my time and found something else and now I am super happy.

Most of us are too old to be treated like crap.

------
alltakendamned
You perceive yourself to be the least knowledgeable person in the room, but
consider a few things: \- Knowledge comes with experience, it doesn't mean
you're dumb \- With experience comes perspective \- You can become very
knowledgeable in specific areas without having to be knowledgeable about all
of them \- Don't burn yourself out trying to catch up \- Loud people are
sometimes perceived as competent, it doesn't mean they are, they're just loud

All in all, this sounds like a very toxic work environment. Get out and find a
place that you can enjoy, nothing is worth becoming bitter like your
coworkers.

Good luck !

------
fasteo
Hold on there as much as you can possibly tolerate. This toxic environment is
indeed building up your personality and you will end up being a better
professional (would you do those "intense study sessions" otherwise ?) and a
better person (you are learning how to not treat people).

Embrace those rotten attitudes and bitter words. Feel joy when you get them,
for it is for a higher goal. Feel sad for them, for they are pretty much
worthless human beings.

Don't let them make you quit. Stay there, learn as much as you can and quit,
with pride, when you feel those dumb asses have nothing to offer you anymore.

And then, you win. They lose.

------
yareally
Are you worried because you are lacking in domain knowledge that could only be
known by working for the company for a significant amount of time? If so, I
wouldn't worry so much, since that kind of experience only comes through time.
Also, you're a Junior Developer, you shouldn't be expected to be an
expert...yet :)

I do think it's troubling that you think everyone you work with is unhelpful.
This is not normal and sounds like a potentially toxic environment. I'd make
sure this is the case though before jumping to conclusions. Maybe some are
just busy or you're asking for help at the wrong time (maybe try asking in
advance through email/instant message and scheduling time on their calendar).
Maybe it's neither of those, but just giving the benefit of the doubt. How
often are you asking for help and have you already tried other (easy) means of
assistance like the web/documentation/etc? Do you take notes to avoid
repeating yourself or forgetting what you learned when you do get assistance?

Those in your team though should be the most helpful though since in theory,
they depend on you and you depend on them, so assistance is mutually
beneficial. Sometimes I will leave a junior developer to work out something on
their own when they have already been through a similar scenario before. It
can be hard to resist (learned that was rarely the best idea when tutoring a
friend in school) rushing in and helping them too quick, but I tell myself
they'll learn more if they try to think it through and refine those problem
solving skills. In those cases, I have a pretty good idea that they know the
answer, but it hasn't clicked yet. I mean if they get stuck on it for too
long, I'll help them a long, but as a more senior developer you when you're
helping and when you're just doing their work for them (the later rarely helps
them to learn/understand).

My other thought it's maybe they're not helpful because they just suck at
communication. Not talking so much about general communication as much as
trying to convey a complex topic to someone else in a way that is relevant to
the person trying to understand. Some just don't know as much as they claim
about a subject to actually teach it to someone else or have the patience to
do so.

------
lawry
> 3\. Do all star/ninja/rock-star software developers have rotten attitudes?

Once you are proficient at some language/framework/library it seems (at least
to me) hard to be humble about something you built with it. Sometimes, and
hopefully, we're excited about what we've built!

How do the real star-software developers that don't seem to have a rotten
attitude after years of experience do it? (I'm really honestly asking! I hate
when I get excited about something I built and scare off or offend others, or
start rambling about all the new things I've learnt or done)

~~~
siliconian
Some of the smartest people I've met are also the most modest. Being excited
about or even proud of one's own work is different from being arrogant and
obnoxious about it.

------
anomaly23
I agree with most of the comments made here. I've always been a C student and
understand what it feels like to be the "least knowledgeable person" in the
room.

You really shouldn't focus so much of your time and energy thinking about your
co-workers. This company clearly has a bad culture and it shows.

It's a good thing that you realize your weaknesses. Take some time off to
truly understand what is it that you want in your career. Focus on things you
are actually good at, and then figure out how to intersect those things with
your career interests. Good Luck :)

------
freedevbootcamp
If you are new or just starting out, keep being the dumbest person in the room
but show them you know how to troubleshoot and solve problems and are willing
to get up to speed quickly. If you feel like you're being misrepresented as an
idiot when you have equal skills, start muscling your way into the really hard
problems and show them you have what it takes to kick some ass and get shit
done. This is the typical small fish in big pond scenario, you just have to
get pumped up and show them your a big fish in a bigger pond.

------
ceylanismail
Because I wrote "color", not "colour" to one of the comments in Android
Resource directory, I got "USE PROPER ENGLISH" code review once, from a
British guy who has 60K+ reputation in Stack Overflow, who was also the best
Android Developer I've ever worked with.

I quit the job immediately, because you can't deal with those kind of people.
It never works. However you can find great companies and people out there, the
probability is higher than getting along with rotten engineers at least.

------
apalmblad
Sounds like a broken culture. I won't comment on the normalcy of your
situation, but I do not think it's acceptable.

If you want to stay, talk to your manager and explain you need more mentoring.
Talk to the friendliest senior you can. You may just need to work on building
g a relationship with someone. Junior employers should get mentoring, trading;
they should be encouraged to make mistakes. You can find that somewhere, but
you may need to search that not only excel technically, but also excel at
managing people.

------
bgia
You said you are in a "quite desirable software company", so I assume it is
not a small one (especially if people have a bad mentality). Just hang on for
a while, and try to move on to another team: you can claim that the culture in
your current team doesn't fit, and try to find one that's more open to
juniors. From my experience a lot of senior engineers are more than happy to
help if you "do your homework first", which you seem to be doing since you
work very hard every night.

------
dgomez1092
All I can say to that is that you modt likely do know. Given from persinal
expeeience, not only has intelligence demonstrated itself to me in the form of
concise communication but also at a level best expressed in high overview. And
being able to bring up the details as you go from there. In essence I would be
focused on refining a particular area of your intelligence that you'd want to
focus on. And learn how to best iterate struggle and the understanding in the
back of your mind.

------
freyr
A "quite desirable software company" is one that can attract people who are
smart _and_ socially competent, and can weed out employees who are toxic. Your
current company clearly can't do that, and I'd question the basic premise that
it's desirable.

I've worked with some brilliant and horrible people in the past. It doesn't
get better, and my general opinion is that life's too short spend tethered to
such people. Get out and don't look back.

------
geekamongus
When you can truly learn to stop caring (or assuming you know) what other
people think about you, you will find yourself much better equipped for this
type of situation. Find that confidence that got you hired, and wear it to
work every single day.

You know yourself better than any of your coworkers. If you think you can do a
good job, know your stuff or can learn it, then you can. It doesn't matter
what they think!

If you enjoy the work and want to succeed there, do it. If not, go somewhere
else.

------
beat
Normally, I'd say if you're the dumbest person in the room, you thank your
lucky stars you get to learn so much.

But the problem here isn't that you're dumb. The problem is you're in a toxic
(for you) culture. Get out of there! I don't know if it's them, or if it's
you, but it doesn't matter. Clearly, you're not suited for the environment.
Quit, and be conscious of the culture you're stepping into at the next job.

------
yodsanklai
> how should I act in order to maintain my dignity but also be humble enough
> to acknowledge the co-worker's knowledge

There's no lack of dignity in asking questions and trying to improve oneself.

I've seen very smart and respected people asking basic questions during
meetings (where I was trying to hide my ignorance... and thus not learning
anything, which make things worse).

Remember you're a junior, so you're expected to know less than your expert
colleagues.

------
codingdave
"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)."

With that environment, and the stress it is putting you under... quit. No job
is worth the negative impacts on your life and your health that an unhealthy
work environment will bring. And there is no shame in recognizing that a new
job is not working, and taking action.

------
onion2k
_Do all star /ninja/rock-star software developers have rotten attitudes?_

If they think of themselves as a star/ninja/rockstar developer, then yes.

------
gdulli
> 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).

This is not a place you want to work, these are not people you want to work
with. Even if you are their equal. A truly desirable employee doesn't have
these qualities, you can't use ability to make up for being a bad person.

------
r41nbowcrash
>My teammates have tons of experience

i think it's too early to judge these guys either positively or negatively. it
might be that the friction you're experiencing at this point is a result of
things like working with rotten code, them withholding the specific domain
knowledge, etc. and what you take for your own incompetency in reality is
someone else's mess dropped on your head.

------
patrickskim
Bro, life is too short to let other people dictate your life.

They might be smarter than you, yet here they are in the same room as you.
Second there is no shame in not knowing, so as long your willingness to
improve is there. In the rare case, in the parking lot, intelligence (or there
lack of) can always be augmented with fist. YMMV.

You need a double dosage of kanye. Hope you get your swagger back.

Good luck.

------
sergiotapia
If you're the dumbest person in the room, become the hardest working now.

Also, if management are OK with your work, screw your coworkers opinions.

------
icc97
I've met three types of very good developers:

1\. Humble and quiet

2\. Bullies that grow to respect you

3\. Bullies that stay bullies

From my experience:

\- Never tolerate working with 3), it doesn't matter how good they are.

\- You can have a good working relationship with 2) and make friends with
them.

\- You should be able to differentiate between 2) and 3) after a month - if
you can't assume they're 3).

\- Obviously seek out 1) and learn all you can from them.

------
atmosx
From what you're saying (and here we have only YOUR point of view and
description) there's something poisonous in that
company/position/sector/department and it's gonna end bad no matter what. I
don't think any team can run a marathon successfully with that kind of
attitude towards team-mates.

A couple of advises:

1) Since you had this experience, try not to be a dick on newcomers when your
time comes. You said that you _were a bit cocky_. Now imagine how the other
guy in the room must have felt.

2) Generally being kind and humble will get through lions or lambs equally
unharmed. I've seen it happen. I'm talking about being humble even to the ones
that are openly rude to you - that kind of thing - by giving them a second and
third and forth chance.

3) IMHO it's better to stand your ground accept who you are and ask what you
don't understand. Make them _teach you_ one way or another. Since you're there
try to take away whatever you can. Again try being humble and kind. Maybe
there are others that feel exactly like you do but don't come forward because
they lack the same strength of character that you do. It takes guts to say _I
don 't know_ in a hostile environment. Stick to what you know, try to do your
homework and when the time comes, state your arguments. The explanations might
not as convincing as your first thought and as a result this might turn to be
a more liberating change of attitude for the entire team.

4) Those guys that you call 'ninja' others call 'newbies'. There's no rock-
star developer IMHO, except from prominent figures that have prove themselves
over time (e.g. Wall, Torvalds, Thompson, etc.). But even with those guys, you
first and foremost have to be yourself: If you feel that you need more
detailed explanation ask for it. Politely but firmly, trying everything
possible to avoid conflict, state your arguments and questions as best as you
can.

5) As Socrates, Plato and Aristotle said, every man has to pursue one and only
thing in his lifetime: Happiness. A series of wise choices could make you
happy. If the current situation makes you unhappy, try to find out the real
reason, make peace with yourself, accept who you are - by accepting who you
are you should respect those with less or more knowledge than you at any
domain - and if you can't change the environment around by changing yourself,
leave. However keep in mind that 3 out of 5 times, the problem is within you.

------
huhtenberg
> _Do all star /ninja/rock-star software developers have rotten attitudes?_

Yes. That's pretty much a definition of "star/ninja/rock-star" developers -
cocky know-it-alls who openly consider themselves smarter than the rest.
Doesn't mean they are actually skilled or senior though.

------
dsuth
First off, a suggestion: leave. It's not worth staying in a toxic environment
full stop. On to your questions:

1\. Self-confidence is fine, as is the expectation that you will receive
mentoring, especially if it has been made known that you are lacking in
experience. In your immediate situation, ask open questions after trying to
figure it out yourself, and be firm in the knowledge that there is NOT an
expectation upon you to know all this stuff already. Some of the best
engineers I know ask dumb questions all the time. It is expected, outside your
area of expertise, and healthy. As a junior your area of expertise is...
minimal.

2\. Not in a good company, with strong leadership. Junior personnel are there
to be molded and guided. You can expect to be set problems outside your
comfort zone, but someone should be stepping in at some point to lend a hand.

3\. Absolutely not. In my experience, supposed rock-stars with shitty
attitudes are not as good as they think they are. Poor attitude is often a
cover for ineptitude and/or severe self-esteem problems. People who are
genuinely good are usually willing to help someone who can show that they are
motivated, and not wasting their time.

------
pkmishra
If you are the smartest person in the room you are definitely in the wrong
room. You have great opportunity to learn so much from others. Also I am sure
you can't be the dumbest person in the room. There will be few things where
you would be pretty good at. You just need to discover those.

------
smutticus
Is there someone you could talk with at the company who won't judge you for
being honest? If you're going to leave anyways if it doesn't work out, then
talking with someone there who might sympathize with you cannot hurt.

If there is no one there you can confide your feelings in then leave.

------
Mimu
You may be inferior to them in term of skills, but let me write what I think
of your situation: You would be in the same exact miserable state even if you
were 10 times better than all of them combined.

I think the big problem here is that your co-workers are assholes, no skills
level can change that.

------
plikan13
Generally there is not much happiness in software development. More often than
not the job is little more than prostituting your brain for some cause that
you don't really care about. That's why many people have shitty attitudes, in
spite of their royal paychecks.

------
isaacsanders
This sounds like a fucking toxic environment, and the "rockstars" don't know
as much as they claim. Arrogance is often a shield for incompetence. I would
recommend GTFO and finding somewhere where people are interested in growing
with each other.

------
lucio
>I am the dumbest person in the room. What should I do?

Be grateful of how lucky you are. You're surrounded with people who can teach
you awesome things. You're in a challenging environment, no boredom in sight.
YOU'LL LEARN.

Just put a smile on you and seize the opportunities.

------
dmourati
Find someone in the company to mentor you. Shoot for someone two or three
levels above you with whom you share some outside interest or other personal
connection.

Senior people in companies need to act as mentors to advance their careers as
well so this will form a symbiotic relationship. Don't underestimate the need
to "feel the pain" some of the time. In other words, don't ask to be or allow
yourself to be spoonfed. Put in the effort, but escalate quickly. If you get
stuck on something for more than 15 minutes, take a break and come back to it.
If it happens again, escalate to your mentor, but not more than once or twice
per day.

It is a difficult series of steps but it sounds necessary. If you can't
accomplish these steps because there is noone with whom you can connect, you
should leave. I'd say try for three months and try two or three different
people.

------
edoceo
+1 to everyone. F that place. Hop on one of the 100s of job sites or find a
recruiter to help you get a better gig. This career path can be hella fun and
there are many awesome teams to build cool shit with. Too short for that mess.

------
lordbusiness
Life is too short to spend it being unhappy and unfulfilled. If the situation
is as you present, then get out as fast as you can, and go find something you
can care about with people who are stimulating to be around.

Always vote with your feet.

------
somberi
Quoting Woody Allen:

"Confidence is what you have, before you understand the problem".

------
goshx
I really dislike working with people that don't collaborate. If they can't
help you out, then I'd suggest you to move on to somewhere else, specially if
they know you were hired as a junior.

------
brogrammer90
Even if you had "rock star" skills, would you really want to work with these
types of people? They've already shown their true colors like someone who
treats their waitress like crap.

------
jaegerpicker
RUN! Don't walk but RUN! That's a horrible environment to work in and you
deserve better. I've worked with a ton of talented developers and I'm hiring
more. If I ran into a developer like you mention I WOULD never hire them and
if they did slip through I'd push very hard to have them shown the door quite
quickly. "Rock-Star"'s can be more productive than less talented developers
but they will never beat a great team.

Secondly not all great dev's have that attitude, not by a long shot. In fact
in my experience those with that attitude are emperor's with no clothing
types.

------
taco_emoji
You're not the dumbest person in the room, you're just the only one that's not
a fucking asshole.

This company and these people are failing _you_ , not vice-versa.

------
crimsonalucard
Be cocky, but be humble too. People are more willing to help someone who
admits where he is weak. Also help others when you can; they will return the
favor.

------
sjg007
1\. You didn't. They knew. Ask for help/guidance. 2\. Yes. Code review is your
friend. 3\. Not all. Learn from them. Ask for help.

------
baby
1\. You should get into a situation where you are not the smartest one in the
room.

2\. Good, you've done that one. Now you should learn everything you can from
the others

3\. Oh but this have a catch. You want to avoid elitist people, bitter people,
shitty people, negative people, etc... Those you don't want them to be in the
same room as it will not bring you up but rather... bring you down.

4\. Consider being with less talented people who will bring you up.

5\. Now consider how you are and try to avoid being like those bad people
surrounding you right now.

------
TylerH
If you're the dumbest person in the room... STAY. It's good to surround
yourself with smarter people.

------
tslug
1\. Eat that humble pie, confess that you don't know as much as you thought,
get past it. To maintain your dignity, focus on the work, not the politics.

2\. Unfortunately quite common.

3\. No. Try not to dwell on it. Pity them quietly, stay focused on the work,
don't lose yourself in their negativity. Treat others as you'd have them treat
you (even though they don't yet), and lead by example.

If any consolation, you're going through what I call "celebrity training."
Since moving to LA, I've noticed particularly successful/famous people can be
particularly difficult, demanding, and even insulting.

When you meet their assistants and see them graciously cope with their
superiors being completely insulting, demeaning, abusive, awful human beings,
it suddenly becomes clear: _That_ is why you want to get to know the
assistants.

It's like they know how to speak a foreign language reserved for a special
few- some of the most powerful, intelligent, successful people in the world.
They all speak verbal abuse.

Most people when they hear verbal abuse freeze in shock, do as instructed,
feel embarrassed, explode in retaliation, or run. But if you're fluent in
verbal abuse, you learn how to ignore it, see past it, even reform it, but
most importantly, they learn how to work around it.

Also, keep in mind that a lot of your fellow bad-asses may have mild
autism/aspbergers, which makes it hard for them to tell when they're offending
you. If you get up in their face about their shitty behaviour, you might be
surprised by their surprise. They may not even be able to detect how much
they're upsetting you.

If you haven't already given them feedback, then you should. A simple "Hey, it
kinda stresses me out. Maybe less of that?" will do. Remember to do it
immediately after an infraction. People are like dogs, and the sooner you
interrupt and correct and throw it away, the more likely it'll stick. Also
like dogs, people need gentle reminders, as they'll keep slipping up for a
while until it sticks.

Keep it light and funny, not dramatic. Try a quick, soft-spoken "rawr?" with
about the delivery and tone you'd use to say "lip?" while pointing out they
have a suggestive dollop of sour cream on their upper lip at a house party,
and you just want to bring attention to it very subtly for their benefit.

Also remember that an important part of training your dogs is to reward, not
just punish. While looking for infractions, you also want to look for
spontaneous moments of good behaviour and thank them for it immediately, even
with only a smile and a nod.

Best of luck!

------
phazmatis
You might be the smartest person in the room, as you've only stated that you
have the least experience.

------
chucksmart
Software development involves a lot of 'error' feedback. Its not rotten -
flattery is rotten.

------
swayvil
I've worked with those bitches. They were sharp, worked crazy hard. But ya,
big fat dirty autistic bitches.

I retaliated by calling them rainman behind their backs. It worked
surprisingly well to make me feel better.

I think that engineering gives people braindamage, or chars their soul, or
something like that. I'm serious.

Yes, I left at end of contract.

------
crimsonalucard
You know why this made it to the front page? Because we've all been there.

------
vimalbhalodia
Before you write off your company and teammates, get over your own ego and
learn how to learn from others.

A defining characteristics of rockstars is that they know what they know and
they know what they don't know, and they are honest with others about the
boundary. An idiot is not someone who says "I don't know how to X" \- it's
someone who says "I know how to X" but really doesn't.

Here is how I learn from people smarter or more experienced than me:

1\. I look at a problem someone else is working on, and ask myself "how would
I solve this?".

2\. Then ask myself "why would I solve it the way that I did?". Is it because
it's the only solution I could think of? Or is it because there were multiple
approaches but the one I chose was best for reasons and assumptions X, Y, and
Z. The important thing here is to be honest and rigorous about _why_ I made
the decisions I did - no settling for "just because"

3\. Then I look at what the other person did. If it's identical to what I
would have done, I give myself a cookie! If it's not identical, then I spend
time to answer the following questions: \- How is their solution different
from mine \- Does each difference matter? If so, how/why? \- For each
difference, why is their choice better than mine?

4\. Now this is the important step - I then talk to the person. And instead of
giving them an open-ended "why did you do solve this problem in this way", I
describe to them what I would have done and ask them the same questions from
the previous step. These are small, simple, efficient questions so you're not
wasting the other persons time, but by confirming your own answers, you are
reinforcing your ability to learn and are avoiding living in ignorance.

5\. I observe the other persons reaction to this interaction. The vast
majority of professionals I have interacted with have at the very least been
willing to help me in this way because they understood that teaching a
teammate is overall a net positive to the team. And it should increase their
confidence in the quality of the work that I do on my own.

If the person refuses to make time to even answer simple specific questions or
is actively hostile towards the very act of me asking these types of
questions, I write them off as assholes and move onto someone else.

Now I really suspect that most of your team will _not_ be assholes. But even
if they are, assuming you're being compensated well enough to tolerate them,
all you need is _one_ non-asshole who is "better" than you to learn from and
bam - you have a mentor.

If literally everyone is an asshole (per the definition earlier), then I look
at how much I'm being compensated (cash, equity, status, pedigree) and will
either get out or check out.

But the important first step is making an effort to become better, and using
the other people you work with as resources. It's okay to do this stuff
offline - if your team is having a high-level design session, don't open your
fool mouth to ask "why don't we just write all this in a single function" and
waste everyones time. But if that's really the best solution you could come up
with, pull aside one of the other people and confess "I would have done this
all as a single function - why is that wrong and why did you break things out
in this way?"

------
ada1981
Sounds like a "stage 3" tribe, in the Dave Logan sense.

------
jerf
"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?"

If you are being all but mocked, humility is not called for, leaving is. There
is no excuse for mockery.

"Is it normal to be hired as a junior and just being thrown to the lions, with
no help or time to ramp up?"

It is at least not uncommon to take a junior person and throw them at a task
that we do not expect you to fully understand out of the gate how to do. It's
difficult to do much else; a project is a constantly-moving target, and while
I do my best when onboarding someone to find a bug they can handle without
having to know the whole system, there's no time to create a "curriculum" or
formal training on the system or anything like that... by the time it was
created it would already be out of date. So "here's a bug" is the only decent
option I have.

However I always make it clear that many questions are expected, and support
will be given. Plus, one nice thing about this approach is that it self-
tunes... if you hire someone who actually tears through things unexpectedly
quickly you aren't sitting there explaining things they find elementary to
them.

Failure to provide support is unprofessional and downright bad business. It
basically ruins the employee not being supported, and few people are so
blessed with "headcount" that they can afford to be hiring people, then just
leaving them to rot.

"Do all star/ninja/rock-star software developers have rotten attitudes?"

Ha! Probably a question of definition more than anything else. Some people use
the term pejoratively and do include "bad attitude" or "extreme short term
focus" in the definition. But I'll modify your question slightly to "good
programmers", and no, being really good at programming does not require
"rotten attitudes" and if you look at those who rise to heroic levels, they're
generally known by their peers as very sympathetic and ready to explain things
to anybody.

So far, it sounds like you've described a really hostile environment, because
_even if_ you are not really up to the job, the experience you are receiving
is incorrect. You should not be getting mocked and psychologically run down by
your coworkers. You might be getting taken aside by a manager, put on a
performance plan, etc., and _that_ sure as hell doesn't feel good, but it's
still of a different nature than what sounds like being run through high
school again.

Only you can really judge whether you're actually able to keep up. I'm not
going to blow smoke up your ass and say everybody is really, ultimately suited
for every job if they just try hard enough. That's elementary school lies-for-
children, not reality. You could be in over your head, but making that
decision requires more information than you could possibly stuff into a text
post. The only two things I can say are 1. Yes, that is a possibility, but, 2.
Don't measure yourself against the other people who have been there a long
time, and _CERTAINLY_ don't measure yourself against the swaggering personas
they may be projecting! Measure yourself against the tasks, whether you can
complete them, and whether the solutions are good enough to ship (as opposed
to abstractly perfect). And, likewise, measure _them_ against their tasks,
whether they complete them, and whether their solutions are any good! (It's
usually a lot easier to recognize good code than write it.) See if the swagger
is really justified, or if they're just swaggering because they are the only
ones capable of navigating their own mess. If you're closing bugs on a
reasonable schedule, and they're staying closed when QA tests them, you're at
least keeping up. Also consider the difficulty of the tasks... if a "fix the
font" bug turns into a multi-week endeavor because the code is just crap,
well, maybe this job isn't worth fighting for anyhow. (No programming job is
perfect or easy but some are worse than others for no good reason.)

Ultimately, you can't get a yea or nay answer from anything anybody says here,
so one last bit of meta-advice... after you read this, just sleep on it for a
day or two before coming to any decisions of any kind. Let your subconscious
chew on this too.

(Also, I post even though many already have because I see few people are
directly addressing your very reasonable questions.)

------
carlchenet
if you're suffering, just move on to a more friendly place.

------
yourad_io
> tons of experience

> every man for himself

> big egos and really rotten and bitter attitudes

> co-worker ignores, despises and almost makes fun of me for your lack of
> experience

> treat people who are not at the same level like idiots

I hire. I'm on the lookout for Ninjas and Rockstars and all of that. Those
mythical 12345x codars. _It 's easy because I'm a 67890x coder, and at around
1024x, we're all taught a secret handshake._

 _Ya, right_. When interviewing you, I'll try to set you up to both succeed
and fail; you'll be given ample opportunity to correct me on anything from
blatantly idiotic/wrong statements to minute technicalities (the ones you
catch). I'll try to see your patience, assertiveness, helpfulness,
communication skills, etc.

You could be $#1_in_the_world in $thing_im_hiring_for. If your ego extends
beyond your physical boundaries and into others' minds, you can fuck right
off. I'll get a 1234x guy instead that will occasionally help the 123x guys as
well. And I'm not creating a toxic environment.

According to my [limited] experience, _heck yeah_ there are ninjas that make
it for both themselves and their companies and environments, while a) having
good enough social skills so as not to offend unnecessarily and b) have the
desire to mentor and guide people, rather than verbally throw acid in their
faces. It's an attitude problem more than anything else. Organisations that
foster such toxic environments will later on hold meaningless seminars for
team building in a band-air attempt to fix their churn.

It doesn't make much sense _not_ to help someone, especially on the same team.
So often he'll just be missing some minor concept. A few kind keywords from a
more knowledgable person will get him googling and on track[2].

Your environment is toxic. If you're learning even a bit, stay as long as you
can stomach it. When you've (learned|had) enough, go somewhere nicer and
remember to be nice to your "inferiors".

[1] Hasn't happened yet. To me at least.

[2] This likely won't be the case if there is _too_ big a divide between your
levels - e.g. Linus may not answer your polite question about memcpy

[3] bonus orphan footnote: look up impostor syndrome. Ensure you aren't
suffering from it. Computing is a vast, vast universe - as deep as it is wide.
There'll be someone who knows something you don't, in just about any techie-
filled room. Actual impostors often behave in the manner you're describing,
which (ironically?) causes impostor syndrome to people who actually know quite
a bit.

------
M8
Let me guess: Google?

------
epx
Become the manager!

------
midnightmonster
Suppositions: * You can't keep this up. You'll either quit or be fired sooner
or later. * You really do have a lot to learn from your coworkers.

If you believe those are true, a radical change of strategy is in order, and
you should keep in mind that you have very little to lose. Your worst
plausible professional outcome is that you get fired soon, and you cannot use
this employer or coworkers as a reference. That definitely sucks, but it's
already a pretty likely outcome, so don't worry about making things worse.

Sucking hard at the beginning of something is normal. Lacking the support that
would help you not-suck faster is sad but common. Having a hard time relating
to people further along in the process is sad but common. What will you make
of these things?

\---------

Tips:

1\. Remember what several have said here, that those with superior attitudes
are often themselves insecure.

2\. Memorize and internalize swampangel's guidance on taking feedback.

\----------

Strategy:

Do not worry about your dignity or your image. Why did your self-esteem
plunge? Were you impressed with yourself because you thought you were
smarter/more skilled than other people? You were then and you still are. It's
just that now you know a lot more people you are _not_ more skilled than.
Unless and until you become one of the tiny minority at the true peak of your
profession, this will happen to you over and over. (Even if you reach the
peak, many of those who came before you produced work more profound and
seminal than yours, and many of those after you will build on your work to do
even more awesome things.)

But it's lucky when this happens to you, when you suddenly find yourself in a
bigger pond. A much better basis for self-esteem is your character and your
progress. "I'm smarter than most of the people I know" is a win condition only
sustainable by avoiding opportunities for growth. "I'm more skilled, more
wise, more loving than I was a year ago" is a win condition you can hit every
year without it ever getting old.

Ask for the help you need, but read <[http://catb.org/~esr/faqs/smart-
questions.html>](http://catb.org/~esr/faqs/smart-questions.html>). Do not
flatter people or debase yourself, but ask directly, showing concisely
whatever work you've already put into solving your problem. "Showing your
work" has several good effects (1) it shows you are not intentionally wasting
someone's time; (2) it helps your respondent understand what level to answer
you at and (3) you may often come to the solution just by formulating your
question and work so far carefully.

When you don't understand something, take notes and look it up. If you can't
figure it out, just go ask the person who mentioned it--or someone more
approachable who is likely to know. Don't worry about your dignity, don't
worry about humility.

People understand (and need to understand) themselves in light of their
actions. If they don't think much of you, but you get them to help you anyway,
you've raised a small contradiction in the back of their mind: "I don't really
care about him, but I helped him. Why did I do that?" They will often resolve
this contradiction by beginning to think of you as a person they like pretty
well after all, or by thinking of themselves as a mentor type. In the future,
they will be more likely to act out of their newly-developing concept of you
or themselves.

Whenever someone helps you, look for a genuine way to make them look good.
E.g., in a status report or team meeting: "I was tasked with adding feature Y
to the Frobulator. I was not familiar with the way we use Sporks in the
Frobulator module, but Jones took a couple minutes to bring me up to speed on
Frobulator Sporks, and I was able to complete feature Y."

If they think of you as their junior, so what? You'll be _their_ junior. If
you make good on their investment of time by giving credit and getting better,
they will grow to see you as a good investment, and they won't want their
investment to be wasted by losing you to another job.

\---------

Maybe this doesn't work. All the stuff I said confidently above might miss the
mark because of weird or unusually pathological quirks of you, the people, or
workplace. There are a thousand factors we can't guess at from an Ask HN post.
I'm just some guy on the Internet.

------
michaelochurch
It sounds like you landed on a shitty team and you should try to find another
team, look for a mentor, or move on. There are a lot of programmers with
terrible personalities, and not only are you not the first one to encounter
this, but you're not rare in having this experience.

There's so much in this field that no one knows it all. I've been doing this
for almost a decade and I still encounter concepts and technologies that are
new to me. I've gotten deep into Haskell of late, but I still don't know what
"homotopy type theory" is or much category theory beyond the superficial.
That's OK. Just learn things and, if you have time, build things. You'll get
better over time.

Also, the false sense of incompetence (impostor syndrome) is very common in
the early years. It's depressing and brutal, but you can beat it.

 _[H]ow should I act in order to maintain my dignity but also be humble enough
to acknowledge the co-worker 's knowledge?_

Find people who you are comfortable asking for help from. You have nothing to
be ashamed of. No one was born knowing how Git works.

 _Is it normal to be hired as a junior and just being thrown to the lions,
with no help or time to ramp up?_

Dysfunctional but fairly common, especially in the "hot" Valley startups that
are often run by adolescents. You're not alone. You'll get through it. Just
keep learning, not because you feel a need to, but because you're interested.
Of course, if you're _not_ interested in learning more about programming and
CS, then it's time to consider something else.

 _Do all star /ninja/rock-star software developers have rotten attitudes?_

First, I'd bet that they aren't that good. There are plenty of people who can
talk a good game, who know buzzwords and hot technologies and trends, but are
mediocre programmers. They write code fast and they're great at making
themselves seem smart (especially to non-technical business operators) but
their code is often of low quality.

Most of the really good programmers are humble, just because it's really hard
to get any good-- you have to consistently fight your way to better projects,
which often gets political and that can be very draining-- and it takes a long
time. Although our industry fetishizes youth, almost all of the great
programmers are over 40, just because it takes so long to develop the skill.

------
hackedips
"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)."

I'd get the fuck out of there as fast as possible. With that kind of
environment, it is only a matter of time before it crashes and burns.

------
Sven7
George W. Bush should have known better than to have run for President.

Now if Bush had posted the same questions on here I am pretty sure we wouldn't
be seeing any of the responses we have seen so far.

So I'll just end by paraphrasing from the Gita - You have freedom only to take
action

You have no claim on the reward of that action

Whenever you take a risky action keep those (including yourself i.e. be self
aware) that might get effected in the loop

If your actions are good rewards will come.

If your actions are misguided you will sooner or later suffer. And others will
too.

------
AnimalMuppet
I don't think you're surrounded by people who are smarter than you. I think
you're surrounded by people with more experience than you, and bigger egos,
and warped personalities. The personality issues make them feel the need to
make you feel less than them, so that they feel better about themselves. If
they're smarter about anything, it's how to manipulate your emotions.

You either need to learn to ignore the emotional manipulation, or you need to
get out of that toxic environment. And you need to hold your head up. Learn
what you can, but _don 't learn the attitude._ It will ruin you.

------
heroic
To give an idea I'll tell you what my employee had to bear with me:

1) He was a fresh out of college, and had no job for an year. He started
working on Ruby on Rails for me. Every day, I'd make sure I let him know when
he wasn't performing upto the mark, sometimes even going to extremes where I
ended up making him cry. (I know it was bad on my part, and I apologized). 2)
I did however make it a point never to tell him anything to solve his issues.
If I thought/noticed that he isn't progressing, then I'd just drop a word or
two, and leave it upto him to figure out that I have left him a hint. 3) I
considered myself the worst senior to have, but today, due to him being hard
working and the go-figure-yourself attitude I gave him, he is currently very
successful at him current job, and is able to take on problems and come up
with solutions by himself.

Coming to how is this relevant to you: Are you sure your colleagues are not
giving you hints, or pushing you to find answers by yourself? Lending a hand
is okay, but mostly I have seen that ending up creating a spoon feed me
mentality.

On how to keep your dignity, I'd say there is no other way than to keep
learning. If you are a software dev, attend hackathons/talks/etc, and keep
yourself updated on the latest.

Rotten attitudes is not always the case, but sometimes the pressure to be the
best pushes you to that side. It's important to remember where you started at
to remain a human.

