Tendências

Tendências de TI para 2019

O ano já começou a todo vapor! Por isso, nada melhor do que estar por dentro das tendências na área de TI para 2019. Além das coisas mudarem muito rápido, sempre aparece alguma novidade. Então, vamos começar o ano nos atualizando com as novidades e quais tecnologias continuam em alta neste ano que se inicia.

DevOps

Hoje em dia, quem conhece a cultura e as ferramentas DevOps conquista um bom destaque no mercado. Neste ano, a previsão é que este segmento da área de TI fique mais aquecido ainda.

Relembrando: DevOps é um modelo que combina práticas e ferramentas com a intenção de aumentar a capacidade de uma empresa distribuir seus serviços de forma muito mais rápida. Ela visa também a integração da área de desenvolvimento com a área de operação, pois assim conseguimos alcançar uma maior qualidade nas entregas, além de evitar falhas de comunicação entre as áreas, bem como atrasos e retrabalhamos nos projetos.

Essa é uma prática que vem ganhando muito destaque por causa dos processos de integração contínua e entrega contínua. As entregas são menores, visando as liberações de versões mais seguras, além dos ciclos de desenvolvimento menores, fazendo com que a qualidade aumente.

Outro ponto muito importante é o auxílio que ele traz no gerenciamento e controle sobre o ambiente e infraestrutura. Como a infraestrutura é gerenciada através de técnicas de desenvolvimento de software, tanto ela quanto os servidores são implantados muito rapidamente.

Mas, como podemos implementar a cultura e as ferramentas DevOps?

Existem diversas ferramentas para nos ajudar. Possivelmente, você já deve ter ouvido falar sobre Docker. O Docker é um exemplo, assim como o Kubernetes, o Openshift, o Jenkins e outras ferramentas. Essas ferramentas facilitam a criação e manutenção desses ambientes, geralmente baseados em containers. Com elas, você consegue criar, implantar, migrar e muito mais, de um ambiente para outro, de maneira muito eficiente, rápida e segura.

Inteligência Artificial

A Inteligência Artificial continuará em alta, pois cada vez mais empresas estão utilizando ferramentas de IA para melhorar suas operações.

Hoje, podemos dar vários exemplos do uso de ferramentas de IA que impactam em nosso dia a dia. Um exemplo bem palpável é a popularização do uso de chatbots de atendimento ao cliente, que está sendo inserida para melhorar o suporte e rapidez nas informações. Outro exemplo é o algoritmo de reconhecimento facial que o Facebook utiliza para identificar pessoas em uma foto.

Entre as ferramentas de IA que vêm ficando mais populares e que continuarão em alta em 2019, nós podemos citar o TensorFlow. O TensorFlow é uma biblioteca de software muito poderosa para computação numérica usando grafos computacionais, sendo o principal software para desenvolvimento em Deep Learning e aplicações de Inteligência Artificial.

Outra ferramenta de IA que podemos citar e que vêm ganhando cada vez mais demanda pelo mercado de trabalho é o Azure Cognitive Services, da Microsoft. O Cognitive Services amplia o acesso de APIs de aprendizado de máquina.

Esses serviços permitem a criação de aplicativos inteligentes com algoritmos e funcionalidades avançadas (como reconhecimento de objetos em fotos, visão computacional, reconhecimento de fala e outras), podendo ser utilizados em apps, sites e bots para que eles entendam as necessidades do usuário, tudo isso sem precisar de conhecimentos específicos em IA. Todos estes serviços são oferecidos através de APIs e aplicações hospedadas no ambiente do Microsoft Azure, ou seja, através de Cloud Computing.

Frameworks de gestão

Apesar de não ser uma novidade, os frameworks de gestão sempre estarão em alta, pois o mercado em geral vem ficando cada vez mais alinhado com as boas práticas de gestão alinhadas com os processos de desenvolvimento.

Hoje, é imprescindível saber pelo menos um pouco sobre os principais frameworks como ITIL, SCRUM, Kanban e outros. Esses frameworks são importantes por estabelecerem boas práticas de TI no mundo corporativo, fazendo com que a gestão de projetos seja simples, dinâmica e com foco na melhoria geral dos resultados.

