As far into my career as I am at this point, I've both a finely honed radar and zero tolerance for toxic bullshit, but as a new developer, it's a whole lot harder to have both the self-confidence and self-awareness to recognize that the reception you're getting isn't because you're an unqualified idiot, it's because Sr. Developer Jim's dad was an asshole and Engineering Manager Bob doesn't know how to or have the confidence in his role to rein in his Sr. Developer from berating the new grad for things that new grads do until emotionally balanced mentors teach them not to. I have good friends who've spent a lot of time in therapy undoing what toxic workplaces did during vulnerable years.
My advice, look for some decent, experienced people in any job you have, but even more so in your first. Build a trustfull relationship with at least one of those folks and get as much advice, mentoring and context out of them as possible.
The one thing you don't want to do is to talk about these things with a report or with a co-worker, and I've seen too many managers making this mistake with me.
I could be getting paid more, but my current workplace has only a couple completely worthless human beings. The supervisor knows who they are and what they're like and steps right in if there's a conflict. That's worth at least an extra $20k/year in my book. For my part, I try to advocate for less-established coworkers who are getting hit with the same crap I did from those individuals. Keeps the couple jerks from running off potential talent who will make my job more pleasant in the long run.
That happened to a report of mine once, obviously with a previous mutual agreement, but some recruiters mentioned that trend to me as well.
I think having a set date to leave is healthy, especially at this point in someone's career. You just do your job and you're rewarded with money and experience. You shield yourself from toxicity in a way, since don't want to depend on the job for having "best friends". Also you don't play office politics since you know it's ephemeral.
When you hire a new grad, and then spend a year getting them all up to speed with the process and CI system and code reviews and familiarization with the code base and they're just now starting to take on the responsibility for some of the code... and they leave a year and a day after you hired them.
And so then you hire another new grad... and {repeat}... and they leave a year and a day after you hired them.
At this point, management is a bit frustrated. They give it one more go... and they leave a year and a day after you hired them.
And now, when that position is opened up again, it is no longer an entry level position but rather a mid level. We forgo the extensive onboarding and gradual ramp up for a new grad and instead have a mid who should be able to understand the nature of a CI system, issue tracking, and so on and be able to start being a positive contributor in a month or two and so if they also leave a year and a day later, we've had several months of them being a positive contribution on the team.
... and now its just that much harder for a new grad to find a job.
With new grads, we can't hold 'em at all. For people who came in with 5+ years of experience, the average tenure here is 15 years. People are more likely to retire than quit. (Seriously, I've got 200 hours of "manager makes sure you use it" vacation, sabbatical accrual, an honest to goodness funded pension, and one of the better health insurance policies).