-
1.
Rumo à certificação PHP
Ari Stopassola Junior
-
2.
Vantagens
• Prestígio e reconhecimento junto a comunidade
• Processo rigoroso de aprovação
• Demonstra maturidade e proficiência na linguagem
• Permissão para uso dos logotipos oficiais nos cartões de visita
• Ganha uma licença perpétua do editor Zend Studio (versão
vigente)
• Visibilidade internacional através da “Zend Certified Engineer
Directory”, antigamente conhecida como “Yellow Pages”
• Diferencial e bonificações salariais
• Descontos em conferências Zend
• O título ZCE/ZCPE não expira!
• Acesso a grupos exclusivos
• Oportunidades de outsourcing
-
3.
Histórico
-
4.
Estatísticas:
Yellow Pages
Até o momento (março/2016) há somente 450
profissionais certificados ZCE/ZCPE no Brasil:
http://www.zend.com/en/services/certification/zend-certified-engineer-directory
http://www.zend.com/en/yellow-pages/ZEND004019
-
5.
Logotipo para empresas que
desejam contratar profissionais
ZCPE
Desconto na compra de vouchers acima de 10 unidades: sales@zend.com
-
6.
Preço e cupons de
desconto
http://www.softwarediscountcodes.com/zend-
phpcertification.html
http://www.softwarevouchers.com/zend-phpcertifications.html
http://www.retailmenot.com/view/zend.com
• Havia um bug no site onde o preço nos EUA (atribuído em
dólar) era o mesmo valor da Europa (porém em euros, mais
oneroso)
http://shop.zend.com/eu/php-certification.html
€170.00
http://shop.zend.com/en/php-certification.html
$195.00
7 a 10%
-
7.
Zend Education Advisory
Board
Fonte: http://www.zend.com/services/certification/php-5-certification/education-advisory-board
-
8.
Itens permitidos
• Eraseable board (quadro apagável)
• Protetor auricular
• Sua conduta é monitorada o tempo todo
• Qualquer suspeita de irregularidade, sua prova é
invalidada
Fonte: http://www.gedtestingservice.com/testers/noteboards
-
9.
Eraseable board
<?php
interface i1 {}
interface i2 extends i1 {}
interface i3 {}
class c1 {}
class c2 extends c1 {}
class c3 extends c2 implements i2, i3 {}
$c3 = new C3();
echo $c3 instanceof c1;
echo $c3 instanceof c2;
echo $c3 instanceof c3;
echo $c3 instanceof i1;
echo $c3 instanceof i2;
echo $c3 instanceof i3;
?>
|
-
10.
Reagendamento
• Pode-se reagendar quantas vezes quiser
durante UM ano, através do site
http://www.pearsonvue.com
• No mínimo 48 horas de antecedência
• Sem custo adicional
• Porém, há um efeito colateral…
-
11.
Ansiedade
-
12.
Estrutura do exame
• 70 perguntas randômicas
• Limite de 90 minutos para respondê-las
• ≅1 minuto e 17 segundos por questão!
• Caráter neutro
• Jamais se repetem
• Distribuídas entre os dez tópicos
• Tem mesmo peso
• Respostas incorretas não geram penalidades
-
13.
O que NÃO cai
Classes ou extensões externas provenientes da PEAR/Pyrus ou PECL (CodeSniffer,
PhpDocumentor, xDebug, profiler, GD, Phing, fPDF), ou vindo de outros repositórios
como a PHPUnit, Composer (gerenciador de dependências), Suhosin (sistema de
segurança em PHP), sistemas para controle de versão (CVS, Subversion, Git,
Mercurial), empacotamento PHAR, procedimentos para Integração Contínua com
Jenkins (e seus módulos como PHPMD-MessDetector, DRY-Copy&Paste Detector,
PHP_Depend), sistema de templates (Smarty e Twig), PHP-GTK, Frameworks
(CakePHP, CodeIgniter, Symfony, ZendFramework, YII, Prado), CMS (Typo3,
Wordpress, Joomla!, Drupal), sistemas especializados (Magento, SugarCRM ou
phpMyAdmin), editores (ZendStudio, NetBeans, PDT, Aptana, PhpED), mecanismos de
cache (APC, Memcache e Gearman), ORM (Propel ou Doctrine), funções SQL
específicas de algum banco de dados (que não sejam ANSI SQL), bases NoSQL e
ferramentas Zend como Zend Optimizer+, Zend Java Bridge, Zend Guard Loader e
outros.
-
14.
FAIL
“Certification Exam Retakes”. Para mais
informações escreva:
certification@zend.com
-
15.
CONGRATULATIONS
-
16.
Relatório emitido no ato
-
17.
Diploma físico
-
18.
Dez tópicos
• Fundamentos do PHP
• Funções
• Formato de dados e
tipos
• Recursos Web
• Programação
Orientada à Objetos
• Segurança
• I/O (Entrada e Saída)
• Strings e Padrões
• Banco de Dados
• Arrays
-
19.
Alguns assuntos tem mais peso
que outros
Ênfase maior
Fundamentos do PHP, Programação Orientada
à Objetos e Segurança
Ênfase média
Funções, Recursos Web, Arrays e Strings e
Padrões
Ênfase menor
Banco de Dados, Formato de dados e tipos e
I/O (Entrada e Saída)
-
20.
Enunciados
• Não há syntax highlight
• O algoritmo é sempre na linguagem PHP – não exibem
pseudocódigos
• Podem conter imagens para ilustrar (geralmente alguma
tabela de BD, diagrama UML etc)
• Independem de Sistema Operacional e Sistema
Gerenciador de Banco de Dados (SGBD)
• O teste também aborda, indiretamente, HTTP e SQL
(Structured Query Language), XML (XPath) e JSON
• Nem sempre eles estarão em blocos terminados em ?>, a
menos que haja HTML (ou JavaScript) embedded
• Pode fazer referência ao Apache (servidor de aplicação)
-
21.
Resposta: escolha única
✓
-
22.
LEFT JOIN
SELECT names.name,emails.email
FROM names
LEFT JOIN emails ON emails.id=names.id;
names emails
Prioriza a tabela da “esquerda”, que
foi referenciada primeiro. Ou seja:
permite que uma das tabelas
(names) retorne linhas mesmo que
não haja equivalência na outra tabela
(emails).
-
23.
Resposta: escolha múltipla
✓
✓
-
24.
Quiz
Preencha o espaço em branco com o nome
adequado.
A função _____________ chama
automaticamente os recursos necessários
sempre que um usuário tenta instanciar
uma classe inexistente.
__autoload()
Nomes de funções devem ser escritas em caixa
baixa (lowercase), sem espaços em branco, nem
explicações ou comentários. Com ou sem
parênteses.
-
25.
Resposta: campo
aberto
• É um tipo de pergunta menos frequente
• Recebe:
– Nomes de funções/métodos/classes
– Conteúdo de variáveis
– Saída de código
– Pequenos trechos (snippets)
– Tipos de erro: Notice, Warning ou Fatal
error
– Nome de constantes
– Cláusula do php.ini
-
26.
Freetext
abstract
-
27.
Comentar questão
• Se você detectar algo estranho na questão, é possível
fazer um comentário
• Dificilmente vai ocorrer alguma resposta dúbia,
enunciado mal construído, falta de dados…
• O cronômetro continua correndo, portanto use com
moderação
• Seus comentário serão enviados diretamente para a
Zend
-
28.
Cláusulas padrão do php.ini
• register_globals = Off
• magic_quotes_gpc = Off
• error_reporting = E_ALL
• display_errors = On
Lembrando que as diretivas podem ser
indicadas por 1 e 0, respectivamente On e Off.
Ex.: asp_tags = 0 (representa “Off”,
desligado).
Removidas na versão 5.4
-
29.
5 MIL funções
Devo memorizar todas elas?
E a ordem dos respectivos
parâmetros?
O foco do teste é em
análise de algoritmos ou
invés de memorização
-
30.
Quiz
✓
-
31.
Armadilhas: "to" versus "2"
• cal_to_jd
• ftok
• idn_to_ascii
• idn_to_unicode
• idn_to_utf8
• strtok
• strtolower
• strtotime
• strtoupper
• bin2hex
• deg2rad
• hex2bin
• image2wbmp
• ip2long
• jpeg2wbmp
• ldap_dn2ufn
• ldap_err2str
• long2ip
• nl2br
• png2wbmp
• px_date2string
• px_timestamp2string
• rad2deg
-
32.
Inconsistências: underscore
Com underscore Sem underscore
json_decode
base64_decode
urldecode
gzdecode
error_get_last
func_get_arg
fgetcsv
gethostname
str_pad
str_split
str_replace
str_getcsv
strlen
strptime
strrev
stristr
-
33.
Inconsistências: case
insensitive – i versus case
Case sensitive Case insensitive
strpos stripos
str_replace str_ireplace
strcmp strcasecmp
-
34.
Inconsistências: verbo versus
objeto
Objeto/verbo Verbo/objeto
socket_read
ldap_read
readdir
readfile
date_parse
xml_parse
parse_str
parse_url
imap_check
pspell_check
checkdnsrr
checkdate
timezone_version_get
realpath_cache_get
ini_get
getheaders
getcwd
getenv
-
35.
Ordem de parâmetros
• Ordem dos argumentos discrepante:
array_map(callback, array)
enquanto que
array_filter(array, callback)
• Anomalias na nomenclatura:
bindtextdomain(domínio, diretório)
bind_textdomain_codeset(domínio, codeset)
-
36.
Quiz
<?php
if("um"==0){
echo "Verdadeiro";
}
else {
echo "Falso";
}
?>
-
37.
Type Juggling
• PHP é uma linguagem fracamente tipada
• Teste com == não compara os tipos de dados,
diferentemente do === (idêntico)
• Implicitamente o PHP realiza casting automático
• converte a string “um” em integer, resultando em
inteiro 0
• Consequentemente o teste 0==0 é verdadeiro.
Ex.:
var_dump(intval("um")); //int(0)
var_dump(intval(0)); //int(0)
-
38.
Marcar para revisão
• Priorize as questões mais curtas
• Antes de realizar o teste de mesa, verifique se as
chamadas de função estão com a sintaxe correta
• Marque para revisão
-
39.
Tela de revisão
-
40.
ZCE (PHP 5.3) ZCPE
(PHP 5.5)
• Built-in web server: php -S localhost:8080
• Cronômetro de alta precisão:
$_SERVER['REQUEST_TIME_FLOAT']
• Novas formas de manipulação de arrays
$array2 = [1,2,3,4];
echo ObtemArray()[1];
• Class member access on instantiation:
echo (new DateTime)->getTimestamp();
• http_response_code(404);
• Traits
• Formato binário: $bin = 0b11001;
• Status de sessão: session_status();
• $this e use em Closures
• Progresso de upload: session.upload_progress.enabled = On
PHP 5.4
-
41.
ZCE (PHP 5.3) ZCPE
(PHP 5.5)
• Opcode Cache
zend_extension=opcache.so
opcache.enable=1
• Iteração com generators (yield )
• API para hashing de senha: password_hash("senha",
PASSWORD_BCRYPT);
• try, catch e finally:
PHP 5.5
bloqueia tabela
try {
escreve no banco de
dados
desbloqueia tabela
}
catch exceção {
reporta problemas
desbloqueia tabela
}
Código
redundante
bloqueia tabela
try {
escreve no banco de
dados
}
catch exceção {
reporta problemas
}
finally {
desbloqueia tabela
}
-
42.
Preparatório oficial da
Zend
• Zend PHP 5.3 Certification Training ministrado pelo instrutor Doug
Bierer: http://static.zend.com/topics/videos/training/php-5-3-cert-
introduction/
• Test Prep: PHP Certification - online (9 encontros de 2 horas cada)
http://www.zend.com/en/services/training/php-5-cert
US$ 1.000
• Test Prep: PHP Certification - recorded Sessions (7 horas no total)
http://www.zend.com/en/services/training/php-certification-course
US$ 499 DougBierer
-
43.
Disciplina
-
44.
Lista de discussão:
Rumo à certificação PHP
www.rumoacertificacaophp.com
• Criada em 31/07/2010
• Atualmente com 1.600 membros
• Ficou conhecida pela “Pergunta do dia”
• Hoje, dia 22/março, foi publicada a pergunta de nº
2.045
• Grupo no Facebook: http://www.facebook.com/groups/434330716587436/
Primeiro logo, criado por
Gustavo Pereira
ArieGustavo–nov/2013emOsasco(SP)
-
45.
Recomendada pela
própria Zend!
-
46.
Livros
• Rumo à Certificação PHP por Kinn Coelho Julião
<kinncj@php.net>
https://leanpub.com/rumoacertificaophp
• Certification PHP 5.5: Zend Certified PHP Engineer
por Cyrille Grandval e Julien Charpentier
• Em breve, pela editora Novatec
coming soon…
Ari e Cyrille – jul/2014 em Gramado (RS)
-
47.
App para Android - autoria de Fabricio Bedeschi:
fabricio.bedeschi@gmail.com
https://play.google.com/store/apps/details?id=com.quiz.php
https://github.com/fabriciobrag/android-quiz-php
-
48.
TCC de graduação em Informática
por João Paulo Cercal
jpcercal@gmail.com
http://zcpe.cekurte.com
-
49.
Logotipo feito cordialmente pelo
francês Vincent Pontier – criador do
elePHPant (mascote oficial do PHP)
@Elroubio
-
50.
Pasta compartilhada no DropBox e
GoogleDrive
Pedidos diretamente ao nosso "guardião" das pastas
compartilhadas:
Gustavo Pereira <gustavoper@gmail.com>
-
51.
Dicas de quem já é certificado
https://www.youtube.com/watch?v=GE0d3rkkLmY
https://www.youtube.com/watch?v=LOupOxdSWto
https://www.youtube.com/watch?v=RuSZfeLpiv8
-
52.
Roteiro
• Livro “PHP Programando com Orientação a Objetos” do autor Pablo
Dall'Oglio:http://www.novatec.com.br/livros/phpobjetos2/
• Vídeo-aulas da Lynda, Udemy e iMasters
• Analisar todas as "Perguntas do dia" da lista "Rumo à Certificação
PHP" http://rumoacertificacaophp.com/
Tempo
US$
19,95
-
53.
Simulados e Apps
-
54.
Saindo do forno…
Livro inédito sobre o assunto (principalmente em português)
com a autoria de Matheus Marabesi e Michael Douglas
Barbosa Araujo
-
55.
Certificamp
• Inspirado no http://www.bignerdranch.com
• "Acampamento" de estudos para a certificação
PHP
• Curso itinerante, presencial e de imersão
• Preparatório para o exame "Zend Certified PHP
Engineer"
https://www.facebook.com/certificamp
https://www.twitter.com/certificamp
-
56.
E-mail: arijunior@gmail.com
Twitter: @stopassola
Skype: stopassola
LinkedIn:
http://pt.linkedin.com/in/stopassola
Facebook:
http://www.facebook.com/arijunior
Sites:
http://www.perito.inf.br
http://www.certificamp.com
http://www.rumoacertificacaophp.com
Contatos
Estratégias
Pertencer a grupos de elite restritos a ZCEs.
Certifica competência técnica e não comportamental.Requer maturidade na linguagem.
Em média, a cada 3 anos.
Auxilia os empregadores a predizer se o profissional conseguirá aplicar a tecnologia PHP 5.5 em problemas reais no desenvolvimento de software e de negócio. É uma garantia de que o desenvolvedor possui padrões mínimos de experiência e conhecimento
Variam de 7% a 10% de desconto e uso ilimitado. Experimentem acessar o site da Zend, simule uma compra qualquer (no link "Store"), digite (e aplique) o ID do cupom onde diz "Discount Codes" e observem.
Certifique-se da data limite do cupom.Dica marota
Para os testes de mesa
Resposta: 111111
Imagem extraída de: http://blog.placeboeffect.com/natural-anxiety-relief/
No caso de “Fail”, o sistema gera um relatório do nível de conhecimento apresentado nas diferentes áreas de estudo. É um tanto vago, pois mostra apenas uma barra de progressão e não informa exatamente os erros e acertos.
http://www.pearsonvue.com/athena/static/finish/index.asp
A partir desse momento você já começa a desfrutar das vantagens de ser um profissional certificado.
Recomendo atualizar seus dados no site da Zend (principalmente o endereço de correspondência) e aguardar a chegada do certificado “físico”, uma carta de boas-vindas com a assinatura em punho do Training Program Manager da Zend e um adesivo exclusivo.
Atualize seus dados no site da Zend para que chegue corretamente
Abrangência
Inclusive o ZF estimula que a tag PHP de fechamento seja omitida.Alternativas iguais, mas perguntas diferentes.
Resposta: B (5)
Teoria dos conjuntos – oitava série do ensino médio
A: OK, B: REST suporta JSON, mas também XML e HTML (portanto não), C: SOAP só usa POST (e não GET), portanto também não.http://www.soapui.org/Best-Practices/testing-the-other-verbs.htmlD: faz sentido
Classes abstratas e interfaces são as assinaturas das classes, o esqueleto de como elas devem ser implementadas.As abstratas suportam implementação, enquanto que as interfaces não.
Fracamente tipada
Fonte: http://www.pearsonvue.com/athena/static/review/flag_for_review.asp
$_SERVER['REQUEST_TIME_FLOAT']
Pseudo-código
Cronograma
Área administrativa:http://192.241.145.236:9000/
Existia a Vulcan