How to become expert if I don't have opportunity to learn from more experienced peers?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
2
down vote

favorite












The first company I worked for was small and provided no initial training of any kind. I did a lot of googling and customized the solutions I found in Google for the problems I had to resolve. This became a habit. I didn't learn best practices or Standards of coding or business process etc. Feeling that the next job could only be better, I treated this job like a chore.



After a year, I got an offer from another company, my current company, which was paying me awesomeness. This company is too small and also didn't provide me any training (not that they had any obligation).



I started learning on my own but I feel I am not up to the mark. I know small things about many things but not everything about anything in particular (Jack of all King of None). I don't know in and out of the system and I am always on guard of saving my reputation.



After having two years of experience all I know is 40-50 % of Python, 30-40% of (jQuery, HTML, CSS, SQL Queries, Apache, Django) each and how to install/uninstall Ubuntu.



I have two years of experience but I don't feel like I deserve what I am earning or what I am doing is up to the quality. What will happen after two more years. I will still be slapping solutions copied from Google and wont know in and out of something for sure.



I sometimes feel I should start all over again but I am afraid that no company will hire me and teach me best practices or standards after having TWO years of experience.



How to become expert if I don't have opportunity at my work to learn from more experienced peers?







share|improve this question














migrated from productivity.stackexchange.com Jun 4 '14 at 11:33


This question came from our site for people wanting to improve their personal productivity.










  • 1




    @Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
    – P.M
    Jun 4 '14 at 23:30











  • @Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
    – P.M
    Jun 5 '14 at 0:55











  • Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
    – JB King
    Jun 5 '14 at 4:59










  • This is sooooo me, trying to find a way to improve but I don't know how :(
    – Shina
    Jun 6 '14 at 22:16






  • 1




    In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
    – O. Jones
    Jun 11 '14 at 1:28
















up vote
2
down vote

favorite












The first company I worked for was small and provided no initial training of any kind. I did a lot of googling and customized the solutions I found in Google for the problems I had to resolve. This became a habit. I didn't learn best practices or Standards of coding or business process etc. Feeling that the next job could only be better, I treated this job like a chore.



After a year, I got an offer from another company, my current company, which was paying me awesomeness. This company is too small and also didn't provide me any training (not that they had any obligation).



I started learning on my own but I feel I am not up to the mark. I know small things about many things but not everything about anything in particular (Jack of all King of None). I don't know in and out of the system and I am always on guard of saving my reputation.



After having two years of experience all I know is 40-50 % of Python, 30-40% of (jQuery, HTML, CSS, SQL Queries, Apache, Django) each and how to install/uninstall Ubuntu.



I have two years of experience but I don't feel like I deserve what I am earning or what I am doing is up to the quality. What will happen after two more years. I will still be slapping solutions copied from Google and wont know in and out of something for sure.



I sometimes feel I should start all over again but I am afraid that no company will hire me and teach me best practices or standards after having TWO years of experience.



How to become expert if I don't have opportunity at my work to learn from more experienced peers?







share|improve this question














migrated from productivity.stackexchange.com Jun 4 '14 at 11:33


This question came from our site for people wanting to improve their personal productivity.










  • 1




    @Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
    – P.M
    Jun 4 '14 at 23:30











  • @Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
    – P.M
    Jun 5 '14 at 0:55











  • Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
    – JB King
    Jun 5 '14 at 4:59










  • This is sooooo me, trying to find a way to improve but I don't know how :(
    – Shina
    Jun 6 '14 at 22:16






  • 1




    In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
    – O. Jones
    Jun 11 '14 at 1:28












up vote
2
down vote

favorite









up vote
2
down vote

favorite











The first company I worked for was small and provided no initial training of any kind. I did a lot of googling and customized the solutions I found in Google for the problems I had to resolve. This became a habit. I didn't learn best practices or Standards of coding or business process etc. Feeling that the next job could only be better, I treated this job like a chore.



After a year, I got an offer from another company, my current company, which was paying me awesomeness. This company is too small and also didn't provide me any training (not that they had any obligation).



I started learning on my own but I feel I am not up to the mark. I know small things about many things but not everything about anything in particular (Jack of all King of None). I don't know in and out of the system and I am always on guard of saving my reputation.



