A Stability AI ficou famosa nos últimos meses com o Stable Diffusion, modelo de geração de imagens com inteligência artificial. Agora, ela vai partir para o campo da escrita. A empresa anunciou uma alternativa ao ChatGPT chamada StableLM, com código aberto.
O StableLM gera texto prevendo qual o próximo token, como é chamado o fragmento de palavra. A sequência começa com uma informação fornecida por um ser humano.
O funcionamento é bem parecido com o GPT-4, modelo grande de linguagem (LLM, na sigla em inglês) que serve de base para o ChatGPT.
“Modelos de linguagem formarão a espinha dorsal da nossa economia digital, e queremos que todo mundo possa opinar nesses projetos”, diz a Stability AI no blog post anunciando a novidade. “Modelos como o StableLM demonstram nosso compromisso com tecnologias de inteligência artificial transparentes, acessíveis e solidárias.”
Por enquanto, o StableLM está em fase alpha. Ele foi disponibilizado no GitHub, nos tamanhos de 3 bilhões e 7 bilhões de parâmetros. A Stability AI promete que os modelos de 15 bilhões e 65 bilhões de parâmetros serão liberados em breve.
Os parâmetros são variáveis que um modelo usa para aprender a partir dos dados de treinamento. Números menores significam que os modelos podem ser mais eficientes, podendo rodar localmente em notebooks ou smartphones.
Por outro lado, eles precisam de projetos mais elaborados para conseguir entregar bons resultados usando menos recursos.
O StableLM é mais um dos modelos grandes de linguagem a prometer desempenho próximo ao do GPT-3, da OpenAI, com número menor de parâmetros — o GPT-3 usa 175 bilhões.
Outros são o LLaMA, da Meta; o Alpaca, de Stanford; o Dolly 2.0; e o Cerebras-GPT.
Os modelos foram disponibilizados sob a licença Creative Commons BY-SA-4.0. Isso significa que projetos derivados devem dar créditos ao autor original e ser compartilhados usando a mesma licença.
Por enquanto, é possível testar uma versão do modelo de 7 bilhões de parâmetros já customizada para chatbots no Hugging Face.
Para analisar a evolução da internet, é possível dividir a história da Web em alguns estágios principais com base nas tecnologias e transformações aplicadas no período. É nesse contexto que surge o termo Web3, indicado para apontar uma nova fase entre as formas de conexão.
A Web3 é um conjunto de tecnologias que representa um novo marco durante a evolução da internet. Tem como grande premissa a descentralização da Web, reforçada por conceitos como o blockchain e a tokenização digital, indo na contramão de um cenário em que dados e plataformas ficam concentradas em Big Techs.
O termo foi criado por Gavin Wood, fundador da plataforma de blockchain Ethereum, em 2014. Vale a pena ressaltar que o conceito é muito abstrato e, em algumas situações, ainda reside no campo teórico. Mas, antes de entender o que significa essa terceira etapa, é preciso definir o que veio antes.
Esses termos foram usados para definir outras grandes evoluções no uso da internet. Não há um único ponto de partida que separa as épocas, mas pesquisadores analisam um conjunto de características semelhantes entre os períodos.
O início da World Wide Web, entre o final da década de 1980 e a década de 1990, marca esse primeiro estágio. Os sites eram principalmente estáticos, limitados a textos, hiperlinks e poucas imagens.
Por conta dessas características, a Web1 limitou a experiência dos usuários somente à leitura, com poucas opções de interação e dificuldade para obter um site próprio.
No início dos anos 2000, já era possível vivenciar a segunda evolução da internet: a Web 2.0 abria espaço para a interação entre usuários. Mensageiros instantâneos, espaços de comentários em sites e plataformas de blogs viabilizavam a criação de conteúdo próprio.
O grande salto veio com as redes sociais — as plataformas protagonizaram a experiência de ficar online e ampliaram as formas de produção (e monetização) de conteúdo. Enquanto a Web 1.0 se limitou à leitura, a etapa seguinte permitia ler e criar ao mesmo tempo.
Além disso, a Web 2.0 também representou a chegada da portabilidade e dos aplicativos. Com a opção de acessar a internet em qualquer dispositivo, foi possível desenvolver plataformas versáteis e que atendessem a diferentes demandas.
O resultado é a mudança nas formas convencionais de consumo: o pedido de comida por telefone foi substituído pelo app de delivery, o táxi deu espaço para o Uber e por aí vai.
Uma das principais consequências da “Web2” foi a centralização dos dados nas Big Techs. Meta, Amazon, Google e outras gigantes da tecnologia concentraram as informações dos usuários e mantiveram o controle dos hábitos na internet entre poucos produtos.
Se a Web2 centralizou o fluxo de dados entre grandes empresas, a Web3 surgiu para descentralizar esse processo. A ideia envolve usar tecnologias de blockchain para dar poder aos usuários e permitir que eles gerenciem os próprios dados.
De forma resumida, o blockchain pode armazenar as informações sobre a propriedade de um ativo digital e disponibilizar os registros publicamente. Assim, as pessoas não dependeriam dos servidores de uma grande empresa para acessar essa informação, enquanto toda a comunidade de usuários pode manter o registro ativo, sem a participação de empresas na intermediação.
“A Web3 elimina a necessidade de intermediários porque oferece a possibilidade de realizar transações seguras diretamente entre os usuários (peer-to-peer), por meio das novas tecnologias baseadas na blockchain, como os smart contracts”, explica a CEO da consultoria especializada em Web3 Go Digital Factory, Adriana Molha. “É a era da propriedade, da descentralização e das comunidades”, complementa a executiva.
Muitos dos conceitos da Web3 já são aplicados nos mercados de criptomoedas, tokens não fungíveis (NFT) e outros ativos digitais — por isso é muito difícil falar sobre um sem mencionar o outro. Esse estágio da web promete que todos poderão ler, criar e possuir alguma propriedade digital dentro da internet.
Adriana Molha reforça a importância do blockchain para essa função. “Ao mesmo tempo em que oferece a privacidade dos dados, também garante a propriedade do conteúdo produzido pelo usuário”, explica. “Em outras palavras, aquilo que é seu na Web3, é seu mesmo. Está registrado nestas redes descentralizadas chamadas Blockchains e não no servidor de alguma empresa”, prossegue.
A Web3 possui alguns pilares principais:
Aqui, a resposta fica um pouco mais complicada. Existem alguns teóricos que usam uma separação entre Web3.0 e Web3: nesse caso, a nomenclatura “3.0” representa alguns padrões de acesso a sites, enquanto a Web3 é usada para englobar todas as outras tecnologias.
Um conceito muito atribuído à Web 3.0 é o de web semântica, ou seja, uma padronização da internet que pode ser compreendida por humanos e máquinas. Isso muda a interpretação dos dados e permite que os algoritmos desenvolvam respostas e antecipem problemas.
Então, é comum que alguns pesquisadores usem o termo Web 3.0 para abordar a web semântica e Web3 para definir os processos de segurança e descentralização.
Quando o assunto é a criação de novas experiências para a internet, o metaverso é um exemplo mencionado com frequência. Apesar do espaço virtual não ser um conceito recente, ele pode ser combinado com as tecnologias da Web3 para aumentar sua popularidade.
Esses dois temas se interligam quando envolvem token e ativos digitais. “O metaverso está inserido dentro do contexto da Web3 a partir do momento em que as transações nesse metaverso são feitas via tecnologia Blockchain”, reforça Adriana Molha.
“Quando é mencionado que a Web3 será uma web imersiva, podemos entender a proposta de metaverso como a interface possível para esta realização”, completa a executiva.
A forma mais prática de entender o funcionamento da Web3 ainda envolve o uso de criptomoedas. Como essas tecnologias costumam ser operadas em blockchain, já é possível compreender as etapas dessa rede.
Alguns navegadores, como o Opera e o Brave, já adaptaram a própria interface para receber recursos voltados ao Web3, como uma carteira própria de criptomoedas.
Fora do mercado financeiro, o blockchain também é utilizado para proteger assinaturas digitais, por exemplo, além de adicionar camadas de criptografia no armazenamento em nuvem. Há, inclusive, um projeto de criação de sistema de blockchain nacional para uma moeda virtual desenvolvido pelo Banco Central do Brasil, chamado Real Digital.
Por outro lado, ainda existem outros recursos que dão seus primeiros passos ou nem saíram do papel. O conceito de dApps, aplicativos criados em uma rede descentralizada e protegida por blockchain, pode ser uma resposta aos apps convencionais, mas ainda existem poucos modelos disponíveis.
Ao mesmo tempo em que procura resolver problemas gerados pela Web 2.0, o Web3 também levanta alguns questionamentos sobre o próprio jeito de funcionar.
O primeiro envolve a capacidade de processamento de dados: a tecnologia de blockchain demora para concluir uma transação e não consegue operar com tantas informações ao mesmo tempo. Por isso, servidores de Google, Amazon e outras empresas são opções mais consolidadas e com maior poder de armazenamento.
Há, ainda, a questão ambiental de todo esse processo. O blockchain depende da mineração e da presença de supercomputadores, que geram problemas a partir do consumo de energia e da necessidade do espaço físico para comportá-los.
Os riscos com a privacidade também chamam a atenção: uma carteira de criptomoedas poderia armazenar todas as informações do usuário com gastos pessoais. Nesse caso, ainda não existem métodos para ocultar alguns dados de visitantes.
(Imagem: Freepik)
Os desenvolvedores de software são divididos em três categorias principais: júnior, pleno e sênior. Cada categoria tem habilidades e responsabilidades diferentes, e é importante entender essas diferenças para saber em quais posições os desenvolvedores se encaixam melhor.
São aqueles que acabaram de entrar no mercado de trabalho ou têm pouca experiência em programação. Eles geralmente trabalham em tarefas simples, como correção de bugs ou manutenção de código existente. Eles também podem atuar em projetos pequenos e simples, mas geralmente sob a supervisão de um desenvolvedor pleno ou sênior.
São aqueles que já têm alguma experiência como desenvolvedor, mas ainda estão sempre aprendendo e aprimorando suas habilidades. Este grupo geralmente trabalha em tarefas mais complexas e podem ser responsáveis por partes específicas de um projeto, podendo também ser responsáveis por orientar e supervisionar desenvolvedores júnior, ajudando-os a crescer e maximizar suas habilidades.
São aqueles que têm muita experiência como desenvolvedores e possuem habilidades avançadas. Eles geralmente trabalham em projetos complexos e são responsáveis por tomar decisões importantes em relação ao projeto e à equipe. Eles também podem ser responsáveis por orientar e supervisionar desenvolvedores plenos e júnior, ajudando-os a crescer e se desenvolver.
Cada categoria de desenvolvedor tem suas próprias responsabilidades e habilidades, e cada uma é importante para o sucesso de um projeto. Desenvolvedores júnior fornecem suporte básico, enquanto desenvolvedores plenos e sêniors fornecem suporte mais avançado e tomam decisões importantes.
É importante ter em mente que essas classificações são baseadas na experiência e habilidade dos desenvolvedores e não são uma medida exata da capacidade de um desenvolvedor, nem mesmo no tempo de experiência. Alguns desenvolvedores júniores podem ser muito talentosos e capazes, enquanto alguns desenvolvedores sêniors podem não ser tão habilidosos.
(Imagem: Freepik)
Há algumas habilidades e características que podem ajudar um desenvolvedor júnior a se tornar um desenvolvedor pleno:
👉Conhecimento técnico: Um desenvolvedor pleno deve ter um bom conhecimento das ferramentas, linguagens e técnicas utilizadas em seu trabalho. Conforme vai ganhando experiência, deve estar sempre buscando aprender novas tecnologias e aprimorar as já conhecidas.
👉Comunicação eficaz: Um desenvolvedor pleno deve ser capaz de se comunicar eficazmente tanto com os membros da equipe quanto com os clientes ou usuários finais. Isso inclui a capacidade de explicar complexidades técnicas de forma simples e clara.
👉Habilidade de resolução de problemas: Um desenvolvedor pleno deve ser capaz de resolver problemas técnicos e encontrar soluções para problemas com pouca ou nenhuma orientação.
👉Habilidade de trabalhar em equipe: Um desenvolvedor pleno deve ser capaz de trabalhar em equipe e colaborar com outros desenvolvedores e profissionais de outras áreas.
👉Autonomia: Um desenvolvedor pleno deve ser capaz de tomar decisões e trabalhar de forma autônoma. Isso inclui a capacidade de priorizar e gerenciar suas tarefas, bem como a capacidade de lidar com mudanças e adaptar-se a novos desafios.
Essas habilidades e características não são exigidas de forma simultânea, e a evolução de um desenvolvedor júnior para um desenvolvedor pleno pode levar algum tempo. No entanto, trabalhando nessas áreas, é possível desenvolver as habilidades necessárias para se tornar um desenvolvedor pleno e eficaz.
Os salários para desenvolvedores de software variam amplamente no Brasil, dependendo de fatores como localização, tipo de empresa, habilidades e experiência. No entanto, é possível dar uma ideia geral das faixas salariais para cada categoria de desenvolvedor:
(Imagem: Freepik)
Desenvolvedor júnior: pode ganhar entre R$ 2.500 e R$ 4.500 por mês, dependendo da localização e do tipo de empresa. Isso pode aumentar para R$ 5.000 a R$ 7.000 por mês para desenvolvedores com habilidades mais avançadas e/ou experiência anterior.
Desenvolvedor pleno: pode ganhar entre R$ 5.000 e R$ 8.000 por mês, dependendo da localização e do tipo de empresa. Isso pode aumentar para R$ 8.000 a R$ 12.000 por mês para desenvolvedores com habilidades mais avançadas e/ou experiência anterior.
Desenvolvedor sênior: pode ganhar entre R$ 8.000 e R$ 12.000 por mês, dependendo da localização e do tipo de empresa. Isso pode aumentar para R$ 12.000 a R$ 15.000 por mês para desenvolvedores com habilidades mais avançadas e/ou experiência anterior.
Existem algumas áreas de TI que geralmente oferecem salários mais elevados para desenvolvedores juniores. Essas áreas incluem:
Desenvolvimento de jogos é uma área em crescimento e pode oferecer salários atraentes. Isso pode incluir desenvolvimento de jogos para dispositivos móveis, consoles e computadores pessoais.
Desenvolvimento de inteligência artificial (IA) e aprendizado de máquina (ML) está em alta demanda e podem oferecer salários mais elevados para desenvolvedores juniores com habilidades em IA e ML.
Segurança da informação é uma área crítica e pode oferecer salários mais elevados para desenvolvedores juniores com habilidades em segurança de rede e criptografia.
O desenvolvimento de blockchain também está em crescimento e requer pouca experiência para início na carreira.
Desenvolvimento de aplicativos móveis tem alto acoplamento para desenvolvedores juniores e é uma excelente porta de entrada para uma carreira promissora.
(Imagem: Freepik)
Neste contexto, é importante frisar que a área de TI que engloba esses níveis profissionais está em franca expansão. Pode-se afirmar isso devido a vários fatores, dos quais destacamos:
Crescimento do setor: A tecnologia está se tornando cada vez mais importante em quase todos os setores, e isso está impulsionando o crescimento do setor de TI. Isso significa que há uma grande demanda por profissionais de TI qualificados, o que aumenta as oportunidades de carreira e salários.
Inovação contínua: A tecnologia está sempre evoluindo e há sempre novas tendências e inovações emergentes.
Ampla variedade de carreiras, desde desenvolvimento de software e segurança da informação até gerenciamento de projetos e gerenciamento de TI.
Salários atraentes: Profissionais de TI geralmente ganham salários mais elevados do que profissionais em outras áreas, especialmente para aqueles com habilidades e experiência avançadas.
Oportunidades globais: A tecnologia é utilizada em todo o mundo, o que significa que as oportunidades de carreira em TI são globais. Isso pode incluir trabalhar para empresas multinacionais ou viajar para trabalhar em projetos em outros países.
Oportunidade de trabalhar remotamente: A pandemia aumentou a necessidade de trabalhar remotamente e muitas empresas estão adotando essa modalidade como uma forma de trabalhar. Isso oferece aos profissionais de TI a flexibilidade de trabalhar de qualquer lugar, o que pode ser uma grande vantagem.
A própria construção desse artigo é um exemplo de como a revolução digital é imparável. Este artigo foi escrito em conjunto com a ajuda de ChatGPT, um modelo de linguagem de grande porte treinado pela OpenAI. O processo funcionou da seguinte maneira:
O usuário forneceu um conjunto de perguntas ou tópicos para o qual desejava obter informações.
O modelo de linguagem ChatGPT foi utilizado para gerar uma resposta baseada em seu conhecimento prévio e sua capacidade de compreender e produzir texto natural.
O modelo de linguagem ChatGPT forneceu um conjunto de respostas, que foram revisadas, validadas e editadas pelo usuário para garantir precisão e clareza.
O usuário pode continuar perguntando e o modelo de linguagem ChatGPT continuaria gerando respostas para continuar o artigo.
É importante notar que, embora o modelo de linguagem ChatGPT seja capaz de gerar respostas precisas e informativas, ele não possui opiniões ou sentimentos próprios e pode não estar completamente atualizado com as informações mais recentes. Portanto, é importante verificar e editar as informações geradas pelo modelo antes de usá-las. A revolução não para.
Engenharia de Software é, por definição, a aplicação de técnicas, conhecimentos e ferramentas à construção de software de qualidade. A função do engenheiro de software é produzir aplicações que atendam às necessidades dos clientes dentro do prazo e orçamento disponíveis.
Software é construído através do processo de programação. Embora o processo de desenvolvimento envolva outros passos anteriores à codificação, o software não fica pronto sem programação.
(Imagem: freepik)
Programação é o processo de criar e descrever um conjunto de instruções que informem a um computador o que fazer para resolver um dado problema. Para programar, é necessário entender a lógica básica de programação (algoritmos) e alguma linguagem de programação que possa ser “entendida” pelo computador.
Diante da importância da programação no desenvolvimento de software, cursos e discussões na área tendem a focar fortemente em desenvolver habilidades técnicas voltadas para essa atividade. De fato, basta olhar a grade de qualquer curso de engenharia de software ou computação e veremos disciplinas voltadas para programação em praticamente todos os blocos.
Com essa informação, parece que todo engenheiro de software precisa ser, acima de tudo, um programador. Mas será mesmo verdade?
Programação é uma habilidade complexa. É também uma atividade complexa e longa.
Programar envolve criar algoritmos. A base para a criação de qualquer programa é a definição da sequência de instruções que serão realizadas para resolver o problema do cliente. Esse conjunto de instruções é conhecido como algoritmo.
Criar algoritmos exige conhecimento das estruturas de comando e de lógica matemática, bem como a capacidade de visualizar e organizar a solução para problemas.
Além disso, programar exige o domínio de uma linguagem de programação. Linguagens de Programação são sistemas de notação que podem ser compreendidos pelo computador. Computadores não entendem o que chamamos de linguagens naturais (as que falamos no dia a dia, como o português). Por isso, é necessária uma linguagem que possa ser entendida tanto pelo programador quanto pelo computador. Diversas dessas linguagens existem no mercado, é cada software é desenvolvida em uma linguagem.
(Imagem: freepik)
Por esses motivos, nem todos desejam dedicar tempo ou esforço para a atividade de programação. Algumas pessoas não se interessam por aprender as habilidades necessárias. Outras, mesmo sabendo programar, não demonstram interesse pelo dia a dia da atividade.
Ainda assim, várias dessas pessoas se interessam pelo poder de inovação e solução de problemas que a área de engenharia de software pode trazer. Existem espaços para aqueles que não desejam ou não conseguem programar dentro do universo da produção de software.
Desenvolver software envolve programar, mas essa não é a única atividade envolvida na Engenharia de Software. Entender as necessidades, projetar as interfaces, controlar as equipes, acompanhar os usuários e muitas outras atividades são necessárias para a criação e manutenção de softwares em qualquer ambiente.
Essas atividades são melhor exercidas por pessoas com expertise na área de Engenharia de Software, mas não exigem habilidades de programação propriamente ditas. São atividades voltadas para o gerenciamento da equipe, para o contato com o cliente ou para a operação cotidiana do software.
Seguem alguns dos principais trabalhos que um engenheiro de software pode fazer sem precisar escrever código.
Geralmente o cliente de uma equipe de desenvolvimento de software não é um profissional da área. Clientes são, em última análise, usuários finais. Assim, eles não entendem o linguajar e os métodos envolvidos no desenvolvimento de software. Isso pode dificultar a comunicação entre as partes envolvidas.
Entra em cena o Product Owner, profissional responsável pela comunicação entre a equipe e o cliente. Mais que a comunicação, o P.O. funciona como um representante do cliente junto à equipe.
(Imagem: freepik)
A função do Product Owner é garantir que o software atenda as necessidades dos clientes. O P.O. precisa entender não apenas o que o cliente afirma querer, mas o que ele efetivamente precisa para resolver seus problemas. Um bom P.O. consegue visualizar o produto de forma estratégica para direcionar o trabalho da equipe.
O trabalho cotidiano do Product Owner consiste em especificaras funcionalidades do software a serem desenvolvidas, tirar dúvidas da equipe sobre as necessidades do cliente, atribuir prioridades diferentes para cada funcionalidade e avaliar as funcionalidades entregues.
O desenvolvimento de um software se encaixa perfeitamente na definição tradicional de um projeto (“Um esforço finito com o objetivo de produzir um produto ou serviço novo”). Por isso está sujeito às mesmas restrições que qualquer projeto: Prazo, custo e escopo. Está, também, sujeito a riscos e a restrições de pessoal. Alguém precisa controlar essas restrições e riscos.
Essa função cabe ao Gerente de Projetos. Ele é o responsável final pelo sucesso do esforço de desenvolvimento. Cabe ao gerente planejar e estimar o projeto, bem como se preparar para riscos e controlar e facilitar o trabalho da equipe.
As atividades do dia a dia de um gerente de projeto são estimar o prazo e o custo do processo de desenvolvimento, estabelecer o cronograma de desenvolvimento, montar a equipe do projeto, identificar e criar planos de contingência para possíveis riscos e controlar e liderar a equipe de software.
Por controlar e liderar a equipe de software entende-se acompanhar o trabalho, garantindo que o mesmo cumpra o cronograma estabelecido, e ajudar a equipe a manter o ritmo, tanto motivando a equipe como removendo eventuais obstáculos que a equipe encontre, mas não tenha autoridade para remover.
O nível de autonomia e de poder que gerentes de projeto possuem variam entre organizações, mas de forma geral eles operam como líderes e chefes de equipes. Bons gerentes de projeto devem ter capacidades de liderança, negociação e resolução de conflitos.,
Um produto de software não existe no vácuo. Ele tem a função de resolver um problema enquanto é usado pelo usuário, bem como de existir no ecossistema de T.I. da empresa. Em resumo, um sistema oferece um conjunto de experiências ao usuário.
Essa lógica não se aplica somente a software. Qualquer produto existe, ao fim e ao cabo, para oferecer um conjunto de experiências ao usuário. Mesmo produtos simples, como uma roupa, existem em função do que eles oferecem quando usados.
Produtos podem, e devem, ser projetados a partir de suas funcionalidades, mas podem, também, ser projetados com a experiência do usuário em mente. Todo o produto pode ser pensado de forma a otimizar a forma como o usuário se sente e como ele interage com o produto.
(Imagem: freepik)
A título de exemplo, olhemos o caso do Iphone. Smartphones já existiam antes dele, como o Blackberry ou o Sidekick. O que a Apple fez com o primeiro Iphone foi visualizar uma experiência mais agradável, com o touchscreen, a aparência mais bonita e a tela com cores mais vivas. Perceba-se que as funções básicas de um smartphone já eram atendidas pelos antecessores, mas a experiência oferecida pelo Iphone era diferente. Por isso, o produto revolucionou o mercado.
Essa mesma lógica se aplica ao desenvolvimento de software. Produtos de software podem ser pensados com foco na experiência que o usuário final terá ao utilizá-lo. Esse é o trabalho do User Experience Designer (Designer de Experiência do Usuário, em uma tradução livre), ou UX Designer.
Bons UX Designers deve ter a capacidade de se colocar no lugar do usuário, foco na satisfação e boa comunicação. Precisam também ter a capacidade de enxergar o produto como um todo. Conhecimento de técnicas de design de soluções também pode ser um diferencial.
É comum confundir UX Design e UI Design. Enquanto o UX Designer foca na experiência como um todo, o UI Designer foca especificamente na maneira como o usuário vai interagir com o sistema. O termo UI significa User Interface, ou Interface de Usuário.
O UI Designer tem um trabalho mais técnico, projetando e desenhando as interfaces que o usuário visualizará ao lidar com um sistema. Ele vai se preocupar com telas, ergonomia, organização da informação, cores e coisas similares.
O trabalho do designer de interfaces exige capacidade de organização visual e capacidade de entender seus usuários. O bom UI Designer consegue entender a diferente facilidade ou dificuldade de cada grupo de usuários com cada tipo de interface.
Vale ressaltar que muitas equipes de software colocam o trabalho de UI Designer sob a mesma tutela do UX Designer, para minimizar a quantidade de membros. Embora isso seja comum, não significa que sejam a mesma coisa. UX Designer foca na experiência do usuário e UI Designer foca exclusivamente nas telas.
O projeto de software é o processo de tomar decisões acerca de como o software será feito. Geralmente pode ser entendido em vários níveis de detalhamento diferente. Desde o projeto extremamente detalhado descrevendo estruturas de dados, algoritmos ou classes, até o mais amplo, que descreve tecnologias e partes básicas do sistema.
Esse último tipo de projeto, considerado um projeto de alto nível (pois mais distante da implementação propriamente dita), é conhecido como arquitetura do software. A arquitetura do software vai descrever a pilha tecnológica usada, quais as partes do sistema e como essas partes falarão entre si.
Um projeto de arquitetura pode, por exemplo, especificar em quantos componentes o sistema será dividido, em que linguagem cada componente será implementado, quais frameworks de desenvolvimento serão utilizados, onde e como serão hospedados os componentes e como cada componente se comunicará com os outros.
(Foto: Denise Nascimento)
Para citar um exemplo mais prático: Uma arquitetura bastante comum hoje em dia é criar o sistema com três componentes. Um banco de dados em algum sistema gerenciado de bancos de dados moderno (sistema de armazenamento de dados), um “backend” em Java utilizando framework Springboot e hospedado através de um servidor de aplicações Wildfly e um “frontend” em TypeScript, utilizando plataforma Angular e hospedado em um servidor Node.js. O frontend se comunica com o backend via HTTP resdtfull (tecnologia para comunicação simples via WEB) e o backend se comunica com o sistema gerenciador de bancos de dados utilizando JDBC (tecnologia própria para a comunicação entre aplicações Java e sistemas gerenciadores de bancos de dados).
O trabalho de criar, manter e comunicar esses projetos de arquitetura é responsabilidade do arquiteto de software. Esse profissional se dedica a, com o auxílio da equipe, decidir quais serão os componentes, quais funcionalidades serão implementadas em cada componente e como cada componente será implementado.
Bons arquitetos de software devem conhecer linguagens de modelagem, entender as tecnologias e tendências do mercado, ter noção básica de vantagens e desvantagens de tecnologias e linguagens de programação, além de ter capacidade de resolução de problemas, organização e priorização.
Um clichê comum sobre a tecnologia da informação é que os dados serão o próximo petróleo. A frase significa que as novas fortunas surgirão de empresas que manipulam e extraem informação. Embora clichês tendam a ser frases sem sentido, esse tem mais que um pé na realidade.
Parte importante das necessidades dos clientes atuais é entender os dados é transformá-los em informações. Dados são fatos individuais enquanto informação é a organização e interpretação desses fatos.
Um dos profissionais responsáveis por interpretar dados e extrair informações e conhecimento deles é o analista de informação. Analistas de informação utilizam ferramentas de dados e de análise para interpretar os dados de diversas fontes e encontrar padrões e narrativas a partir das informações.
É o analista de informação que vai utilizar os dados para entender o comportamento de clientes, prever tendências a auxiliar na tomada de decisões.
Para realizar o trabalho, um profissional da área precisa ter capacidade de comunicação e de previsão, além de conhecimento razoável de estatística e, preferencialmente, álgebra linear.
Se analistas de informação e cientistas de dados vão acessar dados de diversas fontes diferentes para executar suas funções, alguém precisa organizar esses dados. Essa função pertence ao engenheiro de dados.
Engenheiros de Dados tem a responsabilidade de gerenciar fontes de dados tanto estruturadas (como bancos de dados) como não estruturadas (como textos ou bancos de imagens) e organizar ferramentas que permitam cientistas ou analistas trabalhar com esses dados.
Um engenheiro de dados deve ter conhecimento de bancos de dados e outras arquiteturas de dados. Ele precisa, também, conhecer ferramentas de big data e de conversão de dados. Além disso, é interessante que o engenheiro apresente habilidades de colaboração e criatividade. Por fim, conhecimento básico das áreas de ciência de dados ou análise de informação, conforme a área em que se trabalha, pode ajudar.
Sistemas gerenciadores de bancos de dados são a ferramenta número um para armazenamento de dados no mercado moderno de T.I. Esses sistemas são ferramentas que permitem, com relativa facilidade, armazenar, recuperar e manipular dados de forma concorrente e segura.
As estruturas de dados armazenadas dentro de um banco de dados precisam ser criadas, otimizadas e mantidas. Criadas para que se possam armazenar os dados dentro delas, otimizadas para garantir que a recuperação dos dados se dê da forma mais eficiente possível e mantidas para garantir que as estruturas de dados atendam às eventuais mudanças do software.
Os administradores de bancos de dados (e seus auxiliares, os operadores de bancos de dados) são os responsáveis por essas tarefas. Eles vão operar e manter os bancos de dados da empresa, bem como tomar decisões sobre a organização das estruturas de dados.
Em muitas organizações o administrador de bancos de dados acumula as funções do engenheiro de dados ou até do analista de informações, mas essas são funções tecnicamente diferentes.
(Imagem: freepik)
Dado o tema desse artigo, é preciso ressaltar que essa não é uma função 100% livre de codificação. É comum se usar linguagens de consultas, como SQL, para realizar as funções do administrador. Decidimos incluir essa função no artigo por dois motivos. Primeiro pois as ferramentas modernas de administração de bancos de dados permitem realizar quase todas as operações sem necessidade de codificação e segundo porque linguagens de consulta são formas bastante simplificadas e domínio bastante restrito de linguagens de programação.
Além de conhecimento de bancos de dados e das ferramentas de bancos dados, um bom administrado de bancos dados precisa ter capacidade de organização e visão analítica dos problemas.
Uma vez desenvolvido o software, ele vai ser colocado para funcionar (ou em produção, como se diz no jargão de T.I.) e ser operado no dia a dia pelos usuários finais. Esses usuários podem vir a precisa de ajudas ou pequenas operações administrativas no sistema, como correção de erros ou cadastro de usuários. Além disso, operações administrativas de menor porte, como backups e restauração de sistemas podem ser necessárias.
Os responsáveis por todas essas operações é o analista de suporte e sua equipe. Esse é um profissional de perfil técnico, que tomará as decisões referentes ao suporte ao usuário, as regras e padrões desse suporte, o hardware e os softwares auxiliares instalados na organização e a forma como se farão as operações administrativas.
Vale ressaltar que o analista de suporte não é, necessariamente, a pessoa que vai realizar as operações de suporte ou administração, mas o responsável por discutir e implementar regras e políticas para essas operações. Em geral., ele terá em sua equipe pessoas responsáveis pela implementação manual ou pela automatização dessas tarefas.
Por ser uma das funções com maior número de atividades, é também uma das que requer maior número de habilidades técnicas. Conhecimento de softwares e hardwares existentes no mercado, conhecimento dos softwares a que se dá suporte e de ferramentas e metodologias de suporte são essenciais para esse profissional. Além disso, ele deve ser focado no cliente, ter boa capacidade de comunicação e de gerenciar relacionamentos, bem como resposta rápida aos problemas.
Como se pode ver, existem diversas funções que podem ser exercidas por engenheiros de software sem necessidade de programação. Essas funções permitem a engenheiros de software continuar participando do processo inovativo sem necessidade de se dedicar ao trabalho de codificação.
Vale ressaltar que, embora esses trabalhos normalmente não exijam programação propriamente dita, um conhecimento básico de lógica de programação e das tecnologias de programação podem auxiliar na comunicação com a equipe e na capacidade de avaliar o software.
Análise de dados, machine learning, inteligências artificiais e computação quântica, todas essas tecnologias têm como base o inglês, tanto nas linguagens de programação, como na comunicação entre os profissionais de TI de todo o mundo.
Dominar bem o inglês, principalmente o técnico, é uma exigência imprescindível para os bons profissionais da área de tecnologia.
A disciplina estará presente em todos os períodos do curso de Engenharia de Software
O iCEV quer formar os melhores profissionais de Tecnologia do Piauí, por isso o curso de Engenharia de Software agora oferta para seus estudantes a disciplina de “English for Technology”, que estará presente em todos os períodos, desde o primeiro período.
Professor Ney Rubens
Quem vai comandar a disciplina é o professor Ney Rubens, que é mestre em Educação pela Universidad del Atlántico (Barcelona, Espanha), é especialista em inglês acadêmico com experiência na área do ensino de idiomas há mais de 20 anos, além da experiência prática após anos morando no exterior.
“Inglês é a porta do mundo globalizado para os profissionais de tecnologia. Saber Inglês escancara portas para empresas de todo o mundo. Tudo isso aliado ao conteúdo dinâmico e moderno da faculdade”, afirma Dimmy Magalhães, coordenador do curso de Engenharia de Software do iCEV.
Com isso, o iCEV está preparando os futuros profissionais para oportunidades internacionais, já que muitas empresas globais de tecnologia procuram profissionais de qualquer lugar do mundo para atuar de forma remota. Assim, o domínio da língua inglesa se torna essencial.
Aqui estão alguns termos e siglas em inglês que todo profissional de TI deve conhecer. Confira:
Bit
Bit é a menor unidade de informação que pode ser armazenada ou transmitida por um dispositivo.
Internet of Things – IoT
Internet of Things ou Internet das Coisas é um termo utilizado para a conectividade de diversos equipamentos à internet, como geladeiras, tênis, lâmpadas, produtos que até pouco tempo não utilizavam a internet.
Com a expansão do 5G, é esperado que a internet das coisas se expanda no Brasil e no mundo.
Information Technology – IT
IT é o acrônimo em inglês para a TI (Tecnologia da Informação), termo que abrange todas as soluções tecnológicas para facilitar o acesso e o gerenciamento de informações.
Bug
A palavra bug tem como tradução inseto, mas também é empregada na área de tecnologia para situações em que o software ou hardware não funciona conforme esperado. O termo entrou em uso na área de TI na década de 40, quando um computador teria parado de funcionar pela presença de um inseto no equipamento.
Hypertext Markup Language – HTML
É uma linguagem utilizada para a construção e desenvolvimento de websites, por meio de textos que serão interpretados pelos navegadores. Podemos traduzir a sigla HTML como Linguagem de Marcação de Hipertexto.
Cascading Style Sheets – CSS
Cascading Style Sheets, ou Folhas de Estilo em Cascatas, é um mecanismo utilizado para personalizar um documento web por meio da mudança de estilo, cores e fontes, por exemplo. O CSS trabalha em conjunto com o HTML na construção do layout de um website.
Business Intelligence – BI
A sigla BI significa Business Intelligence, ou “inteligência de negócios”, em português. É uma área em grande expansão no Brasil e no mundo, abrangendo todo processo de coleta, análise e gerenciamento de informações que darão suporte à tomada de decisões estratégicas.
Cloud Computing
Cloud Computing ou computação em nuvem abrange recursos tecnológicos que não estão presentes no computador, mas totalmente on-line. Com a expansão da internet e o aumento da velocidade de conexão, surgiram muitos serviços em nuvem que oferecem armazenamento de dados on-line, como o Google Photos, por exemplo.
Uniform Resource Locator – URL
Uniform Resource Locator ou localizador uniforme de recursos é o termo referente ao endereço no qual se encontra um arquivo, website ou dispositivo periférico. Na internet é utilizado como sinônimo de link.
Structured Query Language – SQL
Pode ser traduzido como linguagem de consulta estruturada. Na área de TI, query é utilizado para toda consulta ou pedido de informação realizado em um banco de dados através de comandos específicos.
Domain Name System – DNS
Domains Name System, ou Sistema de Nomes de Domínios, em português, é o sistema que converte sites (exemplo: www.lfidiomas.com.br) em endereços de IPs para serem lidos por máquinas (por exemplo, 192.1.2.44.42).
Cache
Cache é a área de armazenamento de dados e processos, visando economizar tempo e uso de hardware. Muitos navegadores costumam utilizar a memória cache para guardar dados dos sites mais acessados para posteriormente abri-los com maior rapidez.
Database
Termo em inglês para banco de dados, o conjunto de arquivos que guardam informações de forma estruturada.
Malware
Esse termo vem da junção de malicious (malicioso) com software. É todo programa criado para causar danos a dispositivos, roubar dados e prejudicar os usuários. Os vírus são os exemplos mais conhecidos de malware.
Spyware
Spyware é um malware criado para rastrear informações do usuário sem que ele saiba. Muitas vezes são utilizados por parceiros abusivos, governos antidemocráticos ou para apresentar propagandas segmentadas.
Ransomware
Ransomwares são malwares que funcionam como um programa de extorsão, exigindo algo do usuário (geralmente dinheiro) em troca da integridade dos dados no dispositivo. O backup também é utilizado na prevenção de ataques de ransomwares
Foram muitos eventos marcantes pra galera de Engenharia de Software. Por isso, preparamos uma retrospectiva para relembrar o quanto 2022 foi incrível! Confira:
(Foto: Denise Nascimento)
Logo no primeiro dia de aula da disciplina de Empreendedorismo, ministrada pelo prof. Thiago Rodrigo, os estudantes de Engenharia de Software visitaram o Sebrae Lab – ambiente de networking e inovação do Sebrae. Além disso, todo o material e metodologia utilizadas na disciplina são do Sebrae. O papo sobre inovação com o empresário e mentor Diego Silva foi bem dinâmico e interativo.
(Foto: Denise Nascimento)
O Startup Day foi só sucesso. Estivemos no evento do Sebrae com professores, colaboradores e alunos fazendo networking, participando das discussões e espalhando a mensagem do iCEV, claro! Alguns dos nossos professores de Administração e Engenharia de Software também palestraram no evento.
Além de ser um encontro de empresas de tecnologia e inovação, o Startup Day foi um momento de formação e troca de experiências para quem se aventura ou quer se aventurar no mundo das startups.
(Foto: Denise Nascimento)
A maratona aqui é diferenciada! No dia 4 de julho rolou a Hackathon iCEV, maratona de programação do curso de Engenharia de Software. Durante toda a tarde as equipes tinham 10 desafios bem difíceis para resolver.
Quem levou a melhor foi a equipe “Mendigos do ponto”, que ganhou livros, pontos em avaliações do semestre e outros mimos! Fizeram bonito demais.
(Foto: Denise Nascimento)
Esse é um espaço com máquinas modernas pra galera da Tecnologia colocar os conhecimentos em prática. O laboratório é utilizado tanto para a graduação como para a pós-graduação.
(Foto: Denise Nascimento)
No Observatório das Eleições iCEV, os estudantes puderam visitar o Depósito Central das Urnas do Tribunal Regional Eleitoral do Piauí – TRE. A visita foi acompanhada pelo professor de Engenharia de Software do iCEV e servidor do TRE, Anderson Cavalcanti.
O intuito foi conhecer, na prática, como funciona a organização das eleições e a segurança das urnas para uma votação.
(Foto: Denise Nascimento)
Troca de experiência com quem sabe muito. A convite do prof. Dimmy Magalhães, a Tech Lead da Dasa, Thainá Mariani, apresentou aos nossos estudantes de Engenharia uma palestra sobre boa qualidade de códigos e o futuro promissor no mercado de software.
(Foto: Denise Nascimento)
O projeto é um grupo de pesquisa de Direito e Engenharia de Software, liderado pelos coordenadores dos cursos Horácio Neiva e Dimmy Magalhães, respectivamente, e pelo coordenador de pesquisa e extensão, Euzébio Pereira.
São 25 estudantes no grupo de estudos. Essa interdisciplinaridade entre os cursos permite uma maior compreensão de todo o processo, pois envolve as análises jurídicas e o tratamento de dados eleitorais.
O intuito foi realizar palestras, debates, estudos, pesquisas, avaliações e produção de conteúdos relacionados às Eleições de 2022, bem como ao papel e à estrutura da Justiça Eleitoral nesse processo.
(Foto: Denise Nascimento)
O Chess Challenge foi um sucesso! O Campeonato de Xadrez reuniu mais de 50 participantes em 22 equipes que desafiaram seus conhecimentos computacionais numa batalha de Inteligência Artificial.Os participantes construíram programas de Inteligência Artificial (IA) e ensinaram as melhores decisões a serem tomadas num jogo de xadrez. Essas IAs competiram entre si. O campeonato premiou o 1º e o 2º lugar com R$ 1.000 e R$ 500, respectivamente.
Os estudantes de Engenharia de Software viveram uma experiência no estilo do programa mundialmente conhecido “Shark Tank”. A atividade, comandada pelo professor Artur Veloso, envolveu os alunos do 1º e do 2º período, pela disciplina de Cenários II, e do 7º, pela disciplina de Gerência.
Durante todo o período de 2022.2, os alunos foram envolvidos com a proposta do professor que culminou com a atividade final e teve convidados de renome na tecnologia e gestores de startups piauienses.
A prática foi dividida na criação das startups, na gestão delas e na apresentação das ideias. Na última fase, os convidados José Artur e André Junhson fizeram o papel de “tubarões”. Eles avaliaram tanto as startups como a gerência de cada uma delas.
2022 foi um ano transformador para inovação tecnológica e transformação digital. A tendência continuará à medida que o ritmo de desenvolvimento de tecnologias emergentes potencialmente disruptivas aumenta exponencialmente a cada ano. Surge a pergunta: o que está por vir para a tecnologia para aprendermos e experimentarmos em 2023?
Embora existam muitos tópicos de tecnologia impactantes, como Internet das Coisas, 5G, Espaço, Genômica, Biologia Sintética, Automação, Realidade Aumentada e outros, existem quatro áreas de tecnologia para manter um olhar atento neste próximo ano, pois elas têm promessas e capacidades de curto prazo para transformar vidas. Eles incluem: 1) Open AI, 2) Inteligência Artificial, 3) Computação Cognitiva e 4) Computação Quântica.
Desde que o computador HAL2000 e o produtor Stanley Kubrick forneceram um vislumbre da capacidade independente (embora nefasta) da IA de pensar., esperamos ansiosamente pelo surgimento da inteligência artificial. Estamos agora próximos da IA muito além da ficção. Os elementos que compõem a IA consistem em aprendizado de máquina e processamento de linguagem natural e agora fazem parte do dia a dia de nossas vidas. Hoje, a IA pode entender, diagnosticar e resolver problemas – em alguns casos sem ser especificamente programada.
O foco e os desafios da inteligência artificial são claros. Os sistemas de IA buscam replicar características humanas e capacidades computacionais em uma máquina, além de superar as limitações e a velocidade humanas. Já está acontecendo. Sinapses artificiais que imitam o cérebro humano provavelmente irão direcionar a próxima geração de computação. Os componentes podem diferir, podem ser analógicos ou digitais e podem ser baseados em transistores, produtos químicos, biológicos ou possivelmente componentes quânticos.
Computadores com IA foram projetados predominantemente para atividades de automação que incluem emulação de memória, reconhecimento de fala, aprendizado, planejamento e resolução de problemas. As tecnologias de IA podem fornecer uma tomada de decisão mais eficiente ao priorizar e agir sobre os dados, especialmente em redes maiores com muitos usuários e variáveis. Num futuro muito próximo, a IA vai mudar a forma como fazemos negócios, como planejamos e como projetamos. Você pode vê-lo agora. A IA já é um catalisador para impulsionar mudanças fundamentais em muitos setores, como atendimento ao cliente, marketing, bancos, saúde, contabilidade empresarial, segurança pública, varejo, educação e transporte público.
Recentemente, uma caixa de bate-papo chamada OpenGPT chamou a atenção para o potencial da IA e suas correlações semelhantes às humanas, especialmente ao se expressar em análises escritas. O DALL-E , outro aplicativo OpenAI, mostrou a capacidade de criar imagens a partir de instruções básicas. A noção de IA escrevendo seu próprio código, criando suas próprias linguagens é intrigante e potencialmente alarmante.
Outra área muito empolgante de potencial avanço para a IA é a interface humano/computador que ampliará a capacidade e a memória do cérebro humano. A ciência já está fazendo grandes avanços na interface cérebro/computador. Isso pode incluir chips neuromórficos e mapeamento cerebral. As interfaces cérebro-computador são formadas por meio de dispositivos emergentes que possuem sensores implantáveis que registram sinais elétricos no cérebro e usam esses sinais para acionar dispositivos externos.
Foi demonstrado que uma interface cérebro-computador é capaz de ler pensamentos. Isso é feito quando uma placa de eletrodo chamada ECOG é colocada em contato direto com a superfície do cérebro para medir a atividade elétrica.
Uma publicação da Frontiers in Science envolvendo a colaboração de acadêmicos, institutos e cientistas resumiu a promessa da interface humano-computador. Eles concluíram que “podemos imaginar as possibilidades do que pode vir a seguir com a interface cérebro-máquina humana. Um sistema B/CI humano mediado por nanorrobótica neural poderia capacitar os indivíduos com acesso instantâneo a todo o conhecimento humano cumulativo disponível na nuvem e melhorar significativamente as capacidades e inteligência de aprendizado humano. Além disso, pode fazer a transição de realidades virtuais e aumentadas totalmente imersivas para níveis sem precedentes, permitindo experiências mais significativas e uma expressão mais completa/rica para e entre os usuários.
E com o surgimento de todas as tecnologias vem a fusão de como elas podem funcionar juntas. A inteligência artificial é, sem dúvida, um dos principais catalisadores envolvidos no aprimoramento de capacidades, especialmente na computação.
O mundo da computação testemunhou avanços sísmicos desde a invenção da calculadora eletrônica na década de 1960. Os últimos anos no processamento de informações foram especialmente transformadores em nosso mundo hiperconectado. O futurista Ray Kurzweil disse que a humanidade será capaz de “expandir o escopo de nossa inteligência um bilhão de vezes” e que “o poder da computação dobra, em média, a cada dois anos. Descobertas recentes em física, nanotecnologias e nos trouxeram para uma realidade de computação cognitiva que não poderíamos ter imaginado uma década atrás.
A computação biológica é a ciência avançada de usar produtos biológicos para executar ações que tradicionalmente seriam feitas usando componentes como fio de cobre e fibra de vidro. Componentes biológicos comuns usados nesses estudos incluem aminoácidos e DNA. Funções computacionais podem ser executadas pela manipulação de reações químicas naturais encontradas nessas substâncias. O que é Computação Biológica? (computerhope. com)
No futuro, os biocomputadores poderão ser armazenados no DNA de células vivas. Essa tecnologia poderia armazenar quantidades quase ilimitadas de dados e permitir que os biocomputadores realizassem cálculos complexos além de nossas capacidades atuais.
A civilização está agora seguindo os passos da computação quântica. Ela será capaz de fornecer velocidade computacional sem precedentes com análise preditiva para resolver problemas. A tecnologia quântica, que usa as caracterizações exclusivas de partículas subatômicas para processar entradas de dados, provavelmente revolucionará tudo, desde segurança cibernética até análises em tempo real. A computação quântica pode ser direcionada e aumentada por meio de inteligência artificial, operar em uma estrutura 5G ou 6G, oferecer suporte à IoT e catalisar ciência de materiais, biotecnologia, genômica e o metaverso.
Os estudantes de Engenharia de Software viveram uma experiência no estilo do programa mundialmente conhecido “Shark Tank”. A atividade, comandada pelo professor Artur Veloso, envolveu os alunos do 1º e 2º período, pela disciplina de Cenários II, e do 7º, pela disciplina de Gerência.
Atividade contou com convidados de renome na tecnologia
Durante todo o período de 2022.2 os alunos foram envolvidos com a proposta do professor que culminou com a atividade final e teve convidados de renome na tecnologia e gestores de startups piauienses:
José Arthur – programador há mais de 25 anos e CEO da empresa de desenvolvimento de software “Interprise App tech” e André Junhson – Sócio da Obsis, empresa responsável por sistemas renomados como OB MED (conecta pacientes com consultas em consultórios) e a GoJus (sistema de automação para advogados).
Os estudantes desenvolveram a ideia de startup, expuseram a viabilidade com técnicas avançadas de gestão, como MVP (Produto Viável Mínimo), prepararam e apresentaram o Pitch para a banca julgadora.
Estudantes do 1º, 2º e 7º período participaram da atividade
A prática foi dividida em duas etapas:
1 – Os estudantes de 1º e 2º período foram divididos em grupos e ficaram responsáveis pela criação de startups. Já os grupos do 7º por gerir essas startups criadas pelos primeiros períodos.
Cada time de gestores tinha 3 a 4 startups sob sua responsabilidade. Cada startup se apresentou aos seus gestores, que por sua vez escolheram uma para representá-los na etapa final.
2 – Na última fase os convidados José Artur e André Junhson fizeram o papel de “tubarões”. Eles avaliaram tanto as startups como a gerência de cada uma delas.
A batalha de pitchs foi comandada pelo professor Artur Veloso
“Essa atividade foi pra mostrar para os estudantes como funciona o trabalho real na área de tecnologia, sobre o empreendedorismo e como fazer pitch, fora o próprio conhecimento das tecnologias, trabalho em equipe e afins”, explicou o professor Artur Veloso, que além de professor do iCEV é CEO da Sturtup Fábrica de Gênios e já apresentou um pitch de destaque na Rio Inovation Week.
Os “jurados” avaliaram as startups e suas gestões
O Shark Tank é um programa bastante popular em todo mundo. Muitos empreendedores participam do programa, para apresentarem suas ideias, projetos, produtos, serviços e até mesmo sua empresa, com o propósito de conseguir uma parceria com algum dos investidores participantes da bancada.
Os investidores que também são jurados do programa, chamados de tubarões – tradução em português para Shark – estão lá para avaliar se gostam da proposta dos empreendedores e decidir se irão ‘’comprar suas ideias’’, ou seja, se vão ou não investir.
O iCEV abriu Processo Seletivo de Professores para compor o quadro docente do 1º curso de Engenharia de Software do Piauí! As inscrições acontecem até 08 de janeiro de 2023, somente online por este link: http://selecao.somosicev.com.br/professor
São vagas para as seguintes áreas de atuação: Linguagem de Programação – Programação Orientada a Objetos; Interface Humano-Computador; Gerência, Manutenção e Configuração de Software; Segurança e Auditoria de Sistemas; TCC e Metodologia Científica para Computação.
A seleção será dividida em quatro fases: 1º Etapa – Análise dos títulos; 2º Etapa – Realização de prova didática; 3º Etapa – Divulgação de resultado parcial e convocação para entrevista; 4º Etapa – Entrevista dos candidatos selecionados na terceira etapa.
O resultado será divulgado dia 23 de janeiro de 2023 no nosso site.
Confira mais detalhes sobre a classificação e pontuação no edital: https://www.somosicev.com/processos-seletivos/
No ato da inscrição, o candidato deverá apresentar a documentação comprobatória exigida para a disciplina a que está se habilitando. Deve, ainda, apresentar currículo da Plataforma Lattes, com suas experiências profissionais na área da disciplina e área da docência.
O primeiro e único curso de Engenharia de Software do Piauí espera por você. Faça sua inscrição para o Vestibular 2023.1.
Ingresse por meio de prova presencial, on-line, nota do ENEM, transferência ou portador de curso superior.
A Engenharia de Software é uma das áreas mais valorizadas da Tecnologia atualmente. Com o mercado em crescimento acelerado, os profissionais são disputados pelas empresas e recebem altas remunerações. Os valores podem ser ainda maiores nas oportunidades internacionais, inclusive com possibilidade de trabalho remoto.
Imagina ser disputado pelo mercado de trabalho antes de se formar? É assim para o engenheiro de software. Além de empreender, o profissional pode atuar com desenvolvimento de softwares, gerenciamento de projetos, arquitetura de produtos, etc.
Em um mercado aquecido, com muitas oportunidades e altas remunerações, nós temos o primeiro e ÚNICO curso de Engenharia de Software do Piauí. Aqui o aluno estará apto a entrar no mercado, mas também pronto para pesquisar inovações, aliando conhecimento e prática ele escolhe os caminhos para seguir. Os estudantes aprendem a encarar problemas tecnológicos de maneira criativa e inovadora, propondo soluções de software integradas e harmonizadas ao ambiente corporativo.
Atividades práticas, games e desenvolvimento de programas ainda na graduação: no iCEV os estudantes aprendem a programar desde o início e, com a Fábrica de Software bitiCEV, tiram do papel seus projetos de inovação tecnológica.
Buscando integrar academia e indústria, o iCEV tem parceria com uma das maiores empresas de Software Livre. O programa Red Hat Academy proporciona uma série de benefícios tanto para os alunos como para os professores, oferecendo programas de treinamento, ambiente para aprendizado na prática e programa de certificação com valores diferenciados.
A formação profissional em qualquer área, inclusive na de Engenharia de Software, diz respeito a adquirir novas habilidades. Seja através de aulas, estudos individuais ou atividades profissionais, o profissional que deseja ter sucesso deve estar o tempo todo se aprimorando, e isso significa aprender habilidades novas ou melhorar o domínio que se tem das habilidades já possuídas.
Sempre que se aprende uma nova linguagem, uma nova técnica de levantamento de requisitos, uma nova tecnologia de bancos de dados ou uma nova tecnologia, estamos adquirindo ou melhorando habilidades técnicas. Cada profissional vai desenvolver suas habilidades conforme a área da engenharia a que vai se dedicar. Dessa forma, um engenheiro de testes vai desenvolver habilidades ligadas a técnicas e ferramentas de testes de software, enquanto um programador vai desenvolver habilidades ligadas a algoritmos e linguagens de programação.
Essas habilidades, de caráter técnico, são indispensáveis para o andamento da carreira de qualquer engenheiro de software. Nenhum profissional conseguirá desenvolver um trabalho de qualidade se não for capaz de realizar as tarefas inerentes ao trabalho. As habilidades técnicas, ligadas à natureza do trabalho de Engenharia de Software em si são conhecidas como “Hard Skills”, que pode ser traduzido de forma literal como habilidades rígidas.
Enquanto para tornar-se um profissional de sucesso é necessário que o indivíduo possua um conjunto robusto de “Hard Skills”, é preciso lembrar que a Engenharia de Software é um trabalho com grandes características sociais. O engenheiro de software não é um eremita que cria sistemas do nada. Softwares existem para resolver problemas de clientes, com quem o engenheiro terá que se relacionar, e são geralmente desenvolvidos por equipes multidisciplinares, o que também exige bastante relacionamento interpessoal.
Dessa forma, além de habilidades técnicas, o bom engenheiro de software precisa contar com uma série de habilidades sociais e interpessoais. Habilidades que dizem respeito a como cada pessoa reage a situações, como ele lida com outras pessoas e como ela lida com o trabalho em si. Um profissional de qualidade deve, por exemplo, demonstrar capacidade de comunicação, planejamento e negociação.
Essas habilidades, de caráter não-técnico, parecem, à primeira vista, menos necessárias que as “Hard Skills”. Afinal, é mais importante que o programador saiba programar do que que ele saiba comunicar-se com os colegas. Embora essa noção não esteja de todo errada (um programador que não sabe programar não é um programador), também está muito longe de estar correta. Mesmo profissionais com grande capacidade técnica vão ter capacidade reduzida se não souberem, por exemplo, trabalhar em equipe. As habilidades de natureza social são conhecidas como “Soft Skills”, ou habilidades flexíveis, em uma tradução literal.
Se observarmos os currículos de engenheiros de software; as grades curriculares da maior parte dos cursos da área; a forma como a maioria dos profissionais da área se apresenta ou mesmo os requisitos de grande parte das ofertas de emprego ou estágio, veremos um foco muito maior em “Hard Skills “e pouca atenção às “Soft Skills”. Caso peçamos para qualquer engenheiro de software elencar quais suas habilidades, a maioria listará apenas habilidades técnicas. Por que isso acontece?
Para começar pelo óbvio, “Hard Skills” nos definem profissionalmente. Se um determinado profissional indica que tem várias habilidades na área de bancos de dados e Business Intelligence, é bem provável que ele será um bom engenheiro de dados. A área da engenharia em que temos condições de produzir melhor é definida pelas habilidades técnicas que mais dominamos.
Existem, no entanto, outros motivos. Primeiro, “Hard Skills” são mais fáceis de serem provadas ou verificadas. Em segundo lugar “Soft Skills” são mais difíceis de desenvolver. Observemos esses itens individualmente.
Como demonstrar para um colega ou um potencial empregador domínio de uma determinada habilidade técnica? Existem diversas formas. Podemos apresentar certificados de cursos ou certificações em testes da área. Podemos também simplesmente demonstrar nossas habilidades na prática.
Por exemplo, caso um engenheiro queira demonstrar que está habilitado para programar em Java, ele tem algumas opções:
1. Pode apresentar um certificado de curso em programação Java por uma instituição de treinamento reconhecida no mercado.
2. Pode apresentar sua certificação Oracle Certified Associate, Java SE 8 Programmer.
3. Pode simplesmente implementar um programa em Java, demonstrando assim sua capacidade de fazê-lo.
Da mesma forma, um potencial empregador que queira verificar se um candidato tem uma “Hard Skill” necessária, pode simplesmente pedir que ele demonstre possuir essa habilidade, utilizando qualquer uma das formas já citadas. Pode ainda fazer perguntas ou questionários para verificar o conhecimento do candidato.
Por outro lado, “Soft Skills” não podem ser verificadas de forma tão simples. Não existem autoridades certificadoras de iniciativa ou ética, por exemplo. E o fato de um engenheiro ter sido aprovado em um curso de, digamos, raciocínio lógico, não garante que ele tenha essa habilidade.
Da mesma forma, demonstrações de “Soft Skills” são muito complexas de serem analisadas. A maioria das habilidades não técnicas não podem ser facilmente avaliadas em curtos períodos, como uma entrevista de emprego, por exemplo. Na verdade, a maioria das “Soft Skills” podem ser convincentemente simuladas em espaços de tempo pequenos. Não é difícil para um candidato, por exemplo, fingir que tem ótimas habilidades de cooperação por alguns dias, mas se isso não é real ele não conseguirá manter a imagem indefinidamente.
Para verificação rápida de “Soft Skills”, as técnicas provavelmente mais eficientes são perguntas bem-feitas e observação das reações dos candidatos diante das perguntas ou em dinâmicas. Perguntas diretas, no estilo “Você se considera um profissional inovador?” não costumam dar bons resultados, visto que o candidato geralmente dará a resposta que se espera ouvir. As perguntas devem ser direcionadas a como o profissional trabalha e como ele resolveria ou resolveu situações que exigiam as “Soft Skills” desejadas, ou direcionadas a provocar reações específicas no candidato. Dinâmicas devem colocar os candidatos em situações que exigem as habilidades necessárias, para que se possa observar de forma simples como os candidatos se comportam.
Esses métodos, no entanto, são bem menos precisos e, portanto, bem menos eficazes do que os métodos de avaliação de “Hard Skills”.
O processo de aquisição ou melhoria de habilidades é conhecido como “desenvolvimento de habilidades”. Como podemos desenvolver “Hard Skills” e “Soft Skills”? “Hard Skills” podem ser desenvolvidas através de aulas, treinamentos, cursos e outras técnicas tradicionais. O aprendizado de uma nova linguagem pode se dar simplesmente pela leitura de manuais e tutoriais. Embora não seja necessariamente fácil, existem técnicas específicas e conhecidas que nos permitem desenvolver essas habilidades.
“Soft Skills” por outro lado são mais complexas de desenvolver. Embora existam cursos, palestras e outras atividades voltadas para o desenvolvimento dessas habilidades, a eficácia delas é menos previsível do que com atividades tradicionais. Atividades de coaching, por exemplo, podem ter efeito muito positivo para algumas pessoas, enquanto resultado praticamente nulo para outras.
Além disso, “Soft Skills” têm impacto muito maior da personalidade do profissional. Um engenheiro de software tímido, por exemplo, pode ter dificuldade de absorver ou demonstrar capacidade de liderança. Isso pode, ainda, tornar o profissional resistente a desenvolver certas habilidades, visto que envolve lidar com limitações da própria personalidade. Pessoas com autoimagem exacerbada podem, por exemplo, ter problemas para resolver conflitos e se recusarem a entender que isso seja um problema.
Por ser uma atividade social, várias “Soft Skills” têm alto impacto no trabalho do profissional de software. A importância de cada habilidade é subjetiva e variável.
Vários estudos podem ser encontrados sobre as “Soft Skills” mais importantes no mercado de Tecnologia da Informação. Um artigo de Gerardo Matturo analisa as habilidades mais pesquisadas na academia, enquanto trabalhos de Faheem Ahmed e Abigail Sanders analisam as habilidades mais requeridas no mercado. Apesar de terem abordagens e metodologias diferentes, os trabalhos encontram algumas “Soft Skills” em comum entre as mais citadas.
Observemos essas habilidades e suas características individualmente:
Em qualquer função que o engenheiro de software assumir, a comunicação com colegas de equipe ou clientes será extremamente necessária para completar o trabalho. O profissional precisa discutir problemas e soluções com os demais membros da equipe, negociar distribuição de tarefas com gerentes e, dependendo da função, discutir as necessidades dos clientes com eles.
Assim, a habilidade de expressar ideias de maneira clara e, preferencialmente, concisa, seja oralmente ou por escrito, é vital para manter um bom trabalho em equipe e um bom levantamento de requisitos. Habilidades de comunicação podem ser desenvolvidas através da leitura e de cursos de redação e oratória.
O desenvolvimento de software é comumente um trabalho coletivo. Em atividades assim, o trabalho de cada membro depende do trabalho e da atitude de outros membros da equipe.
Dessa forma, o engenheiro de software deve ter a capacidade de trabalhar de forma efetiva como membro da equipe e colaborar com os colegas para alcançar os objetivos do projeto.
Habilidades de trabalho em equipe podem ser desenvolvidas na prática, participando de diversos projetos. Pode, também, ser desenvolvida através de cursos ou atividades de coaching.
Vale ressaltar que a habilidade de trabalho em equipe é altamente influenciada pela personalidade do profissional. Por isso, pode estar entre as mais complexas de se desenvolver.
Habilidades interpessoais, às vezes chamadas de competência social, são as habilidades que usamos no dia a dia ao interagir com outras pessoas. São características como empatia, respeito e civilidade, entre outros.
Essas habilidades são claramente importantes em qualquer área de trabalho, em especial nas áreas que envolvem grande interação social. Dessa forma, engenharia de software, sendo um trabalho social, é altamente afetada por elas.
Não é difícil ver como a capacidade de interagir com outros pode interferir no trabalho do engenheiro. Manter um bom relacionamento com superiores, colegas e clientes é indispensável para o bom andamento dos projetos de software.
Habilidades interpessoais são, provavelmente, as mais intimamente ligadas à personalidade do profissional. Assim, podem ser bastante difíceis de desenvolver.
Algumas pessoas chegam a dizer que essas habilidades são inatas, mas isso não é de todo verdade. Embora uma parte importante do desenvolvimento delas se dê antes da vida profissional, na infância e juventude, é possível desenvolvê-las na vida adulta. Isso geralmente envolve reflexão pessoal e pode ser auxiliado por psicólogos ou coachees.
Desenvolvimento de software envolve encontrar e resolver problemas, sejam os problemas do cliente resolvidos pelo produto, os problemas de desenvolvimento surgidos durante o projeto, ou mesmo os problemas internos da equipe.
Por isso, o engenheiro de software deve ser capaz de localizar problemas e a estudá-los de forma crítica e analítica, levando assim a sugestão de possíveis soluções. Deve, também, ter a capacidade de avaliar diferentes soluções para poder escolher a melhor proposta possível.
Para desenvolver habilidades de solução de problema deve-se exercitar o raciocínio lógico, em especial o raciocínio analítico. Existem diversas atividades que permitem exercitar seu raciocínio, desde atividades formais até mesmo alguns jogos de lógica.
Essa também é a “Soft Skill” que mais pode ser ajudada por ferramentas. Aprender a lidar com ferramentas de decisão, como mapas mentas ou diagramas de fluxo podem auxiliar bastante na capacidade do profissional. Vale ressaltar que o conhecimento dessas técnicas e ferramentas conta como uma “Hard Skill”, fazendo da solução de problemas uma “Soft Skill” que pode se valer de “Hard Skills” para sua aplicação.
Assim, podemos observar que é importante estudar e desenvolver “Soft Skills” da mesma forma que se desenvolvem as “Hard Skills”. Vimos também que essas habilidades podem se apresentar mais difíceis de desenvolver e exigir esforços diferentes dos que a maioria dos profissionais de Engenharia de Software está acostumado.
É notório que a expansão do mercado de trabalho em tecnologia está rompendo as fronteiras. É cada vez mais comum que pessoas que moram no brasil estejam trabalhando no exterior, e com a popularização do trabalho home office pós-pandemia, é possível que a pessoa no interior do Piauí, trabalhe para uma multinacional do Vale do Silício.
Vale do silício. Imagem: Reprodução
Isso acontece por diversos motivos, dentre eles, os atrativos salários, uma vez que a taxa de câmbio valoriza a moeda de alguns países em comparação com o real, além da possibilidade de trabalhar com pessoas de diferentes países, com diferentes culturas.
Existem alguns conhecimentos necessários para que possamos estar sendo inseridos nesse mercado, dentre eles podemos destacar o domínio do inglês. Hoje em dia, com as equipes formadas por pessoas de diferentes países, o conhecimento na língua inglesa possibilita a comunicação entre as pessoas, sem contar que no mercado de tecnologia, o inglês é a principal língua em que as documentações, ferramentas, blogs, livros estão escritos.
Mercado de Tecnologia está aquecido em todo o mundo (Imagem: Reprodução)
No que se refere a tecnologia adotada pelas empresas do exterior, existe uma diversidade de oportunidades. Desde tecnologias mais antigas, e menos populares, como as tecnologias que estão mais em alta, o mercado tem totais condições de absorver pessoas com essas skills. Mas pra quem está começando, é fundamental dominar alguns conceitos como: lógica de programação, estrutura de dados, banco de dados e uma stack (por exemplo, Java e todo o ecossistema de Spring Boot).
O conhecimento na língua inglesa possibilita a comunicação entre as pessoas. Imagem: Reprodução
Outro aspecto importante que deve ser levado em consideração são as soft skills. Dominar a comunicação, facilidade de trabalhar em equipe, resiliência para resolver problemas, são habilidades fundamentais para se destacar nesse mercado.
Você se sente travado em alguma tarefa, sem conseguir evoluir? Fica olhando para a tela sem conseguir avançar? De vez em quando precisa de uma opinião de alguém para desenrolar, mas ao mesmo tempo não quer ninguém interferindo na sua linha de pensamento?
Luis Belizário utiliza a técnica debug com patos de borracha no seu trabalho diário. (Foto: Denise Nascimento)
A galera da Engenharia de Software desenvolveu a solução para esse problema: O debug com patos de borracha, originalmente “Rubber Duck Debugging”.
“Às vezes você está com dificuldades no código, está dando erro aí você pega um dos patos e começa a explicar pro pato o que você está querendo fazer, como se estivesse revisando o código. Daí você explicando para o pato é como se você estivesse explicando para você mesmo. Você vai debugando o código, linha por linha”, explicou o programador e estudante de Engenharia de Software do iCEV, Luis Belizário, que utiliza assiduamente a técnica.
O que acontece muitas vezes é que o programador esquece ou faz algo errado durante o processo e aparece o famoso bug. Nesse momento em que nada vai pra frente entra o desespero e a pergunta: “o que tem de errado com meu código?”. Aí que entra o debug.
A técnica tenta eliminar a dissonância cognitiva entre a elaboração mental de um modelo de software e a solução para um problema, utilizando a criatividade para resolver bugs nos códigos de programação.
Funciona assim: você vai falar passo-a-passo em voz alta para o seu pato: o que fez e o que está acontecendo. Ao explicar seu problema para um agente externo, neste caso o pato de borracha, você “pensa alto”, conversando consigo mesmo para encontrar uma solução.
Debug com pato de borracha é uma técnica que pode ser utilizada em qualquer área. (Imagem: Reprodução)
1 – Explique seu código e seus objetivos. Não se preocupe com detalhes, apenas defina o contexto para o seu pato.
2 – Linha por linha, explique qual é o fluxo de toda a função ou método que não está funcionando. Não pule detalhes, os patos estão ali para escutar você.
3 – Se seu amigo pato ainda não viu o bug, não deixe de explicar todos os estados intermediários e transições em detalhes.
4 – Pronto, agora a solução parece muito óbvia, a razão pela qual a “depuração de pato de borracha” é tão amada.
Durante esse processo, há uma grande chance de encontrar o seu problema. Muitas vezes é apenas um pequeno erro de digitação ou de compreensão. Se a solução não aparecer, você pode pedir ajuda a algum colega ou especialista daquele tipo de tarefa.
Código deve ser explicado linha por linha em voz alta para o seu pato. (Foto: Denise Nascimento)
Na verdade, a técnica serve com qualquer objeto inanimado que você possa conversar, mas um patinho de borracha é mais representativo.
O nome é uma referência a uma história do livro “O Programador Pragmático”, no qual um dos autores trabalhou com um assistente de pesquisa que, por vários meses, mantinha seu pato de borracha na mesa enquanto programava.
A dica é: você pode usar um pato de borracha, ou qualquer outro objeto mais discreto que possa conversar com ele de um modo lúdico, mas o mantenha em seu ambiente produtivo de trabalho ou de estudos, para ele estar ali quando você precisar.
Existe toda uma psicologia de como isso funciona, mas basicamente quando você fala em voz alta o seu cérebro consegue processar melhor os detalhes e, com isso, sua atenção a detalhes ou erros fica mais aguçada, consequentemente você acha os problemas mais rapidamente.
Quando você está assumindo que seu pato de borracha não sabe nada sobre o assunto, você tem que explicar mais detalhadamente o que você estava pensando nessas linhas específicas de código através de sua cabeça. Você é forçado, enquanto ajuda outra “pessoa” a entender o seu problema, a prestar muita atenção a tudo o que você estava apenas tomando como garantido.
O nome da técnica é uma referência a uma história do livro “O Programador Pragmático. (Foto: Denise Nascimento)
A maioria de nós pensa muito mais rápido do que falamos. Então, especialmente se você está explicando verbalmente o que está acontecendo com esse outro objeto, é provável que você seja um pouco mais cuidadoso e preciso em virtude de ter que dizer isso em voz alta. Assim, você desacelera o pensamento e é mais exigente do que quando você está digitando código.
O mais interessante é que essa técnica, muito utilizada pelos engenheiros de software, pode ser replicada em todas as áreas! Faça o teste e adote um patinho de borracha pra chamar de seu.
CRÉDITO,KELCEY SIHANOURATH Kelcey Sihanourath diz que o jogo de computador EndeavorRx melhorou o desempenho de seu filho Owain na escola
Enquanto muitos pais se preocupam com o tempo que crianças e adolescentes passam em jogos de videogame e computador, Kelcey Sihanourath fica feliz em ver seu filho Owain com um tablet nas mãos.
Atualmente com 13 anos, ele foi diagnosticado com Transtorno de Déficit de Atenção com Hiperatividade (TDAH) na pré-escola. Desde então, a família, que vive na cidade americana de Savannah, no Estado da Georgia, tem levado Owain a terapeutas ocupacionais para que o ajudem a lidar com hiperatividade no dia-a-dia.
Eles também tentaram usar medicação, mas precisaram parar com esse tipo de tratamento porque os remédios pioravam as enxaquecas que ele tinha, e o faziam passar mal.
Com a TDAH atrapalhando o desempenho de Owain na escola por anos, Kelcey disse que ansiava por “algo mais, alguma outra opção”. “Eu via que ele queria entender por que não conseguia focar, e a frustração que sentia quando se esforçava muito e mesmo assim se distraía”, diz ela. “Eu ficava de coração partido e me sentia impotente e inútil.”
A ajuda acabou vindo de uma maneira que, a princípio, parece contraditória: um jogo de computador chamado EndeavorRx.
CRÉDITO,AKILI Jogo foi desenvolvido em conjunto com neurocientistas para estimular e desenvolver áreas do cérebro que cumprem papel crucial no controle da atenção
Em 2020, o EndeavorRx se tornou o primeiro jogo a ser aprovado para tratamento de crianças com TDAH pela Food and Drug Administration (FDA), agência regulatória dos EUA responsável pela aprovação do uso de medicamentos e tratamentos médicos no país.
Atualmente disponível apenas por meio de prescrição de médicos nos EUA, o EndeavorRx à primeira vista parece similar a vários outros jogos. Você controla um pequeno alienígena que viaja numa nave espacial por diferentes mundos, tendo que coletar coisas.
Mas o jogo, disponibilizado por meio de aplicativo, foi desenvolvido em conjunto com neurocientistas para estimular e desenvolver áreas do cérebro que cumprem papel crucial no controle da atenção.
A ideia é treinar uma criança com TDAH a melhorar sua capacidade de assumir múltiplas tarefas e ignorar distrações.
Para isso, o jogo utiliza um algorítimo que mede a performance do jogador e customiza a dificuldade do jogo em tempo real.
Quando o EndeavorRx é prescrito pelos médicos, os pais da criança recebem um link de ativação que é necessário para o jogo começar.
CRÉDITO,AKILI O EndeavorRx só está disponível mediante prescrição médica nos EUA
Kelcey diz que, no início, estava “um pouco cética”, mas, no final de 2020, Owain começou um programa de três meses, jogando o jogo por 25 minutos por dia. Ele, então, passou por uma nova rodada no ano passado.
“Ele admitiu que o jogo era um pouco mais difícil do que imaginava”, diz ela. “Mas ele entendeu que aquilo era para ajudá-lo a melhorar a capacidade de focar. Ele continuou muito motivado apesar das dificuldades e frustrações decorrentes da atividade.”
Após cada sessão de Owain, Kelcey anotava o desempenho dele e monitorava o progresso.
Logo ela começou a ver mudanças positivas no seu comportamento. Por exemplo, o processo de se arrumar para a escola ficou mais fácil, e ela parou de receber observações negativas dos professores de Owain.
E, depois de ser reprovado na 5ª série, o garoto passou a obter notas altas na escola. “Tem sido incrível ver meu filho indo tão bem. E o melhor é vê-lo ter mais confiança em si mesmo”, diz Kelcey. “Ele não está mais frustrado e confuso por não conseguir as coisas.”
Eddie Martucci, diretor-executivo do Akili, a empresa de tecnologia baseada em Boston que desenvolveu o EndeavorRx, diz que o jogo foi desenvolvido para acelerar o progresso cognitivo.
CRÉDITO,AKILI Eddie Martucci agora planeja exportar o jogo para outros países
“Isso é algo muito difícil de fazer por meio molecular, como tomando uma pílula. Mas a estimulação sensorial pode atuar diretamente em partes do cérebro que controlam a função cognitiva.”
A empresa dele agora planeja lançar o jogo na Europa nos próximos anos. Em Londres, o app Thymia usa jogos de computador para ajudar médicos e outros profissionais de saúde a detectar e diagnosticar problemas mentais, particularmente depressão.
Um desses jogos faz com que o usuário tente memorizar objetos que se movem, enquanto outro é um jogo de cartas que também testa memória.
Além de verificar o desempenho do paciente no jogo, os comentários e expressões faciais são monitorados e avaliados pelo aplicativo, que acessa a câmera e o microfone do celular ou computador utilizado.
O Thymia foi lançado por Emilia Molimpakis, que tem doutorado em Linguística, Neurociência Cognitiva e Psicologia Experimental pela University College London, no Reino Unido.
Ela administra o negócio com o cofundador Stefano Goria, que tem doutorado em Física Teórica pela Universidade de Turim, na Itália.
CRÉDITO,THYMIA Thymia é um aplicativo que ajuda a diagnosticar problemas mentais
Goria diz que o aplicativo “coleta e identifica biomarcadores que são relevantes em entender sintomas de depressão, fazendo isso de uma maneira prática e envolvente”.
Tanto os criadores do Akili quanto do Thymia dizem que seus aplicativos devem ser usados como complemento ao monitoramento e tratamento conduzidos por médicos e não como substitutos.
A psicóloga de adolescentes Angela Karanja concorda. “Embora sejam invenções eficazes, elas devem ser usadas juntamente com os atuais questionários [de avaliação do paciente], que foram testados e aceitos quanto à confiabilidade e validade, bem como a opinião dos médicos e também ao lado de outros tratamentos, não isoladamente.”
O psicólogo Lee Chambers diz que, embora o uso desses videogames no diagnóstico, monitoramento e tratamento de condições de saúde mental ainda esteja nos estágios iniciais, parece ter “potencial”.
“O foco em um jogo tem a capacidade de remover aspectos da sensação. Esses tipos de jogos de saúde mental têm a capacidade de ampliar o acesso e rastrear variações na base de dados que eles coletam ao longo do tempo”, diz ele.
“Com isso, esses jogos têm o potencial de ser um indicador precoce de alguma condição de saúde mental e mostrar padrões de uma maneira a que não temos acesso atualmente.”
Dia 13 de setembro é o dia do programador (Foto: Denise Nascimento)
Dia 13 de setembro se comemora o dia do Programador aqui no Brasil, e como estão as perspectivas profissionais para a área?
Com milhares de vagas de Tecnologia anunciadas no LinkedIn, a média salarial para esses profissionais da área de T.I é de mais de R$ 8mil! Isso demonstra um nicho de mercado super aquecido. Além da própria revolução digital, a pandemia intensificou a necessidade urgente das empresas e organizações em investir bem mais em tecnologia.
A pandemia criou uma onda de necessidade de desenvolvedores e analistas de software por todo o mundo. Muitas empresas tiveram de modificar seu fluxo de trabalho para se adaptar às novas necessidades de seus clientes.
O resultado disso? Uma contratação em massa de todos os níveis de desenvolvedores e programadores, os quais, em sua maioria, assumem postos em duas, três e até quatro empresas. Como consequência, a disputa por desenvolvedores se acirrou nos últimos dois anos, elevando a maioria dos salários.
Salário de um estagiário em Tecnologia é superior ao salário mínimo brasileiro (Foto: Denise Nascimento)
Após essa onda, as empresas, em sua maioria, mantiveram o quadro de desenvolvedores e ainda almejam maiores contratações por conta da demanda crescente e diversa.
O mercado nacional não é diferente. Dezenas de empresas têm aumentado seu capital intelectual com desenvolvedores que em suma, informatizam, expandem e colocam seus negócios na internet.
Mercado de Tecnologia está aquecido em todo o mundo (Imagem: Reprodução)
Ainda mais com o advento da Inteligência Artificial e Internet das Coisas (IoF) que tem posto um desafio na concorrência entre empresas de tecnologia. Além da evolução, cada vez mais acelerada, de tecnologias mais ágeis e incontáveis dispositivos móveis lançados a cada piscar de olhos.
Muitas vagas surgiram em todo o mundo, mas como são as remunerações? Muito atrativas aos brasileiros!
Logo nas primeiras experiências profissionais um estagiário recebe em média R$ 1.744,24, isso é mais do que o salário mínimo brasileiro. Já um analista sênior chega a ganhar em média R$ 14.399,46. A média salarial geral é de R$ 8.040,47 entre todos os níveis de experiência.
Gráfico com faixas salariais de acordo com o nível de escolaridade. Valores da média salarial X número de participantes da pesquisa. (Designer: Fátima Peixoto)
Esses dados da pesquisa realizada pelo Código Fonte* também demonstram uma perspectiva crescente: Em 2021 o valor médio para um estagiário era de R$ 1.323,68, ou seja, aumento de 31,8% em relação a esse ano. Já para os profissionais sêniores, o crescimento foi de 35,8%, já que no ano passado o salário era de R$ 10.601,42 em média.
Estudantes de Engenharia de Software em formação (Foto: Denise Nascimento)
No iCEV, o estudante de Engenharia de Software vivencia, desde o primeiro período, as linguagens e tecnologias mais requisitadas do mercado de trabalho, colocando esses alunos em vantagem competitiva já na faculdade. Além disso, também aprende a ser um profissional adaptável, já que a computação é uma área mutável.
No infográfico abaixo foi feita uma relação direta com as linguagens e tecnologias mais requisitadas do mercado de trabalho atualmente e em qual período o estudante de Engenharia de Software tem contato com ela, além da média salarial de cada especialista nas respectivas áreas.
Tabela com a relação direta com as linguagens e tecnologias mais requisitadas do mercado de trabalho atualmente e em qual período o estudante de Engenharia de Software tem contato com ela (Designer: Fátima Peixoto)
Grupo “Observatório das Eleições” em visita ao Depósito Central de Urnas Eletrônicas do Piauí (Foto: Denise Nascimento)
Observatório das Eleições iCEV – Na última sexta-feira, 19 de agosto, os estudantes do projeto de extensão “Observatório das Eleições” visitaram o Depósito Central das Urnas do Tribunal Regional Eleitoral do Piauí – TRE.
O intuito é que eles conhecessem, na prática, como funciona a organização das eleições e a segurança das urnas para uma eleição.
São mais de 10 mil urnas eleitorais armazenadas no Depósito Central (Foto: Denise Nascimento)
Quem recebeu os estudantes do iCEV na ocasião foi o secretário de Tecnologia da Informação do Tribunal Regional Eleitoral do Piauí, e também professor do curso de Engenharia de Software do iCEV, Anderson Cavalcanti.
Ele explicou como funciona a segurança tanto do sistema online do TSE e TRE, como das urnas:
“Em cada urna existem diversos mecanismos de identificação, além dos lacres físicos de proteção em cada entrada, que são assinados e numerados existem vários softwares que detectariam facilmente alguma tentativa de ataque. Há um certificado digital de do TSE dentro de cada componente, até o teclado numérico precisa desse certificado para a urna reconhecer”, esclareceu o secretário.
Estudantes do Observatório participaram de uma votação simulada, muitos deles nunca votaram em eleições reais (Foto: Denise Nascimento)
A cada dois anos, no Brasil, o eleitor vais às urnas eleger aquele que, possivelmente, irá lhe representar, trabalhar em benefício do povo, construir ações e executá-las de forma transparente.
No Brasil, o processo eleitoral, é um sentido amplo que compreende antes, no momento e depois das eleições. O Processo Eleitoral é organizado pela Justiça Eleitoral (JE), em nível municipal, estadual e federal. Na esfera federal, a JE possui como órgão máximo o Tribunal Superior Eleitoral (TSE), bem como juízes e juntas eleitorais.
Modelo mais novo da urna que será utilizado nas eleições presidenciais de 2022 (Foto: Denise Nascimento)
Nos últimos anos o processo eleitoral brasileiro vem enfrentando um cenário de polarização e questionamentos, em especial com a divulgação e difusão de notícias falsas, as fake news.
Por isso, o iCEV – Instituto de Ensino Superior, enquanto faculdade comprometida com sua função social de produzir conhecimentos científicos e combater a desinformação, criou o Projeto de Extensão “Observatório das Eleições”.
O projeto é um grupo de pesquisa liderado pelo doutorando em Direito, professor e especialista em Direito Eleitoral, Horácio Neiva e pelo coordenador de pesquisa e extensão, Euzébio Pereira.
O “Observatório das Eleições” é comandado pelo professor e doutorando em Direito, Horácio Neiva (Foto: Inácio Pinheiro)
O intuito é realizar estudos, pesquisas, avaliações e produção de conteúdos relacionados às Eleições de 2022, bem como o papel e estrutura da Justiça Eleitoral neste processo.
Os debates acerca da fake news também são incentivados, o grupo já teve como palestrante convidada Luana Sena – jornalista, doutoranda em Comunicação Social pela UFBA e editora do jornal “O Estado do Piauí” para conversar com os estudantes do grupo sobre “Mentiras convenientes: Fake News e desinformação na era da pós-verdade”.
Palestra com Luana Sena “Mentiras convenientes: Fake News e desinformação na era da pós-verdade” (Foto: Inácio Pinheiro)
“O Observatório das Eleições é uma uma atividade de conscientização e também de promoção de cidadania. Os estudantes irão produzir materiais de esclarecimento para a população, como textos, vídeos e outras mídias destinados a prestar esclarecimentos e desfazer equívocos sobre o processo eleitoral brasileiro”, disse Horácio Neiva.
São 25 estudantes no grupo de estudos formado não só pelos estudantes de Direito, mas também de Engenharia de Software. Essa interdisciplinaridade entre os cursos permite uma maior compreensão de todo o processo, pois envolve as análises jurídicas e o tratamento de dados eleitorais.
O projeto de extensão é formado por estudantes de Direito e Engenharia de Software, promovendo interdisciplinaridade de conhecimentos durante o curso (Foto: Denise Nascimento)
“Quero ter propriedade no assunto para poder servir de informação para outras pessoas, combater alguma fake news, ou se alguém tiver dúvidas eu poder esclarecer essas informações pra ela. Achei muito interessante a propriedade com que o Secretário de TI falou sobre a segurança das urnas e também ver que envolve muito mais que o processo jurídico, mas também tem vários protocolos de tecnologia por trás”, contou a estudante de Direito Isabela Ramos, 2º período.
Parte das fake news relacionadas à insegurança das urnas especulando que o sistema utilizado atualmente é o mesmo utilizado que surgiu, em 1996. Quando na verdade, houveram muitas atualizações constantes, tanto físicas como nos sistemas de segurança nesses 26 anos.
“Existem mecanismos para garantir a normalidade dos pleitos e a segurança do voto. Por isso, que o Brasil se tornou referência mundial em transparência e agilidade nas eleições”, ressaltou Horácio.
Qualquer elemento que seja conectado à urna precisa ter o certificado digital do TSE (Foto: Denise Nascimento)
O secretário Anderson também elucida que as urnas não têm acesso à internet e que possuem uma bateria que permite o prosseguimento das votações mesmo em casos de queda de energia. “Vale ressaltar que a apuração é feita em cada urna. O resto é totalização e consolidação e, em caso de eleições municipais, cálculos de proporcionalidade.
A urna fica no local do domicílio eleitoral durante 60 dias depois das eleições esperando alguma contestação e podendo ficar mais em caso de recontagem ou auditoria”, completou Anderson.
Todas as urnas passam por manutenção constante de hardware e software após cada eleição, ou seja, a cada dois anos. (Foto: Denise Nascimento)
Cada urna eletrônica já possibilita a auditoria da totalização. Ao término da votação, o equipamento imprime o Boletim de Urna (BU), um relatório detalhado com todos os votos digitados no aparelho. Esse documento é colado na porta da seção eleitoral para conferência dos eleitores, que podem comparar o BU apurado de forma eletrônica e divulgado no site do Tribunal Superior Eleitoral (TSE).
*Com informações divulgadas no site oficial do Tribunal Superior Eleitoral (TSE).
Rua Dr. José Auto de Abreu, 2929 - Morada do Sol - 64055-260 - Teresina-PI
Telefone: (86) 3133-7070 - E-mail: contato.icev@somosicev.com