Stelling: Veel programmeurs kunnen niet echt programmeren!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Overbeeke

Overbeeke

23/12/2008 20:32:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

  $document
= preg_replace ("/[\/]*([^?]*)\?.*/", "\\1", $_SERVER['REQUEST_URI']);
  $x = $_GET['x'];
  $y = $_GET['y'];

  if ($x == 0) {
    echo "Greatest common divisor: $y";
    exit;
  }


  $rest = $y % $x;
  $address = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}";
  header ("Location: $address/$document?x=$rest&y=$x");

?>



Ben jij beter dan de meeste "programmeurs"?!


Bewijs het tegendeel dat wij denken dat veel programmeurs niet echt kunnen programmeren door ons beknopt te vertellen wat hierboven gebeurt. Stuur je antwoord naar [email protected] en maak kans op een TOP stageplaats waar je nog veel meer leert!
 
PHP hulp

PHP hulp

30/11/2024 05:25:50
 
- Ariën  -
Beheerder

- Ariën -

23/12/2008 20:51:00
Quote Anchor link
Kunt u wat meer vertellen over deze stageplaats?
 
PHP Newbie

PHP Newbie

23/12/2008 21:06:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $x
= $_GET['x'];
  $y = $_GET['y'];
?>


Zinloos variabelen overschrijven. Geen controle of de $_GET waarden wel bestaan.. dit gaat je gegarandeerd 2 notices opleveren wanneer ze niet bestaan..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  $rest
= $y % $x;
  $address = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}";
?>


Mooi voorbeeld waarom je variabelen buiten de quotes moet halen. Erg onoverzichtelijk dit en een grote fout gevoeligheid.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
  header ("Location: $address/$document?x=$rest&y=$x");
?>


Een redirect naar de huidige pagina om wederom te kijken of de deling 0 oplevert? Lijkt me niet helemaal de bedoeling zo. Is veel beter op te lossen met een recursieve functie.

Ik ben van mening dat de programmeur van dit script niet echt kan programeren. Ik neem aan dat jullie op zoek zijn naar een vervanger van deze persoon?

Desalniettemin, sorry, geen interesse
 
Overbeeke

Overbeeke

23/12/2008 21:19:00
Quote Anchor link
Aar, hieronder vindt je de twee 'algemene' stagebeschrijvingen, allereerst de afstudeerstage:

Bedrijfsomschrijving
Voor een leuke en nuttige stageplaats waar je veel kan leren moet je bij MimicMe zijn. Wij ontwikkelen een realtime online render engine. De belangrijkste toepassing daarvan is online kleding passen. Mimic Media is gevestigd in Amsterdam en werkt met een jong team aan unieke 3D solutions.

1) Afstudeerstage
Voor het uitrollen van nieuwe concepten die gebruik maken van de unieke MimicMe-technologie zijn wij op zoek naar een creatief en technisch brein. Je hebt kennis in PHP, HTML, CSS, AJAX, en Javascript. Interesse en aanleg voor design en vormgeving zijn een pré. Uiteraard moet je ook het huidige web 2.0 in de vingers hebben. Voor je afstudeeronderzoek zal jij verantwoordelijk zijn voor het ontwikkelen van een nieuwe website die gebruik maakt van nieuwe technologie. Neem alvast een kijkje op onze website www.mimicme.nl om een indruk te krijgen wat wij doen. Voor jouw afstudeeronderzoek zou je kunnen denken aan bijvoorbeeld het toepassen van MimicMe voor nieuwe doelgroepen (bijvoorbeeld jonge kinderen, zwangere vrouwen etc.) Hierbij staan innovatie en web2.0 centraal. Dit is een afstudeeropdracht waarbij jij jezelf kan onderscheiden en gebruik kan maken van onze specialismen. Alles op het gebied van real-time serverside renderen en 3D doen wij in-house. De vraag is dus of jij creatief genoeg bent om deze opdracht aan te kunnen?

2) Stageplaats

Naast de afstudeerplek bieden we ook een 'gewone' stageplek aan:

Voor het implementeren van MimicMe bij grote Europese online retailers en voor het programmeren en onderhouden van nieuwe en bestaande functionaliteiten is Mimic Media op zoek naar een creatief en technisch brein. Je hebt uitgebreide kennis en HTML, CSS, AJAX, en Javascript. Interesse en aanleg voor design en vormgeving zijn een pré.

Wil je voor een van deze stageplekken in aanmerking komen, dan dien je dus eerst je skills te tonen door bovenstaand script foutloos uit te leggen.. Succes!
 
