Five years ago I got my first full time job as a programmer. If I had a TARDIS, this is what I might go back and tell myself to help me work out some of the important stuff sooner1.
People and product
Chris, it will take a couple jobs for you to work it out, but you will find these are the two most important things for making a job worthwhile and enjoyable. The people that you will work with shape the person you become, so you really don’t want to get it wrong. And for you, unless the product is ethical and a benefit to society you’ll lose all motivation. Everything else: working environment, technical challenges and salary, are secondary. Things such as the size of the company’s ball pit are just distractions2.
Teaching is hard
You will be lucky enough to work with some really smart people who will take their time to teach and encourage you. You won’t realise until later, when you try and do it yourself, how important a skill being a teacher is. When you realise this you’ll be even more grateful for the time others have taken (and still do take) with you.
Don’t rely on recruiters
Traditional tech recruitment agencies are highly financially incentivised to hire people into roles. If lying helps them do this, they might.
There are some very good people that work in tech recruitment, but for the most part I would avoid recruiting agencies, and directly contact companies through specialised tech job listings or advertisements in local tech groups.
Lack of diversity is a problem in tech
You’ll be aware that there weren’t many women in your computing class at A-level, nor on your degree course. You’ll have some assumptions about the reasons why. They are wrong. Perhaps most harmful is that feeling that it’s not your problem, and even if it was, you are powerless to change it. Read up on how we got there, talk to others in the industry who have had to overcome prejudice and do your best to make things better.
There’s no comparison
It’s like building bridges. It’s like spinning plates. It’s like being a mechanic. A chef. An architect. You’ve been given many metaphors to help explain what software development is like, and you’ll likely hear many more. I’ve since concluded that software development is new and fast-changing enough that broad metaphors about what it is, or should be, aren’t helpful and won’t tell you what you should be doing day to day. What matters is core to any profession: you should behave ethically and in accordance with the law, you should care about the work you are doing, you should be proud of the result and you should try to better yourself.
There’s a lot more I could share with you, but it’s ok to not know what you’re doing. You’ll pick it up as you go.