Let the employer know how much you want the job. Know the details about the company. Practice answers to questions. Treat this like you’re training to win the US Open. You would be surprised how little effort most people out into preparing.
Also keep in mind that you won’t get every job you apply for and it might not even be your fault. When hiring managers are building a team they may be looking for a specific “personality or subtype” to fill out the team. Where If they had multiple head counts they would probably hire you but are holding out for the perfect fit.
My first job was 50k/year and I lost money just by getting to work (gas, fees, parking, etc). Told my boss and in 6 months I got a >50% raise to 80k/year + stocks + parking space.
Next job was 120k + stocks + remote for a company in the valley.
Each job hop will net you a pay increase similar to this. It'll also give you new perspective on software engineering.
My email is in my profile if you want to discuss in more detail!
People who are really good can recognize each other.
At some point in the interview process they'll sit you down in the room with a couple of their other really good people, you'll "grok" each other and be hired. (If that never happens, decline the offer, they have no one and no clue.)
Those places are rare. But for the majority, my tip would be:
- Get comfortable with a couple of languages, learn good style, and get familiar with the toolkit.
- Learn the fundamentals of CS.
- Commit to some side projects.
- Seek out internships/work experience
- Do fairly well in school.
- Learn teamwork and soft skills.
I don't think any single/individual point above is enough to signal "awesome developer", but the sum of them will surely correlate with high potential.
Small trivial projects on github profile do not count for much. Contributions to some established OS project are great.