PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Zend Certified Engineer

with 28 comments

Seit Montag gehöre ich zu den aktuell 371 zertifizierten PHP5-Entwicklern in Deutschland, ich darf mich nun also „Zend Certified Engineer“ nennen *jubel*! Hier ist der Beweis, meine eigene Seite in den Zend-Yellow-Pages.

Bereits letztes Jahr kam die Idee, sich an diese Aufgabe zu wagen, doch nachdem ich mir Lektüre besorgt hatte (PDFs mit mehreren hundert Seiten) sowie einige gute Blogeinträge zu dem Thema gefunden hatte, habe ich es doch wieder einige Monate schleifen lassen, man hat ja „wichtigeres zu tun“. Ich hatte mir außerdem 10 „Online Praxis Tests“ gekauft, die Mitte diesen Jahres ablaufen, und so habe ich mich die letzten 2 Wochen nochmal intensiv reingekniet. Nachdem alle ausgedruckten Seiten durchgearbeitet waren habe ich 4 Online-Praxis-Tests gemacht, die ich alle direkt mit „Excellent“ bestanden habe, und so habe ich kurzerhand am Sonntag Nachmittag einen Termin für die Prüfung festgemacht: Montag morgen 9 Uhr in Bielefeld.

Ich sollte spätestens 8:45 vor Ort sein, was ich auch auf die Minute schaffte nachdem ich eine Sperrung der Bielefelder Hauptstraße umfahren musste, was mich 10 Minuten kostete und ich dadurch recht nervös wurde. Kurzer Check-In bei der netten Sekretärin des Test-Centers und nach der Vorlage von 2 Ausweise und einer geleisteten Unterschrift wurde ich zum Rechner geführt wo das Prüfungsprogramm wurde gestartet. Das ging irgendwie alles zu schnell und zu unproblematisch, um irgendwie nervös zu werden, wirklich tolle Abwicklung vor Ort.

Die Fragen an sich waren knackig, vom Typ her angelehnt an die Online-Praxis-Tests, jedoch teilweise echt anders und haariger. Wer kennt schon den zweiten Parameter von count() und weiß was passiert wenn da eine 1 drinsteht? count() schon tausendmal benutzt, aber noch nie diesen optionalen zweiten Parameter. Da habe ich aber durch Zufall richtig geraten 😉

Einige andere Fragen, die echt niemand weiß, habe ich völlig daneben gelegen, es waren echt Dinge dabei die so kaum in der Praxis vorkommen danke IDE-Syntaxhighlighting und Autovervollständigung. Aber gut, da muss man durch. Unten findet ihr einige (abgeänderte) Beispiele, an die ich mich noch erinnern kann und wo ich echt grübeln musste. Und von denen gab es einige. Es gab noch einige mehr, aber die kann ich nicht wiederholen, hauptsächlich ging es dabei um Streams oder XML Parsen, das waren eh meine Schwächen.

Für die 70 Fragen hat man 90 Minuten Zeit. Nach ungefähr 80 Minuten und erneutem Review aller Antworten habe ich die Prüfung beendet, die Sekretärin am Empfang wollte mir noch eine „Timetable“ ausdrucken was aber nicht klappte, und ich fuhr guter Laune zur Arbeit, denn am Ende des Tests wurde auf dem Bildschirm bereits angezeigt, dass ich die Zertifizierung bestanden hatte. In den nächsten Tagen erhalte ich dann noch Post mit dem ausgedruckten Papier für die Wand.

Zusammenfassend: Wer sich bereits einige Jahre mit PHP beschäftigt und sich für die entsprechenden Vorbereitungen Zeit nimmt, kann für schlappe 125 Euro ein tolles Zertifikat erhalten. Man sollte es jedoch nicht unterschätzen, wenn man nur nebenbei mal 2-3 Webseiten erstellt hat wird man es wohl nicht schaffen, etwas Erfahrung benötigt man schon, umso weniger muss man auswendig lernen und umso eher kann man teilweise die richtigen Antworten erraten.

Übrigens gibt es in den nächsten Tagen noch einen Artikel, in dem ich die übrig gebliebenen 6 Praxis-Tests verschenken werde (Wert: 14 Euro).

