Devo ir para a ciência de dados?

O conselho que eu sempre dou quando alguém me pergunta por onde começar a fazer ciência de dados. Melhor se tornar um engenheiro de software.



Esta é a minha opinião pessoal e opcional. Contra-argumentos nos comentários são bem-vindos.

A profissão de especialista agora está em alta. Não discuto, a ciência dos dados estará entre as áreas de atividade mais elegantes do século XXI, mas isso desvaloriza imerecidamente outra profissão útil e muito bem paga - um desenvolvedor de software.

Frequentemente, recebo mensagens de graduados universitários e apenas de pessoas que mudam de profissão, perguntando como entrar na ciência de dados. Em vez disso, aconselho a eles simplesmente entrarem na TI.

Tendo experiência em ambas as áreas, tentarei convencê-lo a fazer a escolha certa.
EDISON Software - desenvolvimento web
EDISON , -.


. , , , — .

, software engineering data science solve problems! ;-)

1. -


Há uma ordem de magnitude em mais empregos na engenharia de software do que na ciência de dados.

Aqui estão algumas capturas de tela depois de uma pesquisa no Google por " especialista em dados » (" cientista de dados ») e " desenvolvimento de software " (" engenheiro de software Have »).





7.616 vagas científicas versus 53.8893 em desenvolvimento de software. É o mesmo nos EUA, em outros países.

Se você acredita no Glassdoor (um serviço da Web com o qual pode monitorar o nível de salários e obter avaliações dos funcionários sobre as empresas), os cientistas de dados ganham mais dinheiro. No entanto, minha hipótese não verificada é de que as vagas de dados sejam direcionadas principalmente a funcionários altamente qualificados.





Embora, quem argumenta, se você receber um milhão no OpenAI - concorde sem hesitar.

2. Não há consenso de que essa seja geralmente uma “ciência de dados”


O gerenciamento da empresa geralmente tem uma vaga idéia do que significa a frase "ciência de dados". Também é facilmente possível, dadas as limitações específicas do negócio, que consistem no fato de que um negócio nem sempre pode se dar ao luxo de seguir estritamente a estrutura das funções.

Isso significa que as responsabilidades de um "especialista em dados" variam muito, muito diferentes de empresa para empresa.


Um esboço condicional que você pode precisar, dependendo de suas tarefas comerciais. No espectro entre a solução de problemas de negócios e a pesquisa, existem profissões como Engenheiro de Software ⇒ Engenheiro de Dados ⇒ Engenheiro de Aprendizado de Máquina ⇒ Cientista de Dados

Embora possa ser imaginada a variedade ideal de funções entre um engenheiro de software e um especialista em dados, é improvável que na vida real isso seja incorporado na referência Formato. Isso é especialmente verdade para as startups que estão passando pelo processo de dimensionamento quando estão apenas construindo a infraestrutura.

Como resultado, os candidatos contratados trabalham nos problemas atuais da empresa e não cumprem o papel de especialista para o qual, de um modo geral, foram contratados.


Tenho testemunhos de meus colegas (cientistas de dados) de que eles escrevem código de back-end como desenvolvedores de software. Conheço outros "pesquisadores de dados" que conseguiram resolver os problemas financeiros de suas empresas.

Isso pode contrastar fortemente com suas expectativas, especialmente se elas se formarem sob a influência de concursos do Kaggle.

3. A solidão do corredor de longa distância de acordo com os dados


A maioria das empresas não precisa de tantos especialistas em dados quanto de engenheiros de software. Até agora, outras empresas contrataram seu primeiro (e por enquanto - o único) especialista em dados.

Por esse motivo, muitos pesquisadores de dados trabalham sozinhos, mesmo que estejam sentados na mesma mesa com os desenvolvedores.

Isso pode dificultar o recebimento de feedback e uma segunda opinião. Os engenheiros de software não entendem a modelagem preditiva ou estão ocupados demais com problemas completamente diferentes.

Pelo contrário, uma das vantagens da equipe de desenvolvimento de software é a capacidade de sempre dizer aos colegas: “Eu acredito que você precisa implementar o ABC no XYZ. Sua opinião? ".

Então, esteja mentalmente preparado para discutir problemas consigo mesmo ou ... com um pato de borracha.

4. A ciência de dados tem um caráter de pesquisa pronunciado


Esteja preparado para conversas desagradáveis ​​com a gerência sobre o assunto em que o que você trabalha há 2 semanas não será usado.

O trabalho em problemas solucionáveis ​​e não solucionáveis ​​é uma das diferenças fundamentais entre o desenvolvimento de software e a IA.

Dados os erros e as limitações inerentes ao desenvolvimento de software - antes de começar, você basicamente tem uma idéia do que é viável e do que não é. Você não pode dizer o mesmo sobre o Machine Learning. Não se sabe se o modelo será eficaz até que seja implementado.

5. Os negócios ainda não estão prontos para a IA


Mesmo em uma época em que quase todas as grandes empresas introduzem inteligência artificial, a maioria delas não possui a infraestrutura adequada para apoiá-la.

Um dos meus amigos, o chefe do departamento de ciência de dados em uma startup de desenvolvimento intensivo, compartilhou recentemente sua sabedoria de startup com uma xícara de café:

primeiro você identifica o problema, depois constrói a infraestrutura e só depois atrai especialistas em dados. E tudo isso acontece muito rapidamente. (Não literalmente)

Outra amiga minha, especialista em ciência de dados em uma empresa conhecida, reclamou recentemente em uma conversa que foi forçada a treinar um modelo de inteligência artificial em big data em seu laptop e não na nuvem.

Se alguns problemas específicos não foram resolvidos no novo local em que você veio, ou mesmo a empresa não está pronta para introduzir a ciência de dados em seus processos, prepare-se para criar algo valioso no limite de sua força.

6. A engenharia de software oferece habilidades gerais


Tornar-se um engenheiro júnior de software é como obter um MBA em tecnologia. Você aprenderá um pouco de tudo.

Você aprenderá sobre bancos de dados, tecnologia em nuvem, implantação, segurança e gravação de código limpo.

Você aprenderá como gerenciar a montagem do software observando seu líder de scrum, desenvolvedor sênior ou gerente de projeto. Você receberá orientação.

Se você se encontra em uma empresa com uma equipe estabelecida de engenheiros, é quase garantido que você melhorará rapidamente suas habilidades e obterá uma experiência geral mascarada.

7. O desenvolvimento de software como atividade é muito mais flexível.


Com uma experiência mais holística com a tecnologia, o desenvolvimento de software oferece mais opções quando você decide que é hora de mudar alguma coisa.

DevOps, segurança, interface, back-end, sistemas distribuídos, análise de negócios, engenharia de dados, ciência de dados ...

Conheço muitos desenvolvedores que passaram do desenvolvimento de software para a ciência de dados. Se você estiver olhando para as descrições de cargos da ciência de dados, notará imediatamente que elas exigem muitas habilidades geradas pelo desenvolvimento de software.


Se você pode criar projetos E2E, também pode fazer mais do que apenas criar um modelo para o concurso Kaggle. Você pode pegar esse modelo, configurá-lo, configurar autorização e pagamentos eletrônicos e, depois, monetizar. Esta é sua própria inicialização.

Nunca direi que a ciência de dados é inútil fora de seu escopo. Tomar decisões com base em big data é simplesmente um assassino em nossos dias. Mas isso também levará ao fato de que os métodos de ciência de dados serão cada vez mais procurados em outros trabalhos, já que os negócios estão cada vez mais focados em big data.

8. O aprendizado de máquina se tornará uma ferramenta comum para desenvolvedores de software.


À medida que a IA se torna mais conveniente e fácil de usar, os desenvolvedores de software começam a usá-la para resolver seus problemas.

Posso ensinar (à tarde) um desenvolvedor a criar classificadores sklearn. Isso não significa que meu padawan criará o próximo AlphaGo, mas oferece uma alternativa à lógica condicional codificada com base na entrada do usuário.

Os especialistas em big data têm conhecimento especializado, como estatística, e têm uma intuição especial sobre como os modelos funcionam. Mas os engenheiros de DevOps e Segurança também têm seu próprio conhecimento especializado.

Eu diria que o ponto aqui não é como as habilidades diferem, mas que algumas são usadas com menos frequência e outras com mais frequência. Um engenheiro experiente se move entre ordens de especializações de magnitude mais rapidamente, enquanto um iniciante aprende do zero.

Embora eu não pense que veremos uma fusão completa da ciência de dados com o desenvolvimento de software. Em vez disso, a ciência de dados se tornará outra área de especialização em desenvolvimento de software.

9. A AI não substituirá engenheiros de software no futuro próximo


Não importa o quão estúpido isso pareça agora, em 2014 eu comecei a desenvolver software, com medo de que a IA tornasse qualquer outro trabalho obsoleto.


E, no entanto, desde então, não chegamos realmente perto do futuro da tecnologia. A adoção da tecnologia é lenta e estamos mais longe de uma IA forte do que você pode imaginar.

Comparado a outras profissões, o aprendizado de máquina está ainda mais distante da automação do desenvolvimento de software. Embora tenhamos startups que criam produtos interessantes, como a conclusão de código com suporte à IA, a codificação em si não é realmente um trabalho real. O presente trabalho é resolver problemas usando a tecnologia.

Até agora, na era da pré-singularidade, a capacidade de escrever programas continuará sendo uma habilidade valiosa e altamente paga por um longo tempo.

Conclusão


Em primeiro lugar, tudo isso é principalmente o meu IMHO. Em segundo lugar, estou ciente de que misturei cientistas de dados, engenheiros de aprendizado de máquina e desenvolvedores de inteligência artificial em uma única pilha - e compreendo perfeitamente a diferença entre eles. Não obstante, vale a pena considerar esses argumentos cuidadosamente, porque esta é sua vida e sua carreira.

Não leve o que eu disse muito a sério. Prefiro que você investigue esse problema e tome sua própria decisão. Isso faz parte do trabalho de qualquer especialista em dados, em geral :)

No final, eles nos pagam principalmente pela solução de problemas.

Traduções no Blog Edison:


All Articles