O ITIL é um dos frameworks mais adotados atualmente, tendo como foco o alinhamento dos serviços de TI aos objetivos do negócio. Após a sua adoção, os processos de TI tendem a ficar mais consistentes, além da maior eficácia na entrega dos serviços.

Visando ajudar o gerenciamento desses serviços, um outro framework também muito utilizado hoje em dia é o Scrum. Ele é muito aplicado a projetos de desenvolvimento de software, dividindo o trabalho em tarefas menores e incrementais, sempre monitoradas por meio de reuniões diárias. Tudo isso para que os objetivos sejam alcançados da melhor maneira possível.

Outro framework de gestão que vem se destacando cada vez mais é o Kanban. Ele é um quadro onde você sinaliza através de cartões ou post-its o andamento da sua tarefa, com a intenção de que todos os envolvidos do projeto saibam o que está acontecendo. É uma ótima ferramenta, pois além de ser bem visual, você consegue se manter atualizado rapidamente com relação ao andamento do projeto.

Concluindo

Essas são algumas das tendências que continuam em alta nesse ano. Certamente, as melhores vagas na área de TI em 2019 exigirão que você conheça alguns dos tópicos que foram abordados. Aqui na TreinaWeb, além de cursos das tendências que abordamos neste artigo, também existem diversos cursos de desenvolvimento de software e muitos outros que vão fazer você alavancar sua carreira na área de TI.

Jogos Hiper Casuais – O gênero de jogo do momento

Olá, Game Developers!

Hoje em dia ainda são muito comuns grandes jogos, mas uma categoria que ultimamente vem ganhando muito espaço são os jogos mais casuais. São jogos bem simples, muitas vezes sem histórias, que jogamos apenas para passar o tempo de forma bem simples.

Se pensarmos neste gênero apenas pela sua simplicidade, podemos dizer que eles existem desde o tempo dos antigos arcades. Mas ultimamente eles vem fazendo muito sucesso, pois este tipo de jogo é ideal para quando estamos, por exemplo, em uma fila e pegamos nosso smartphone para passar o tempo.

Por serem simples, qualquer pessoa, mesmo que não seja gamer, consegue jogá-los. A simplicidade nos controles e objetivos são um ponto que prendem a pessoa, fazendo com que o público seja grande.

As vantagens de se criar um jogo hiper casual

Muitas vezes os gráficos também são bem simples. Qualquer pessoa, mesmo sem conhecimento de design gráfico e programação, pode desenvolver esse tipo de jogo.

Caso você esteja querendo iniciar no mundo do desenvolvimento de jogos, este gênero pode ser um ótimo ponto de início. Afinal, você não vai precisar gastar tempo criando, desenhando e animando personagens, pois um simples círculo ou quadrado na tela já são o suficiente.
Até mesmo os cenários podem ser apenas um fundo com uma única cor.

A simplicidade desse tipo de jogo também implica no tempo de desenvolvimento. Enquanto jogos mais bem elaborados podem precisar de uma grande equipe trabalhando por meses ou até anos, um jogo deste gênero pode ser criado por uma única pessoa em semanas.

Muitos desses jogos, por não terem uma história, nos permitem criar um jogo “infinito”. Isso significa que podemos ir lançando novas fases, apenas mudando o cenário e desafios. Outra possibilidade é criar um jogo onde não há fases, é sempre o mesmo desafio, mas com a dificuldade aumentando, fazendo com que o jogador queira tentar cada vez mais uma pontuação maior. Neste caso é importante permitir o compartilhamento de pontos, pois isso incentiva o jogador a voltar a jogar para tentar pontuar mais do que seus amigos.

Normalmente esses jogos são gratuitos e monetizados por anúncios. Assim, ao invés de gastar muito tempo criando um grande jogo e tentar vendê-lo por um bom preço, você pode criar vários jogos casuais em pouco tempo, distribuir gratuitamente e ganhar com anúncios ou upgrades dentro do próprio jogo. São estratégias diferentes, mas a segunda é bem mais vantajosa para quem está começando.

Nem tudo são flores

Claro que, como em qualquer lugar, simplicidade não significa que qualquer um pode conseguir sucesso com facilidade.

