1. Don't work for a start-up, since they don't impart salary-winning experience to you, they don't pay you or provide reasonable benefits, and they also don't allow you the freedom to work on big ideas that they usually promise. The lines used to sell naive engineers on working in start-ups are as paramount to life's-too-short-bullshit as anything can be.
2. Don't agree to work in Agile/Scrum-like one-size-fits-all software management environments. Almost every single aspect of these systems is bullshit and will waste your time and break down your morale while draining away your productivity in the best years of your life.
3. Don't work in open-plan offices or even offices that merely have cubicles. It's been settled for a long, long time that even in dense urban areas, providing private offices for individual knowledge workers is extremely cost effective for businesses, as productivity, work-place cognitive health, job satisfaction, moral, etc., all go up substantially. Generally the only reasons for open-plan offices are (1) bullshit trendiness in which an organization performs a shallow copy of some other organization, (2) hyperbolic focus on short-term costs, which means you should be thinking that the upper management doesn't know what they are doing and are bullshitting you -- it's similar to seeing a company stop providing free coffee as a money-saving tactic. It's bullshit -- coffee is so cheap and the productivity and good will it brings are so valuable that it's virtually never a reasonable plan to cut it; and (3) environments where upper management get off on surveillance and cognitive manipulation, and so it becomes a company cultural value to cram everyone into big rooms where you function more like a piece of office furniture than as a worker.
Personally I would also add that life's too short for enterprise C++ and Java (the languages themselves are quite fine, but anyone telling you that some legacy system couldn't have been maintained and incrementally brought into a better state by 2016 is, once again, bullshitting you and see you as nothing but a glorified code janitor).
I think if I could give any advice to young developers, it would be that if they want management types to respect them throughout a prosperous career, they have to avoid the bullshit of the items above. If you let a manager or executive bullshit you by duping you into working for a start-up, by getting you to agree you are a child whose own creative thinking about problem solving can't be trusted and so Agile/Scrum cookbook management is needed and you must play your part, or by getting you to agree that your natural inclinations for privacy, clarity of thought, protection of productivity and time, should all be sublimated so you can be a "team player" by wearing headphones that cost more than your employer's 401k matches for the year so you can just barely function 10 feet from a foosball table, you've already lost, and it will take years to undo the damage.