JavaRush /Blogue Java /Random-PT /Tanto o sueco quanto o ceifador. Quem é desenvolvedor Ful...

Tanto o sueco quanto o ceifador. Quem é desenvolvedor Full Stack e como se tornar um?

Publicado no grupo Random-PT
Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 1Existe uma posição no campo do desenvolvimento de computadores que é misteriosa e obscura, mas ao mesmo tempo sedutoramente atraente. Essa, como você provavelmente já entendeu, é a posição de um desenvolvedor Full Stack. Ele ganhou essa reputação controversa por uma série de razões, que são discutidas abaixo, mas, em resumo, é tudo porque os desenvolvedores e outros especialistas técnicos não conseguem chegar a um consenso sobre o que um verdadeiro desenvolvedor Full Stack deveria ser. Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 2

“Um desenvolvedor full stack é um mago técnico que conhece todas as linguagens e tecnologias de programação e também canta e dança lindamente.”

Ian Peters-Campbell é
um desenvolvedor experiente e fundador da empresa de software Stickbuilt.

Quem é um desenvolvedor Full Stack?

Então, o que é um desenvolvedor Full Stack no sentido tradicional? A definição mais comum nos diz que se trata de um especialista responsável por desenvolver todas as partes da funcionalidade do sistema, incluindo tanto o lado do usuário do produto (frontend) quanto o código interno executado em servidores distribuídos (backend). Via de regra, se a frase “full stack” aparecer em um anúncio de vaga em aberto, significa que o desenvolvedor deve ter conhecimentos e habilidades em desenvolvimento backend e frontend ao mesmo tempo. No entanto, muitas empresas vão além, e por “desenvolvedor Full Stack” eles querem dizer um soldado universal que não só é capaz de desenvolver todos os componentes de um produto de software, mas também pode assumir todo o resto, desde o gerenciamento do produto até a configuração do sistema operacional. sistema em servidores e consertar uma impressora de escritório. Na verdade, na maioria dos casos, é necessário que um desenvolvedor full stack tenha um nível decente de conhecimento do conjunto de tecnologias necessárias para a conclusão bem-sucedida do projeto. Assim, neste caso, “pilha” significa uma coleção de módulos e componentes de software combinados para alcançar a funcionalidade necessária. Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 3

Por que esse tema é tão controverso?

O debate sobre o que um desenvolvedor Full Stack realmente deveria ser, e se tal fera existe em quantidades suficientes para separar esses especialistas em um grupo separado, já vem acontecendo há algum tempo. Como observam programadores experientes, ele explodiu com renovado vigor depois que representantes do Facebook, no início de sua formação nos anos 2000, durante discurso em uma das conferências especializadas para desenvolvedores, afirmaram que contratam única e exclusivamente desenvolvedores Full Stack. “Se as definições tradicionais de desenvolvedor Full Stack te deixam confuso, então está tudo correto. Isso porque desenvolvedor Full Stack é algo efêmero. Não existe um modelo científico que descreva o que é uma “pilha completa”. Não há uma maneira clara de medir o nível de um desenvolvedor full stack em comparação com outros desenvolvedores semelhantes. O único consenso em relação ao Full Stack é que ninguém concorda com uma definição única da essência deste fenômeno. É por isso que tudo o que você lê sobre esse assunto nada mais é do que uma opinião subjetiva”, disse Ryland Goldstein, um experiente desenvolvedor e arquiteto de software. Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 4

Quatro pilares do desenvolvimento Full Stack

Porém, embora muitos especialistas defendam que desenvolvedor Full Stack é um conceito polêmico, não há menos vagas, muito pelo contrário. Portanto, vejamos quais são os conhecimentos em quais áreas, via de regra, você precisa ter para se candidatar a esse tipo de vaga.
  1. Desenvolvimento front-end.

    Normalmente, front-end refere-se a tecnologias de desenvolvimento web e linguagens de programação como HTML, CSS e JavaScript. Também inclui estruturas JavaScript, como React, e todas as outras tecnologias relacionadas ao lado “cliente” do produto.

    Por onde começar a estudar:

    Você pode começar com as estruturas Create React App ou Gatsby , com as quais é muito fácil criar um aplicativo React completo. É uma boa ideia aprender pré-processadores CSS, ferramentas CSS básicas como CSS-in-JS e ferramentas como Sass .

  2. Desenvolvimento de back-end.

    O backend inclui todo o código em execução nos servidores, incluindo aplicativos e APIs que fazem o site funcionar. As principais linguagens de programação para backend são Java, Python, Ruby e outras. Além disso, o desenvolvimento backend também inclui gerenciamento de banco de dados, o que requer conhecimento de SQL.

    Por onde começar a estudar:

    Em primeiro lugar, é recomendável começar por aprofundar os seus conhecimentos de JavaScript, como uma espécie de ponte entre o frontend e o backend em muitos casos. Em particular, é uma boa ideia aprender NodeJS , uma plataforma de software baseada no mecanismo V8 que transforma o JavaScript de uma linguagem altamente especializada em uma linguagem de uso geral.

    Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.

  3. Проджект-менеджмент.

    От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.

    С чего начать изучение:

    Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.

  4. DevOps.

    Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.

    С чего начать изучение:

    Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).

    Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 5

    Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.

Зарплаты Full Stack разработчиков

