O que é um Ph.D. bom para a indústria de software? [fechadas]


52

Sou um programador autodidata e acabei de iniciar um curso de ciência da computação para complementar meus conhecimentos e preencher as lacunas.

No entanto, já estou debatendo a direção da minha educação. Eu quero um diploma de bacharelado de 4 anos, com certeza, mas depois disso, não tenho certeza: vale a pena obter um mestrado? Que tal um Ph.D.? Que oportunidades esses graus abrem?

Atualmente, meu objetivo é ser desenvolvedor de software, mas existem vários campos fascinantes na indústria de software e certamente estou interessado em investigar muitos deles. É a esse respeito que acho que um grau mais alto pode valer a pena - mesmo que isso não ajude necessariamente uma carreira de desenvolvimento de software.

Então valerá a pena? A escola de pós-graduação abrirá portas?

Respostas:


106

Obter um doutorado faz duas coisas para você e consome 4 anos ou mais. Você precisará decidir se essas duas coisas valem o tempo. Primeiro, ele fornece algumas iniciais após o seu nome. Pelo resto do tempo, as pessoas que vêem essas iniciais pensarão "uau, você deve ser muito inteligente!" (e freqüentemente dizem em voz alta.) Em um currículo, geralmente o ajuda, embora em algumas circunstâncias possa prejudicá-lo, com pessoas achando que você está superqualificado ou é um idiota.

Segundo, e mais importante na minha opinião, são as mudanças no seu cérebro e na sua atitude que acontecem ao longo do curso. Você acabará sabendo mais sobre uma pequena parte do mundo do que qualquer outra pessoa. Você ficará na frente de 3 ou 4 pessoas que são especialistas, às vezes especialistas de renome mundial, e os ensinará sobre seu trabalho. Quando você entra, esses especialistas serão supervisores, examinadores, "chefes" e, quando você sair, eles serão seus colegas. Você aprenderá muito sobre um canto da ciência da computação e muito mais sobre você e suas capacidades. Você estará confiante em ser "o especialista" quando necessário. E isso muda tudo.

A menos que você saiba agora que quer ser professor ou ingressar em um laboratório de pesquisa específico, me parece incomum que você possa decidir sobre o doutorado antes de fazer o trabalho de graduação. Vá fazer a graduação e faça amizade com alguns estudantes de graduação. Eles lhe dirão tudo o que você quer saber sobre a vida de um estudante de graduação, a vida de um professor de bebê, as perspectivas de emprego quando você estiver fora e muito mais.