After having two years of experience all I know is 40-50 % of Python, 30-40% of (jQuery, HTML, CSS, SQL Queries, Apache, Django) each and how to install/uninstall Ubuntu.



I have two years of experience but I don't feel like I deserve what I am earning or what I am doing is up to the quality. What will happen after two more years. I will still be slapping solutions copied from Google and wont know in and out of something for sure.



I sometimes feel I should start all over again but I am afraid that no company will hire me and teach me best practices or standards after having TWO years of experience.



How to become expert if I don't have opportunity at my work to learn from more experienced peers?







share|improve this question














The first company I worked for was small and provided no initial training of any kind. I did a lot of googling and customized the solutions I found in Google for the problems I had to resolve. This became a habit. I didn't learn best practices or Standards of coding or business process etc. Feeling that the next job could only be better, I treated this job like a chore.



After a year, I got an offer from another company, my current company, which was paying me awesomeness. This company is too small and also didn't provide me any training (not that they had any obligation).



I started learning on my own but I feel I am not up to the mark. I know small things about many things but not everything about anything in particular (Jack of all King of None). I don't know in and out of the system and I am always on guard of saving my reputation.



After having two years of experience all I know is 40-50 % of Python, 30-40% of (jQuery, HTML, CSS, SQL Queries, Apache, Django) each and how to install/uninstall Ubuntu.



I have two years of experience but I don't feel like I deserve what I am earning or what I am doing is up to the quality. What will happen after two more years. I will still be slapping solutions copied from Google and wont know in and out of something for sure.



I sometimes feel I should start all over again but I am afraid that no company will hire me and teach me best practices or standards after having TWO years of experience.



How to become expert if I don't have opportunity at my work to learn from more experienced peers?









share|improve this question













share|improve this question




share|improve this question








edited Jun 5 '14 at 1:27









Vietnhi Phuvan

68.9k7118254




68.9k7118254










asked Jun 4 '14 at 9:16









Stark

213




213




migrated from productivity.stackexchange.com Jun 4 '14 at 11:33


This question came from our site for people wanting to improve their personal productivity.






migrated from productivity.stackexchange.com Jun 4 '14 at 11:33


This question came from our site for people wanting to improve their personal productivity.









  • 1




    @Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
    – P.M
    Jun 4 '14 at 23:30











  • @Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
    – P.M
    Jun 5 '14 at 0:55











  • Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
    – JB King
    Jun 5 '14 at 4:59










  • This is sooooo me, trying to find a way to improve but I don't know how :(
    – Shina
    Jun 6 '14 at 22:16






  • 1




    In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
    – O. Jones
    Jun 11 '14 at 1:28












  • 1




    @Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
    – P.M
    Jun 4 '14 at 23:30











  • @Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
    – P.M
    Jun 5 '14 at 0:55











  • Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
    – JB King
    Jun 5 '14 at 4:59










  • This is sooooo me, trying to find a way to improve but I don't know how :(
    – Shina
    Jun 6 '14 at 22:16






  • 1




    In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
    – O. Jones
    Jun 11 '14 at 1:28







1




1




@Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
– P.M
Jun 4 '14 at 23:30





@Stark, I edited your question (original was more like a rant), because at least you aware about the need to learn best practices - which is hard for self-learner with little support from more experienced peers. Hope you like my edits.
– P.M
Jun 4 '14 at 23:30













@Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
– P.M
Jun 5 '14 at 0:55





@Stark: see lots of advice about advancing your career: workplace.stackexchange.com/questions/tagged/career-development
– P.M
Jun 5 '14 at 0:55













Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
– JB King
Jun 5 '14 at 4:59




Is there some reason why you are expecting your employer to give you this? Why can't you find other developers and do side projects to develop your skills?
– JB King
Jun 5 '14 at 4:59












This is sooooo me, trying to find a way to improve but I don't know how :(
– Shina
Jun 6 '14 at 22:16




This is sooooo me, trying to find a way to improve but I don't know how :(
– Shina
Jun 6 '14 at 22:16




1




1




In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
– O. Jones
Jun 11 '14 at 1:28