Wer von euch überlegt denn aktuell diese Prüfung zu machen? Vielleicht kann ich ja die ein oder andere Hilfestellung geben.

————-
Was ist die Ausgabe dieses Scripts?

echo strlen(md5(rand(), TRUE));

1. 32
2. 24
3. abhängig vom Ergebnis von rand() unterschiedlich
4. 16
5. Parse error
————-

define('PI', 3.141);
class One
{
    const PI = PI;
}

class Two
{
    public static function getPi()
    {
        return One::PI;
    }
}

echo Two::getPi();

Was ist die Ausgabe dieses Scripts?
1. E_ERROR
2. E_WARNING
3. NULL
4. 3.141
5. Parse error
————-
Was ist die Ausgabe dieses Scripts? (Textfeld Eingabe, kein Multiple-Choice)

echo '1' + (print '2') * 4;

————-

class One
{
    public $var = 'Tom';
}

class Two
{
    public function getName()
    {
        return One::$var;
    }
}

$two = new Two;
$two->getName();

Was gibt dieses Script aus?
1. NULL
2. An E_NOTICE
3. Parse error
4. Tom
5. Other
————-
Was ist der korrekte Weg, den Lese-Timeout für einen Stream auf 10 Sekunden zu setzen? (ich glaub 2 davon waren richtig)
1. ini_set(‚default_socket_timeout‘, 10)
2. stream_set_meta_data(‚timeout‘, 10)
3. $stream->setTimeout(10)
4. stream_set_timeout($stream, 10)
5. set the fifth parameter in fsockopen()

Written by Michael Kliewe

April 21st, 2010 at 10:30 am

28 Responses to 'Zend Certified Engineer'