Quanto aos salários dos desenvolvedores full stack, eles não são muito mais altos, em média, do que seus colegas com especialização mais específica em desenvolvimento. Nos EUA, o salário médio dos desenvolvedores full-stack é de quase US$ 75 mil por ano, de acordo com PayScale . Ao mesmo tempo, o salário mínimo (para programadores em cargos full-stack) é de cerca de US$ 46 mil por ano, e o máximo é de cerca de US$ 114 mil por ano. Quanto aos países da ex-URSS, na Ucrânia, de acordo com o recurso Work.ua , o salário médio dos desenvolvedores full stack é de 35 mil hryvnia (cerca de US$ 1.300) por mês, enquanto em Kiev é de 45 mil (cerca de US$ 1.650). Na Rússia, de acordo com esses dados, os salários dos desenvolvedores full-stack, em média, variam de 40 mil rublos (US$ 530) a 150 mil rublos. (US$ 2.000). Se falarmos da média do mundo como um todo, então os especialistas que trabalham na posição que estamos considerando hoje ganham cerca de US$ 45 mil por ano. E na Europa, os desenvolvedores full stack recebem os salários mais altos na Dinamarca e na Suécia. Tanto o sueco quanto o ceifador.  Quem é desenvolvedor Full Stack e como se tornar um?  - 6

Como se tornar um desenvolvedor Full Stack?

Agora vamos examinar brevemente as habilidades, habilidades e tecnologias que você precisa dominar para se considerar um desenvolvedor full stack com total confiança e sem o menor pingo de ironia.
  1. Linguagens de programação.

    Um desenvolvedor full stack deve ser fluente em diversas linguagens de programação. Em primeiro lugar, claro, existem os principais: Java, PHP, C#, Python, Ruby, Perl, etc. Em uma palavra, as linguagens mais populares nas quais os principais processos de negócios do produto provavelmente serão escritos. É claro que será extremamente difícil aprender perfeitamente toda uma gama dessas línguas. Mas é preciso pelo menos dominar a gramática da linguagem que terá um papel importante no desenvolvimento, e também ter um bom conhecimento de como estruturar, projetar, implementar e testar um projeto baseado em uma ou mais linguagens.

  2. Frameworks e bibliotecas de código.

    Pois bem, um bom conhecimento das principais linguagens de programação na maioria dos casos inclui a capacidade de usar frameworks e bibliotecas populares, como Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis e outros.

  3. Tecnologias de front-end.

    A importância do conhecimento de tecnologias front-end para desenvolvedores full-stack também é grande e aumenta com o tempo. Hoje, quando a conveniência e o “invólucro” geral de um produto se tornam não menos importantes que a funcionalidade, uma parte significativa do sucesso geral do projeto recai sobre os ombros do frontend. Para Full stack, é necessário pelo menos conhecer tecnologias básicas de front-end, ou seja, HTML5, CSS3 e JavaScript, bem como dominar os principais frameworks e bibliotecas de front-end, nomeadamente JQuery, LESS, SASS, AngularJS e os mencionados anteriormente. Reagir.

  4. Base de dados.

    Os bancos de dados são outro componente importante da “pilha completa”, porque qualquer produto ou serviço precisa armazenar informações em algum lugar. Conseqüentemente, um desenvolvedor full stack deve conhecer pelo menos alguns dos sistemas de banco de dados mais populares e como trabalhar com eles. Os sistemas de banco de dados mais populares atualmente são MySQL, MongoDB, Redis, Oracle, SQLServer e outros. Entre eles, o MongoDB é o mais popular como banco de dados para vários projetos de Internet, o MySQL e o Oracle são os mais populares para back-end na área de produtos corporativos e o Redis é frequentemente usado para armazenar em cache e melhorar o desempenho do sistema.

  5. Gestão e habilidades sociais.

    Mas para obter bons resultados nesta área, simplesmente aprender alguma tecnologia ou linguagem de programação não será suficiente. O gerenciamento de projetos bem-sucedido envolve muitos componentes, incluindo gerenciamento de tempo, planejamento, boas habilidades de comunicação e muito mais. E tudo isso se adquire principalmente com a prática.

  6. Conhecimento básico de design.

    E por último, o conhecimento de design, nomeadamente UX/UI design, ainda que de nível básico, também é da competência de um desenvolvedor full stack.

    A propósito, aqui está um roteiro bem elaborado, projetado para exibir graficamente toda a variedade das tecnologias acima.

Conclusões e perspectivas

Como você pode concluir de tudo o que foi dito acima, para se tornar um desenvolvedor full-stack completo e talvez até mesmo um desenvolvedor full-stack padrão, você terá que despender muito tempo e esforço. No entanto, a prática constante e regular permite dominar disciplinas muito mais complexas ao longo do tempo. O principal é saber para onde ir, trabalhar as principais competências e não parar de autoaprendizado. Mas se você precisa fazer tais esforços para se tornar um desenvolvedor Full Stack de sucesso é outra questão. Se falamos das vantagens e desvantagens desse trabalho, as desvantagens são óbvias - é preciso estudar muito e entender muitas coisas diferentes. As vantagens são mais complicadas. Um desenvolvedor full stack geralmente tem a oportunidade de ter um impacto maior no projeto como um todo, comparado a programadores altamente especializados. Para a maioria, isto aumenta a satisfação no trabalho e, mais uma vez, o ChSV floresce e cheira. Ao passo que a compreensão de toda a gama de tecnologias e competências necessárias para um desenvolvimento bem sucedido abre por vezes possibilidades verdadeiramente ilimitadas. Acredita-se que os desenvolvedores full stack geralmente se tornam empreendedores de TI de sucesso. E, em geral, uma pessoa com esse conjunto de habilidades certamente não ficará sem trabalho , independentemente de qualquer crise.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION