I switched career at 33 through a bootcamp. A lot of us do it at various ages, some younger, some later on. I globally really enjoyed the ride and learning experience.
During the bootcamp we were exposed to the concept of growth vs fixed mindset, at this stage the concept seemed to click - it was feeling comfortable, I was confident in my ability to learn and proud of my capacity to pivot.
And then it happened after the first few months at my first dev job - I realised the hardest thing for me was to embrace being a beginner once again.
I don't consider myself having a big ego (but who does ? 🤔 ), nevertheless it became a hindrance after a few months when I was often comparing myself to other devs, most of them senior, all of them having a more valuable contribution to the company than me.
I believe this feeling came from 2 main dimensions :
- my own mental capacity to cope with the career switch / impostor syndrome
- the job environment
Impostor Syndrome / Self Doubts
There is a lot of good advices on how to cope with impostor syndrome over the internet. Impostor syndrome is mostly self doubts and as such can be difficult to handle. I don't have much more advices to share on the way to handle it from within yourself, but rather I want to focus on the second point where I might have a bit more concrete advices : picking a healthy job environment.
During my first job hunt as a dev I tried to get the job with the best learning environment.
Naively I thought that a company with a lot of senior dev + "standard best practices" would be the best to learn from.
I was wrong.
I ended up in a company which had a lot of senior devs, some of them being really impressive in their technical knowledge and problem solving skills. I still learned a lot from them, but while months were going on I began to realize that the place was not feeling safe.
We're not talking about physical integrity but rather about an environment where it feels safe to learn / grow / fail. There is an interesting study on google teams or the well known book : 5 dysfunctions of a team which explains how this can be impacting.
It's kind of difficult when you begin your dev career, to differentiate the impostor syndrome and its consequences (lack of confidence etc) versus a more rooted issue from the environment itself.
The question always comes up as a personal issue till you're able to articulate it with other colleagues and you realise that the feelings are shared.
Concretely here are some symptoms we were experiencing :
- Lack of encouragement
- Code review feedback lacked empathy
- We didn't feel our work was valuable to the company
- Subtle but constant pressure about our capacity to match senior output
Those are mostly perception related things and it could vary from one individual to another - but when they stack, they definitely create a non productive environment for those who are not confident enough by themselves.
It often leads you to doubt about your skills, your learning abilities etc. When you switch career and don't have much experience to compare with, you can even doubt about your initial move of becoming a developer. This level of self-doubts affects obviously your personal life.
This should be a red flag about the company and the environment, if you see it not only as a punctual feeling/experience you have, but rather a trend/direction.
With some perspective now I feel there were several root causes :
- company capacity to make junior dev grow
- cultural misfit
My first company, and I cannot blame them for that, was not used to recruit junior dev. They had a strong stable and trusted team for a long-lived product for which they were only recruiting seniors. It's difficult to be good at something you don't practice.
Cultural fit is to me how you share values and you can relate to your colleagues. When difficult times arise (as it will), you will rely on this fundamental aspect to be able to communicate/articulate the issue. As those topics are already difficult to share, when you feel out of place, it will be all the more difficult to share and address them.
In all honesty when we talk with my ex colleagues, we're still grateful for the experience as we learned a lot by just being in contact of great knowledgeable developers.
But having now experienced others working environments - I think as a first job, the best learning environment is a place where it can feel safe to grow. I don't say it has to be all comfortable and indulging (quite the opposite in fact) but rather an environment where you feel you can tackle challenge and you can go out of your comfort zone while being supported.
That's why I think it's an important skill to be able to assess those aspects early on in the recruiting process.
Get a first job where you can build confidence in your skill
I understand that the situation is not identical for all students / junior dev and that we cannot always "choose" our first job - that being said, knowing how to assess your future job environment is a skill in itself, and that will be useful for all your other jobs.
Company capacity to make junior dev grow :
In my opinion, you can have a good idea of the company capacity to support the growth of junior dev by looking at :
- onboarding process
- junior dev turnover / frequency of hiring junior
- collaboration process
Most of those aspects can be assessed fairly well during the recruiting process, by asking questions such as :
- What is the process to onboard new team members ?
- What are the expectations for a junior dev at 3 months, 6 months, a year ?
- Do you often onboard junior dev
- Do you have a Career Framework ?
- What are the values important to your team to ensure a good collaboration ?
- What space/trust/ownership has a developer to explore some feature/aspect/optimization ?
Special mention about the Career Framework - This is usually something which comes up when you have more than XX devs - therefore the lack of it might not be a red flag in itself.
Cultural fit :
This can be trickier I feel to assess as there is a lot of "marketing" these days around it with culture books and shiny endeavour which do not always guarantee a concrete translation in a day to day work.
I think this is best assessed by meeting team members and asking questions about their own journey / struggles and how you can relate to those.
Meeting people that went through the same path/steps as you do will prove useful and will facilitate meaningful support when needed.
As previously mentioned, and I want to reiterate, I'm still grateful for all my previous experiences and all the learnings that came out of it (technical or non technical related).
That being said, we as fresh bootcamp student (or fresh graduates in general) tend to rush to accept the first offer. Despite the urge and pressure of doing that, we should be able to gauge a company environment in term of learning expectations not only through the tech stack but also through team dynamics, process and values.
Genuinely foster a learning environment for all is a difficult task, and we also have a responsibility as junior dev and future seniors to be a part of improving/creating it.
Some resources to go beyond this post and inspire a broader perspective on the question
- 🎥 a talk of Sarah May about power dynamic in agile teams
- 📖 swyx excellent book on the coding career. There are specific chapters around the career guides section.