Informática
Forma-te para modelar um problema com precisão suficiente para uma máquina o executar, e para raciocinar sobre o que acontece quando o faz em escala, sob falhas e com alguém a atacá-lo.
Um único número para um curso inteiro esconderia o que importa: este curso treina várias competências distintas, e nem todas se estão a mover no mesmo sentido. A automatização atua sobre tarefas, por isso qualquer avaliação vive nas páginas de profissão em baixo, e não aqui.
Escrito para os cursos de quatro anos de informática e de engenharia de software. Os programas da via de investigação e os centrados em hardware são materialmente diferentes.
O que é que este curso treina mesmo#
Não o plano de estudos: as competências que estão por baixo, e se cada uma vale mais ou menos do que valia.
Modelar um problema com precisão
Vale mais do que antesTransformar algo que uma pessoa descreveu de forma vaga numa especificação sem casos indefinidos.
A geração está a jusante da especificação e amplifica uma especificação errada mais depressa do que uma pessoa teria feito. Quem escreve a especificação determina agora mais do resultado do que quem escreve o código.
Raciocinar sobre as falhas
Vale mais do que antesSaber o que se parte com a concorrência, com uma falha parcial e com uma entrada inesperada, antes de se partir.
É aqui que o teto do código gerado se vê mais claramente. O código fluente que está errado sob carga parece idêntico ao código correto até estar em produção.
Ler um sistema desconhecido
Vale mais do que antesTer na cabeça o suficiente da base de código de outra pessoa para saber que observação seria decisiva.
À medida que mais código é produzido por máquina, mais parte do posto é ler código que ninguém escreveu à mão. Rever código plausível mas errado é uma competência distinta e recentemente central.
Escrever código de rotina
Vale menos por si sóProduzir implementações corretas e idiomáticas de coisas bem especificadas.
Bem especificado, muito representado nos dados de treino, e verificável de imediato executando-o: o caso mais forte para a geração de código. Mas repara: não consegues julgar código que não terias sabido escrever, por isso isto continua a ser um pré-requisito mesmo deixando de ser um produto.
Fundamentos
Mantém-seComplexidade, estruturas de dados, modelos de concorrência, como um computador executa de facto.
A parte do curso que mais devagar caduca e que não se tira de um tutorial. É o que te permite raciocinar sobre um sistema que nunca viste.
Aonde pode levar#
Várias direções, nunca uma. Cada uma diz o que a tua formação reaproveita, o que costuma faltar a quem se licencia, quais são as condições reais de entrada, e uma coisa que podes testar este semestre.
Engenharia de software, entrando de propósito
análise por tarefas →- O que se transfere
- Tudo: este é o caminho direto.
- O que costuma faltar a quem se licencia
- Não conhecimento, mas provas de critério. O primeiro emprego tradicional ensinava critério pagando-te para escreveres código de rotina durante dois anos; esse arranjo está a enfraquecer, por isso tens de demonstrar um pensamento de qualidade de revisão antes de alguém normalmente to pedir.
- A realidade da entrada
- O degrau de baixo da escada é mais estreito do que era; o de cima está intacto. Lê a página da ocupação: aqui a divisão entre entrada e sénior é mais afiada do que em qualquer outra ocupação do primeiro lote.
Pega num pedido de integração gerado, teu ou de um projeto aberto, e escreve uma revisão que encontre um problema real, com o raciocínio explicado. Fá-lo todas as semanas e guarda-as. Essa pasta vale mais do que mais um projeto de tutorial acabado.
Domínios onde errar sai caro
análise por tarefas →- O que se transfere
- O raciocínio sobre falhas e os fundamentos, nos sítios que mantêm uma pessoa firmemente dentro do ciclo: pagamentos, segurança, integridade de dados, infraestrutura.
- O que costuma faltar a quem se licencia
- Profundidade numa área concreta, que só o tempo produz. Quase todos os licenciados têm amplitude e nenhuma profundidade, que é exatamente o contrário do que este caminho pede.
- A realidade da entrada
- Menos anúncios de entrada, mas os que existem estão menos expostos e são mais bem pagos. Muitas vezes chega-se lá ao fim de um ou dois anos noutro sítio e não diretamente.
Escolhe uma dessas áreas e lê de ponta a ponta como um sistema real em produção a trata, uma biblioteca aberta de pagamentos ou de autenticação, até conseguires explicar os modos de falha dela a um colega.
Entre a engenharia e o problema
- O que se transfere
- Modelar o problema mais a capacidade de ler um sistema, aplicadas onde o valor está em perceber ao mesmo tempo a máquina e o que uma pessoa precisa dela: engenharia de soluções, experiência de programador, produto técnico.
- O que costuma faltar a quem se licencia
- A comunicação tratada como uma competência de primeira classe e não como algo suave: escrever documentação que alguém consiga mesmo seguir, e conduzir uma conversa com uma pessoa que não partilha o teu vocabulário.
- A realidade da entrada
- Raramente é anunciado ao nível de recém-licenciado; normalmente entra-se de lado ao fim de um tempo em engenharia. Vale a pena saber cedo que existe para se construir nessa direção.
Escreve a documentação de algo que tenhas construído, dá-a a alguém que não o conheça, e repara onde a pessoa encrava sem a ajudares. Esse silêncio é a lição.
Pensamento de engenharia numa área que não é software
- O que se transfere
- Todo o instrumental, aplicado onde quase ninguém consegue ao mesmo tempo perceber o domínio e construir. Essa combinação é escassa e não compete de frente com a geração.
- O que costuma faltar a quem se licencia
- O próprio domínio, a começar quase do zero, e a paciência para um primeiro ano que se sente como andar para trás.
- A realidade da entrada
- Não há caminho padrão, e isso corta dos dois lados: não há fila a que juntar-se, mas também não há ninguém a recrutar para isto. Costuma começar por uma ligação pessoal à área.
Procura uma pessoa de uma área que não seja software com um problema repetitivo, e constrói a coisa mais pequena que de facto a ajude. Uma pessoa a usá-la ganha a cem estrelas no GitHub.
Testes e engenharia de qualidade
análise por tarefas →- O que se transfere
- O raciocínio sobre falhas transformado num posto: descobrir como um sistema se parte antes de um utilizador o partir, e construir o andaime que o continua a demonstrar.
- O que costuma faltar a quem se licencia
- Os licenciados costumam chegar a saber escrever testes para código que eles próprios escreveram, que é o caso fácil. O posto é testar código que outra pessoa escreveu, contra um prazo que é dela.
- A realidade da entrada
- Um dos pontos de entrada mais abertos do software, e muitas vezes tratado injustamente como menor. Lê a página da ocupação antes de decidires: a geração de testes é uma das tarefas com mais prova verificada deste sítio, e o que essa prova muda é que metade do posto sobra.
Pega no projeto de um colega que não tenhas escrito, e encontra três maneiras de o partir que essa pessoa não tenha antecipado. Anota qual das três uma bateria de testes gerada teria apanhado.
Pôr a IA em produção dentro de uma empresa
análise por tarefas →- O que se transfere
- Ler um sistema mais modelar o problema, aplicados a uma empresa que comprou as ferramentas e agora precisa de alguém que decida o que elas podem fazer sem supervisão.
- O que costuma faltar a quem se licencia
- Os licenciados subestimam que quase tudo isto é organizacional (conseguir que dois departamentos cheguem a acordo, e estar ali quando a coisa se enganar) e não técnico.
- A realidade da entrada
- Raramente é um primeiro emprego e é mesmo difícil de ler de fora: a ocupação é suficientemente jovem para este sítio marcar a sua confiança como baixa, e quase tudo o que se escreve sobre ela é escrito por gente que vende serviços de implementação de IA. Isso é uma razão para ir ver, e não para a evitar.
Escolhe uma ferramenta de que uma associação ou um laboratório de facto dependa, e escreve uma página sobre o que ela hoje decide sozinha e o que devia precisar de uma pessoa. Mostra-a a quem é dono dessa ferramenta e vê com que linha essa pessoa discute.
A camada em que as pessoas mexem mesmo
análise por tarefas →- O que se transfere
- Modelar o problema, no único sítio onde os casos indefinidos são visíveis para um estranho: os estados que ninguém desenhou, vazio, meio carregado, sem ligação, o erro que chega enquanto quem usa ainda está a escrever.
- O que costuma faltar a quem se licencia
- A acessibilidade, que um curso de informática quase nunca ensina e que em muitos mercados é uma exigência legal e não um pormenor. Repara no que isso significa para este caminho: a parte do posto que o curso saltou é a parte que tem uma lei por trás.
- A realidade da entrada
- O ponto de entrada mais largo do software, e aquele em que é mais assustador ver uma demonstração de uma interface gerada. Lê a página da ocupação antes de tirares uma conclusão dessa demonstração: o que se gera bem é o primeiro ecrã, e o resto do posto são dispositivos reais, redes reais, e os componentes sobre os quais todos os outros constroem.
Pega numa interface que tenhas construído e usa-a de ponta a ponta só com o teclado, sem rato. Anota o passo em que ficaste preso. Depois corrige esse passo: acabaste de fazer a parte deste posto que não se gera.
As condutas, e quem responde pelo que sai
análise por tarefas →- O que se transfere
- O raciocínio sobre falhas, apontado ao modo de falha que este curso te ensina a esperar e em que quase ninguém pensa: aquele em que nada dá erro e o número está simplesmente errado.
- O que costuma faltar a quem se licencia
- Os licenciados escreveram consultas; não mantiveram algo que se parte às três da manhã porque um sistema a montante mudou um campo sem avisar ninguém. Nem ninguém lhes pediu ainda que digam, numa frase e por escrito, o que um número significa.
- A realidade da entrada
- Uma porta mais larga do que a da aprendizagem automática e muito menos concorrida, em parte porque tem menos glamour e em parte porque o trabalho só fica visível quando falha. A página da ocupação é franca ao dizer que a primeira tarefa da lista, construir a conduta, é a que mais depressa se automatiza; o que fica é a parte em que alguém tem de responder pela definição.
Constrói uma conduta que corra sozinha todos os dias, e depois mete-lhe de propósito uma linha má por cima e vê se alguma coisa te avisa. Para quase toda a gente, à primeira não avisa nada, e esse silêncio é a ocupação inteira numa só experiência.
Sistemas cujo comportamento é aprendido
análise por tarefas →- O que se transfere
- Os fundamentos e o raciocínio sobre falhas, em sistemas onde ninguém consegue explicar linha a linha por que fizeram o que fizeram, por isso o raciocínio tem de ser estatístico em vez de mecânico.
- O que costuma faltar a quem se licencia
- Desenho de experiências e estatística suficiente para desconfiares do teu próprio resultado. E uma coisa que as cadeiras raramente dizem sem rodeios: um modelo melhorar na métrica offline e piorar para as pessoas sobre quem é usado é o caso normal, e não um acidente.
- A realidade da entrada
- Duas portas diferentes a que se chama o mesmo. Os postos com sabor a investigação são estreitos, muito de pós-graduação, e são aqueles a que toda a gente se candidata. A porta larga é o trabalho aplicado sobre modelos comprados, que está a crescer e não é anunciado com este título. A página da ocupação divide o posto da mesma forma: treinar um modelo é a tarefa que mais depressa se automatiza, e decidir o que conta como suficientemente bom é a que não.
Treina alguma coisa sobre um conjunto de dados público, e depois anota onde esperas que ele erre com confiança, e vai construir essas entradas até ele errar. Decidir o que conta como suficientemente bom, e provares a ti próprio que não é, é a metade deste posto que ninguém consegue entregar a uma ferramenta.
O que acrescentar fora da sala de aula#
Isto é sobre o que costuma faltar na prática a quem se licencia; não é uma acusação de que a tua escola não o ensinou.
Tempo numa base de código com consequências reais: um estágio, um projeto aberto de que há gente dependente, qualquer coisa em que errar tenha consequência. Os projetos de brincar não conseguem ensinar critério porque não há nada em risco.
Rever código de outras pessoas, incluindo código gerado, de propósito e com regularidade. É a competência de que o mercado anda com falta e a que a universidade menos avalia.
Escrever. Documentos de desenho, relatórios de incidentes, explicações. Quem avança em engenharia são aqueles cujo raciocínio os outros conseguem seguir.
Este semestre#
Uma ou duas ações, e cada uma produz algo que podes mostrar a alguém. Não é uma lista de leituras.
Começa a pasta semanal de revisões de código. Quatro entradas até ao fim do semestre são melhor sinal do que qualquer certificado.
Lê de ponta a ponta um sistema em produção de uma área onde a correção sai cara. A profundidade num sítio ganha à amplitude em cinco.
Perguntas frequentes#
Vale, mas por uma razão diferente da de há cinco anos. O curso valia porque te permitia produzir código; agora o valor é permitir-te julgar código, e não consegues julgar o que não terias sabido escrever. O que mudou de facto foi o mercado de trabalho na ponta de entrada: o trabalho de rotina que antes pagava a gente júnior enquanto ela desenvolvia critério é a parte que está a ser automatizada. Ou seja, a formação continua a funcionar, mas o velho arranjo em que o teu primeiro emprego te ensinava à custa da folha de pagamentos de outro está a enfraquecer. Planeia essa lacuna explicitamente em vez de partires do princípio de que o primeiro emprego a fecha.
A informática é o caso estranho: as ferramentas são melhores exatamente naquilo que o curso te ensina a produzir, e o emprego de entrada a que dá acesso é um em que vários empregadores cortaram publicamente as admissões. Esse é um argumento real, e não é um argumento para sair: é um argumento para entrares com um plano de como vais chegar ao trabalho de critério, porque o degrau de programação de rotina que antes te levava lá adelgaçou.
Vale a pena quando muda para o que te podem contratar (investigação, sistemas, uma especialidade com poucos praticantes) e não vale a pena como forma de esperar que passe um mercado de recém-licenciados fraco. Um mestrado que ensina as mesmas competências de produção um nível acima compete com as mesmas ferramentas. Verifica o laboratório ou o grupo concretos, e não o nome do grau.
Alguma coisa que tenhas depurado e não tenhas escrito. Ler código fluente mas errado com cuidado suficiente para encontrar o que está confiantemente partido é a tarefa que este sítio assinala como recentemente central, e é a única coisa que um portefólio de projetos gerados não consegue demonstrar. Um contributo real para uma base de código que não começaste ganha a cinco projetos pessoais acabados.
Método#
As avaliações vivem sobre tarefas, não sobre cursos. Segue qualquer uma das direções em cima até à sua página de profissão para veres que tarefas estão a mudar, que força tem a prova, e o que ela ainda não mostra.