Não me arrependo do tempo que passei no meu doutorado. Ele abriu muitas portas para mim. Isso me tornou mais memorável ("certo, você é a mulher com doutorado, não é?") E foi um trunfo para algumas de minhas equipes, independentemente de minhas habilidades ou conhecimentos ("nós temos doutorado em nossa equipe" ! "). Mas o setor em que ingressei não é o setor em que você está ingressando agora. Converse com as pessoas que estão no meio dela agora e depois tome uma decisão ao terminar o trabalho de graduação.


3
Eu tive que mudar minha resposta aceita para isso, porque é muito bom. Para constar, eu não quero ser um professor, mas realmente quero me envolver em pesquisas, mesmo que não seja necessariamente profissional.
Carson Myers

2
@ Paul, como mencionei, abriu muitas portas para mim. Entre minha filha foi para a escola de culinária e trabalhou com ótimos chefs que fizeram e quem não. Penso que, tanto em CS quanto em culinária, as habilidades superam o papel, embora muitos adquiram habilidades ao ganhar papel.
22612 Kate Kate-Gregory

26

Alguém pode nomear um CEO de uma grande empresa com doutorado em ciência da computação? Steve Jobs? abandonou a faculdade porque ele odiava as partes chatas. Bill Gates? também desistiu por sentir-se cercado por pessoas não tão inteligentes quanto ele (com base no GPA).

Trabalhei para empresas que possuem programadores incríveis que trabalham em sistemas incríveis, alguns dos quais as pessoas usam todos os dias (por exemplo, Windows) e outros que ajudam as indústrias a se dar bem (por exemplo, XML e SOAP). Muitos desses sujeitos foram autodidatas e estudaram outras disciplinas além da Ciência da Computação, por exemplo Física ou Engenharia Eletrônica. O motivo da programação em suas vidas era como uma ferramenta para realizar seu trabalho, em vez de estudar programação para aprender a fazer programação.

Também trabalhei com o governo e grandes empresas que têm graduados incríveis em Cambridge que tiveram não apenas um, mas dois doutorados. Esses caras eram incrivelmente intelectuais que criaram soluções sofisticadas e elegantes para problemas muito específicos em áreas como comunicações e processamento de sinais. Eles não eram ricos, nem tinham empregos de alto nível em seus departamentos. Parecia que eles foram contratados como um 'caixão' e deixados sozinhos para pensar nessas soluções.

Na minha experiência no setor, não há correlação entre a capacidade de programação e o nível de educação formal no campo da ciência da computação. Nos meus primeiros dias como engenheiro de software, vi pessoas promovidas além de mim cuja programação 'não era tão boa quanto a minha' (IMO, é claro) - mas elas tinham as habilidades de engenharia social para descobrir quais eram as coisas certas a serem ditas. as pessoas certas e quando. Eles não se destacaram - eles podiam fazer o trabalho, mas outras habilidades (conversando com clientes, cumprindo prazos, etc.) também eram importantes, então eles não passavam 100% do tempo codificando como eu .

Aprendi uma lição importante - se você tiver o fogo necessário para ter sucesso, encontrará a solução, programação ou não, para o problema de negócios em questão, a fim de tornar sua empresa / departamento mais bem-sucedido e, portanto, mais lucrativo.

De todos os programadores que contratei, não me importei com o histórico educacional deles. Se eles passaram nos testes de programação e meus engenheiros líderes ficaram satisfeitos com suas habilidades, a educação não importou. Um dos melhores caras que contratamos foi direto da escola - ou seja, nenhum diploma.

Em resumo, se você é apaixonado pela tecnologia e pela arte / ciência da própria programação, busque, de qualquer maneira, um caminho acadêmico absorvente e fascinante. Se você procura ir a lugares e ter sucesso além da programação, amplie seu foco para incluir outras habilidades, como administração e psicologia / sociologia. Decida o que você realmente deseja daqui a 10, 20, 30 anos e trabalhe de trás para frente para determinar qual curso de ação o levará a esses objetivos.

Para responder à sua pergunta: um doutorado é bom para algo realmente de nicho. Provavelmente não pagará bem, mas pode ser interessante.


21
CEO de uma grande empresa com doutorado? Eric Schmidt, do Google. Muitos, porém, têm MBAs. No setor de informática médica / medicamentos, muitas empresas são administradas por doutores / doutores. Os PhDs geralmente são CTOs de uma empresa.
Fjxx 9/10/10

11
Sim, um MBA é uma opção IMO melhor do que fazer BS, depois MS e depois PhD em apenas Ciência da Computação. Note que Eric Schmidt fez Elec. Engenharia, não puro CS.
JBRWilkinson

11
Eu acho que ser CEO tem muito pouca correlação com ser programador
jk.

11
Penso que uma pergunta mais apropriada seria "você pode nomear um CTO de uma grande empresa com doutorado". Essas são as pessoas que conduzirão as inovações técnicas no setor.
precisa

19
@PhillipNgan - O CEO de todas as montadoras alemãs tem um doutorado em engenharia mecânica, o CEO de todas as montadoras americanas tem um MBA. Compare os carros que eles produzem!
Martin Beckett

19

Bem, eu segui o caminho do doutorado (lenta e dolorosamente). Eu não tinha um "propósito", como como isso poderia me ajudar a conseguir diferentes tipos de empregos. Fiz isso porque queria saber as coisas.

Eu era um programador e achava que a programação era um assunto muito simples, exceto que havia lido o livro de Isaac Asimov "Eu, robô" e queria poder construir robôs, e não o fiz. saber como. Eu queria saber como fazer um computador pensar, entender a linguagem natural, ver, andar etc. O ponto é que havia coisas que eu não sabia como fazer e queria descobrir.

Então qual é o resultado? Aprendi algo sobre como fazer com que os programas de computador pensem, vejam etc., mas também aprendi que esses são assuntos muito mais profundos e amplos, dignos de uma vida inteira de investigação. Ao longo do caminho, aprendi muita teoria e matemática e aprendi que há muito mais a aprender.

Também aprendi muito que me ajuda a desenvolver software, sobre o qual escrevi um livro e alguns artigos e publiquei no stackoverflow. Embora eu ache que isso me torna mais eficaz, acho que também me deixa um pouco estranho nas equipes de programação.

Então isso ajudou? Eu acho. Eu não gostaria de ser a pessoa que eu era antes disso.


Com certeza, você não é o único inspirado a entrar no campo cs / robotics / ai pelos [excelentes livros] de ficção científica americanos! Os personagens de Asimov e Sheckley estavam lidando com robôs que eram inteligentes, mas obviamente projetados sem nenhuma "mágica". E isso foi fantástico ! :))
mlvljr