Se desenvolver esse tipo de jogos é simples para pequenos desenvolvedores, as grandes companhias já perceberam isso e já se prepararam há muito tempo.

Um exemplo é a Voodoo, que só em 2017 lançou 29 jogos na App Store, sendo 14 deles apenas em novembro. Desses jogos, 11 deles chegaram ao Top 10.

Mas isso não significa que é impossível um desenvolvedor conseguir sucesso, pois há casos como o Flappy Bird. Seu desenvolvedor criou o jogo em um período aproximado de dois a três dias. Mesmo assim, este jogo só teve sucesso em 2014, sendo que ele foi lançado em maio de 2013.

Conclusão

Mesmo com as dificuldades existentes no mercado de jogos, ainda sim podemos conseguir sucesso nessa área.

Se estiver começando neste mundo, considere em começar pelo gênero de jogos casuais. E também não se esqueça de conferir nossos cursos de desenvolvimento de jogos.

Tendências no Marketing Digital que continuam em 2018

Se você ainda não sabe no que investir no Marketing Digital para esse ano, esse post veio para te ajudar!

O Marketing Digital está sempre evoluindo, coisas novas aparecem e outras já ficam defasadas… Por isso é importante ficar de olho no que acontece por aí, além da evolução das tendências já existentes. Sendo assim, vamos listar a seguir 5 tendências que continuam em alta nesse ano e que você pode investir no seu negócio.

1) Marketing de conteúdo

O marketing de conteúdo é uma estratégia onde se produz conteúdos para o público-alvo, com o objetivo de atraí-los para sua marca de uma forma espontânea.

Sabemos que conteúdo é a chave do marketing digital e ainda será, mas não qualquer conteúdo. Os conteúdos devem ser realmente relevantes, diretos e devem agregar valor e informação no dia a dia das pessoas que te seguem.

O marketing de conteúdo é necessário para garantir a atenção de seu público e se destacar em meio aos concorrentes.

2) Big data

A velocidade de crescimento de dados na internet é gigantesca. Reunir um grande volume de informações é até fácil, mas saber como usar essas informações… nem tanto! E é aí que entra o Big Data.

Com a utilização do Big Data você pode analisar melhor os dados de suas campanhas digitais, o que ajuda bastante na tomada de decisão e para ver se você está conseguindo chegar nos resultados esperados. É utilizado para analisar de forma coerente e rápida informações em tempo real e em quantidade não controlada.

3) Influenciadores digitais

Já faz um tempo que vemos as marcas investindo em campanhas com influenciadores digitais. Esse número só cresce e esse ano, aliás nos próximos anos, não será diferente. Como eles tem como principal veículo as redes sociais, ele entende seu público e é um canal de comunicação excelente, que acaba gerando resultados.

Por exemplo, uma rede de cosméticos nova pode fazer uma parceria com um influenciador, onde ele pode apresentar sua marca e dar sua opinião, pegando assim uma boa parte do público que ele possui.

4) Chatbot

O chatbot nada mais é que um programa que simula uma conversa humana, de acordo com o que foi programado, trazendo respostas instantâneas e pertinentes às necessidades do cliente. Por exemplo, se você tem uma pizzaria, pode utilizar o chatbot para que seus clientes façam um pedido. Dependendo do seu segmento você também pode colocar um com dúvidas frequentes.

Lembrando que essa deve ser uma estratégia pensada e deve-se trabalhar bem a ferramenta antes de colocar em prática, para que não haja falha na comunicação ou que seu cliente fique sem a resposta que ele espera. É mais indicado que o chatbot seja utilizado para tarefas menores, a fim de evitar maiores falhas.

Cada vez mais as pessoas preferem se comunicar com uma empresa / marca pelos canais online. Mas também há pessoas que se incomodam de estarem falando com um robô. Porém, se for algo pensado e que funcione bem, não há problemas.

O chatbot chegou fortemente em 2017 e em 2018 as empresas continuarão investindo. Segundo uma pesquisa da Take, os lugares mais viáveis de colocar o chatbot é no Facebook (92%) seguido do site da empresa (75%).

5) Estratégia de remarketing