Subscribe to comments with RSS or TrackBack to 'Zend Certified Engineer'.

  1. Hey, meinen Glückwunsch!
    Ich überlege auch schon länger und habe mir auch das entsprechende Buch gekauft. Allerdings: Da ich noch nebenher studiere komme ich irgendwie nicht so recht dazu, mich auf diese Prüfung zu konzentrieren :g
    Aber bei der Verlosung mache ich mit, ich will mal so einen Praxis-Test machen … nur um mal zu sehen, wo ich so stehe.

    Sascha Presnac

    21 Apr 10 at 11:00

  2. Glückwunsch!

    Bin gerade auch dabei mir das zu überlegen, habe die letzten 2 Jahre jedoch primär CMS-Zeug gemacht und gar nicht mehr so viel selber programmiert. Werde aber ab Mai wieder verstärkt damit anfangen und ende des Jahres, anfang 2011 dann mal das mit der Zertifizierung versuchen.

    Sind das primär Multiple-Choice und dabei Multisolution?

    Bin gespannt auf Deinen nächsten Artikel und werde um die Praxistests buhlen 😉

    tscheckenbach

    21 Apr 10 at 11:01

  3. Ich spiele schon lange mit dem Gedanken, ZCE zu werden. Aber ich habe mir schon gedacht, dass genau solche Fragen, wie du sie hier beispielhaft gepostet hast, zu Hauf vorkommen und mir definitiv das Genick brechen würden. Aber vielleicht habe ich ja Glück und ich bekomme einen der Online Praxistests 😉 Die Zeit mich da rein zu knien muss ich mir irgendwann einfach mal nehmen! Da finde ich die Idee, einfach mal ein Praxistestpaket zu bestellen, dass nach einer gewissen Zeit abläuft, einen eventuell guten Weg, um mich dann doch mal dazu zu bewegen, die Tests zu machen.

    Glückwunsch! 🙂

    Christian

    21 Apr 10 at 11:07

  4. Meinen Glückwunsch.

    Ich habe bereits öfter drüber nachgedacht, bisher allerdings noch unschlüssig. Es fehlt auch ein wenig die Zeit.
    Hast du zu deinen Fragen irgendwo die Antworten? 🙂

    Martin Kuckert

    21 Apr 10 at 11:13

  5. 1. Frage: Antwort 4 (16)
    weil der zweite Parameter von md5() dazu führt, dass der Hash als 16-stelliger Binärwert zurückgegeben wird.

    2. Frage: Antwort 4 (3.141)
    Hätte ich getippt, hab es aber sicherheitshalber auch ausprobiert.

    3. Frage: „25“
    print wird als erstes ausgeführt, weil der Ausdruck ausgewertet werden muss, um echo erfüllen zu können. => 2
    print liefer immer den Wert 1 zurück, daher ergibt 1 + 4 => 5

    4. Frage: Antwort 3 (Parse Error)
    Es wird versucht, auf eine nicht vorhandene static-Variable zuzugreifen.

    5. Frage: Antworten 1 + 4 (ini_set + stream_set_timeout)
    Harter Brocken.
    Die Möglichkeiten 2 und 3 gibt es nicht, und der 5. Parameter von fsockopen setzt den Timeout nur für den Verbindungsaufbau.

    Gratulation btw! 🙂

    Tyco

    21 Apr 10 at 12:44

  6. @tscheckenbach: das variiert natürlich je nachdem was für Fragen man bekommt, aber bei mir waren es ca. 30% Multisolution, 50% Multiple-Choice und 20% Texteingabe. Ungefähr…

    @Tyco: Fast richtig, Frage 4 ist aber ein Fatal error, kein Parse Error.
    Parse Error werden bereits ganz am Anfang vom Parser erkannt, das Script wird erst garnicht gestartet. Bei Fatal Errors wird das Script bis zu der Stelle ausgeführt wo der Fehler auftritt und bricht dann ab.
    Antwort 5 „Other“ wäre da richtig. Den Rest hast du aber gut erklärt, Danke dafür. Wieviele davon hättest du ohne ausprobieren richtig gehabt?

    Michael Kliewe

    21 Apr 10 at 12:52

  7. Glückwunsch!
    Hab auch schon überlegt ob ich das Zertifikat mache.
    Wäre toll wenn ich eines der Tests von dir gewinnen würde! =D

    David

    21 Apr 10 at 13:46

  8. Noch eine Kleinigkeit:
    Kannst du die Lösungen in einem Spoiler posten?

    David

    21 Apr 10 at 13:46

  9. @Michael Kliewe:
    Ohne Ausprobieren und Nachschlagen hätte ich nur die 2. und 3. Frage richtig gehabt.

    4. hätte ich spontan auf eine Notice getippt, was eigentlich falsch war.
    1. war für mich nur durch Nachschlagen beantwortbar, weil ich mir sowas einfach nicht auswendig merke.

    5. war für mich auch nur durch Nachschlagen lösbar, erschwert dadurch, dass ich in PHP noch nie viel mit Streams gearbeitet habe.

    Tyco

    21 Apr 10 at 14:24

  10. Willkommen im Club! 😀

    Phil

    21 Apr 10 at 14:46

  11. Hi,gratulation erstmal.

    Ja ich habe auch lange überlegt und mir die nötige Literatur dazu gekauft, die mich dann aber verzweifeln lies (aufgrund der schlechten Recherche von den Autoren) => http://ragtek.org/blog/allgemeines/anti-buchtip-zend-php-zertifizierung-ubungsbuch-mit-deutschen-fragen/

    Mittlerweile habe ich es Aufgrund von Zeitmangel wieder aufgegeben.

    ragtek

    21 Apr 10 at 17:17

  12. Ich hab vor 3 Jahren angefangen und mir auch das Buch „Zend PHP 5 Certification Study Guide“ gekauft. Doch irgendwie ist das wieder eingeschlafen. Dank deines Blogeintrags werd ich doch weiter machen…
    Die aktuell 371 zertifizierten PHP5-Entwicklern in Deutschland spornen doch an. Ist ja nicht wie beim MCSE, was irgendwie jeder Umschüler hinterher geworfen kriegt.

    Hatte übrigens 3 von 5 ohne spicken richtig gehabt. Mir war nicht klar das print eine 1 zurückliefert und das es zwei Möglichkeiten beim Lese-Timeout eines Streams gibt.

    Sven

    21 Apr 10 at 19:31

  13. Glückwunsch!

    steve

    22 Apr 10 at 10:56

  14. Nachdem ich nun schon eine ganze Weile aus Spaß an der Freud Schülern PHP-Unterricht gebe und der erste dadurch einen super Start in die Ausbildung hinlegen konnte – wurde ich gefragt ob es was gibt damit er nen Papier in der Hand hat. Gut, ich selbst kann schlecht ein Zertifikat ausstellen, also fiel mir der ZCE wieder ein. Ich habe die Prüfung selbst bisher nicht gemacht, weil ich damals den Eindruck hatte dass das Papier nicht besonders viel wert war, als ich zum ersten Mal davon hörte. Referenzen sind ja doch eine gebräuchlichere Währung als Papier in der Branche – so sind zumindest meine Erfahrungen. 😉

    Auf Wunsch meines Schülers bereite ich ihn (und damit automatisch auch mich) nun dann doch auf den Test vor und eines muss ich natürlich zugeben: Viele der Fragen die im offiziellen Fragenbuch stehen ließen mich tatsächlich nach mehreren Jahren PHP-Entwicklung noch nachdenklich werden. In den meisten Fällen weil man bestimmte Dinge nie oder nur sehr selten in der Praxis eingesetzt und auf das PHP-Handbuch zurückggegriffen hat. Man muss ja nicht alles wissen – man muss nur wissen wo es steht.

    Dominik

    22 Apr 10 at 16:20

  15. Erstmal Glückwunsch zu dem Zertifikat! 🙂

    Kann denn jemand ein Buch/PDF empfehlen, dass man zum lernen heranziehen könnte? Hab irgendwie auch Lust auf der Zertifikat bekommen, hehe. 😉

    Die Online-Tests werd ich mir aber auf jedenfall schon mal hohlen, ein Buch oder ähnliches wäre trotzdem noch nett.

    Zu den Fragen: Schreib zwar nun schon seit <= 5 Jahren PHP, aber mir war der zweite Parameter von md5() bis gerade fremd.
    Bei den Streams hätte ich wohl raten müssen, hab bisher zu wenig damit gemacht. Ansonsten war eigentlich alles logisch.

    Simon

    22 Apr 10 at 19:03

  16. Gleich die erste Frage hat mich erwischt, aber wann benutzt man schon den zweiten Parameter von md5()? Die anderen Fragen liefen besser.

    Der Artikel hat mich angeregt, mich auch an diese Prüfung zu wagen. Bin momentan ohnehin nur mit Prüfungen beschäftigt (Student ;)), da macht eine mehr doch auch nichts mehr aus…

    sacrion

    24 Apr 10 at 01:09

  17. Gratulation auch meinerseits:). Ein Kinderspiel scheint der Test nicht gewesen zu sein. Bei der letzten Frage hätte ich auf einen fatalen Fehler getippt^^. Wieviel % mußtest Du denn korrekt beantworten bei dem Test?

    schmiddi

    27 Apr 10 at 15:24

  18. Super gemacht! Ich habe meine Zertifizierung vor ca 1 Jahr erledigt und muss sagen, dass mir die Vorbereitung viele Stellen von PHP gezeigt hat, die ich im normalen Entwicklerleben bisher nicht gebraucht hatte. Ansonsten hat mir der Test Spaß gemacht und ich überlege auch schon den Zend Framework test zu absolvieren – auch wenn ich das gar nicht einsetze 😉

    @Simon: Es gibt ein Vorbereitungsbuch als PDF und die 10 Beispieltests sind sehr dicht am echten Test und bringen viel, wenn man sich nicht selbst betrügt und Lösungen nachschaut.

    Grüße

    Norbert Bartels

    28 Apr 10 at 13:01

  19. So, hier ein Folgeartikel der euch interessieren könnte: http://www.phpgangsta.de/1350

    Michael Kliewe

    29 Apr 10 at 08:55

  20. Wie kann man bei den Eier-Fragen stolz auf seine Antworten sein und mit dem Cert angeben?

    F.U.T.Z.

    13 Nov 11 at 23:23

  21. Darf man Fragen wie in etwa der Arbeitsaufwand (in Stunden?) als relativ erfahrener PHP Entwickler ist?

    Moritz Zander

    14 Nov 11 at 17:02

  22. @Moritz Zander: Ich glaube insgesamt habe ich nicht mehr als 10 Stunden die Materialien gelesen + Tests gemacht glaube ich. Vielleicht 15.

    Michael Kliewe

    14 Nov 11 at 17:18

  23. @TYPO
    Deine Antwort zu:
    3. Frage: “25″
    print wird als erstes ausgeführt, weil der Ausdruck ausgewertet werden muss, um echo erfüllen zu können. => 2
    print liefer immer den Wert 1 zurück, daher ergibt 1 + 4 => 5
    ——–
    Dies bezog sich auf die Aufgabe:
    echo ‚1‘ + (print ‚2‘) * 4;
    ——–

    Kann das sein, das deine Antwort nicht ganz richtig ist? Da steht ja nicht plus 4 sondern mal 4 – auch die Aufschlüsselung der Verarbeitung scheint mir nicht ganz zu stimmen

    Könnte es sein, das print() ein int 1 zurück gibt und somit auch die 4 als int gewertet wird. 1*4 = 4 ist. Nun haben wir im print ein String 2 stehen, der nun als solcher aufgelöst wird. Strings werden, wenn ich mich nicht irre, verknüpft…

    Somit hätten wir die Strings ‚2‘.’4′ was ’24‘ ist

    Zum Schluss hätten wir also die Strings ‚1‘ + ’24‘ was zu ints wird und somit 1 + 24, was dann wohl 25 ergibt…

    Wäre da übrigens ein + 4, würde 26 rauskommen und nicht 25

    Gruss
    Marko

    Marko

    2 Aug 14 at 18:17

  24. ….du solltest mal ganz schnell die Fragen/Antworten heraus nehmen: Du hast bei Prüfungsbeginn zugestimmt, dass du niemals Inhalte der Prüfung veröffentlichen wirst und sonst (auch nachträglich) von jeglichen Zertifizierungen von Zend disqualifiziert und auch für zukünftige Prüfungen gesperrt werden kannst…
    Das gleiche bestätigst du für VUE bei Beginn deiner Prüfung mit einer Unterschrift…..

    noone

    24 Feb 15 at 13:15

  25. Hallo noone,

    ich weiß was ich damals unterschrieben habe, und wie oben im Text zu lesen sind die Beispiele abgeändert und ausgedacht, nur grob angelehnt an die wirklichen Fragen damals. Ich konnte mich (natürlich) auch nicht mehr exakt an jede Frage erinnern. Es sollte nur beispielhaft zeigen in welche Richtung die Fragen teilweise gingen.

    Wenn du die oben stehenden Fragen und Antworten auswendig lernst wird dir exakt dies nicht helfen beim eigentlichen Test, da sie wie gesagt abgeändert sind.

    Ich glaube nicht dass ich mit solchen abgeänderten und ausgedachten Beispielen gegen die Regularien verstossen habe, denn die Online-Tests, die man kaufen kann, machen exakt das selbe: Vergleichbare Fragen und Antworten zeigen zum Training.

    Michael Kliewe

    24 Feb 15 at 15:38

  26. Dear Michael…
    Nur weil andere Menschen etwas verbotenes anstellen, ist das sicherlich nicht die Legitimation, dem gleich zu tun.
    Ein einfaches Beispiel: Täglich parken hundete Menschen allein in Oelde, Rheda, Beckum falsch, obwohl Sie mit dem Erwerb des Führerscheins zugestimmt haben, die Straßenverkehrsordnung und ganz besonders §1 StVO zu achten.
    Nur weil „alle Anderen“ doch falsch parken, ist der Umstand nicht gesetzlich legitimiert:
    Wer erwischt wird, der zahlt.
    Ganz egal ob er in .de, .us, .nl seinen Fürerschein erstanden hat…

    Das Dumpen von Prüfungsinhalten – und obendrein samt Lösungen wie dort oben – ist definitiv nicht erlaubt und hat den Auschluss bei VUE zur Folge.

    „Wirklich“ verändert wäre die Aufgabe, wenn du z.B. die Konstante nicht „PI“ sondern „e“ und den Wert z.B. 2.71828 nennen würdest, samt „tatsächlich“ veränderter Antworten…

    Auch wenn ich bezweifle, dass es ein Jemand mit ein paar Stunden PHP-Einweisung wirklich benötigt, so einen „Pillepalle“ wie oben benannt ausendig zu lernen, um die Prüfung zu bestehen:
    Wer die obigen Beispiele tatsächlich nachschlagen, oder gar auswendig lernen muss, sollte sich persönlich einmal ganz ernsthaft fragen, mit welchen Erwartungen für die Zukunft er zur Prüfung geht und was er mit dem Zertifikat anfangen möchte, als es nur – auf welcher Lokalität auch immer – neben die anderen auswendig gelernten Papierchen aufzuhängen:
    Ohne Nachweise von Berufserfahrung würde eine Firma mit so einem Papierchen niemanden einstellen. Selbst wenn jemand damit durch das Raster rutscht: Spätestens beim ersten Workview fällt den Kollegen schmerzhaft auf, was für ein faules Ei sie da in der Probezeit an Land geholt haben und Sie werden „den Neuen“ der zwar ein Papier hat, aber auch nichts an effektiver Leistung erbringt, auch schnell wieder aussortieren. „Herr Meier war stets vollkommen bemüht, bei zeitkritischen Projekten zur Seite zu stehen.“

    …und welcher Freiberufler macht schon den ZCE oder ZF2? Als „Web-Frittenbude“ wird man durch das schöne ZCE-Logo sicherlich keine neuen „Kunden“ anwerben — allenfalls ein paar geblendete Privatpersonen, weil das Logo auf der „Unternehmens“website so hübsch aussieht: Die wissen nicht, was das ist…

    Der zahlende Kunde der sich über die Bedeutung eines Zertifizuerungslogos im klaren ist, wird so tief in der Materie sein, dass er eine ordentliche Agentur samt der Kollegen für eine ordentliche umfassende CI beauftragt, samt Photos, Texte, Print, etc. pp. …

    Auf einem Blog seinen Kopf seiner aktuellen oder zukünftigen Zertifizierung zu risikieren, empfinde ich persönlich weiterhin verdammt mutig… denn es ist sicherlich nicht angenehm auf der ggf. neuen Arbeitsstelle sein Zertifikat zurück ziehen zu müssen – von einem im Zweifelsfall gar folgenden Paket aus Arbeitsrechtlichen, finanziellen und strafrechtlichen Folgen mag ich da nicht einmal reden.

    Denn wer weiss scho, ob nicht vielleicht der ungeliebte Vorgesetzte mal den Namen eines Mitarbeiters oder des Bewerbers gegoogled hat und nun auf den Trichter kommt, wen er da vielleicht schon seit Jahren in seinen Reihen hat:
    Ernst nimmt dieser die inhaltliche Qualifizierung des zertifizierten Probanden nicht mehr.

    noone

    2 Mrz 15 at 10:27

  27. @noone: Ich weiß echt nicht, warum du dich aufregst. Ich hab die ZCE Prüfung auch gemacht und das Einzige, was mir Michaels Blogpost gebracht hat, war, dass ich eine _Ahnung_ von der Qualität der Aufgaben hatte. Mir war durchaus klar, dass ein stures Auswendiglernen dieser Beispiele nichts bringt und sich die o.a. Aufgaben eher an Testaufgaben orientieren, die auch Zend selbst herausbringt; das ist auch jedem klar, der sich etwas näher mit der ZCE Prüfung befasst und dazu Informationen sucht.

    Meiner Meinung „riskiert“ Michael hier gar nichts, denn er hält sich an die Angaben und hilft vielmehr den Leuten, die sich unsicher sind, was die Art und Weise der Aufgaben der ZCE angeht; IMHO ja genau der Sinn eines Blogs im Community-Sinne.

    Sascha Presnac

    2 Mrz 15 at 10:51

  28. Lieber Sascha, „glauben“ ist nicht wissen –
    und nicht DU wirst den Kopf hinhaltne müssen, sondern Michael….
    Daher mein wirklich sehr eindringlicher Rat – nehm das Material lieber offline oder verändere es wie z.B. oben skizziert… oder kontaktiere einen Rechtsbeistand. Tipp: Amtsgericht, Rechtspfleger….

    Mir perönlich ist das sowas von egal — denn ich habe dadurch weder einen Nutzen, noch einen Nachteil.
    Aus persnölicher Erfahrung weiss ich aber sicherlich, wie schnell eine Website/ein Blog von dritter Seite sehr teuer offline genommen wird – nur weil man jemandem helfen wollte…

    noone

    2 Mrz 15 at 14:51

Leave a Reply

You can add images to your comment by clicking here.