11
@mlvljr: Devo ressaltar que Isaac Asimov e Marvin Minsky têm herança russa.
Mike Dunlavey

@ Mike Dunlavey Hm, não sabia disso sobre M. Minsky, interessante. E você possivelmente o conheceu, eu acho?
mlvljr

6
@mlvljr: Minsky foi meu orientador de tese.
Mike Dunlavey

@ Mike Dulanvey Isso por si só seria suficiente para iniciar um PhD, eu acho :)
mlvljr

11

Existe um equívoco na comunidade típica de desenvolvedores de que um doutorado é necessário apenas se você quiser "ensinar". Provavelmente, isso foi suspenso em relação aos velhos tempos em que a maioria dos doutores costumava frequentar a academia, mas hoje em dia muitos doutores (especialmente os graduados em engenharia / ciência da computação) entram no setor realizando pesquisas em laboratórios ou realizando trabalhos desafiadores de desenvolvimento em grandes empresas como a Intel , Oracle, Google, Microsoft etc.

Especialmente nos EUA, com o advento da transferência de tecnologia / ideia de pesquisa derivada da academia para as startups, agora existe uma forte conexão entre a pesquisa realizada em universidades e startups ... Stanford, MIT, Flórida, CMU e outras são os exemplos populares e ninguém precisa lembrar que o Google também era um projeto de pesquisa.

Fazer um doutorado é uma decisão pessoal, mas fornece insights profundos sobre certas áreas e impõe um nível de dedicação e perseverança para combater adversidades e críticas difíceis ... aliás, habilidades que também são necessárias para as empresas iniciantes. Não estou dizendo que não é possível obter sucesso sem um doutorado. Assim como programadores autodidatas que sabem codificar bem sem frequentar a faculdade, existem muitos exemplos de programadores com apenas um diploma de graduação. ou mestrado. que aprenderam conceitos avançados de tecnologia / CS e tiveram sucesso nas melhores empresas do mundo.

No geral, acho que esse é um grande tópico de discussão, mas hoje um doutorado não é apenas para ensinar.


9

Pode abrir mais cargos e empregos técnicos em empresas maiores do tipo Oracle. O importante, porém, é oferecer uma especialidade muito focada. Para os empregadores, você é o melhor que eles podem encontrar nessa especialidade (no papel, pelo menos).


6

A pós-graduação vale a pena quando você planeja ter uma carreira na área acadêmica. Para um emprego típico no desenvolvimento de software, a pós-graduação não é um requisito.

Isso beneficiaria você no sentido de que provavelmente obteria mais entrevistas graças a um Ph.D. parecendo bastante impressionante em seu currículo. Mas, em termos de realmente usar seu conhecimento, você precisaria procurar emprego especializado ou fazer mais pesquisas do que desenvolvimento para realmente colher os frutos.

Dito isto, acho que um diploma de bacharel vale absolutamente a pena. Ele o expõe ao mundo da ciência da computação e fornece a base que facilita o aprendizado mais aprofundado dos aspectos que interessam ou são necessários para o seu trabalho.


Portanto, pode valer a pena se eu decidir trabalhar em uma posição mais pesquisada. Existem muitos empregos assim, além de apenas trabalhar em uma universidade?
Carson Myers

