rumo à certificação php

59
Rumo à certificação PHP Ari Stopassola Junior

Upload: ari-stopassola-junior

Post on 16-Apr-2017

561 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Rumo à Certificação PHP

Rumo à certificação PHPAri Stopassola Junior

Page 2: Rumo à Certificação PHP

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

Page 3: Rumo à Certificação PHP

Histórico

Page 4: Rumo à Certificação PHP
Page 5: Rumo à Certificação PHP

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

Page 6: Rumo à Certificação PHP

Logotipo para empresas que desejam contratar profissionais ZCPE

Desconto na compra de vouchers acima de 10 unidades: [email protected]

Page 7: Rumo à Certificação PHP

Preço e cupons de desconto

http://www.softwarediscountcodes.com/zend-phpcertification.htmlhttp://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.00http://shop.zend.com/en/php-certification.html$195.00

7 a 10%

Page 8: Rumo à Certificação PHP

Zend Education Advisory Board

Fonte: http://www.zend.com/services/certification/php-5-certification/education-advisory-board

Page 9: Rumo à Certificação PHP

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

Page 10: Rumo à Certificação PHP

Eraseable board<?phpinterface 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;?>

|

Page 11: Rumo à Certificação PHP

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…

Page 12: Rumo à Certificação PHP

Ansiedade

Page 13: Rumo à Certificação PHP

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

Page 14: Rumo à Certificação PHP

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.

Page 15: Rumo à Certificação PHP

FAIL

“Certification Exam Retakes”. Para mais informações escreva:

[email protected]

Page 16: Rumo à Certificação PHP

CONGRATULATIONS

Page 17: Rumo à Certificação PHP

Relatório emitido no ato

Page 18: Rumo à Certificação PHP

Diploma físico

Page 19: Rumo à Certificação PHP
Page 20: Rumo à Certificação PHP
Page 21: Rumo à Certificação PHP

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

Page 22: Rumo à Certificação PHP

Alguns assuntos tem mais peso que outros

Ênfase maiorFundamentos do PHP, Programação Orientada à Objetos e Segurança

Ênfase médiaFunções, Recursos Web, Arrays e Strings e Padrões

Ênfase menorBanco de Dados, Formato de dados e tipos e I/O (Entrada e Saída)

Page 23: Rumo à Certificação PHP

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)

Page 24: Rumo à Certificação PHP

Resposta: escolha única

Page 25: Rumo à Certificação PHP

LEFT JOIN

SELECT names.name,emails.emailFROM namesLEFT 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).

Page 26: Rumo à Certificação PHP

Resposta: escolha múltipla

Page 27: Rumo à Certificação PHP

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.

Page 28: Rumo à Certificação PHP

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

Page 29: Rumo à Certificação PHP

Freetext

abstract

Page 30: Rumo à Certificação PHP

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

Page 31: Rumo à Certificação PHP

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

Page 32: Rumo à Certificação PHP

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

Page 33: Rumo à Certificação PHP

Quiz

Page 34: Rumo à Certificação PHP

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

Page 35: Rumo à Certificação PHP

Inconsistências: underscore

Com underscore Sem underscorejson_decodebase64_decode

urldecodegzdecode

error_get_lastfunc_get_arg

fgetcsvgethostname

str_padstr_splitstr_replacestr_getcsv

strlenstrptimestrrevstristr

Page 36: Rumo à Certificação PHP

Inconsistências: case insensitive – i versus case

Case sensitive Case insensitive strpos striposstr_replace str_ireplacestrcmp strcasecmp

Page 37: Rumo à Certificação PHP

Inconsistências: verbo versus objeto

Objeto/verbo Verbo/objetosocket_readldap_read

readdirreadfile

date_parsexml_parse

parse_strparse_url

imap_checkpspell_check

checkdnsrrcheckdate

timezone_version_getrealpath_cache_getini_get

getheadersgetcwdgetenv

Page 38: Rumo à Certificação PHP

Ordem de parâmetros

• Ordem dos argumentos discrepante:array_map(callback, array)enquanto quearray_filter(array, callback)

• Anomalias na nomenclatura:bindtextdomain(domínio, diretório)bind_textdomain_codeset(domínio, codeset)

Page 39: Rumo à Certificação PHP

Quiz<?phpif("um"==0){

echo "Verdadeiro";}else {

echo "Falso";}?>

Page 40: Rumo à Certificação PHP

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)

Page 41: Rumo à Certificação PHP

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

Page 42: Rumo à Certificação PHP

Tela de revisão

Page 43: Rumo à Certificação PHP

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

Page 44: Rumo à Certificação PHP

ZCE (PHP 5.3) ZCPE (PHP 5.5)

• Opcode Cachezend_extension=opcache.soopcache.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 tabelatry {

escreve no banco de dados

desbloqueia tabela}catch exceção {

reporta problemasdesbloqueia tabela

}

Códi

go re

dund

ante

bloqueia tabelatry {

escreve no banco de dados}catch exceção {

reporta problemas}finally {

desbloqueia tabela}

Page 45: Rumo à Certificação PHP

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 Do

ug B

iere

r

Page 46: Rumo à Certificação PHP

Disciplina

Page 47: Rumo à Certificação PHP

Lista de discussão:Rumo à certificação PHPwww.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

Ari e

Gus

tavo

– no

v/20

13 e

m O

sasc

o (S

P)

Page 48: Rumo à Certificação PHP

Recomendada pela própria Zend!

Page 49: Rumo à Certificação PHP

Livros

• Rumo à Certificação PHP por Kinn Coelho Julião <[email protected]> https://leanpub.com/rumoacertificaophp

• Certification PHP 5.5: Zend Certified PHP Engineer por Cyrille Grandval e Julien Charpentier

• Em breve, pela editora Novateccoming soon…

Ari e Cyrille – jul/2014 em Gramado (RS)

Page 50: Rumo à Certificação PHP

App para Android - autoria de Fabricio Bedeschi: [email protected]

https://play.google.com/store/apps/details?id=com.quiz.phphttps://github.com/fabriciobrag/android-quiz-php

Page 51: Rumo à Certificação PHP

TCC de graduação em Informática

por João Paulo Cercal [email protected]

http://zcpe.cekurte.com

Page 52: Rumo à Certificação PHP

Logotipo feito cordialmente pelo francês Vincent Pontier –

criador do elePHPant (mascote oficial do PHP)

@Elroubio

Page 53: Rumo à Certificação PHP

Pasta compartilhada no DropBox e GoogleDrive

Pedidos diretamente ao nosso "guardião" das pastas compartilhadas:

Gustavo Pereira <[email protected]>

Page 54: Rumo à Certificação PHP

Dicas de quem já é certificado

https://www.youtube.com/watch?v=GE0d3rkkLmYhttps://www.youtube.com/watch?v=LOupOxdSWtohttps://www.youtube.com/watch?v=RuSZfeLpiv8

Page 55: Rumo à Certificação PHP

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

Page 56: Rumo à Certificação PHP

Simulados e Apps

Page 57: Rumo à Certificação PHP

Saindo do forno…Livro inédito sobre o assunto (principalmente em português) com a autoria de Matheus Marabesi e Michael Douglas Barbosa Araujo

Page 58: Rumo à Certificação PHP

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

Page 59: Rumo à Certificação PHP

E-mail: [email protected]: @stopassolaSkype: stopassolaLinkedIn: http://pt.linkedin.com/in/stopassolaFacebook: http://www.facebook.com/arijuniorSites:

http://www.perito.inf.brhttp://www.certificamp.com http://www.rumoacertificacaophp.com

Contatos