Is there a career path as a Software-Engineer for a CS-PhD?

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
1












I did a PhD in theoretical computer science (however with a large emphasis
on implementing prototypes). However the insecure job prospects and tough
competition for permanent positions led me out of academia.



Thus I joined what is basically my countries equivalent of NIST. A government
job highly related to technical things, but mainly concerned with standardization and specification rather than actual Software Engineering. Not great but decent pay and very high job security. Something I could easily still do in my 50's or 60's.



I do like code however. During my PhD I did a lot of stuff in Haskell, but
aside from that I was involved in some open-source things, a pattern recognition
library in C, a website/portal that I run (php) etc.



I am looking for a Software-Engineering job, however I have the following big concerns:



a) is there a career path for Software-Engineers, or do you just turn out in management after all? If the latter is the case, I highly doubt that my position would be so different from what I do now.



b) I do have a lot of coding experience in churning out quick prototypes and hacking, but I simply lack the experience of a professional coder. What I worry about is that I am chasing a dream of wishful thoughts, instead of the real life of a Software-Engineer. How much time is really spent with creating algorithms and solving problems instead of project management and the like?



c) can you be still involved with actual coding if you are getting older? This might seem a stupid question, but while I do feel that I get what is currently going on, if you start having kids, a home etc, I kind of doubt that its possible to consistently compete with that fresh graduate from college. And moreover he might be much cheaper, and managers know that...



I do hear a lot of positive stuff about Google, working on projects, designing, coding, a nice place to be, basically. But then Google is just one company out of the industry, and not necessarily representative.



Apologies in advance in asking questions that might lean more to discussion than answers, but I could not imagine a better place to ask than here.







share|improve this question
















  • 1




    Some places offer a technical track not just management. Fog Creek is one of them.
    – Philip
    Jun 16 '14 at 20:06






  • 1




    I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
    – Vietnhi Phuvan
    Jun 16 '14 at 20:15











  • And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
    – HLGEM
    Jun 16 '14 at 21:43










  • My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
    – daaxix
    Jun 17 '14 at 22:53











  • Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
    – Jack Twain
    Dec 3 '14 at 21:57
















up vote
2
down vote

favorite
1












I did a PhD in theoretical computer science (however with a large emphasis
on implementing prototypes). However the insecure job prospects and tough
competition for permanent positions led me out of academia.



Thus I joined what is basically my countries equivalent of NIST. A government
job highly related to technical things, but mainly concerned with standardization and specification rather than actual Software Engineering. Not great but decent pay and very high job security. Something I could easily still do in my 50's or 60's.



I do like code however. During my PhD I did a lot of stuff in Haskell, but
aside from that I was involved in some open-source things, a pattern recognition
library in C, a website/portal that I run (php) etc.



I am looking for a Software-Engineering job, however I have the following big concerns:



a) is there a career path for Software-Engineers, or do you just turn out in management after all? If the latter is the case, I highly doubt that my position would be so different from what I do now.



b) I do have a lot of coding experience in churning out quick prototypes and hacking, but I simply lack the experience of a professional coder. What I worry about is that I am chasing a dream of wishful thoughts, instead of the real life of a Software-Engineer. How much time is really spent with creating algorithms and solving problems instead of project management and the like?



c) can you be still involved with actual coding if you are getting older? This might seem a stupid question, but while I do feel that I get what is currently going on, if you start having kids, a home etc, I kind of doubt that its possible to consistently compete with that fresh graduate from college. And moreover he might be much cheaper, and managers know that...



I do hear a lot of positive stuff about Google, working on projects, designing, coding, a nice place to be, basically. But then Google is just one company out of the industry, and not necessarily representative.



Apologies in advance in asking questions that might lean more to discussion than answers, but I could not imagine a better place to ask than here.







share|improve this question
















  • 1




    Some places offer a technical track not just management. Fog Creek is one of them.
    – Philip
    Jun 16 '14 at 20:06






  • 1




    I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
    – Vietnhi Phuvan
    Jun 16 '14 at 20:15











  • And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
    – HLGEM
    Jun 16 '14 at 21:43










  • My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
    – daaxix
    Jun 17 '14 at 22:53











  • Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
    – Jack Twain
    Dec 3 '14 at 21:57












