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;
}







3















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.










share|improve this question









New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 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


















3















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.










share|improve this question









New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 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














3












3








3








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.










share|improve this question









New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












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






share|improve this question









New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 3 hours ago







Michel12













New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 3 hours ago









Michel12Michel12

183




183




New contributor




Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Michel12 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 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





    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










3 Answers
3






active

oldest

votes


















2















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!






share|improve this answer































    4














    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.






    share|improve this answer































      4















      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.






      share|improve this answer
























        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.










        draft saved

        draft discarded


















        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









        2















        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!






        share|improve this answer




























          2















          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!






          share|improve this answer


























            2












            2








            2








            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!






            share|improve this answer














            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!







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 2 hours ago









            dan.m was user2321368dan.m was user2321368

            1,32429




            1,32429

























                4














                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.






                share|improve this answer




























                  4














                  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.






                  share|improve this answer


























                    4












                    4








                    4







                    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.






                    share|improve this answer













                    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.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 3 hours ago









                    KeithKeith

                    4,4954823




                    4,4954823























                        4















                        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.






                        share|improve this answer




























                          4















                          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.






                          share|improve this answer


























                            4












                            4








                            4








                            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.






                            share|improve this answer














                            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.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 3 hours ago









                            Joe StrazzereJoe Strazzere

                            257k1337511062




                            257k1337511062






















                                Michel12 is a new contributor. Be nice, and check out our Code of Conduct.










                                draft saved

                                draft discarded


















                                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.




                                draft saved


                                draft discarded














                                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





















































                                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











                                Popular posts from this blog

                                What is the “three and three hundred thousand syndrome”?Who wrote the book Arena?What five creatures were...

                                Gersau Kjelder | Navigasjonsmeny46°59′0″N 8°31′0″E46°59′0″N...

                                Hestehale Innhaldsliste Hestehale på kvinner | Hestehale på menn | Galleri | Sjå òg |...