11
Não tenho certeza, honestamente. Eu acho que isso dependeria muito da sua área. A empresa em que trabalho (no Canadá) emprega alguns Ph.D., um deles em uma função combinada de pesquisa e desenvolvimento. Ouvi dizer que o Google também contrata desenvolvedores com Ph.Ds. Examinava as ofertas de emprego em sua área e veria o que há por aí. As coisas podem mudar quando você se formar, mas a forma e as tendências gerais devem estar no mesmo estádio.
Adam Lear

Depende do que você define como típico e se alguém está planejando seguir uma trilha de gerenciamento ou não. A longo prazo, para grandes cooperações, os Mestres podem ser úteis, mas geralmente melhores se você conseguir que outra pessoa pague por isso.
rjzii

"Para um emprego típico no desenvolvimento de software, a pós-graduação não é um requisito.": Na minha experiência, as habilidades que você adquire ao se formar ou fazer um doutorado podem torná-lo um programador melhor (mais eficiente e capaz de produzir um código mais sólido), mas Concordo que a maioria das ofertas de emprego não exige uma qualificação tão alta: os prazos e prazos apertados exigidos pelo setor tornam muito difícil fazer algo além da simples codificação de rotina. Na maioria das vezes, os empregadores dão pouco espaço para experimentar coisas novas, apesar de poderem ganhar muito com isso a longo prazo.
Giorgio

Penso que um dos problemas é que uma empresa típica planeja pelos próximos 3 a 6 meses (ou no máximo 1, 2 anos), enquanto que um doutorado aprende a olhar anos à frente. Mas esse tipo de pensamento de longo prazo é inútil para trabalhar em produtos que devem ser lançados muito rapidamente com requisitos que estão mudando o tempo todo. Talvez um PhD possa encontrar um emprego apropriado em áreas como construção de compiladores, sistemas aviônicos, software médico, onde os requisitos são mais estáveis ​​e são necessárias mais análises além da codificação simples.
Giorgio

6

Esta é realmente uma pergunta muito difícil, pois haverá muitos fatores em jogo e eles podem ou não se aplicar a você pessoalmente, dependendo de várias variáveis. Em geral, ao abordar a educação formal, você precisa considerar suas próprias habilidades e quais são seus objetivos de carreira a longo prazo. Enquanto alguns argumentam que não há correlação entre as habilidades de programação e a educação, a maioria tem dificuldade em argumentar que a educação (por exemplo, educação formal, oficinas, cursos únicos, leitura de um livro etc.) vai inibir suas habilidades de programação e, em muitos casos, ele realmente os melhorará. Assim, a educação tende a sempre trabalhar a seu favor a longo prazo.

Do ponto de vista do desenvolvimento de carreira, dependendo de quem você trabalha (ou para quem você deseja trabalhar), sua educação provavelmente influenciará o caminho que sua carreira pode seguir. Embora você possa ter bastante sucesso, sem nenhum grau, como sempre, verá que a obtenção do emprego dos seus sonhos pode depender muito da sua formação educacional. Isso se deve ao fato de que a maioria das empresas de médio e grande porte tende a exigir que seus funcionários tenham algum grau de educação formal que possa ser requisito de contratação. Assim, para todas as pessoas que você ouve que não levam em conta a educação na contratação, você encontrará departamentos de Recursos Humanos (RH) que declararão que "o diploma de bacharel em ciência da computação é obrigatório" em sua lista de empregos e nem se incomodará olhar para um currículo que não inclua um.