up vote
2
down vote

favorite
1









up vote
2
down vote

favorite
1






1





I did a PhD in theoretical computer science (however with a large emphasis
on implementing prototypes). However the insecure job prospects and tough
competition for permanent positions led me out of academia.



Thus I joined what is basically my countries equivalent of NIST. A government
job highly related to technical things, but mainly concerned with standardization and specification rather than actual Software Engineering. Not great but decent pay and very high job security. Something I could easily still do in my 50's or 60's.



I do like code however. During my PhD I did a lot of stuff in Haskell, but
aside from that I was involved in some open-source things, a pattern recognition
library in C, a website/portal that I run (php) etc.



I am looking for a Software-Engineering job, however I have the following big concerns:



a) is there a career path for Software-Engineers, or do you just turn out in management after all? If the latter is the case, I highly doubt that my position would be so different from what I do now.



b) I do have a lot of coding experience in churning out quick prototypes and hacking, but I simply lack the experience of a professional coder. What I worry about is that I am chasing a dream of wishful thoughts, instead of the real life of a Software-Engineer. How much time is really spent with creating algorithms and solving problems instead of project management and the like?



c) can you be still involved with actual coding if you are getting older? This might seem a stupid question, but while I do feel that I get what is currently going on, if you start having kids, a home etc, I kind of doubt that its possible to consistently compete with that fresh graduate from college. And moreover he might be much cheaper, and managers know that...



I do hear a lot of positive stuff about Google, working on projects, designing, coding, a nice place to be, basically. But then Google is just one company out of the industry, and not necessarily representative.



Apologies in advance in asking questions that might lean more to discussion than answers, but I could not imagine a better place to ask than here.







share|improve this question












I did a PhD in theoretical computer science (however with a large emphasis
on implementing prototypes). However the insecure job prospects and tough
competition for permanent positions led me out of academia.



Thus I joined what is basically my countries equivalent of NIST. A government
job highly related to technical things, but mainly concerned with standardization and specification rather than actual Software Engineering. Not great but decent pay and very high job security. Something I could easily still do in my 50's or 60's.



I do like code however. During my PhD I did a lot of stuff in Haskell, but
aside from that I was involved in some open-source things, a pattern recognition
library in C, a website/portal that I run (php) etc.



I am looking for a Software-Engineering job, however I have the following big concerns:



a) is there a career path for Software-Engineers, or do you just turn out in management after all? If the latter is the case, I highly doubt that my position would be so different from what I do now.



b) I do have a lot of coding experience in churning out quick prototypes and hacking, but I simply lack the experience of a professional coder. What I worry about is that I am chasing a dream of wishful thoughts, instead of the real life of a Software-Engineer. How much time is really spent with creating algorithms and solving problems instead of project management and the like?



c) can you be still involved with actual coding if you are getting older? This might seem a stupid question, but while I do feel that I get what is currently going on, if you start having kids, a home etc, I kind of doubt that its possible to consistently compete with that fresh graduate from college. And moreover he might be much cheaper, and managers know that...



I do hear a lot of positive stuff about Google, working on projects, designing, coding, a nice place to be, basically. But then Google is just one company out of the industry, and not necessarily representative.



Apologies in advance in asking questions that might lean more to discussion than answers, but I could not imagine a better place to ask than here.









share|improve this question











share|improve this question




share|improve this question










asked Jun 16 '14 at 19:59









ndbd

1163




1163







  • 1




    Some places offer a technical track not just management. Fog Creek is one of them.
    – Philip
    Jun 16 '14 at 20:06






  • 1




    I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
    – Vietnhi Phuvan
    Jun 16 '14 at 20:15











  • And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
    – HLGEM
    Jun 16 '14 at 21:43










  • My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
    – daaxix
    Jun 17 '14 at 22:53











  • Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
    – Jack Twain
    Dec 3 '14 at 21:57












  • 1




    Some places offer a technical track not just management. Fog Creek is one of them.
    – Philip
    Jun 16 '14 at 20:06






  • 1




    I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
    – Vietnhi Phuvan
    Jun 16 '14 at 20:15











  • And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
    – HLGEM
    Jun 16 '14 at 21:43










  • My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
    – daaxix
    Jun 17 '14 at 22:53











  • Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
    – Jack Twain
    Dec 3 '14 at 21:57