O remarketing nada mais é do que a utilização de cookies do navegador para rastrear os sites que o usuário visita. Isso acontece porque a maioria das pessoas visitam uma loja pela primeira vez e saem sem comprar nada.

Sendo assim, o produto ou serviço que ele visitou é mostrado em diversos anúncios em diferentes sites. Essa estratégia já é bem utilizada e continua forte nesse ano.

Java, C# ou PHP: qual linguagem escolher?

Ah, essa é com certeza uma dúvida que qualquer profissional da área de desenvolvimento já passou pelo menos uma vez na vida. Ela é super recorrente para quem está começando. Afinal de contas, qual linguagem estudar e escolher para entrar no mercado de trabalho?

De fato, fazer esse tipo de análise pode ser um processo complexo, além de ser algo completamente subjetivo e que também sofre a influência de muitos fatores externos. Mas, independente disso, chega um momento onde nós precisamos escolher uma linguagem para nos dedicarmos. E como podemos ter certeza de que fizemos a escolha correta? Como saber se eu escolhi a linguagem certa para entrar no mercado de trabalho?

Vamos fazer uma análise sobre alguns pontos interessantes. Neste artigo, compararemos três das mais populares linguagens de programação – que no caso são Java, C# e PHP – e as analisaremos através de alguns tópicos: presença e adoção no mercado, interoperabilidade, adequação à execução no Windows, “estilo” da linguagem, presença na plataforma web e curva de aprendizagem.

Ah, antes de qualquer coisa: não estamos defendendo uma linguagem em detrimento das outras. Todas as análises nesse artigo são puramente baseadas em números e na minha vivência no mercado de trabalho. Sinta-se à vontade para utilizar estes números para auxiliar em sua decisão. 😉

Presença e utilização no mercado de trabalho

Essa é a primeira análise que passa pela nossa cabeça quando precisamos decidir entre um grupo de linguagens aquela que queremos nos dedicar.

Para isso, temos dois conjuntos de números de dois sites diferentes: os números do Tiobe Index e os números do Institute of Electrical and Electronics Engineers (“carinhosamente” conhecido como IEEE).
Começando pelo ranking Tiobe, temos o seguinte gráfico:

No gráfico acima, vemos que a linguagem mais utilizada no mundo atualmente é o Java. O C# fica em quarto lugar, enquanto o PHP fica em sétimo lugar.

Se pegarmos os dados da IEEE, não temos uma discrepância muito grande:

Pela IEEE, o Java também é a linguagem mais utilizada do mundo. O C# aqui fica em quinto lugar, enquanto o PHP fica em sexto.

A partir desses números vemos que o Java tem mais mercado de trabalho de maneira geral, seguido pelo C# e pelo PHP, respectivamente.

O complicado destas análises é que elas são puramente quantitativas, desprezando aspectos qualitativos como região e empregabilidade. O caso do Java ilustra bem isso: de fato, o Java é mais utilizado em linhas gerais do que o C# e o PHP, o que consequentemente aumenta a disponibilidade de vagas para profissionais Java. Porém, justamente pelo fato de o Java ser uma linguagem muito popular, isso causa uma certa “saturação” no mercado de trabalho: existem muitas vagas para se trabalhar com Java, mas a quantidade de profissionais que são adeptos da plataforma da Oracle também é grande. Também existem muitas vagas para C# e PHP (muitas mesmo), mas a saturação do mercado nestes dois últimos casos é relativamente inferior, se compararmos diretamente com o Java.

Interoperabilidade entre plataformas

Hoje, esse é um ponto muito importante, afinal, ninguém quer mais saber de escrever código específico para cada plataforma. Os desenvolvedores buscam escrever um único código que vai poder rodar nos mais variados sistemas operacionais e dispositivos.

Sob esse ponto de vista, o Java e o PHP saem na frente. Ambos já foram concebidos para serem multiplataforma desde o início. Esse ponto se aplica mais ainda ao Java, já que este foi (e ainda é) um de seus principais apelos técnicos na comunidade.