In my view this is not a question about WHAT to learn but rather HOW to learn when working in a workplace with few peers. As such I believe it's on topic.
– O. Jones
Jun 11 '14 at 1:28










1 Answer
1






active

oldest

votes

















up vote
2
down vote



accepted










There's a few things to keep in mind; But before I get to solutions, I'll point out that as long as your workplace is satisfied with your work and are paying you - you're doing well. Not everybody knows everything, and the fact is there are many self-taught programmers out there, many of whom have the opposite mindset (they "know it all" when they really know nothing).



Also, the fact that you are at least vaguely aware of your skill-set is also good, because you know when you need to do research; as opposed to others who may force a suboptimal solution.



What it will come down to is self-education, or off-hours classes. I'll skip night-classes and focus on free/cheap ways to get better.



Books, books, books!



Buy books! And read them. Re-read them. Look for books which talk about design patterns, as it's a big portion of what self-taught individuals lack. Also, most of classroom work is derived from books you can very easily locate and study.



Documentation



Read the raw documentation for the programming languages you are working with; also read any commentary supplied by others. Focus on syntax and language constructs first to ensure you have a rock-solid base, specific functions/libraries can come later.



Work on Personal Projects



Start working on personal projects with slightly more complicated requirements than you are able to do. Aggressively research when you hit walls. When you are finished a project, re-factor your code multiple times to find more efficient solutions.



Look at / Contribute to Open-Source



This is a biggie. Almost the biggie. Research open-source programs, and opinions on their codebases. When you find open-source projects which people routinely state have great and modern code-quality: download and examine what they did. Find solutions they used and compare them to similar solutions you've used. This was the single biggest factor in my own personal education. Note that not all open projects have good code, and popularity != quality; see what people say about the code. Not to insult Wordpress or Ogre, but those are good examples of popular projects with not-so-great code.



I'll note that there's a saying: "If you're a developer in open-source and you don't have a job, it's because you don't want one"; and that's pointing out that a lot of very good developers not only get good because of open-source and it's constant feedback, but they get noticed because your work is public.



Find Patterns in the Languages You Use