1




1




Some places offer a technical track not just management. Fog Creek is one of them.
– Philip
Jun 16 '14 at 20:06




Some places offer a technical track not just management. Fog Creek is one of them.
– Philip
Jun 16 '14 at 20:06




1




1




I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
– Vietnhi Phuvan
Jun 16 '14 at 20:15





I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE.
– Vietnhi Phuvan
Jun 16 '14 at 20:15













And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
– HLGEM
Jun 16 '14 at 21:43




And I know many devs in their 40s and 50s still coding because they didn't want to go the management route.
– HLGEM
Jun 16 '14 at 21:43












My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
– daaxix
Jun 17 '14 at 22:53





My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management...
– daaxix
Jun 17 '14 at 22:53













Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
– Jack Twain
Dec 3 '14 at 21:57




Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/…
– Jack Twain
Dec 3 '14 at 21:57










2 Answers
2






active

oldest

votes

















up vote
6
down vote



accepted










At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.



Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.



However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.



1) Get in an industry where domain and business knowledge is hard to learn and it matters.



A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.



2) Learn to build software systems, not just be a programmer.



This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.



3) When you get older and start a family things do change but you compensate.



As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!



4) Find the right company



Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.






share|improve this answer



























    up vote
    2
    down vote













    If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.



    Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.



    Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.






    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%2f27369%2fis-there-a-career-path-as-a-software-engineer-for-a-cs-phd%23new-answer', 'question_page');

      );

      Post as a guest






























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      6
      down vote



      accepted










      At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.



      Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.



      However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.



      1) Get in an industry where domain and business knowledge is hard to learn and it matters.



      A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.



      2) Learn to build software systems, not just be a programmer.



      This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.



      3) When you get older and start a family things do change but you compensate.



      As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!



      4) Find the right company



      Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.






      share|improve this answer
























        up vote
        6
        down vote



        accepted










        At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.



        Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.



        However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.



        1) Get in an industry where domain and business knowledge is hard to learn and it matters.



        A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.



        2) Learn to build software systems, not just be a programmer.



        This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.



        3) When you get older and start a family things do change but you compensate.



        As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!



        4) Find the right company



        Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.






        share|improve this answer






















          up vote
          6
          down vote



          accepted







          up vote
          6
          down vote



          accepted






          At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.



          Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.



          However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.



          1) Get in an industry where domain and business knowledge is hard to learn and it matters.



          A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.



          2) Learn to build software systems, not just be a programmer.



          This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.



          3) When you get older and start a family things do change but you compensate.



          As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!



          4) Find the right company



          Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.






          share|improve this answer












          At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.



          Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.



          However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.



          1) Get in an industry where domain and business knowledge is hard to learn and it matters.



          A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.



          2) Learn to build software systems, not just be a programmer.



          This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.



          3) When you get older and start a family things do change but you compensate.



          As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!



          4) Find the right company



          Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jun 17 '14 at 22:47









          Dunk

          1,10278




          1,10278






















              up vote
              2
              down vote













              If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.



              Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.



              Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.






              share|improve this answer


























                up vote
                2
                down vote













                If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.



                Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.



                Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.






                share|improve this answer
























                  up vote
                  2
                  down vote










                  up vote
                  2
                  down vote









                  If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.



                  Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.



                  Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.






                  share|improve this answer














                  If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.



                  Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.



                  Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Jun 17 '14 at 19:55









                  Dukeling

                  8,63632347




                  8,63632347










                  answered Jun 17 '14 at 0:08









                  P.M

                  1,691816




                  1,691816






















                       

                      draft saved


                      draft discarded


























                       


                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f27369%2fis-there-a-career-path-as-a-software-engineer-for-a-cs-phd%23new-answer', 'question_page');

                      );

                      Post as a guest













































































                      Comments

                      Popular posts from this blog

                      What does second last employer means? [closed]

                      List of Gilmore Girls characters

                      Confectionery