Once I stopped asking myself whether I could actually build something. Nowadays the question is not if it can be built, but instead how long it will take. But, I still don't view myself as an above average dev. :)
Being able to see a project in all of its sides - even the ones you're not skilled on - and to take decisions about them is what it makes the difference to me.
That doesn't mean you won't ask for advices, of course, but rather asking them not with a "How am I supposed to do that?" attitude, but with a "I think I'll do it like this, do you think it can be improved?" state of mind instead.
I sometimes think like this, it just the problem of how long to build it
But actually, time is money, right?
besides there are many problems and skills needed to be considered
how fast is it?
how scalability is it?
how he/she works in team?
etc...
P/S: recently I join a project which was implemented so poorly and had many issues of performance and now losing customers due to that.
Kim Arnett [she/her] leads the mobile team at Deque Systems, bringing expertise in iOS development and a strong focus on accessibility, user experience, and team dynamics.
never met a part of the stack I didn't like. sr. engineer at clique studios in chicago, perpetual creative hobbyist, bird friend, local gay agenda promoter. she/her. tips: https://ko-fi.com/carlymho
I don't know that I ever specifically thought of myself as a junior/newbie, largely because I went through my early programming days as a hobbyist in junior high and high school. I did start specifically thinking of myself as solidly mid-level/senior when I became able to and comfortable in asserting myself and my opinions and ideas at work, and advocate for the ideas I cared about, I think.
I started to feel like I wasn't a newbie when I could start having productive conversations with more senior employees about the requirements and functionality of an application.
Knowing how to write code is one thing, but to have a vested interest in developing a product and contributing to it from design to production meaningfully is what made me really feel like I was a solid contributor.
The first time I was assigned to build an entire web application for a real company who they were actually expecting to get money back from the product I was about to build.
I haven't even finished my BsC yet. I was lucky though to have a PM that was actually very gentle with me and even on times that I was screwing up, he always had my back. That project took a few months to complete but the company discontinued it after some time. I then learned that they built it just to get some government funds so they weren't really up to make it a business.
Nevertheless, that was the moment I realized I couldn't just play anymore, I had to pull my self together, read my ass off, work harder to meet the requirements, build great products for people that are willing to trust me with their businesses. Most importantly, I learned how to respect the craft, or art if you will, of programming.
Aw man, I have a lot more to write. It's such a big subject and I truly believe that people think of this a lot, especially newcomers to this job.
I need to organize my thoughts more, thanks for the great question. 😎
DISCLAIMER: I am still trying hard to think of my self as a junior. I am learning new stuff every day, just like 5 years and 10 years ago.
I'm curious about why you're asking this question. I worry that terms like "junior" or "newbie" set up a hierarchy that doesn't need to exist. It can lead to "vertical" thinking - "I'm new at this, so I'm underneath or less than the people who aren't new at this."
In reality as I experience it, everybody is a newbie at something, and folks who aren't consistently placing themselves in a newbie position are stagnating.
Any project has different aspects that will apply to folks of all experience levels - design, problem-solving, documentation, support, etc. A well-orchestrated project will apply folks to relevant problems according to their experience, without placing a judgement on which experience is better. In most cases, it's better to have a variety of experience levels on a team, so that people can have problems to solve that they aren't yet jaded about, or bored of solving, or can't yet get their minds around. It's not that your "worthiness" increases as you gain experience, it's that you are a natural fit for different sorts of problems.
Why do you think these terms shall not exist? There are people who have more experience on a subject while other people trying to learn it. I think its a natural proccess, but I admit that calling someone a newbie is a bit harsh.
I second this thought! What a great feeling it is, too, when someone comes to you with questions and advice. I especially love the 'aha-moments' when I can fully explain something, front to back, without hesitation. It also makes me realize that when I use to ask people questions, I wasn't wasting people's time like I had always been afraid of. It's really empowering to be looked up to or seen as a teammate with valuable knowledge. Impostor syndrome is too easy to fall into.
Seasoned Staff Engineer at Artium, expert in agile methodologies and software development. Adept at leading teams and pioneering transformative solutions.
I realized I was seeing only the the first inception level.
After you master one insignificant sliver of software craftsmanship, you look up to realize there has been a firehose pointed at your face the whole time. Learning to drink becomes more important than the specifics of any one skill in particular. You get used to it.
For new skills, I still feel like a junior starting out. But, that does not last too long anymore.
I am starting to pick up Node. It's not my first language. It will not be my last.
Top comments (62)
Once I stopped asking myself whether I could actually build something. Nowadays the question is not if it can be built, but instead how long it will take. But, I still don't view myself as an above average dev. :)
I second this thought.
Being able to see a project in all of its sides - even the ones you're not skilled on - and to take decisions about them is what it makes the difference to me.
That doesn't mean you won't ask for advices, of course, but rather asking them not with a "How am I supposed to do that?" attitude, but with a "I think I'll do it like this, do you think it can be improved?" state of mind instead.
I sometimes think like this, it just the problem of how long to build it
But actually, time is money, right?
besides there are many problems and skills needed to be considered
how fast is it?
how scalability is it?
how he/she works in team?
etc...
P/S: recently I join a project which was implemented so poorly and had many issues of performance and now losing customers due to that.
When I started getting annoyed that others saw me as a junior.
In order to change others opinions, you have to first believe it yourself.
I had this step in a different career. But I enjoy the sense of humility as a junior in tech
What? You mean it stops at some point? :)
I don't know that I ever specifically thought of myself as a junior/newbie, largely because I went through my early programming days as a hobbyist in junior high and high school. I did start specifically thinking of myself as solidly mid-level/senior when I became able to and comfortable in asserting myself and my opinions and ideas at work, and advocate for the ideas I cared about, I think.
I started to feel like I wasn't a newbie when I could start having productive conversations with more senior employees about the requirements and functionality of an application.
Knowing how to write code is one thing, but to have a vested interest in developing a product and contributing to it from design to production meaningfully is what made me really feel like I was a solid contributor.
The first time I was assigned to build an entire web application for a real company who they were actually expecting to get money back from the product I was about to build.
I haven't even finished my BsC yet. I was lucky though to have a PM that was actually very gentle with me and even on times that I was screwing up, he always had my back. That project took a few months to complete but the company discontinued it after some time. I then learned that they built it just to get some government funds so they weren't really up to make it a business.
Nevertheless, that was the moment I realized I couldn't just play anymore, I had to pull my self together, read my ass off, work harder to meet the requirements, build great products for people that are willing to trust me with their businesses. Most importantly, I learned how to respect the craft, or art if you will, of programming.
Aw man, I have a lot more to write. It's such a big subject and I truly believe that people think of this a lot, especially newcomers to this job.
I need to organize my thoughts more, thanks for the great question. 😎
DISCLAIMER: I am still trying hard to think of my self as a junior. I am learning new stuff every day, just like 5 years and 10 years ago.
I am at this point myself got paid to build an entire system by why own. Hope I don't dissapoint.
I'm curious about why you're asking this question. I worry that terms like "junior" or "newbie" set up a hierarchy that doesn't need to exist. It can lead to "vertical" thinking - "I'm new at this, so I'm underneath or less than the people who aren't new at this."
In reality as I experience it, everybody is a newbie at something, and folks who aren't consistently placing themselves in a newbie position are stagnating.
Any project has different aspects that will apply to folks of all experience levels - design, problem-solving, documentation, support, etc. A well-orchestrated project will apply folks to relevant problems according to their experience, without placing a judgement on which experience is better. In most cases, it's better to have a variety of experience levels on a team, so that people can have problems to solve that they aren't yet jaded about, or bored of solving, or can't yet get their minds around. It's not that your "worthiness" increases as you gain experience, it's that you are a natural fit for different sorts of problems.
Why do you think these terms shall not exist? There are people who have more experience on a subject while other people trying to learn it. I think its a natural proccess, but I admit that calling someone a newbie is a bit harsh.
When my approach started to change from how much code I should write to how much I shouldn't write.
When I started to see problems in design before they even got to development.
When I started to build up a series of small solutions in order to solve a larger problem.
Knowing how abstraction works both visually and technically.
I second this thought! What a great feeling it is, too, when someone comes to you with questions and advice. I especially love the 'aha-moments' when I can fully explain something, front to back, without hesitation. It also makes me realize that when I use to ask people questions, I wasn't wasting people's time like I had always been afraid of. It's really empowering to be looked up to or seen as a teammate with valuable knowledge. Impostor syndrome is too easy to fall into.
I realized I was seeing only the the first inception level.
After you master one insignificant sliver of software craftsmanship, you look up to realize there has been a firehose pointed at your face the whole time. Learning to drink becomes more important than the specifics of any one skill in particular. You get used to it.
For new skills, I still feel like a junior starting out. But, that does not last too long anymore.
I am starting to pick up Node. It's not my first language. It will not be my last.