O C# demorou um pouco mais para entrar nessa onda do multiplataforma. A Microsoft, com seu mind set antigo, sempre fechava seus produtos para sua própria plataforma, o que inclui o .NET Framework e, consequentemente, o C#. O resultado antigamente era que, embora o C# também fosse concebido desde o início para ser multiplataforma, ele ficasse atrelado aos produtos Microsoft, principalmente por causa do .NET Framework. Até era possível executar o C# em ambientes não-Windows, mas isso ocorria através de ports da comunidade (no caso específico do C# e do .NET, estamos falando do Mono). Infelizmente, esses ports no caso do .NET sempre estavam atrasados em relação às versões mais novas do framework.

Hoje essa realidade mudou completamente. A Microsoft abraçou o conceito de ser multiplataforma, além de se tornar uma das maiores adeptas do open source. Mantendo distância da discussão se essa mudança de atitude visa unicamente lucro ou não, isso foi fantástico para o .NET Framework e para o C# consequentemente e tecnicamente falando. Hoje, nós podemos (finalmente) rodar aplicações .NET em ambientes Windows, Linux e até MacOS/iOS utilizando o .NET Core. Porém, é fato que o C# saiu atrás com relação a este ponto se comparado ao PHP e ao Java.

Adequação à utilização do Windows

Pode parecer contraditório, principalmente com relação ao tópico anterior, mas é fato que o Windows é o sistema operacional mais utilizado no mundo em termos quantitativos. Sendo assim, é importante que uma linguagem de programação ofereça um bom suporte ao sistema operacional da Microsoft, tanto em termos da linguagem em si, como em ferramental de desenvolvimento (principalmente SDKs e IDEs).

Neste tópico, as três linguagens até se equivalem. Obviamente, há uma pequena vantagem para o C#, já que estamos falando de produtos Microsoft. Entre as três, talvez a que ofereça o suporte mais limitado seja o PHP, mas é algo tão irrisório que podemos considerar as linguagens muito similares nesse tópico.

Características da linguagem

As três linguagens possuem características muito bem definidas com relação ao paradigma adotado.

As três linguagens possuem uma forte orientação imperativa por essência. Isso quer dizer que as três “se preocupam” com a maneira que alguma massa de dados deve se processada, e não com a massa de dados em si.

As três linguagens também trabalham em cima do conceito de mudança de estados. O código criado com estas linguagens funciona o tempo inteiro em cima de variáveis que têm seus valores alterados durante a execução do algoritmo. As decisões também são tomadas em cima dos valores destas variáveis.

As três linguagens também suportam formalmente o paradigma orientado a objetos. Nesse ponto, o PHP pode sair um pouco atrás do Java e do C#, já que a adoção completa de conceitos formais de orientação a objetos só ocorreu mesmo a partir da versão 5 em diante, enquanto o Java e o C# sempre tiveram forte vocação orientada a objetos desde as primeiras versões. Mas, considerando-se as últimas versões de cada linguagem, todas elas se equivalem nesse aspecto.

As coisas começam a mudar de figura quando começamos a falar principalmente sobre o paradigma funcional. Vamos relembrar o gráfico do ranking Tiobe:

Veja que existe claramente uma tendência de queda nas quatro primeiras linguagens. E, mais ainda: podemos ver uma forte tendência crescimento em linguagens de outro nicho, como o JavaScript. Isso está acontecendo porque, atualmente, o mercado está começando a adotar linguagens fundamentadas no paradigma funcional de maneira mais efetiva. Como elas trabalham em cima do processamento de informações e não em cima de transições de estados, linguagens funcionais têm a tendência de facilitar processos como os de escalabilidade, principalmente quando falamos sobre escalabilidade vertical.

Falando sobre o aspecto funcional, o C# sai na frente do Java e do PHP. A versão mais recente (o C# 7) já adota estruturas claramente funcionais (como pattern matching), além de todo o ferramental fornecido pelo LINQ (que possui claramente uma orientação funcional). O Java começou a pouco a se movimentar mais no sentido de se tornar mais funcional (muito também para quebrar a verbosidade característica da linguagem), enquanto o PHP tem se movimentado no sentido de se tornar mais formal com relação aos conceitos OO. Isso, em tese, torna o C# mais preparado para lidar com essa nova realidade funcional.

