How NOT fill arrays


- (NSMutableArray*) getButtonTitles
{
    NSMutableArray* buttonTitles = [[NSMutableArray alloc] initWithCapacity:4];
    for (NSInteger i = 0; i < (_itemCountSegmentController.selectedSegmentIndex + 1); i++)
    {
        switch (i) {
            case 0:
                buttonTitles[0] = @"One";
                break;
            case 1:
                buttonTitles[1] = @"Two";
                break;
            case 2:
                buttonTitles[2] = @"Three";
                break;
            case 3:
                buttonTitles[3] = @"Four";
                break;
            default:
                break;
        }
    }
    return buttonTitles;
}

Source : Pastebin

Comment acquérir une nouvelle compétence en 20h ou moins

Suite à un poste sur Reddit, l’utilisateur  stubby43 résume son expérience :

J’ai vu la TED Talk à ce sujet et j’ai acheté le livre.

En résumé, l’idée est vraiment bonne et a dejà fonctionné assez bien pour moi.

MAIS

L’achat du livre est inutile, sa méthode se résume en 4 principes et le reste n’est que du remplissage. La vaste majorité du livre raconte des histoires à propos des nouvelles compétences qu’il a acquises par sa méthode, et n’apporte rien de plus.

Ainsi, la version abrégée (mais complète) ressemble à ça :

Il faut 20 heures, pour acquérir une nouvelle compétence – 10.000 heures pour la maîtriser.

  1. Déconstruire la compétence :  démonter toutes les pièces et trouver les plus importantes pour les pratiquer en premier. Si tu souhaites apprendre à jouer d’un instrument, saches que quelques accords te donnent accès à une tonne de chansons. Si tu veux apprendre une nouvelle langue, apprends les 2.000 mots les plus courants et tu auras une compréhension de 80% de tout texte.
  2. Auto-correction :  Utilises des éléments de référence pour en connaître suffisamment afin que tu saches quand tu fais une erreur et que tu puisses te corriger.
  3. Supprimer les obstacles à l’apprentissage : Identifies et supprimes tout ce qui t’empêche de te concentrer sur la compétence que tu veux apprendre.
  4. Pratiquer au moins 20 heures .

Traduction du résumé de stubby43

Les Dix Commandements de la Programmation sans Ego

Les Dix Commandements de la Programmation sans Ego, comme établis dans le livre de Jerry Weinberg The Psychology of Computer Programming :

  1. Comprends et acceptes que tu feras des erreurs. Le but est de les trouver le plus tôt possible, avant qu’elles ne passent en production. Heureusement, excepté pour un nombre restreint d’entre nous qui travaille sur le système de guidage de fusée chez JPL, les erreurs sont rarement fatales dans notre domaine, du coup nous pouvons, et devons, apprendre, en rire et avancer.
  2. Tu n’es pas ton code. Souviens-toi que le but d’une revue de code est de trouver des problèmes, et des problèmes seront trouvés. Ne le prends pas personnellement quand ils seront découverts.
  3. Peu importe ton niveau de connaissances en “karaté”, il y aura toujours quelqu’un qui en connaitra plus. Une personne peut t’apprendre de nouveaux trucs si tu lui demandes. Recherche et accepte l’avis des autres, surtout quand tu penses que ce n’est pas nécessaire.
  4. Ne réécrit pas le code sans consultation. Il y a une petite nuance entre “corriger du code” et “réécrire du code”. Connais la différence, et effectue des changements stylistiques dans le cadre d’une revue de code, et non pas comme un loup solitaire.
  5. Traite les gens qui en savent moins que toi avec respect, considération et patience. Les personnes non techniques qui travaillent régulièrement avec les développeurs, sont d’avis -presque universellement- que nous sommes, au mieux, des Divas et, au pire, des pleurnichards. Ne renforces pas ce sentiment par de la colère et de l’impatience.
  6. La seule constante dans ce monde, c’est le changement. Sois-y ouvert et accepte-le avec le sourire. Considère tout changement de tes besoins, plate-forme, ou outils comme un nouveau défi, non pas comme des contraintes qu’il faut combattre.
  7. Le seul vrai pouvoir découle de la connaissance, pas du poste. La connaissance engendre le pouvoir et le pouvoir suscite le respect- donc si tu recherches le respect dans un environnement sans ego, cultive la connaissance.
  8. Bats-toi pour ce que tu crois, mais accepte de bonne grâce la défaite. Comprends que, parfois, tes idées ne seront pas prises en compte. Même si l’avenir te donne raison, ne te venges pas, ne répètes pas constamment “je vous l’avais bien dit”, et ne fais pas de ton idée rejetée un martyre ou un cri de ralliement.
  9. Ne sois pas “ce gars dans la pièce”. Ne sois pas le type qui code dans le bureau obscur, qui ne sort que pour aller chercher ton cola. Ce type-là est hors d’attente, hors de vue, et hors de contrôle et n’a pas sa place dans un environnement ouvert et collaboratif.
  10. Critiques le code, pas la personne – sois gentil envers le codeur, pas envers le code. Autant que possible, fais des commentaires positifs et orientés pour améliorer le code. Associes tes commentaires avec les normes de programmation, les spécifications du logiciel, de meilleures performances, etc…

Les principes humains de développement sont véritablement intemporels.  The Psychology of Computer Programming a été écrit en 1971, surement avant que tu ne sois né.

Traduction de The Ten Commandments of Egoless Programming

Formatting made (not) easy

Formatting a telephone number, the hard way ….


  private function telephoneText(mytext:String):String
  {
 
      var split:String;
      var mytext:String = new String(mytext);
 
      var myArray:Array = mytext.split("\r");
      mytext = myArray.join(" ");
      myArray = mytext.split("\n");
      mytext = myArray.join(" ");
 
      myArray = mytext.split("     ");
      mytext = myArray.join(" ");
 
      myArray = mytext.split("    ");
      mytext = myArray.join(" ");
 
      myArray = mytext.split("   ");
      mytext = myArray.join(" ");
 
      myArray = mytext.split("  ");
      mytext = myArray.join(" ");
 
      myArray = mytext.split(" ");
      mytext = myArray.join("");
 
      split = mytext.substr(0, 3) + " " + mytext.substr(3, 2) + " " + mytext.substr(5, 3);
      mytext = split;
      return mytext;
  }

Source : Github Gist