├── EstagiarioProgramacao.md ├── ProgramadorJunior.md ├── ProgramadorPleno.md ├── ProgramadorSenior.md └── README.md /EstagiarioProgramacao.md: -------------------------------------------------------------------------------- 1 | # Estagiário PHP 2 | 3 | ## Responsabilidades 4 | 5 | O estagiário tem como responsabilidade a busca de aprendizado e experiência prática. 6 | 7 | ## Requisitos 8 | 9 | - Conceitos básicos de lógica de programação; 10 | - Conceitos básicos de HTML; 11 | 12 | # Desejável 13 | 14 | - Conhecimentos básicos da sintaxe PHP; 15 | 16 | # Perfil esperado 17 | 18 | - Sedento por conhecimento ao extremo (sempre pesquisando e perguntando); 19 | - Bom relacionamento com os colegas; 20 | - Boa comunicação oral e escrita; 21 | -------------------------------------------------------------------------------- /ProgramadorJunior.md: -------------------------------------------------------------------------------- 1 | # Programador PHP Junior 2 | 3 | ## Responsabilidades 4 | 5 | É um desenvolvedor em início de carreira, acabou de sair da faculdade (ou está ainda cursando) e não tem experiência comprovada no desenvolvimento de software dentro de uma empresa. 6 | Seu foco de atuação é no desenvolvimento de cada unidade de um software, e para isso deve receber as especificações completas dos problemas, contendo: entradas, comportamentos esperados e saídas. 7 | 8 | ## Requisitos 9 | 10 | - Funcionamento e uso das estruturas básicas de programação (if, else, else if, for, foreach, while, do/while, switch); 11 | - Conceitos básicos de orientação à objetos (objeto, classe, método, abstração, polimorfismo); 12 | - Utilização básica de bancos de dados relacionais 13 | - Queries básicas (SELECT, INSERT, UPDATE e DELETE); 14 | - Uso de JOINs (INNER, OUTER, LEFT, RIGHT, ...); 15 | - Criação correta de páginas web 16 | - Estrutura semântica dos componentes usando o HTML; 17 | - Estilização dos componentes usando CSS; 18 | - Comportamentos dos componentes utilizando JS não obstrusivo; 19 | - Entendimento básico do protocolo HTTP (RFC 2616) 20 | - Criação de URIs semânticas; 21 | - Configurações básicas do PHP (diretivas no php.ini) 22 | - memory_limit; 23 | - display_errors; 24 | - error_reporting; 25 | - log_errors; 26 | - short_open_tag; 27 | - post_max_size; 28 | - upload_max_filesize; 29 | - date.timezone. 30 | - Configurações básicas do webserver (Apache/Nginx) 31 | - Virtual hosts; 32 | - mod_rewrite; 33 | - Conhecimento básico sobre sistemas operacionais e linha de comando. Comandos como `ls`, `cd`, `pwd`, `history`, `mkdir`, `cp`, `mv`, `man`, `cat`, `head`, `tail`, `touch`, `less`, `nano`, `vi`, `chmod`, `chown`, `apachectl`, `apt-get`, `yum`; 34 | - Conhecimento básico do uso do git (checkout, pull, commit, push, add, reset); 35 | - Conhece e utiliza ao menos a PSR­0 36 | 37 | # Desejável 38 | 39 | - Conhecimentos básicos de algum framework MVC 40 | 41 | # Perfil esperado 42 | 43 | - Sedento por conhecimento ao extremo (sempre pesquisando e perguntando); 44 | - Organizado; 45 | - Recebe bem opiniões externas sobre seu trabalho; 46 | - Bom relacionamento com os colegas; 47 | - Boa comunicação oral e escrita; 48 | - Participativo em comunidades online. 49 | -------------------------------------------------------------------------------- /ProgramadorPleno.md: -------------------------------------------------------------------------------- 1 | # Programador PHP Pleno 2 | 3 | ## Responsabilidades 4 | 5 | Desenvolvedor com experiência um pouco mais consolidada no desenvolvimento de software. Seu foco de atuação é na análise e desenvolvimento das funcionalidades dos software, sugerindo melhorias no processo e auxiliando os programadores junior e estagiários sempre que houver possibilidade/necessidade. 6 | 7 | ## Requisitos 8 | 9 | - Todas as do Programador PHP Junior, porém com maior desenvoltura (qualidade, produtividade e autonomia); 10 | - Domina os diagramas de classe e sequência da UML; 11 | - Conhecimento mais aprofundado sobre o protocolo HTTP 12 | - Utilização correta dos métodos (ao menos OPTIONS, GET, POST, PUT e DELETE); 13 | - Utilização correta dos status codes (envio e recebimento); 14 | - Negociação de conteúdo através dos headers de requisição (language, 15 | content­type, encoding, etc). 16 | - Utilização avançada de bancos de dados relacionais 17 | - Gerenciamento de schemas; 18 | - Gerenciamento de permissões; 19 | - Modelagem de dados, planejando os schemas para ter utilização otimizada dos tipos de colunas ; 20 | - Criação de queries complexas (subqueries) 21 | - Conhecimento intermediário sobre sistemas operacionais (processos, redes, estruturas de diretórios e configurações básicas) e linha de comando. Comandos como `ps`, `kill`, `ifconfig`, `nmap`, `hostname`, `find`, `grep`, `>`, `>>`, `|`, `&`, `su`, `sudo`, `wget`, `crontab`; 22 | - Conhecimento básico de segurança e criptografia de dados 23 | - SSL; 24 | - Geração de hash utilizando salt (HMAC); 25 | - Algoritmos de criptografia (DES, 3DES, etc). 26 | - Codificar a segurança da aplicação de acordo com as especificações fornecidas por especialistas em segurança de TI. 27 | - Sabe fazer as tarefas de debug e profile usando o xdebug ou zend debugger com o objetivo de localizar erros e otimizar os códigos; 28 | - Conhece os design patterns básicos 29 | - Abstract Factory; 30 | - Factory Method; 31 | - Singleton; 32 | - Adapter; 33 | - Decorator; 34 | - Proxy; 35 | - Facade; 36 | - Composite; 37 | - Strategy; 38 | - State. 39 | - Codifica seguindo ao menos KISS (keep it simple, stupid), DRY (don't repeat yourself), 40 | SRP (single responsibility principle) e DIP (dependency inversion principle); 41 | - Possui entendimento básico e aplica as regras de clean code e object calisthenics; 42 | - Conhecimento de arquitetura de software, princípios SOLID e refatoração; 43 | - Conhecimento e compreensão da motivação do gerenciamento de assets (otimização de imagens, minificação, concatenação, cache busting); 44 | - Conhece sobre o grupo de interoperabilidade entre frameworks (PHP-FIG) 45 | e suas recomendações (PSRs) 46 | - Sabe as distinções entre PEAR e o Composer (e sabe utilizar ambos); 47 | - Criação de testes de unidade; 48 | - Conhecimento mais avançado do uso do git (merge, rebase, stash, branch, tag, 49 | cherry­pick); 50 | - Gerenciamento de branchs para desenvolvimento em equipe; 51 | - Consegue analisar um problema, pensando nas necessidades a serem contempladas 52 | computacionalmente, trazendo soluções viáveis; 53 | - Conhecimento sobre Cloud Computing (IaaS, PaaS e SaaS); 54 | - Conhece o manifesto ágil e seus princípios, e entende os papéis definidos pelo SCRUM 55 | 56 | 57 | # Desejável 58 | 59 | - Conhecimentos avançados de algum framework MVC 60 | - Conhecimentos em bancos de dados NoSQL 61 | 62 | # Perfil esperado 63 | 64 | - Disciplina e organização é fundamental; 65 | - Sedento por conhecimento; 66 | - Traz críticas em relação a ferramentas utilizadas, com o objetivo de melhorar o 67 | desenvolvimento; 68 | - Pesquisador nas horas vagas, trazendo novidades que podem ser realmente aplicadas nos projetos; 69 | - Senso crítico; 70 | - Engajamento com a equipe, para crescimento sustentável de todos. 71 | -------------------------------------------------------------------------------- /ProgramadorSenior.md: -------------------------------------------------------------------------------- 1 | # Programador PHP Sênior 2 | 3 | ## Responsabilidades 4 | 5 | Desenvolvedor com habilidades extremamente evoluídas em todas as etapas do desenvolvimento de software e na priorização correta das demandas existentes e alta capacidade de entrega. 6 | 7 | ## Requisitos 8 | 9 | - Todas as do Programador PHP Pleno, porém com maior desenvoltura (qualidade, produtividade e autonomia); 10 | - Conhecimento sobre o funcionamento interno de um framework e qual a motivação de sua utilização sabendo identificar seus componentes e suas funcionalidades; 11 | - Conhecimento e utilização de ferramentas de qualidade de código e testes automatizados 12 | - Conhecimentos em Continuous Integration (CI) e instalar/configurar/utilizar ferramentas para automatizar deploy; 13 | - Conhecimento sobre a configuração manual de um servidor. Instalação e configuração do sistema operacional, do servidor web, do PHP e de seus módulos e do servidor de banco de dados, configurações de rede e liberação no firewall; 14 | - Conhecimento sobre CGI, FastCGI e mod_php; 15 | - Conhecimento sobre escalabilidade; 16 | 17 | # Desejável 18 | 19 | 20 | # Perfil esperado 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | CarreiraPHP 2 | =========== 3 | 4 | Sugestões de descrição de carreiras e cargos 5 | - [Estagiário](EstagiarioProgramacao.md) 6 | - [Programador Junior](ProgramadorJunior.md) 7 | - [Programador Pleno](ProgramadorPleno.md) 8 | - [Programador Senior](ProgramadorSenior.md) 9 | --------------------------------------------------------------------------------