Junior developer struggles: how to communicate with management?Colleague in two-person team is writing bad...
Problems with numbers (result of calculations) alignment using siunitx package inside tabular environment
How to get SEEK accessing converted ID via view
Does hiding behind 5-ft-wide cover give full cover?
How did Arya get back her dagger from Sansa?
What was the state of the German rail system in 1944?
Game of Life meets Chaos Theory
If Earth is tilted, why is Polaris always above the same spot?
What does air vanishing on contact sound like?
Field Length Validation for Desktop Application which has maximum 1000 characters
Floor tile layout process?
How do I tell my manager that his code review comment is wrong?
Accidentally deleted the "/usr/share" folder
Was the ancestor of SCSI, the SASI protocol, nothing more than a draft?
Is it cheaper to drop cargo than to land it?
How could a planet have most of its water in the atmosphere?
Why debootstrap can only run as root?
I lost my Irish passport. Can I travel to Thailand and back from the UK using my US passport?
Change active object through scripting
Was Hulk present at this event?
Hang 20lb projector screen on Hardieplank
How to avoid grep command finding commented out strings in the source file?
The barbers paradox first order logic formalization
Why was Germany not as successful as other Europeans in establishing overseas colonies?
CRT Oscilloscope - part of the plot is missing
Junior developer struggles: how to communicate with management?
Colleague in two-person team is writing bad code, no standards, and the company is growing fast. What needs to be put in place for good code quality?New college grad hired as a hardware developer; how do I deal with being told I'm now a Front-End Web developer?Company wants me to do a coding test for a management positionIs my lack of web ability holding me back in my programming career?How Do I Motivate a Junior Developer?Junior Developer doing well but management wants to fire himHow can I deal with managers that refuse to accept use of common software engineering design patterns?How to deal with a difficult junior programmer?How can I avoid critical mistakes in a new code environment?My progress is stagnating and I don't want to disappoint my supervisor (Internship)
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
I learnt programming at home and was a brilliant bootcamp graduate (that is, by the standards of that bootcamp, which is certainly not as good as top US bootcamps), I found a job fairly easily considering how hard I think it should have been. The interview went really well.
Now I work for a tech company that basically has one main software it writes for other very large companies, and it poses a few challenges: 1) it's tough for me to grasp what everything is doing (they have been writing/updating this software for years now), 2) I'm seeing code written in ways I'm not use to, and finally 3) I don't understand all the code at first glance, sometimes not at all. My main task for the next 6 months will be to write unit tests then integration tests because "you need to get used to our software", which I think makes perfect sense, although my interview had nothing to do with that. Most people are really nice and friendly, and there is a good atmosphere in this company.
My problem is that I have to write tests for methods that I don't understand most of the time, I don't always understand which parameters they have to take, what it returns, I don't know what I have to mock in order to make my method unit-testable, and I don't always understand the instructions I'm given. After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
I am quite frustrated because I am quite hungry to learn, however, it's not by watching videos on Pluralsight/read articles that I will get better at what challenges me (or am I wrong?), so I can't even practice at home. I think that I embarrass myself whenever I ask a question so I tend to be stuck a lot, staring at the screen and trying to make sense of what I'm reading. I feel like an impostor surrounded by people that 'get it', and to be honest my confidence has taken quite a big hit (I went from being arguably the best in class to definitely the worst in a company). During bad moments I sometimes catch myself wondering if going into software development was a good idea, and if I'm not a victim of a sunk-cost fallacy (as in, "I spent too much time learning this to quit now").
My questions:
1 - Is it normal?
2 - What can I do better?
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
Thank you very much,
Edit:
I worked there only 2 weeks, it's my 3rd job.
software-development first-job junior
New contributor
add a comment |
I learnt programming at home and was a brilliant bootcamp graduate (that is, by the standards of that bootcamp, which is certainly not as good as top US bootcamps), I found a job fairly easily considering how hard I think it should have been. The interview went really well.
Now I work for a tech company that basically has one main software it writes for other very large companies, and it poses a few challenges: 1) it's tough for me to grasp what everything is doing (they have been writing/updating this software for years now), 2) I'm seeing code written in ways I'm not use to, and finally 3) I don't understand all the code at first glance, sometimes not at all. My main task for the next 6 months will be to write unit tests then integration tests because "you need to get used to our software", which I think makes perfect sense, although my interview had nothing to do with that. Most people are really nice and friendly, and there is a good atmosphere in this company.
My problem is that I have to write tests for methods that I don't understand most of the time, I don't always understand which parameters they have to take, what it returns, I don't know what I have to mock in order to make my method unit-testable, and I don't always understand the instructions I'm given. After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
I am quite frustrated because I am quite hungry to learn, however, it's not by watching videos on Pluralsight/read articles that I will get better at what challenges me (or am I wrong?), so I can't even practice at home. I think that I embarrass myself whenever I ask a question so I tend to be stuck a lot, staring at the screen and trying to make sense of what I'm reading. I feel like an impostor surrounded by people that 'get it', and to be honest my confidence has taken quite a big hit (I went from being arguably the best in class to definitely the worst in a company). During bad moments I sometimes catch myself wondering if going into software development was a good idea, and if I'm not a victim of a sunk-cost fallacy (as in, "I spent too much time learning this to quit now").
My questions:
1 - Is it normal?
2 - What can I do better?
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
Thank you very much,
Edit:
I worked there only 2 weeks, it's my 3rd job.
software-development first-job junior
New contributor
1
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago
add a comment |
I learnt programming at home and was a brilliant bootcamp graduate (that is, by the standards of that bootcamp, which is certainly not as good as top US bootcamps), I found a job fairly easily considering how hard I think it should have been. The interview went really well.
Now I work for a tech company that basically has one main software it writes for other very large companies, and it poses a few challenges: 1) it's tough for me to grasp what everything is doing (they have been writing/updating this software for years now), 2) I'm seeing code written in ways I'm not use to, and finally 3) I don't understand all the code at first glance, sometimes not at all. My main task for the next 6 months will be to write unit tests then integration tests because "you need to get used to our software", which I think makes perfect sense, although my interview had nothing to do with that. Most people are really nice and friendly, and there is a good atmosphere in this company.
My problem is that I have to write tests for methods that I don't understand most of the time, I don't always understand which parameters they have to take, what it returns, I don't know what I have to mock in order to make my method unit-testable, and I don't always understand the instructions I'm given. After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
I am quite frustrated because I am quite hungry to learn, however, it's not by watching videos on Pluralsight/read articles that I will get better at what challenges me (or am I wrong?), so I can't even practice at home. I think that I embarrass myself whenever I ask a question so I tend to be stuck a lot, staring at the screen and trying to make sense of what I'm reading. I feel like an impostor surrounded by people that 'get it', and to be honest my confidence has taken quite a big hit (I went from being arguably the best in class to definitely the worst in a company). During bad moments I sometimes catch myself wondering if going into software development was a good idea, and if I'm not a victim of a sunk-cost fallacy (as in, "I spent too much time learning this to quit now").
My questions:
1 - Is it normal?
2 - What can I do better?
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
Thank you very much,
Edit:
I worked there only 2 weeks, it's my 3rd job.
software-development first-job junior
New contributor
I learnt programming at home and was a brilliant bootcamp graduate (that is, by the standards of that bootcamp, which is certainly not as good as top US bootcamps), I found a job fairly easily considering how hard I think it should have been. The interview went really well.
Now I work for a tech company that basically has one main software it writes for other very large companies, and it poses a few challenges: 1) it's tough for me to grasp what everything is doing (they have been writing/updating this software for years now), 2) I'm seeing code written in ways I'm not use to, and finally 3) I don't understand all the code at first glance, sometimes not at all. My main task for the next 6 months will be to write unit tests then integration tests because "you need to get used to our software", which I think makes perfect sense, although my interview had nothing to do with that. Most people are really nice and friendly, and there is a good atmosphere in this company.
My problem is that I have to write tests for methods that I don't understand most of the time, I don't always understand which parameters they have to take, what it returns, I don't know what I have to mock in order to make my method unit-testable, and I don't always understand the instructions I'm given. After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
I am quite frustrated because I am quite hungry to learn, however, it's not by watching videos on Pluralsight/read articles that I will get better at what challenges me (or am I wrong?), so I can't even practice at home. I think that I embarrass myself whenever I ask a question so I tend to be stuck a lot, staring at the screen and trying to make sense of what I'm reading. I feel like an impostor surrounded by people that 'get it', and to be honest my confidence has taken quite a big hit (I went from being arguably the best in class to definitely the worst in a company). During bad moments I sometimes catch myself wondering if going into software development was a good idea, and if I'm not a victim of a sunk-cost fallacy (as in, "I spent too much time learning this to quit now").
My questions:
1 - Is it normal?
2 - What can I do better?
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
Thank you very much,
Edit:
I worked there only 2 weeks, it's my 3rd job.
software-development first-job junior
software-development first-job junior
New contributor
New contributor
edited 3 hours ago
Michel12
New contributor
asked 3 hours ago
Michel12Michel12
183
183
New contributor
New contributor
1
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago
add a comment |
1
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago
1
1
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago
add a comment |
3 Answers
3
active
oldest
votes
After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
You will not create "net positive" value for the company for much longer than that (even when I hire senior developers I assume they aren't net positive for 6 months).
Everything you mentioned in your question are actually good signs - it sounds like they are making interesting and non-trivial software, meaning there are many opportunities for you to learn, and it means that they are invested in you - by giving you the time and space to get up to speed.
Writing unit and integration tests are a fairly common way to onboard new junior employees. You will learn the IDE, source control system, build process, and all the various formal and informal workflows of how they develop software, while focusing on relatively bite-size chunks of work. You also get to learn a lot about the business functionality their software provides.
1 - Is it normal?
Yes. You are not an impostor, and there is no reason to think going into this field was a bad idea. In fact, from the fact that they hired you, and want to invest in you, it seems like it was a good idea. The most important thing is to get over the naive belief that just because you were "arguably the best" in your boot camp, that meant you were prepared to walk into a development shop day one and start producing value. The boot camp provided you with the basic foundation of programming - there is a lot, lot, lot more to being a professional developer, which you can only learn on the job.
2 - What can I do better?
I think there are two "scopes" to this. The first is stuff you can do on your own. Invest your own time in learning the language you are programming in - the fine points, the advanced features, etc. Even if your boot camp was in the same language you are now working on, there is a lot to learn (I've been programming in the same primary language for >10 years and am still learning new things every day). If any of the other tools they use are publically/freely available (the IDE, the source control tool) practice with those too. Also, send time learning about the basics of computer science (algorithms, data structures). Even if you aren't using that knowledge right away, it will always come in helpful.
The second, while not specifically related to the testing you are doing, can be done as part of that work. That is to develop the ability to "analyze" a piece of code. Take the simplest test you can find, testing the simplest piece of code, and try to work out the control flow of that piece of code. Run it through a debugger, stopping on every line, and see what it is actually doing. Modify the test slightly and see how it behaves differently. Try and come up with a test that will test a different if-branch (etc.). Use your IDE source control tool and look at the most recent commit which changed that code. See if you can understand what that change did (especially useful if you can link back to the ticket which documented that change). Move to a slightly more complex test and repeat. Now, take the piece of code they want you to test, and conduct that analysis beforehand. Use that to write your first test.
If you need help, ask the author of the test or code you are looking to provide you an overview.
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
No one is born knowing how to code. Therefore your colleagues and managers all started at a similar place as you did. As long as they aren't jerks (and you already said they aren't), they know and expect you to ask them for help.
Of course, you'll need to find the right balance between asking too many questions, and not asking for help early enough. I've often told my juniors "don't waste 3 hours trying to figure out something I can help you with in 5 minutes". Conversely, don't waste my 5 minutes if you haven't spent some time trying to figure it out on your own.
If you don't already have one scheduled, ask your manager for a weekly 30 minute meeting. To quote another answer I've written here:
your manager's job [is] to do his/her best to give you the opportunities to succeed - this can only happen if you two have regular and frequent conversations, and if during those conversations you are open and honest about where you are having difficulties, where you need support, where you are getting stuck, and where you learn what he/she is expecting from you.
One of the most important things to ask is "where should I start" and "who should I bother for help"
Good luck!
add a comment |
Welcome to the Jungle. :)
Yes. It's normal. You're a junior. It's expected that you will not have a clue, and that's why they're having you do what you're doing.
Ask questions. Get the understanding. Ask what you can read on your own time to help you develop an understanding. Be willing to work hard even by spending a few hours outside of work. I'd be concerned about a junior developer that DID NOT ask questions. I'd be willing to bet that any of your coworkers who are seniors started just as you have.
Ask questions, and learn. In time you won't have to ask questions. It will just click and you'll get it.
add a comment |
I worked there only 2 weeks
You need to give it a lot more than just 2 weeks.
- Everyone feels a bit overwhelmed when they initially start a programming job.
- Your first few weeks/months will involve unlearning lots of things you were taught in school/bootcamp and learning how real software work is done.
- Nobody understands all the code at first glance. Sometimes existing code is poorly commented and indecipherable to everyone except the original author.
Take things gradually. You'll almost certainly find that each week is a bit more comfortable than the last.
Take advantage of the nice and friendly culture. Ask for help when you need it.
And don't be so hard on yourself. If you learned programming on your own, then went on to be brilliant at bootcamp, you'll most likely be fine with a bit more patience and hard work.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "423"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: false,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Michel12 is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f135745%2fjunior-developer-struggles-how-to-communicate-with-management%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
StackExchange.ready(function () {
$("#show-editor-button input, #show-editor-button button").click(function () {
var showEditor = function() {
$("#show-editor-button").hide();
$("#post-form").removeClass("dno");
StackExchange.editor.finallyInit();
};
var useFancy = $(this).data('confirm-use-fancy');
if(useFancy == 'True') {
var popupTitle = $(this).data('confirm-fancy-title');
var popupBody = $(this).data('confirm-fancy-body');
var popupAccept = $(this).data('confirm-fancy-accept-button');
$(this).loadPopup({
url: '/post/self-answer-popup',
loaded: function(popup) {
var pTitle = $(popup).find('h2');
var pBody = $(popup).find('.popup-body');
var pSubmit = $(popup).find('.popup-submit');
pTitle.text(popupTitle);
pBody.html(popupBody);
pSubmit.val(popupAccept).click(showEditor);
}
})
} else{
var confirmText = $(this).data('confirm-text');
if (confirmText ? confirm(confirmText) : true) {
showEditor();
}
}
});
});
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
You will not create "net positive" value for the company for much longer than that (even when I hire senior developers I assume they aren't net positive for 6 months).
Everything you mentioned in your question are actually good signs - it sounds like they are making interesting and non-trivial software, meaning there are many opportunities for you to learn, and it means that they are invested in you - by giving you the time and space to get up to speed.
Writing unit and integration tests are a fairly common way to onboard new junior employees. You will learn the IDE, source control system, build process, and all the various formal and informal workflows of how they develop software, while focusing on relatively bite-size chunks of work. You also get to learn a lot about the business functionality their software provides.
1 - Is it normal?
Yes. You are not an impostor, and there is no reason to think going into this field was a bad idea. In fact, from the fact that they hired you, and want to invest in you, it seems like it was a good idea. The most important thing is to get over the naive belief that just because you were "arguably the best" in your boot camp, that meant you were prepared to walk into a development shop day one and start producing value. The boot camp provided you with the basic foundation of programming - there is a lot, lot, lot more to being a professional developer, which you can only learn on the job.
2 - What can I do better?
I think there are two "scopes" to this. The first is stuff you can do on your own. Invest your own time in learning the language you are programming in - the fine points, the advanced features, etc. Even if your boot camp was in the same language you are now working on, there is a lot to learn (I've been programming in the same primary language for >10 years and am still learning new things every day). If any of the other tools they use are publically/freely available (the IDE, the source control tool) practice with those too. Also, send time learning about the basics of computer science (algorithms, data structures). Even if you aren't using that knowledge right away, it will always come in helpful.
The second, while not specifically related to the testing you are doing, can be done as part of that work. That is to develop the ability to "analyze" a piece of code. Take the simplest test you can find, testing the simplest piece of code, and try to work out the control flow of that piece of code. Run it through a debugger, stopping on every line, and see what it is actually doing. Modify the test slightly and see how it behaves differently. Try and come up with a test that will test a different if-branch (etc.). Use your IDE source control tool and look at the most recent commit which changed that code. See if you can understand what that change did (especially useful if you can link back to the ticket which documented that change). Move to a slightly more complex test and repeat. Now, take the piece of code they want you to test, and conduct that analysis beforehand. Use that to write your first test.
If you need help, ask the author of the test or code you are looking to provide you an overview.
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
No one is born knowing how to code. Therefore your colleagues and managers all started at a similar place as you did. As long as they aren't jerks (and you already said they aren't), they know and expect you to ask them for help.
Of course, you'll need to find the right balance between asking too many questions, and not asking for help early enough. I've often told my juniors "don't waste 3 hours trying to figure out something I can help you with in 5 minutes". Conversely, don't waste my 5 minutes if you haven't spent some time trying to figure it out on your own.
If you don't already have one scheduled, ask your manager for a weekly 30 minute meeting. To quote another answer I've written here:
your manager's job [is] to do his/her best to give you the opportunities to succeed - this can only happen if you two have regular and frequent conversations, and if during those conversations you are open and honest about where you are having difficulties, where you need support, where you are getting stuck, and where you learn what he/she is expecting from you.
One of the most important things to ask is "where should I start" and "who should I bother for help"
Good luck!
add a comment |
After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
You will not create "net positive" value for the company for much longer than that (even when I hire senior developers I assume they aren't net positive for 6 months).
Everything you mentioned in your question are actually good signs - it sounds like they are making interesting and non-trivial software, meaning there are many opportunities for you to learn, and it means that they are invested in you - by giving you the time and space to get up to speed.
Writing unit and integration tests are a fairly common way to onboard new junior employees. You will learn the IDE, source control system, build process, and all the various formal and informal workflows of how they develop software, while focusing on relatively bite-size chunks of work. You also get to learn a lot about the business functionality their software provides.
1 - Is it normal?
Yes. You are not an impostor, and there is no reason to think going into this field was a bad idea. In fact, from the fact that they hired you, and want to invest in you, it seems like it was a good idea. The most important thing is to get over the naive belief that just because you were "arguably the best" in your boot camp, that meant you were prepared to walk into a development shop day one and start producing value. The boot camp provided you with the basic foundation of programming - there is a lot, lot, lot more to being a professional developer, which you can only learn on the job.
2 - What can I do better?
I think there are two "scopes" to this. The first is stuff you can do on your own. Invest your own time in learning the language you are programming in - the fine points, the advanced features, etc. Even if your boot camp was in the same language you are now working on, there is a lot to learn (I've been programming in the same primary language for >10 years and am still learning new things every day). If any of the other tools they use are publically/freely available (the IDE, the source control tool) practice with those too. Also, send time learning about the basics of computer science (algorithms, data structures). Even if you aren't using that knowledge right away, it will always come in helpful.
The second, while not specifically related to the testing you are doing, can be done as part of that work. That is to develop the ability to "analyze" a piece of code. Take the simplest test you can find, testing the simplest piece of code, and try to work out the control flow of that piece of code. Run it through a debugger, stopping on every line, and see what it is actually doing. Modify the test slightly and see how it behaves differently. Try and come up with a test that will test a different if-branch (etc.). Use your IDE source control tool and look at the most recent commit which changed that code. See if you can understand what that change did (especially useful if you can link back to the ticket which documented that change). Move to a slightly more complex test and repeat. Now, take the piece of code they want you to test, and conduct that analysis beforehand. Use that to write your first test.
If you need help, ask the author of the test or code you are looking to provide you an overview.
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
No one is born knowing how to code. Therefore your colleagues and managers all started at a similar place as you did. As long as they aren't jerks (and you already said they aren't), they know and expect you to ask them for help.
Of course, you'll need to find the right balance between asking too many questions, and not asking for help early enough. I've often told my juniors "don't waste 3 hours trying to figure out something I can help you with in 5 minutes". Conversely, don't waste my 5 minutes if you haven't spent some time trying to figure it out on your own.
If you don't already have one scheduled, ask your manager for a weekly 30 minute meeting. To quote another answer I've written here:
your manager's job [is] to do his/her best to give you the opportunities to succeed - this can only happen if you two have regular and frequent conversations, and if during those conversations you are open and honest about where you are having difficulties, where you need support, where you are getting stuck, and where you learn what he/she is expecting from you.
One of the most important things to ask is "where should I start" and "who should I bother for help"
Good luck!
add a comment |
After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
You will not create "net positive" value for the company for much longer than that (even when I hire senior developers I assume they aren't net positive for 6 months).
Everything you mentioned in your question are actually good signs - it sounds like they are making interesting and non-trivial software, meaning there are many opportunities for you to learn, and it means that they are invested in you - by giving you the time and space to get up to speed.
Writing unit and integration tests are a fairly common way to onboard new junior employees. You will learn the IDE, source control system, build process, and all the various formal and informal workflows of how they develop software, while focusing on relatively bite-size chunks of work. You also get to learn a lot about the business functionality their software provides.
1 - Is it normal?
Yes. You are not an impostor, and there is no reason to think going into this field was a bad idea. In fact, from the fact that they hired you, and want to invest in you, it seems like it was a good idea. The most important thing is to get over the naive belief that just because you were "arguably the best" in your boot camp, that meant you were prepared to walk into a development shop day one and start producing value. The boot camp provided you with the basic foundation of programming - there is a lot, lot, lot more to being a professional developer, which you can only learn on the job.
2 - What can I do better?
I think there are two "scopes" to this. The first is stuff you can do on your own. Invest your own time in learning the language you are programming in - the fine points, the advanced features, etc. Even if your boot camp was in the same language you are now working on, there is a lot to learn (I've been programming in the same primary language for >10 years and am still learning new things every day). If any of the other tools they use are publically/freely available (the IDE, the source control tool) practice with those too. Also, send time learning about the basics of computer science (algorithms, data structures). Even if you aren't using that knowledge right away, it will always come in helpful.
The second, while not specifically related to the testing you are doing, can be done as part of that work. That is to develop the ability to "analyze" a piece of code. Take the simplest test you can find, testing the simplest piece of code, and try to work out the control flow of that piece of code. Run it through a debugger, stopping on every line, and see what it is actually doing. Modify the test slightly and see how it behaves differently. Try and come up with a test that will test a different if-branch (etc.). Use your IDE source control tool and look at the most recent commit which changed that code. See if you can understand what that change did (especially useful if you can link back to the ticket which documented that change). Move to a slightly more complex test and repeat. Now, take the piece of code they want you to test, and conduct that analysis beforehand. Use that to write your first test.
If you need help, ask the author of the test or code you are looking to provide you an overview.
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
No one is born knowing how to code. Therefore your colleagues and managers all started at a similar place as you did. As long as they aren't jerks (and you already said they aren't), they know and expect you to ask them for help.
Of course, you'll need to find the right balance between asking too many questions, and not asking for help early enough. I've often told my juniors "don't waste 3 hours trying to figure out something I can help you with in 5 minutes". Conversely, don't waste my 5 minutes if you haven't spent some time trying to figure it out on your own.
If you don't already have one scheduled, ask your manager for a weekly 30 minute meeting. To quote another answer I've written here:
your manager's job [is] to do his/her best to give you the opportunities to succeed - this can only happen if you two have regular and frequent conversations, and if during those conversations you are open and honest about where you are having difficulties, where you need support, where you are getting stuck, and where you learn what he/she is expecting from you.
One of the most important things to ask is "where should I start" and "who should I bother for help"
Good luck!
After two weeks, I can say with confidence that I clearly didn't create value for this company and the other developers that helped me could have done my job instead of spending time with me.
You will not create "net positive" value for the company for much longer than that (even when I hire senior developers I assume they aren't net positive for 6 months).
Everything you mentioned in your question are actually good signs - it sounds like they are making interesting and non-trivial software, meaning there are many opportunities for you to learn, and it means that they are invested in you - by giving you the time and space to get up to speed.
Writing unit and integration tests are a fairly common way to onboard new junior employees. You will learn the IDE, source control system, build process, and all the various formal and informal workflows of how they develop software, while focusing on relatively bite-size chunks of work. You also get to learn a lot about the business functionality their software provides.
1 - Is it normal?
Yes. You are not an impostor, and there is no reason to think going into this field was a bad idea. In fact, from the fact that they hired you, and want to invest in you, it seems like it was a good idea. The most important thing is to get over the naive belief that just because you were "arguably the best" in your boot camp, that meant you were prepared to walk into a development shop day one and start producing value. The boot camp provided you with the basic foundation of programming - there is a lot, lot, lot more to being a professional developer, which you can only learn on the job.
2 - What can I do better?
I think there are two "scopes" to this. The first is stuff you can do on your own. Invest your own time in learning the language you are programming in - the fine points, the advanced features, etc. Even if your boot camp was in the same language you are now working on, there is a lot to learn (I've been programming in the same primary language for >10 years and am still learning new things every day). If any of the other tools they use are publically/freely available (the IDE, the source control tool) practice with those too. Also, send time learning about the basics of computer science (algorithms, data structures). Even if you aren't using that knowledge right away, it will always come in helpful.
The second, while not specifically related to the testing you are doing, can be done as part of that work. That is to develop the ability to "analyze" a piece of code. Take the simplest test you can find, testing the simplest piece of code, and try to work out the control flow of that piece of code. Run it through a debugger, stopping on every line, and see what it is actually doing. Modify the test slightly and see how it behaves differently. Try and come up with a test that will test a different if-branch (etc.). Use your IDE source control tool and look at the most recent commit which changed that code. See if you can understand what that change did (especially useful if you can link back to the ticket which documented that change). Move to a slightly more complex test and repeat. Now, take the piece of code they want you to test, and conduct that analysis beforehand. Use that to write your first test.
If you need help, ask the author of the test or code you are looking to provide you an overview.
3 - How could I express this (or part of it) to the management and colleagues without coming across as a fraud?
No one is born knowing how to code. Therefore your colleagues and managers all started at a similar place as you did. As long as they aren't jerks (and you already said they aren't), they know and expect you to ask them for help.
Of course, you'll need to find the right balance between asking too many questions, and not asking for help early enough. I've often told my juniors "don't waste 3 hours trying to figure out something I can help you with in 5 minutes". Conversely, don't waste my 5 minutes if you haven't spent some time trying to figure it out on your own.
If you don't already have one scheduled, ask your manager for a weekly 30 minute meeting. To quote another answer I've written here:
your manager's job [is] to do his/her best to give you the opportunities to succeed - this can only happen if you two have regular and frequent conversations, and if during those conversations you are open and honest about where you are having difficulties, where you need support, where you are getting stuck, and where you learn what he/she is expecting from you.
One of the most important things to ask is "where should I start" and "who should I bother for help"
Good luck!
answered 2 hours ago
dan.m was user2321368dan.m was user2321368
1,32429
1,32429
add a comment |
add a comment |
Welcome to the Jungle. :)
Yes. It's normal. You're a junior. It's expected that you will not have a clue, and that's why they're having you do what you're doing.
Ask questions. Get the understanding. Ask what you can read on your own time to help you develop an understanding. Be willing to work hard even by spending a few hours outside of work. I'd be concerned about a junior developer that DID NOT ask questions. I'd be willing to bet that any of your coworkers who are seniors started just as you have.
Ask questions, and learn. In time you won't have to ask questions. It will just click and you'll get it.
add a comment |
Welcome to the Jungle. :)
Yes. It's normal. You're a junior. It's expected that you will not have a clue, and that's why they're having you do what you're doing.
Ask questions. Get the understanding. Ask what you can read on your own time to help you develop an understanding. Be willing to work hard even by spending a few hours outside of work. I'd be concerned about a junior developer that DID NOT ask questions. I'd be willing to bet that any of your coworkers who are seniors started just as you have.
Ask questions, and learn. In time you won't have to ask questions. It will just click and you'll get it.
add a comment |
Welcome to the Jungle. :)
Yes. It's normal. You're a junior. It's expected that you will not have a clue, and that's why they're having you do what you're doing.
Ask questions. Get the understanding. Ask what you can read on your own time to help you develop an understanding. Be willing to work hard even by spending a few hours outside of work. I'd be concerned about a junior developer that DID NOT ask questions. I'd be willing to bet that any of your coworkers who are seniors started just as you have.
Ask questions, and learn. In time you won't have to ask questions. It will just click and you'll get it.
Welcome to the Jungle. :)
Yes. It's normal. You're a junior. It's expected that you will not have a clue, and that's why they're having you do what you're doing.
Ask questions. Get the understanding. Ask what you can read on your own time to help you develop an understanding. Be willing to work hard even by spending a few hours outside of work. I'd be concerned about a junior developer that DID NOT ask questions. I'd be willing to bet that any of your coworkers who are seniors started just as you have.
Ask questions, and learn. In time you won't have to ask questions. It will just click and you'll get it.
answered 3 hours ago
KeithKeith
4,4954823
4,4954823
add a comment |
add a comment |
I worked there only 2 weeks
You need to give it a lot more than just 2 weeks.
- Everyone feels a bit overwhelmed when they initially start a programming job.
- Your first few weeks/months will involve unlearning lots of things you were taught in school/bootcamp and learning how real software work is done.
- Nobody understands all the code at first glance. Sometimes existing code is poorly commented and indecipherable to everyone except the original author.
Take things gradually. You'll almost certainly find that each week is a bit more comfortable than the last.
Take advantage of the nice and friendly culture. Ask for help when you need it.
And don't be so hard on yourself. If you learned programming on your own, then went on to be brilliant at bootcamp, you'll most likely be fine with a bit more patience and hard work.
add a comment |
I worked there only 2 weeks
You need to give it a lot more than just 2 weeks.
- Everyone feels a bit overwhelmed when they initially start a programming job.
- Your first few weeks/months will involve unlearning lots of things you were taught in school/bootcamp and learning how real software work is done.
- Nobody understands all the code at first glance. Sometimes existing code is poorly commented and indecipherable to everyone except the original author.
Take things gradually. You'll almost certainly find that each week is a bit more comfortable than the last.
Take advantage of the nice and friendly culture. Ask for help when you need it.
And don't be so hard on yourself. If you learned programming on your own, then went on to be brilliant at bootcamp, you'll most likely be fine with a bit more patience and hard work.
add a comment |
I worked there only 2 weeks
You need to give it a lot more than just 2 weeks.
- Everyone feels a bit overwhelmed when they initially start a programming job.
- Your first few weeks/months will involve unlearning lots of things you were taught in school/bootcamp and learning how real software work is done.
- Nobody understands all the code at first glance. Sometimes existing code is poorly commented and indecipherable to everyone except the original author.
Take things gradually. You'll almost certainly find that each week is a bit more comfortable than the last.
Take advantage of the nice and friendly culture. Ask for help when you need it.
And don't be so hard on yourself. If you learned programming on your own, then went on to be brilliant at bootcamp, you'll most likely be fine with a bit more patience and hard work.
I worked there only 2 weeks
You need to give it a lot more than just 2 weeks.
- Everyone feels a bit overwhelmed when they initially start a programming job.
- Your first few weeks/months will involve unlearning lots of things you were taught in school/bootcamp and learning how real software work is done.
- Nobody understands all the code at first glance. Sometimes existing code is poorly commented and indecipherable to everyone except the original author.
Take things gradually. You'll almost certainly find that each week is a bit more comfortable than the last.
Take advantage of the nice and friendly culture. Ask for help when you need it.
And don't be so hard on yourself. If you learned programming on your own, then went on to be brilliant at bootcamp, you'll most likely be fine with a bit more patience and hard work.
answered 3 hours ago
Joe StrazzereJoe Strazzere
257k1337511062
257k1337511062
add a comment |
add a comment |
Michel12 is a new contributor. Be nice, and check out our Code of Conduct.
Michel12 is a new contributor. Be nice, and check out our Code of Conduct.
Michel12 is a new contributor. Be nice, and check out our Code of Conduct.
Michel12 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to The Workplace Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f135745%2fjunior-developer-struggles-how-to-communicate-with-management%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
I don't have a full answer but it's fair to say that jumping into a fully fleshed out code base is challenging at any level. Definitely give it a few months and you'll likely have a better grip on what the code is doing.
– Steve-o169
3 hours ago
How long have your other two jobs been?
– HorusKol
3 hours ago