GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Duvida de mercado: buscando direcionamento nos estudos

programação
Tags: #<Tag:0x00007f7ab0bfa248>

#1

buscando direcionamento nos estudos (e apresentação):

Olá amigos, aqui eu sou tHex :joy: , (esse é também um tópico de apresentação)

de maneira geral, desde muito novo estive envolvido com computação, mas somente recentemente decidi me focar nos estudos para buscar uma posição no mercado. (Tenho 30 anos, estou muito velho para isso?) Tenho estudado por conta, devido minha história estreita com a computação não estou encontro dificuldade na compreensão de conceitos. Por outro lado cheguei em um ponto em que estou sem norte. Esclareço que irei buscar cedo ou tarde a formação acadêmica, mas no momento essa não é uma possibilidade.

Pois bem, estudei a evolução dos computadores e sistemas operacionais. Assim acredito que por hora tenho uma boa base de arquitetura computacional, o funcionamento dos diferentes componentes, e sua estreita relação com os sistemas operacionais, drivers e consequentemente as linguagens de programação. Também já compreendo de maneira genéria os diferentes paradigmas de programação, e tenho me focado em orientação ao objeto. Busquei também conhecimento em SQL e compreendo os aspectos de construção, manipulação e selecionamento das tabelas. Em relação as sintaxes compreendo superficialmente o desenvolvimento web (html+css+javascript+php), e as linguagens mais faladas para POO (Java e C#). (gosto da palavra python, mas se quer olhei para a sintaxe ainda). Tenho base de algorítimos, mas pouco praticada. Todos esses conhecimentos são ainda superficiais eu acredito, mas parecem suprir a compreensão no momento.

Até aqui me apresentei, agora irei deixar minhas duvidas e pedidos aos amigos…

(1) Eu desconheço completamente o mercado de TI, e tenho sentido necessidade de passar a focar uma posição do mercado (consequentemente um conjunto de conhecimentos para direcionar os estudos, além de motivar). Aqui é que peço para os amigos me clarearem as possibilidades de trabalho do programador, a realidade que vocês vivem, as experiências de vocês… além dos procedimentos dessas alocações de trabalho. Para que eu possa compreender e optar de maneira consciente o que desejo fazer e estudar. Este é o motivo para não ter optado ainda por alguma linguagem de programação.

(2) Outra dificuldade que estou tendo é filtrar materiais, existe muitos artigos e livros, é infinito… tenho usado excertos de tudo que encontro, buscando algumas editoras maiores. Ainda assim não sei em que material confiar. Gostaria de saber eu mesmo filtrar esse material. Mas se só a pratica fará isso, que os amigos me indiquem (baseado em tudo que já escrevi) livros e artigos importantes e essenciais.

(3) o mesmo para videos-curso: o youtube tem coisas valiosas. no coursera há coisas realmente legais de se estudar. nesse sentido que videos, aulas, minicursos, palestras os amigos podem me recomendar?

pois existe tanto material e curso que não sei em que apostar…

(4) eu penso que cheguei em um ponto em que compreendo os conceitos, e sinto que realmente entendi. Mas a compreensão do processo de produção de sistemas maiores (que exigem equipes) está longe de ser compreendida, o processo. nesse sentido os amigos poderiam também me ajudar a clarear as ideias.

me desculpem se foram muitas perguntas,

muito obrigado a atenção,

grande abraço do tHex,


#2

Não. Talvez você se sinta meio deslocado em uma equipe com pessoas muito mais novas (10, 12 anos de idade a menos). Tirando isso, relaxa.

Antes de mais nada, de onde você é? Isso faz muita diferença quando você pretende escolher uma tecnologia para estudar.

Posso garantir que mais da metade dos “profissionais” desconhecem o mercado. Não por incompetência ou falta de profissionalismo, mas, o mercado é diferente em cada região, em cada estado, cada cidade.
Antes de qualquer coisa, foque em um objetivo. Gosta de SQL, banco de dados, regras e regras? Porque não faz um curso voltado para a função de um DBA ou um PL/SQL developer? Gosta de web, frontend, UX, javascript e estar sempre buscando inovações? Estude design e desenvolvimento frontend. Gosta de resolver problemas gigantescos, desenvolver coisas mirabolantes? Estuda C, C++ ou Cobol. Tem boas ideias, aprende rápido, gosta de desafios? Mobile! E assim por diante.

Esqueça os guias que prometem milagres (eu não me lembro ao certo o título, mas já vi um livro que era algo como “java em 24 horas”, só se for igual a série de TV). Você tem o guj para perguntar. Tem livros bacanas na casa do código. Cursos ótimos online.

Volto à resposta 1: escolha algo. Defina o que quer.

Conceitos são importantes. Fundamentais. Mas é preciso colocar em prática.


#3

Opa, tudo bom? Muito obrigado pelo retorno!! :blush:

Talvez eu tenha ocultado informações de mais, hehe. Sou do sul do país, transito a região entre Torres e Balneário Camboriú. Me voltei para computação mais recentemente por uma série de fatores: uma antiga vontade de quando ainda era menino, a automatização de tarefas repetitivas do trabalho, e principalmente para mover minha carreira acadêmica de neurociência para as áreas de pesquisas com os modelos computacionais… existem muitas coisas interessante acontecendo nesse momento na intersecção dessas duas áreas (as deep-learning, os jogos e aplicativos (incluindo os de realidade aumentada) para a avaliação e reabilitação de neuro). Mas sou pé no chão de mais para ficar me focando apenas no que desejo, sempre gosto de contar com o erro ou a falha, nesse caso o outro benefício que poderia tirar da aprendizagem da programação é uma segunda profissão (e por isso minha pergunta focada no mercado).

Felizmente minha experiencia programando quando era pequeno foram o desenvolvimento de alguns menus para jogos, de brincadeira, costumava desistir do desenvolvimento do jogo quando concluía alguma grande etapa e percebia que poderia refazer melhor. Fiz algumas vezes até que minha vida tomou outro rumo.

Atualmente tenho evitado a prática para decidir mais precisamente o que irei fazer. Apesar disso tenho desenvolvido alguns algorítimos de conceitos matemáticos (revisando matemática, hehe).

É exatamente ai que me perco, eu não sei discriminar essas carreiras dentro da área de programação, e existe muita coisa. Me sinto incapaz de optar, por isso vim até aqui. Mas basicamente tenho que estar próximo do que planejei inicialmente para não me desmotivar: automatização das minhas tarefas, possibilidade de desenvolver os aplicativos (para minha área de atuação), e que permita maior experiencia para estudar e compreender as machinelearning.

(sei lá, to perdidão, kkk).

Sobre livros e cursos, eu desacredito em receitas também. Buscava mais as referencias essências mesmo, aquele livro de algorítimo, programação que não da de ficar sem conhecer. Tenho lido trechos de editoras grande como Pearson, mas nem sempre uma editora garante um bom livro. E também não há tempo de ver todos os cursos e fazer todas as leituras… fui ver alguns cursos e palestras que a microsoft oferecia e o cara fazia mais piada do que ensinava.

estou ansioso para isso! estou com uma pilha de pequenos algorítimos que desenvolvi, quero escrever e ver a magia acontecer. só quero ter um pouco de calma no iniciar.

:wink:


#4

(desculpem se estiver sendo insistente…)

mas alguém mais poderia me ajudar a clarear?

basicamente queria entender as diferentes áreas de atuação do programador, as particularidades de cada uma destas, ou seja que diferenças de conhecimento são solicitados, etc…


#5

Você disse que tem 30 anos, de fato idade não interfere, porém se você tem filhos ou esposa, a coisa mude de figura, mesmo você tiver terminando em nível superior um curso de informática, a maioria das pessoas demoram em torno de 5 anos para aprender somente uma linguagem e assimilar orientação a objeto, mas esse ainda não é o problema, o problema é você fazer o curso e conseguir estágio e o estágio virar emprego, só consegue estágio se tiver experiência, isso é triste mas é verdade.

Como adquirir experiência ? Se adquiri experiência criando ou participando de projetos. Não adianta ser bom em tudo, o importante é você ser muito bom somente em uma coisas, isso me refiro a linguagem de programação, eu iria sugerir de você escolher entre

1º Java ou C# ou PHP

PHP você consegue emprego mais rápido, porém o salário é uma vergonha, talvez seja por causa da crise.

Infelizmente você vai encontrar empresas que tinham preconceito com a idade, elas não iram dizer diretamente porque se trata de descriminação, mas irão dizer que você não é o perfil que eles procuram.
Então se você tem 30 anos vai ter que estudar que nem um condenado e perder toda sua vida social para se dedicar aos estudos de maneira que quando encontrar essas empresas, elas vejam em você vantagens em te contratar.

Para conseguir experiência é em empresas de fundo de quintal, porém nas grandes empresas o que somente consta é seu perfil de personalidade, tipo o que? Você é determinado? Como se comporta quando alguém diz uma coisa que você não gosta? fica pra baixo? Desanimado? Você é um homem de 30 anos inseguro? você tem que fazer todas essas perguntas para você mesmo, porque se uma empresa te contratar como programador com 30 anos é porque no futuro ela tem interesse de investir em você para ser um futuro gestor, essa forma de pensar somente acontece em grandes empresas.

Com tantas perguntas você passa a impressão de ser muito inseguro, os moleques que fazem misera em desenvolvimento de sistemas são caras super individualistas e prepotentes, isso acontece porque geralmente tem o senso de segurança exacerbadas, eu não falo isso porque todo programador é um cara ruim, mas que geralmente faz parte de um perfil de um profissional de desenvolvimento de sistemas, os médicos tem um perfil se serem sempre certos, nunca erram, sendo síndrome de serem deuses, a maioria das pessoas não sabem que para aprender a serem bons médicos tem que errar bastante e as vezes o erro pode custar a vida de alguém.

O primeiro passo que você deve dá é saber muito bem o inglês, porque senão você vai sempre ficar dependendo de livros em português e vídeo aulas de YOUTUBE Brasileiros, a maioria dos livros em português não presta, não seve pra nada, só para colocar dinheiro no bolso dos autores dos livros, então se você pretende ser um programador e está preparado para o mercado de trabalho, saber muito de inglês é sua obrigação, ter o perfil de personalidade agradável é fundamental e saber programar vai suar como recheio do bolo.

É duro essas palavras? É sim, mas a vida lá fora para conseguir emprego como programador vai ser mais dura ainda, vão pegar tão pesado que vai sentir vontade de desistir no meio do caminho.

Existem mais oportunidade no estado de São Paulo, então o primeiro passo seria juntar dinheiro para viajar.


#6

Bom, vamos lá. Hoje em dia existe algumas frentes:

Banco de dados
DBA: Database Administrator: ou seja, administrador de banco de dados. Ele é a pessoa responsável por manter o banco de dados saudável, performático, sem problemas. Ele também normalmente é o que instala e configura softwares de banco de dados, faz o backup e o recovery, ajuda a criar queries com mais performances. Mexe bastante no servidor, portanto saber linux é essencial

Programador de banco de dados: Oracle, Postgres, MySQL, são banco de dados, e neles possuem procedures a serem criadas. Como o drsmachado disse, o PL/SQL é a linguagem para o banco de dados Oracle. Muitas empresas, principalmente a dos anos 80/90, tem seus sistemas inteiro desenvolvidos no banco de dados. Essa linguagem não é o SQL. PL/SQL é diferente de SQL, porém quando você desenvolve, você interage a todo tempo com SQL e acaba nem vendo a diferença entre PL/SQL e SQL no código. Toda a lógica de negócio está no banco de dados, e usam uma outra linguagem apenas pra criação de telas e relatórios, talvez Centura, talvez Java Swing/JavaFX, etc, ou seja, sistemas desktops. O profissional dessa área não precisa conhecer muitos frameworks, já que não existem mtos, dá pra fazer muita coisa com a linguagem do banco de dados. Esse profissional também precisa saber muita regras de negócio, coisa que aprende dentro da empresa, pois cada empresa trabalho com um nicho de mercado. Porém tem que gostar de trabalhar com regras de negócio pesadas.

Sistemas desktop
Sistemas desktop são os que rodam direto no computador do cliente. Esses softwares de mercado, padaria, farmácia, normalmente são um desses. Acho que as principais linguagens para sistemas desktop são C#, Java com JavaFX (Swing sendo descontinuado) e outra mais antigas como VB e Delphi. O programador desktop, normalmente trabalha end-to-end, ou seja, estrutura as tabelas do banco de dados, desenvolve o backend do sotware e desenvolve também o frontend, já que normalmente sistemas desktop não precisam de coisas muito bonitas e existem vários componentes prontos.

Sistemas Web
Criação de sites, softwares que rodam na internet. É o forte do mercado hoje, tudo está voltado para a web. Há muitos casos até que sistemas “desktops”, que rodam somente no computador do cliente, são criados no formato web e instalado um servidorzinho dentro da empresa. Dentro dele existem algumas outras frentes:

  • Programador Backend

É o programador responsável por criar a base do software, não lida normalmente com criaçao de telas. Foca na lógica do sistema, no que ele faz. Cria APIs REST. Linguagens web tem de monte: Java, PHP, Ruby, Python, NodeJS. Precisa saber de web containers, protocolo HTTP, segurança, autenticação, banco de dados relacional e talvez não relacional (NoSQL)

  • Programador Frontend:

É o cara que cria os HTML, CSS e Javascript. Cria as telas dos sites e sistemas web. Essa área cresce cada vez mais,a arquitetura front está mudando, agora tem vários frameworks pra HTML, vários pra CSS, vários pra Javascript, e até testes para as telas. Em seu dia a dia, tem contato direto com os programadores backend, para fazer as duas partes se conversarem

  • Programador Fullstack

É o cara que faz o backend e o frontend. Profissionais com essa qualificação estão cada vez mais sendo requisitados no mercado.

  • UI/UX e designers

Há também aqueles apenas responsável por criar interfaces que sejam boas para o usuário final, desenham artes no Photoshop, CorelDraw, etc.

Mobile
Desenvolvedores mobiles, são os que desenvolvem aplicativos para celular. Há os programadores nativos para Android e para iOS e há também linguaguens híbridas, que desenvolve 1x e compila para diversas plataformas. O mercado está crescendo rápido, porém ainda está longe do mercado web.

IOT/Embarcado Ainda há a área de internet das coisas, e sistemas embarcados. Esses tem que saber de eletronica principalmente e alguma linguagem de programacao para sistemas embarcados. Esse profissional pode atuar na area de automação residencial/comercial , além de outros projetos para fins mais específicos.

Bom, acho que as áreas são essas, pelo menos as mais demandadas. Veja com qual perfil você se encaixa melhor. O forte e o que tem mais vagas no mercado são para desenvolvedores web, depois mobile, depois desktop, depois ux, depois IOT.

Falei apenas um overview das coisas mesmo, mas seria interessante, a partir desses tópicos, você se aprofundar um pouco mais, com pesquisas na internet e falar com profissionais da área.

Boa sorte


#7

Basicamente existem 2 tipos de problemas computacionais, aqueles problemas que envolvem complexidade exponencial, e aqueles que não.


#8

Primeiro, O que eu indico pessoalmente é, aprenda técnicas de estudo. Exemplo, mapa mental.


melhor site: http://app.mindmapmaker.org/ e também o William Douglas.

Segundo, Inglês é mais importante que linguagem, tem empresas que contratam por esse fato, e não são poucas, o inglês vai te dar mais liberdade para ter acesso a melhores materiais, e também para trabalhar em empresas multi.

Terceiro, se concentre na base. Quando tudo estiver ok, aprender qualquer coisa será fácil. exemplo, domine html, depois css, depois javascript. Quando dominar os 3, será fácil trabalhar com qualquer coisa relacionado a web. Mas antes de tudo, trabalhe bastante com algoritmo, a sua logica se tornara mais fluida.

Quarto, não se limite a opiniões de terceiros, vá além.

Quinto, não espere o emprego, faça seus projetos, utilize github, faça seu portfólio, experimente sua área.

Sexto, elimine tudo aquilo que não presta em sua vida, pois você vai ter que se dedicar mesmo, então deve-se pergunta, você realmente quer isso? é uma área bastante concorrida, vai exigir muito do seu tempo. Então converse bastante com seus familiares sobre o seu projeto.

Sétimo, faça um guia de estudo, isso já caí como técnica de estudo, mas enquanto você não aprender a maneira correta de estudar, não adianta, a maioria das pessoas se perdem por não estarem preparadas. Um dos maiores erros que vejo, é o integrante estudando apenas uma matéria, quando vai para outra, esquece a que estudo, pois de fato se passaram muito tempo.

Oitavo, vá a luta! tudo é importante, mas só na corrida você realmente irá se conhecer. só que mantenha o foco e não desista, porque a caminha é grande, porém o limite é dado somente por você.

Aqui vai alguns links uteis, em especial a da Caelum: https://www.caelum.com.br/apostilas/, as apostilas deles são de ótima qualidade e material resumido, voltado para as coisas mais importantes.

site para estudar, com baixo preço e com ótimos profissionais.

Use telegram, tem bastante grupos:



Nunca se limite! https://github.com/


#9

Valeu amigo, exatamente o que estava tentando clarear, ajudou muuuuito mesmo! Um ótimo trabalho.

Obrigado a todos que me auxiliaram, podemos continuar a conversar sobre, mas acredito que já solucionei meu problema

Abrç


#10

Faz um favor @tHex62656e646572, marca a resposta do @igor_ks como certa, lá onde ele postor tem um item para marcar como resposta certa, marca lá por gentileza.


#11

Ou seja, a questão não é idade, e sim ter condição de se dedicar 5 anos pra aprender uma nova atividade do zero.


#12

Em nenhum momento quis dizer que a idade pode interferir, mas mostrei outros pontos de vista para que o autor da postagem possa refletir, cabe somente á ele conseguir extrair coisas boas das coisas que foram ditas, copio?


#13

A sua resposta foi perfeita. Principalmente a parte da insegurança.

Um jovem começando agora e se sentir “perdido” a gente entende, mas um adulto de 30 anos? kkkkk


#14

Verdade amigo, verdade! Tens toda a razão.

Agora, independente da idade, existe uma parada importante e chamada maturidade.

Abrç, falou


#15

Você esta pelo menos 4-5 anos de distancia de precisar focar numa area especifica visando uma posição do mercado, e já esta preocupado com isso. É isso que estou falando.

Se preocupar com as coisas antes do tempo é insegurança, e não maturidade.


#16

#17

até logo