Ah, antes de qualquer coisa: não estou dizendo que é impossível programarmos de maneira funcional com PHP ou Java. Aqui, digo de recursos “naturais” à linguagem. 😉

Presença na plataforma Web

Obs.: não critique a presença do IE na imagem acima… Ele teve (e ainda tem) sua importância, haha 😛

Atualmente, uma linguagem que não suporte o desenvolvimento para Web de maneira satisfatória certamente não será tão bem vista no mercado de trabalho, já que existe uma fortíssima tendência na adoção de ferramentas baseadas (principalmente) na web, em cloud e em dispositivos móveis. Novamente, as três linguagens se equivalem nesse sentido, já que todas elas suportam desenvolvimento Web.

Porém, o PHP já possui essa vertente Web muito mais acentuada do que o C# e o Java desde o início. Aliás, o PHP foi criado para ser uma linguagem web desde o início. E, mais: cerca de 80% da web roda em cima do PHP. Inclusive, ferramentas famosas para criação de páginas de conteúdo, como o WordPress, Drupal etc são construídos com o PHP.

Além da questão da linguagem em si, também devemos considerar todo o mecanismo necessário para que elas possam ser executadas na plataforma Web. Java e C# são conhecidos por necessitarem de stacks relativamente pesadas para conseguirem prover esse suporte, enquanto PHP é conhecido na comunidade por justamente necessitar de uma stack muito mais leve nesse sentido.

Agora, não se esqueça desse aspecto multi-plataforma que o Java e o C# possuem. Se voltarmos para aquele gráfico da IEEE, ele fica evidente:

Veja que o Java e o C# suportam desenvolvimento web, mobile e desktop de maneira “natural”, enquanto o PHP suporta somente o desenvolvimento web. Esse também é um aspecto que precisamos levar em consideração.

Curva de aprendizado

Esse talvez seja um aspecto muito subjetivo para ser discutido, pois cada pessoa possui uma velocidade e afinidade de aprendizado diferente das outras pessoas. Porém, podemos comentar sobre o material de apoio para aprendizagem.

Novamente, as três linguagens se equivalem nesse sentido. Tanto Java, quanto C# e PHP, possuem documentações oficiais excelentes, tanto em sua versão original (em inglês) como em sua versão traduzida. As três linguagens também têm uma comunidade grande e participativa. Também é fácil encontrar materiais e cursos para estudo para cada uma das três linguagens. Inclusive, temos cursos muito legais de Java, C# e PHP aqui no TreinaWeb. Sendo assim, é relativamente fácil aprender qualquer uma delas.

E a grande vencedora é…

Depois de toda essa conversa, você deve estar curioso para saber qual linguagem é a grande vencedora. Mas o grande fato é que não temos uma linguagem vencedora!

Java, C# e PHP são linguagens relativamente parecidas ao mesmo tempo que são completamente diferentes. As três possuem a mesma vertente (são linguagens originalmente imperativas e orientadas a objeto) e possuem muito material disponível para aprendizagem. As três também suportam desenvolvimento de aplicações para web e possuem representatividade relevante no mercado de trabalho.

Aqui, entram em cena aspectos com uma análise mais complicada. A região onde você pretende atuar é um ponto que pode influenciar muito. Há regiões e países onde uma destas linguagens pode ser mais forte. Há mercados onde as três se equivalem em termos de oportunidades. Tudo vai depender de quais são seus objetivos profissionais e pessoais. A afinidade com uma linguagem em detrimento das outras também é um aspecto muito importante a ser considerado.

Agora, um ponto é consenso e fato: você pode escolher tranquilamente Java, C# ou PHP. Existe um excelente mercado para todas elas. E mais importante ainda:

Não se prenda à linguagem em si. Quase todas são muito parecidas. Se preocupe com o desenvolvimento de sua lógica e com conceitos essenciais, que são exatamente os mesmos em qualquer uma delas.

Se você absorver conceitos essenciais (como lógica de programação, boas práticas de codificação, funcionamento do protocolo HTTP, etc.), você conseguirá desenvolver com qualquer uma das três linguagens! 😉

JUNTE-SE A MAIS DE 150.000 PROGRAMADORES