Nicoow Unknown

Nicoow Unknown

23/12/2008 21:26:00
Quote Anchor link
Wat heeft dit er zowieso mee te maken of je kan programmeren?
Even kijken wat welke functie doet, en dan even beetje logica hebben, over wat het script dan al wel niet doet, bewijst nog niet dat je echt kan programmeren.
Laat dan iemand een script schrijven die de torens van Hanoi oplost ofzo, (dit is ook niet zo heel moeilijk)
Of een die het Unieke getal vind
Deze heeft 2 voorwaarden:
1. ieder cijfer van 1 t/m 9 komt 1 keer voor.
2. ieder getal is deelbaar door zijn eigen positie (dus eerste cijfer deelbaar door 1, eerste 2 cijfers deelbaar door 2.......eerste 9 cijfers deelbaar door 9)
Of een magisch vierkant oplosser.

Dit zijn allemaal dingen die veel meer met programmeren te maken hebben, dan met het kennen van een taaltje.
Iedereen kan een script schrijven wat het één en ander uitrekent, maar het moeilijk van het programmeren is juist de algoritmiek achter iets te zoeken, de "competentie" (zoals dat tegenwoordig vaak genoemd word) om dat te kunnen, dat is veel belangrijker voor een programmeur dan een paar functies uit je hoofd te leren.
 
Overbeeke

Overbeeke

23/12/2008 21:41:00
Quote Anchor link
@ PHP Newbie, ten eerste: antwoorden mailen naar [email protected], want als het goede antwoord er al onder staat heeft het geen zin meer.

ten tweede: uit je antwoord blijkt dat je het script totaal niet hebt begrepen.
 
Nicoow Unknown

Nicoow Unknown

23/12/2008 21:55:00
Quote Anchor link
overigens doet dit hetzelfde als hierboven, alleen hoef je die preg_replace niet te gebruiken, en hoef je ook geen onnodige poespas te gebruiken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

/**
 * @author Nico Kaag
 * @copyright 2008
 */

error_reporting(E_ALL);

function
Grootste_Deler($x, $y)
{

    if ($x == 0) echo "Greatest common divisor: ". $y;
    else Grootste_Deler($y % $x, $x);
}

Grootste_Deler($_GET['x'], $_GET['y']);

?>


Hier zit overigens ook geen foutcontrole or what so ever in. maar dit zou toch een iets nettere oplossing zijn vind ik zelf.

Edit:

Even een verkorte versie hiervan gemaakt, dit is dus eigenlijk alles wat het doet.
Gewijzigd op 01/01/1970 01:00:00 door Nicoow Unknown
 
Eddy E

Eddy E

23/12/2008 22:15:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
// error_reporting altijd aan (ala SanThe)
error_reporting(E_ALL);
ini_set("display_errors", 1);

// ontvang de X en Y-gegevens en beveilig die
if(isset($_GET['x']) AND is_numeric($_GET['x']) AND isset($_GET['y']) AND is_numeric($_GET['y']))
    {

    // ontvang bestanden en int die (afhankelijk van gebruik...)
    $getallen['x'] = intval($_GET['x']);
    $getallen['y'] = intval($_GET['y']);
    }

else
    {
    // mist de input-gegevens
    echo '<p>Ik mis gegevens</p>';
    }


// als de waarden in $getallen niet nul zijn
if (min($getallen) > 0)
    {

    echo '<p>Grootste gemene deler: ' . max($getallen) . '</p>';
    }


// bereken restwaarde
$getallen['rest'] = $getallen['y'] % $$getallen['x'];

// vernieuw pagina met vernieuwde gegevens
header ('Location: ?x=' . $getallen['rest'] . '&y=' . $getallen['y']);
?>


Aldus mijn versie:
- controle op de $_GET (isset/is_numeric en intval())
- alles vernederlands
- commentaar erbij
- variabelen buiten de quotes
- beter inspringen
- correcte html erbij (mist wel een header etc)
- error_reporting
- foutafhandeling
- alles in 1 array
- geen gekloot meer met die refresh (bestand mag index.php heten)
- bij de header wel de Y-waarde bij Y vermelden (er stond $x)
- geen exit() gebruiken

Ik vind de oplossing van Nico beter, maar ik wilde me iets meer aan het script houden.
Mijn vraag is echter... wat wil je nou eigenlijk?
 
Nicoow Unknown

Nicoow Unknown