Different languages take dramatically different approaches and have different limitations; when you read the documentation to languages, or the wikis, you'll find out they had very specific goals/ideas. When you understand 'what they were thinking' when they made the language, you can begin better predicting where your gaps in knowledge are. For example, "PHP" has a function for almost everything - so whenever you go to write a function, double-check to see if PHP has a similar function already. In a language like C or C++ you'll find it's library heavy, and want to steer your research towards that.






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',
    convertImagesToLinks: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );








     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f25858%2fhow-to-become-expert-if-i-dont-have-opportunity-to-learn-from-more-experienced%23new-answer', 'question_page');

    );

    Post as a guest






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote



    accepted










    There's a few things to keep in mind; But before I get to solutions, I'll point out that as long as your workplace is satisfied with your work and are paying you - you're doing well. Not everybody knows everything, and the fact is there are many self-taught programmers out there, many of whom have the opposite mindset (they "know it all" when they really know nothing).



    Also, the fact that you are at least vaguely aware of your skill-set is also good, because you know when you need to do research; as opposed to others who may force a suboptimal solution.



    What it will come down to is self-education, or off-hours classes. I'll skip night-classes and focus on free/cheap ways to get better.



    Books, books, books!



    Buy books! And read them. Re-read them. Look for books which talk about design patterns, as it's a big portion of what self-taught individuals lack. Also, most of classroom work is derived from books you can very easily locate and study.



    Documentation



    Read the raw documentation for the programming languages you are working with; also read any commentary supplied by others. Focus on syntax and language constructs first to ensure you have a rock-solid base, specific functions/libraries can come later.



    Work on Personal Projects



    Start working on personal projects with slightly more complicated requirements than you are able to do. Aggressively research when you hit walls. When you are finished a project, re-factor your code multiple times to find more efficient solutions.



    Look at / Contribute to Open-Source



    This is a biggie. Almost the biggie. Research open-source programs, and opinions on their codebases. When you find open-source projects which people routinely state have great and modern code-quality: download and examine what they did. Find solutions they used and compare them to similar solutions you've used. This was the single biggest factor in my own personal education. Note that not all open projects have good code, and popularity != quality; see what people say about the code. Not to insult Wordpress or Ogre, but those are good examples of popular projects with not-so-great code.



    I'll note that there's a saying: "If you're a developer in open-source and you don't have a job, it's because you don't want one"; and that's pointing out that a lot of very good developers not only get good because of open-source and it's constant feedback, but they get noticed because your work is public.



    Find Patterns in the Languages You Use



    Different languages take dramatically different approaches and have different limitations; when you read the documentation to languages, or the wikis, you'll find out they had very specific goals/ideas. When you understand 'what they were thinking' when they made the language, you can begin better predicting where your gaps in knowledge are. For example, "PHP" has a function for almost everything - so whenever you go to write a function, double-check to see if PHP has a similar function already. In a language like C or C++ you'll find it's library heavy, and want to steer your research towards that.






    share|improve this answer
























      up vote
      2
      down vote



      accepted










      There's a few things to keep in mind; But before I get to solutions, I'll point out that as long as your workplace is satisfied with your work and are paying you - you're doing well. Not everybody knows everything, and the fact is there are many self-taught programmers out there, many of whom have the opposite mindset (they "know it all" when they really know nothing).



      Also, the fact that you are at least vaguely aware of your skill-set is also good, because you know when you need to do research; as opposed to others who may force a suboptimal solution.



      What it will come down to is self-education, or off-hours classes. I'll skip night-classes and focus on free/cheap ways to get better.



      Books, books, books!



      Buy books! And read them. Re-read them. Look for books which talk about design patterns, as it's a big portion of what self-taught individuals lack. Also, most of classroom work is derived from books you can very easily locate and study.



      Documentation



      Read the raw documentation for the programming languages you are working with; also read any commentary supplied by others. Focus on syntax and language constructs first to ensure you have a rock-solid base, specific functions/libraries can come later.



      Work on Personal Projects



      Start working on personal projects with slightly more complicated requirements than you are able to do. Aggressively research when you hit walls. When you are finished a project, re-factor your code multiple times to find more efficient solutions.



      Look at / Contribute to Open-Source



      This is a biggie. Almost the biggie. Research open-source programs, and opinions on their codebases. When you find open-source projects which people routinely state have great and modern code-quality: download and examine what they did. Find solutions they used and compare them to similar solutions you've used. This was the single biggest factor in my own personal education. Note that not all open projects have good code, and popularity != quality; see what people say about the code. Not to insult Wordpress or Ogre, but those are good examples of popular projects with not-so-great code.



      I'll note that there's a saying: "If you're a developer in open-source and you don't have a job, it's because you don't want one"; and that's pointing out that a lot of very good developers not only get good because of open-source and it's constant feedback, but they get noticed because your work is public.



      Find Patterns in the Languages You Use



      Different languages take dramatically different approaches and have different limitations; when you read the documentation to languages, or the wikis, you'll find out they had very specific goals/ideas. When you understand 'what they were thinking' when they made the language, you can begin better predicting where your gaps in knowledge are. For example, "PHP" has a function for almost everything - so whenever you go to write a function, double-check to see if PHP has a similar function already. In a language like C or C++ you'll find it's library heavy, and want to steer your research towards that.






      share|improve this answer






















        up vote
        2
        down vote



        accepted







        up vote
        2
        down vote



        accepted






        There's a few things to keep in mind; But before I get to solutions, I'll point out that as long as your workplace is satisfied with your work and are paying you - you're doing well. Not everybody knows everything, and the fact is there are many self-taught programmers out there, many of whom have the opposite mindset (they "know it all" when they really know nothing).



        Also, the fact that you are at least vaguely aware of your skill-set is also good, because you know when you need to do research; as opposed to others who may force a suboptimal solution.



        What it will come down to is self-education, or off-hours classes. I'll skip night-classes and focus on free/cheap ways to get better.



        Books, books, books!



        Buy books! And read them. Re-read them. Look for books which talk about design patterns, as it's a big portion of what self-taught individuals lack. Also, most of classroom work is derived from books you can very easily locate and study.



        Documentation



        Read the raw documentation for the programming languages you are working with; also read any commentary supplied by others. Focus on syntax and language constructs first to ensure you have a rock-solid base, specific functions/libraries can come later.



        Work on Personal Projects



        Start working on personal projects with slightly more complicated requirements than you are able to do. Aggressively research when you hit walls. When you are finished a project, re-factor your code multiple times to find more efficient solutions.



        Look at / Contribute to Open-Source



        This is a biggie. Almost the biggie. Research open-source programs, and opinions on their codebases. When you find open-source projects which people routinely state have great and modern code-quality: download and examine what they did. Find solutions they used and compare them to similar solutions you've used. This was the single biggest factor in my own personal education. Note that not all open projects have good code, and popularity != quality; see what people say about the code. Not to insult Wordpress or Ogre, but those are good examples of popular projects with not-so-great code.



        I'll note that there's a saying: "If you're a developer in open-source and you don't have a job, it's because you don't want one"; and that's pointing out that a lot of very good developers not only get good because of open-source and it's constant feedback, but they get noticed because your work is public.



        Find Patterns in the Languages You Use



        Different languages take dramatically different approaches and have different limitations; when you read the documentation to languages, or the wikis, you'll find out they had very specific goals/ideas. When you understand 'what they were thinking' when they made the language, you can begin better predicting where your gaps in knowledge are. For example, "PHP" has a function for almost everything - so whenever you go to write a function, double-check to see if PHP has a similar function already. In a language like C or C++ you'll find it's library heavy, and want to steer your research towards that.






        share|improve this answer












        There's a few things to keep in mind; But before I get to solutions, I'll point out that as long as your workplace is satisfied with your work and are paying you - you're doing well. Not everybody knows everything, and the fact is there are many self-taught programmers out there, many of whom have the opposite mindset (they "know it all" when they really know nothing).



        Also, the fact that you are at least vaguely aware of your skill-set is also good, because you know when you need to do research; as opposed to others who may force a suboptimal solution.



        What it will come down to is self-education, or off-hours classes. I'll skip night-classes and focus on free/cheap ways to get better.



        Books, books, books!



        Buy books! And read them. Re-read them. Look for books which talk about design patterns, as it's a big portion of what self-taught individuals lack. Also, most of classroom work is derived from books you can very easily locate and study.



        Documentation



        Read the raw documentation for the programming languages you are working with; also read any commentary supplied by others. Focus on syntax and language constructs first to ensure you have a rock-solid base, specific functions/libraries can come later.



        Work on Personal Projects



        Start working on personal projects with slightly more complicated requirements than you are able to do. Aggressively research when you hit walls. When you are finished a project, re-factor your code multiple times to find more efficient solutions.



        Look at / Contribute to Open-Source



        This is a biggie. Almost the biggie. Research open-source programs, and opinions on their codebases. When you find open-source projects which people routinely state have great and modern code-quality: download and examine what they did. Find solutions they used and compare them to similar solutions you've used. This was the single biggest factor in my own personal education. Note that not all open projects have good code, and popularity != quality; see what people say about the code. Not to insult Wordpress or Ogre, but those are good examples of popular projects with not-so-great code.



        I'll note that there's a saying: "If you're a developer in open-source and you don't have a job, it's because you don't want one"; and that's pointing out that a lot of very good developers not only get good because of open-source and it's constant feedback, but they get noticed because your work is public.



        Find Patterns in the Languages You Use



        Different languages take dramatically different approaches and have different limitations; when you read the documentation to languages, or the wikis, you'll find out they had very specific goals/ideas. When you understand 'what they were thinking' when they made the language, you can begin better predicting where your gaps in knowledge are. For example, "PHP" has a function for almost everything - so whenever you go to write a function, double-check to see if PHP has a similar function already. In a language like C or C++ you'll find it's library heavy, and want to steer your research towards that.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jun 11 '14 at 15:47









        Kver

        769410




        769410






















             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f25858%2fhow-to-become-expert-if-i-dont-have-opportunity-to-learn-from-more-experienced%23new-answer', 'question_page');

            );

            Post as a guest













































































            Comments

            Popular posts from this blog

            Long meetings (6-7 hours a day): Being “babysat” by supervisor

            Is the Concept of Multiple Fantasy Races Scientifically Flawed? [closed]

            Confectionery