Em termos da hierarquia educacional, geralmente você pode esperar que as coisas funcionem da seguinte maneira:

  • Sem educação - Se você tiver histórico, isso pode não prejudicá-lo com um número razoável de empresas e você poderá ir longe se desenvolver algum conhecimento bastante especializado que possa ser usado para consultoria. Dito isto, porém, para cada história de sucesso que você ouve, também há muitos desenvolvedores que você não ouve que mantêm o mesmo trabalho e realmente não avançam muito na carreira. As habilidades sociais e de rede podem ajudá-lo a longo prazo, mas você descobrirá que algumas portas estão fechadas devido à falta de educação formalizada.
  • Grau de Associado - É um grau difícil de definir, pois pode realmente abrir portas e as empresas que precisam de um diploma de bacharel podem dispensar o requisito se você puder realmente provar o valor delas, mas é mais provável que não seja justo nessas empresas. . Esse pode ser um bom passo na carreira, pois pode ajudá-lo a conseguir um emprego com benefícios educacionais, mas, eventualmente, você pode achar que as pessoas começam a empurrá-lo para um diploma de bacharel.
  • Bacharelado - Tende a ser o nível de base geral que abrirá muitas portas e geralmente não fará com que nenhuma seja fechada, a menos que sejam para cargos de nível superior que possam depender da indústria. Em termos de retorno do investimento, você provavelmente descobrirá que o diploma de bacharel tende a ter o maior retorno em troca da quantidade de trabalho que você coloca nele (o custo financeiro pode ser muito variável para ser um fator).
  • Mestrado- Em geral, você não deve fazer um mestrado, a menos que alguém esteja pagando, ou você tem a oportunidade de obtê-lo ao mesmo tempo que o seu diploma de bacharel sem muito trabalho adicional (por exemplo, um programa de cinco anos de graduação). No longo prazo, no setor de cooperação, o mestrado abrirá algumas portas que podem não ter sido abertas apenas com o diploma de bacharelado, mas você pode não encontrar essas portas a menos que esteja procurando ativamente por elas (ou seja, pesquisa e desenvolvimento posições de estilo). Nas empresas maiores (isto é, na Fortune 500), a maioria da gerência média e alta terá um mestrado e geralmente é visto como um requisito para subir na empresa. Dito isso, porém,
    Do ponto de vista acadêmico, o mestrado é tipicamente o nível mínimo de educação necessário para ensinar no nível universitário, mas você geralmente se limita a pitões de palestras com salários mais baixos nos quais geralmente não pode contar para um emprego estável. Esse pode ser um grande objetivo a longo prazo à medida que você se aproxima da idade da aposentadoria, mas quando você é mais jovem, pode causar algum estresse.
  • Doutorado - Se você deseja encontrar cargos de alto nível em pesquisa ou ingressar na academia, um diploma de doutorado é um requisito. Para todos os outros, um doutorado é simplesmente bom de se ter e, em alguns casos, um doutorado realmente fecha as portas (ou seja, posições de desenvolvedor iniciantes) por vários motivos. Dito isto, porém, se você realmente gosta de ciência da computação e realmente quer aprender tudo o que há para saber sobre algo, faça o doutorado e não olhe para trás. Praticamente todo mundo com quem eu conversei disse algo do seguinte: "Não faça um doutorado pelo dinheiro, faça-o porque você gosta muito de pesquisar e saber tudo o que há para saber sobre algo".

Para arredondar tudo o resto, aqui estão algumas outras formas de educação formalizada que você pode encontrar:

  • Certificações de fornecedores - certificações de fornecedores como o MCAD ou OCPJP têm um valor muito misto, pois tendem a ser boas apenas por alguns anos antes do vencimento e a maioria dos entrevistadores não se preocupa muito com eles. No entanto, se você estiver procurando mudar para uma área diferente de desenvolvimento (por exemplo, desenvolvimento Windows para Java), poderá descobrir que eles podem lhe dar um emprego se alguém for cético em relação a suas habilidades para fazer o trabalho para o qual está se candidatando. Da mesma forma, quando você está começando, eles podem ajudá-lo a conseguir o primeiro emprego se você não tiver muita educação formal, mas eles tendem a ter um retorno limitado do investimento.
  • Certificados de Pós-Graduação- Eles são oferecidos por faculdades e universidades como forma de formalizar um curso de trabalho que pode não ser digno de um bacharelado ou mestrado completo, mas exige algum tipo de reconhecimento formal. Na maioria dos casos, isso só vale a pena se você estiver procurando alguma formação formal em uma área de fraqueza no trabalho (por exemplo, matemática) ou se estiver trabalhando em um campo em que precisa de alguma educação formal no campo em que não tem formação (por exemplo, se você estiver trabalhando em bioinformática, poderá fazer alguns cursos de biologia). Do ponto de vista da carreira, isso pode valer a pena se alguém pagar por eles, mas geralmente você não verá muito valor agregado além do conhecimento obtido.
  • Master of Business Administration (MBA) - Estou incluindo isso porque é comum ver os funcionários sendo geridos e não é incomum ver desenvolvedores que desejam ingressar no gerenciamento em busca de um. A longo prazo, é um grau que pode ajudá-lo, mas é provável que você fique melhor esperando até ter estabelecido sua carreira e ter uma boa idéia de onde deseja ir antes de fazê-lo.
  • Certificado de Estudo Avançado - São oferecidos por faculdades e universidades como um grau de instrução que passou por um mestrado, mas é inferior a um doutorado. Novamente, o valor desses pode ser difícil de dizer, pois geralmente é algo difícil de quantificar. A maioria das pessoas que eu conheci usava razões muito específicas para fazê-lo, geralmente para o desenvolvimento da carreira, mas elas também estavam no final da carreira e tentavam aumentar um pouco o salário ou trabalhar em algo específico que eles não poderiam de outra maneira.