23/12/2008 22:20:00
Quote Anchor link
Ik wou jou wel bedanken Eddy, nu weet ik dus ook weer hoe zoiets heet =þ
Maar waar het goed voor moge zijn, god mag het weten =P
Maar ik kon alleen zien wat het betekente, geen idee ervan hebbende dat zoiets ook een naam had, die ik achteraf ook scheen te weten =þ
 
Overbeeke

Overbeeke

23/12/2008 22:31:00
Quote Anchor link
waar het goed voor moge zijn?? om goede van slechte programmeurs te onderscheiden. En inmiddels gaat dat hard, want het juiste antwoord heb ik nog steeds niet ontvangen. En lees de opdracht goed: wat gebeurt er in bovenstaand script. Dat moet uitgelegd worden door een potentiele kandidaat. Dit is mijn laatste reactie op het forum, voortaan alleen serieuze communicatie via persoonlijke mail.
 
Nicoow Unknown

Nicoow Unknown

23/12/2008 22:40:00
Quote Anchor link
Ik heb je een mail gestuurd waarin ik exact uitleg wat het programma hoort te doen, en wat het ook doet.
Dus dat je het juist antwoord nog niet hebt ontvangen, licht hoogst waarschijnlijk aan jou.
Voor de rest is al aangegeven dat jou script niet deugd, en dat je er dan zelf over gaat lopen zeuren dat het niet begrepen word, dan heb ik de slechte programmeur al gevonden.
En als jij echt zo'n goede programmeur ben, stuur mij morgen dan even een mail met de oplossing van de 3 vraag stukken hier ergens boven.
Dan zal ik wel eens even gaan beoordelen of jij een goede programmeur bent.
(En wees alsjeblieft niet zo zielig om het van internet af te halen)
Ojah, het magisch 4 is voor een vierkant van 4 bij 4 (dus van 16) en de torens van Hanoi moet op het aantal schijfen werken dat ik ingeef (40 is genoeg, want daarna krijg ik momenteel nog een stack overflow (C#). dus dat is niet zo erg opzich, (of je wilt er heel erg lang over gaan doen =þ)

Veel succes en Plezier ermee
 
- SanThe -

- SanThe -

23/12/2008 23:17:00
Quote Anchor link
Je krijgt diverse op- en aanmerkingen op het script en dan reageer je dat men niet serieus is. Ben je zelf wel serieus? Bovenstaand script is zeker niet van 'goede' kwaliteit.

Dus laten we het maar op de 'ouderwetse' manier doen en hou je aan de criteria die hier op het forum gelden.

Anders zal ik helaas het topic moeten sluiten.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Robert Deiman

Robert Deiman

23/12/2008 23:38:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
error_reporting(E_ALL);
/**
 * @author Robert Deiman
 * @copyright 2008
 */
 

// haal de naam van het bestand op wat gebruikt wordt. (kan ook met php_self)

  $document = preg_replace ("/[\/]*([^?]*)\?.*/", "\\1", $_SERVER['REQUEST_URI']);

   // zinloos variabelen kopiëren, en niet controleren of ze wel bestaan. ISSET gebruiken is hier zeker wel op zijn plaats, maar ook het zinloos kopiëren -> do not do that
  $x = $_GET['x'];
  $y = $_GET['y'];

//wanneer x gelijk is aan 0, dan is y de grootste gemene deler. (stel y= 9, y/9 =1 en 0/9=0)
  if ($x == 0) {
    echo "Greatest common divisor: $y";
    exit;
  }


  //waneer x ongelijk is aan 0, dan deel je $y door $x en onhoud wat er overblijft. Dat neem je mee naar de volgende URL, waar de gehele controle opnieuw plaats vindt. -> Is $x gelijk aan 0, dan hou je bij $y de grootste gemene deler over.
  $rest = $y % $x;
  $address = "http://{$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']}";
 header ("Location: $address/$document?x=$rest&y=$x");

?>



Je krijgt toch wel een aantal warnings zo, maar het antwoord lijkt mij wel duidelijk. Ik ga je hier maar niet over mailen lijkt me.. 't is gewoon niet goed/ netjes gescript.
 
Lode

Lode

24/12/2008 05:05:00
Quote Anchor link
Misschien kan ik inderdaad ook wel niet goed programmeren.
Maar dan komt mijn vraag... Wat is jou of jou baas zijn definitie van goed programmeren? kijkend naar dit topic en de code kan ik heel arrogant wel denken en zeggen dat ik het beter kan.

Ben niet te beroerd om je te helpen. En heb nogwel een KvK registratie.
Maar dat wil jij denk ik allemaal niet betalen en multinationals wel...

EDIT:
Ik programmeer al 10 jaar vrij intensief! Jij ?
Gewijzigd op 01/01/1970 01:00:00 door Lode
 
PHP Newbie

PHP Newbie

24/12/2008 16:27:00
Quote Anchor link
Overbeeke schreef op 23.12.2008 21:41:
@ PHP Newbie, ten eerste: antwoorden mailen naar [email protected], want als het goede antwoord er al onder staat heeft het geen zin meer.

ten tweede: uit je antwoord blijkt dat je het script totaal niet hebt begrepen.


Deze reactie slaat natuurlijk nergens op. Ik leg namelijk helemaal niet uit wat het script doet, ik vertel je alleen wat er verkeerd is aan het script.
 
- SanThe -

- SanThe -

24/12/2008 16:40:00
Quote Anchor link
@PHP Newbie: Ik heb jouw post gelezen en ik ben het volledig met je eens. Iemand selecteren op deze manier is al fout genoeg. Als een willekeurig persoon die nog nooit van programmeren heeft gehoord even googled of wat rondvraagt en dan de juiste antwoorden geeft, is het bedrijf blijkbaar geïnteresseerd. Zegt mij genoeg in ieder geval.

Edit: Een PM die net zo goed even hier gepost had mogen worden.
Ontvanger SanThe
Afzender Overbeeke
Verstuurd op 24.12.2008 08:29
Onderwerp RE: reactie op Stelling....

ho ho, ik zeg helemaal niet dat men niet serieus is. Het is alleen zo dat dit een vacature is en als allemaal mensen zich ermee gaan bemoeien die niet eens voor stageplaats in aanmerking komen, heeft het totaal geen zin voor ons als bedrijf. En dus is dat geen serieuze communicatie, dat is wat ik zei. De vacature zou als een uitdaging moeten worden ervaren. Als er inhoudelijk over het script wordt gediscussieerd dan moet dat maar op een andere plek. En op je vraag of ik wel serieus ben, ga ik niet eens op in.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Nicoow Unknown

Nicoow Unknown

24/12/2008 17:28:00
Quote Anchor link
Gelukkig is hij wel helemaal in de kerst(man) stemming.
Maar ik vind dat als iemand als "serieus" bedrijf wil overkomen, om "serieuze" mensen te zoeken voor een stageplek, dan mag je ook wel een "serieuze" vacature plaatsen.
Wil je echt een goede programmeur, moet je gewoon vragen of hij een stukje pseudo code wil schrijven.
Dat is veel moeilijker, en veel meer toonaangevend dan een beetje een taaltje kennen.
Een echt programmeur hoeft er geen moeite mee te hebben om in een andere taal te gaan scripten, natuurlijk duurt het even voordat het snel gaat, maar als jij goede pseudo code schrijft, of i.i.g. bedenkt, heb je alleen nog maar de juiste syntaxis nodig.
Maar voor de rest vind ik dit heel veel, behalve een uitdaging.

Ik heb me ermee bemoeid, en ik kom best in aanmerking voor een stageplek, alleen momenteel nog niet, nog 2,5 jaar, en dan had je me alsnog kunnen aannemen, helaas dat t van mij niet meer hoeft =þ
 
Overbeeke

Overbeeke

24/12/2008 22:22:00
Quote Anchor link
Verwijder het topic even, santhe
 
Arjan Kapteijn

Arjan Kapteijn

24/12/2008 23:16:00
Quote Anchor link
Als dit een voorbeeld is van jullie programmeer werk dan wil ik niet bij jullie solliciteren... Niet echt een goede reclame voor het bedrijf zo... Maar waarom ben je van mening dat jij je niet hoeft te houden aan de eisen die gesteld worden aan een vacature? En wat is er mis met een interessante discussie? Je titel begint met een stelling... Wellicht kan jij, en anderen, hier nog wat van leren.

p.s. Ik ben op dit moment aan het afstuderen, over een paar weken klaar en vervolgens moet ik een half jaar wachten totdat ik naar de universiteit mag. Als je echt een interessant voorstel had gedaan dan had ik daar best naar willen kijken.
Gewijzigd op 01/01/1970 01:00:00 door Arjan Kapteijn
 
- SanThe -

- SanThe -

25/12/2008 00:35:00
Quote Anchor link
Overbeeke schreef op 24.12.2008 22:22:
Verwijder het topic even, santhe


Gesloten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.