Então volte ao ponto original, um Ph.D. pode ter um valor questionável se você está apenas procurando um emprego como desenvolvedor, mas pode levar você muito longe se você deseja trabalhar com novas tecnologias que ainda não estão fora do laboratório. Geralmente, mais educação não vai prejudicá-lo, mas você precisa se sentir confortável com os investimentos em tempo envolvidos nos estudos.


4

A qualificação de doutorado é boa se você deseja trabalhar para empresas como Oracle, Google, Microsoft, IBM etc. Também é importante ter ao trabalhar como pesquisador ou professor / professor em uma universidade. Não faça isso simplesmente por causa do título, pois nesses 3 ou 4 anos você pode realizar muito mais na vida do que conseguir outro pedaço de papel. Você economizará tempo e dinheiro e fará outras coisas de que gosta, como dançar, cozinhar, praticar snowboard, viajar, administrar um negócio etc. Por fim, não apresse a decisão. Não se apresse e descubra o que você realmente deseja fazer e o que o faz feliz. Se você apenas gosta de desenvolver software, um diploma de graduação é bom para muitas empresas.


4

Proporciona um enorme aumento salarial se você trabalha para o governo.

Consulte Níveis GS .

Curiosamente, ouvi dizer que pode fazer uma diferença de 30k / ano.


3

Os diplomas avançados (MBA, MSC etc.) (ou seja, etc - não há diploma de ETC - AFAIK :-)) são úteis e às vezes até necessários se você deseja ser gerente de nível intermediário de uma empresa grande (Fortune 500). Os doutores são necessários se seu objetivo é ensinar no nível universitário, ou trabalhar em um instituto de pesquisa ou no centro de pesquisa de uma grande empresa, ou se você quiser que um pedaço de papel fique pendurado na parede para impressionar as pessoas.

Esta é apenas a visão do centro do país - as percepções nas costas podem ser diferentes. YMMV.


2

Da minha experiência pessoal, 3 anos de experiência prática em um setor de TI com graduação ou pós-graduação definitivamente ganhariam mais peso do que um doutorado.

Do ponto de vista do trabalho da indústria de TI, os graduados com experiência em artes e ciências como o BSC poderiam definitivamente optar por uma pós-graduação como uma MCA ou a MSC atuaria como um catalisador para ingressar em uma indústria de TI.

Em nossa empresa, enquanto costumávamos recrutar desenvolvedores de software, o requisito mínimo era um diploma de arte e ciências, com uma programação adequada e habilidade lógica classificada com testes práticos de programação, mas, como a competição aumentou com o tempo, a qualificação mínima foi alterada para engenharia ou engenharia. pós-graduação.


2

Eu tenho um mestrado, não me ajudou em nada. 2 anos da minha vida perdidos para sempre. Pelo menos na Romênia, no desenvolvimento de software, o conhecimento é mais importante. Um diploma universitário ajuda um pouco e em algumas circunstâncias específicas.

M.Sc e Ph.D são bons apenas se você tiver planos de carreira em educação ou pesquisa.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.