deepblue
Après, je surestime peut-être les ingénieurs, mais je sais qu´en Master, j´ai appris énormément de choses utiles aussi bien pour moi que pour les boîtes. Je pensais que les ingénieurs avaient un niveau équivalent à celui du Master. A vous lire, il semblerait que non... N´empêche, l´informatique me semble être la seule filière qui n´est pas prise au sérieux passé Bac+2, à cause de tous les amateurs qui se croient informaticiens. Ce n´est pas pour enfoncer le clou, mais Informaticien est un vrai métier et il y a largement de quoi étudier au delà de Bac +2. C´est ce qui me chagrine : j´ai l´impression que les gens ne se rendent pas compte qu´un DUT ou un BTS ne sait et ne peut pas tout faire. J´aimerais bien qu´on m´indique un BTS ou un DUT d´IA ou une formation dans ce domaine qui fait abstraction des maths, ou encore savoir si des boîtes telles que Microsoft ou IBM utilisent des Bac+2 pour bosser sur leurs projets R&D. Oui, je ne nie pas qu´il existe des génies de l´informatique, mais l´intelligence ne suffit plus passé un certain niveau : il faut engranger des connaissances et de la théorie pour être ensuite capable d´inventer de nouveaux concepts.
Mais je suis d´accord sur le fond, mais celà reste des exceptions qui entraînnent une généralisation. Pour en revenir aux écoles d´ing´, je pense qu´il y en a des bonnes et des mauvaises. Une école d´ingénieur qui a un niveau équivalent à celle d´un DUT ne mérite pas ce titre et est une perte de temps, il faudrait être stupide pour aller là-bas, à moins d´être assoiffé de pouvoir et de ne vouloir qu´un titre à la con. Enfin...
Bien sur la securité informatique est un domaine compliqué.
Mais les informations sont disponibles en bibliotheque. Il ya de bons livres sur la sécurité informatique, il y a des magazines et on peut prendre des cours aussi...
Et des forums comme ici. Il n´y a pas que les sites web avec un tuto "fais un super site web en 2minutes 25".
Mais ne t´en fait pas qu´a chaque fois que j´ai l´occasion de parler de securité a des gens qui font des systèmes d´information je le fais.
Ce n´est pas mon travail de faire de la sécurité amis il y a des choses hallucinante des fois.
Un petit HS complet sur les diplomes les ingénieurs la théorie tout ca.
Un ingénieur c´est un mec qui a passé la prépa. Après au sein des écoles il n´y a quasiment pas de vérification des connaissances. Le niveau en sortie des ingénieurs est donc aléatoire. Mais pas completement non plus. Parceque les gens qui ont vraiment suivit les cours seront plutot bon. Mais le système interne des écoles d´ingé est assez favorable a la glande.
"je peux t´assurer que tu n´apprends rien...sauf de la theorie a la con, tu bouffes des maths pendant un petit moment et tu sos de la avec quelques trucs en plus mais sans en avoir appris plus..."
Tu as donc perdu ton temps, il y avait tant de choses a apprendre en école d´ingé.
Tu ne comprends donc pas la FORCE de ces théories que tu as vu ? Cela te permet d´avoir le recul neccaissaire sur ce que tu fais et v
(trompé de touche)
Ca te permet d´avoir du recul par rapport a ce que tu fais.
Comment savoir si tel algorithme est performant ?
comment savoir si tel méthode de sécurité est intélligente ?
Savoir si ton réseau interne est bien dimensioné ?
comment le construire ?
comment faire un benchmark qui a un sens ?
comment estimer l´amélioration que produira l´ajout de ressource dans un réseau de calcul ?
A toute ces question un ingéneiur peut (devrait pouvoir) y répondre. Et ce ne sont pas ses connaissance pratique qui vont l´aider mais aussi ses connaissance théorique.
Des plus ses connaissance théorique lui permette d´avoir une bien plus grande abstraction de ce qu´il fait. Ainsi il travaillera facilement en changeant d´outils (pratique ou théorique) du moment que les modeles restent vrai.
Ces connaissances théorique t´aide au quotidien dans ton travail de dévelopement. Elles te disent pourquoi utiliser tel structure de données plutot que tel autre.
Après tous les travaux ne nécéssite pas ses connaissance.
La plupart du temps, les ingénieurs finiront par faire de l´informatique de gestion et passeront leur temps a faire des petites boites de dialogue et de l´interfacage avec une bases de donnée.
Aujourd´hui en france on recrute des ingénieurs pour faire ca.
Mais en fait, c´est du travail de technicien.
(au modérateur, désolé pour ce HS, mais il y a des choses que je ne peux pas laisser passer)
C´est mon fere qui l´a fais.
Je suis d´accord que la therorie est super importante...mais par toutes la theorie.
Le recul nécessaire est "caracterisé" par la theorie mais aussi par l´experience.
Quand je dis ça, j´exagere un peu...
Dans l´ecole ou il est, il devait (cest ecris sur les "pubs") apprendre (ou duimoins) avoir une belle approche des sytemes embarques, un apprentisssage avancé du C/C++...Ben ce n´est pas la bas qu´il a appris...
Il a fais JAVA en dut, et a appris le C durant des stages. Aujourd´hui, il est un des pliers d´un des projets de l´entreprise ou il est en stage (payé tout de meme 1700€/mis pour un stage) et ce n´´est pas grace a son ecole d´ingé
de l´autre coté si en sorti de DUT tu vas dans une école d´ingé orienté pratique c´est que tu n´as pas tout compris a la vie...
Ces connaissances tu les as DEJA, tu ne vas pas y retourner.
A mon avis il a surtout mal ciblé son école...
je rajouterais sur les ingénieur que le problème de la boite de ton pere ne vient pas forcement des ingénieur, mais de la boite : aujourd´hui c´est chic de pouvoir dire "il y a x ingé qui bossent pour moi", alors tout le monde veut en recruter, et vu que même là il y a du chaumage, c´est facile d´ne trouver. Mais dans une petite boite, il n´y a pas toujours de boulot pour un ingé. Forcement, il sera incompétant comme développeur : lui il a été formé au management d´une équipe de développeur : il a les compétence en info pour comprendre le boulot, et les compétence en management (parfois), mais il n´est pas forcément programmeur.
(godrik : bah, le HS ...)
et pour finir, je conseillerais à tout le monde de faire gaffe aux écoles d´ingé à recrutement large et où le cursus est très cher. Elle peuvent souvent réserver de mauvaises surprises je pense.
Aujourd´hui, beaucoup d´entrprise cherchent des personnes diplomées (Darth-Bane pourra confirmer). Il n´a pas fais ette ecole pour le plaisir mais juste pour avoir le statut d´ingénieur...
Beins sur aujourd´hiu les boites embauchent des bac+5 pour faire du travail de bac+2.
Il est donc bien normal que ton frere trouve que sa formation a bac+5 ne lui est pas vraiment utile.
Mais ca ne veut pas dire qu´elle est nulle et inconsistente
Elle n´est ps nulle, mais meme si elle apporte certains trucs, elle n´est pas non plus super !
Enfin bon, totu depend des ecoles, du gars (ou de la fille ^^) qui les fait.
Je n´ai pas pu m´empêcher de venir déféquer mon petit commentaire sur ce topic. Attendez vous à quelque chose de long et chiant ^^
Décor : je suis tout ce qu´il y a de plus autodidacte en informatique. N´ayant pas encore fréquenté quoi que ce soit de post-bac, de toute manière je n´aurais pas pu faire d´étude de programmation (et à priori je ne compte pas en faire pour l´instant).
Mon niveau est évidemment plutôt moyen (on ne devient pas geek en 2 ans); si je dis des bêtises, je serais très intéressé par une (des) critique(s).
Par ailleurs, je ne suis que modérément intéressé par la programmation web. C´est pratique pour faire ce qu´on veut, plus ou moins rapidement, mais sans plus.
Pour ce qui est de la sécurité, j´espère apporter un point de vue qui n´est pas encore sur ce topic : je n´ai jamais fait d´études en sécurité, je n´ai jamais lu des articles explicitement orienté sécurité (à part le portail cryptographie de la wikipédia, que je vous conseille de tout mon coeur, mais qui n´apprend absolument rien sur la sécurité d´un site en PHP), et pourtant, j´ai l´impression d´avoir une idée relativement précise de ce qui fait que mes scripts sont sécurisés ou non.
(Ici, je vais faire une présentation, courte si possible, des grandes lignes de mes considérations sur la sécurité en PHP, pour concrétiser. Avec un peu de chance, ça apprendra quelque chose à quelqu´un)
Pour moi, la sécurité se divise en deux parties : ce qui dépend de moi, et ce qui n´en dépend pas.
Ce qui ne dépend pas de moi, je ne m´en préoccupe pas outre mesure. Par exemple, on dit que le md5 est faible, qu´il a des problèmes, etc.. C´est peut-être vrai, mais md5 c´est la fonction de PHP qui fait un hash comme je le souhaite (il existe probablement d´autres fonctions de hash dans la lib PHP, mais j´utilise md5), et la question de savoir si elle peut être cr*ckée ou pas ne dépend pas de moi. J´estime que sa sécurité est de toute façon plus importante que celle de l´ensemble de mon code, alors je n´ai pas à m´arracher les cheveux sur une fonction qui dépend uniquement des développeurs de PHP. De même, je ne préoccupe pas vraiment de possibles faille dans les sessions : ça c´est le job des développeurs PHP, on va leur faire confiance et supposer que c´est suffisamment sécurisé.
Les bibliothèques externes (pas forcément PHP, mais des bibliothèques PHP écrites par d´autres gens, que j´utilise) ne dépendent pas de moi non plus. Il faut les prendre les plus sécurisées possibles, en prendre le moins possible (moins j´ai de code tiers dans mon site, plus je contrôle la sécurité globale), mais quand elles sont là, je n´ai pas d´autre choix que de leur faire confiance. Si l´une d´elle a une faille, mon site est vulnérable. Je dois donc faire attention à les mettre à jour souvent pour avoir la dernière version, la plus sécurisée. Cependant, en général je n´en utilise pas, donc le problème ne se pose pas.
Ensuite, il y a la partie qui dépend de moi. Pour celle là, la chose à laquelle je fais le plus important, c´est de ne jamais faire confiance à l´utilisateur : quand je fait un script, j´imagine toujours que l´utilisateur peut être un pirate, et qu´il peut rentrer n´importe quoi dans tous mes champs. Par conséquent, je ne doit rien supposer sur les valeurs des champs qui dépendent de l´utilisateur, que ce soit les $_GET, les $_POST, ou les fichiers uploadés.
Je prend donc garde :
- de vérifier leur type (is_numeric, is_array..)
- si certaines valeurs sont prévues, vérifier qu´elle sont bien une de ces valeurs
- de les rendre inoffensives dans tous les contextes : avant de les insérer dans une requête SQL, un mysql_real_escape_string, avant de les afficher, un htmlspecialchars, etc...
Le reste dépend du bon sens : avoir toujours le code le plus clair possible, le plus lisible possible, factoriser au maximum le code dans des fonctions, etc...
Une bonne idée est aussi de mettre le niveau de sensibilité des erreurs de PHP au plus haut pendant toute la phase de développement : error_reporting(E_ALL). Cela m´a évité bien des oublis.
Les trois autres choses auxquelles je fais attention (qui ne sont pas liées aux variables utilisateur forcément) sont :
- ne pas laisser mes connections MySQL ouvertes plus longtemps que nécessaire à l´intérieur de mon script : si une partie de mon code représentait une faille permettant à quelqu´un d´exécuter des commandes PHP arbitraires, je préfère qu´il ne puisse pas utiliser mysql_query
- ne pas laisser mes mots de passe en clair dans le code, et ne pas laisser des variables contenant les mots de passe accessibles après leur utilisation (j´utilise unset) : même justification que la fois d´avant. De manière générale, je pense qu´un script est sécurisé à partir du moment où je n´ai pas peur de publier ouvertement son code source.
- ne pas laisser l´utilisateur appeler des fonctions critiques trop souvent : obliger un délai entre le post de deux messages, l´essai de deux mots de passe, l´exécution de deux fonctions lentes et lourdes. Si quelqu´un s´amuse à le faire beaucoup, à répétition, très vite, mon serveur doit tenir et mes mots de passes doivent temporiser.
Bien évidemment, je ne prétend pas maîtriser la sécurité sur le web _en général_ : mes considérations de sécurité se limitent à mes besoins, c´est à dire des petits sites relativement simples; mais ce que je fais, je veux le faire bien.
Qu´en pensez-vous ? Est-ce que je me plante complètement ?
Si je me trompe vraiment, et que vous connaissez de bons liens expliquant mes erreurs, n´hésitez pas à me les proposer ^^
Je suis assez d´accord mais une chose me gene : quans ça te concerne toi et l´utilse de script ou de fonctions. Je pense que faire confiance a une focntion, ou un lib n´est pas forcement la bonne solution (a mon gout). Je pense que c´est une artie php a surveiller.
Je me trompe peut etre aussi ![]()
À priori, les développeurs PHP sont plus compétents que moi en ce qui concerne leurs fonctions.
Pour ce qui est des librairies externes, quand j´en utilise (c´est rare), j´utilise celles en lesquelles j´ai confiance, qui sont activement développées, etc... Donc à priori leur sécurité est bonne, probablement plus que celle de mon propre script. Perdre du temps sur ça n´apporte rien : c´est le maillon le plus faible qu´il faut renforcer.
Au niveau de ce qui te concerne de l´écriture du code, je suis assez d´accord avec toi. Tu as globalement compris que PHP était un point d´acces sur la machine, c´est celui dont tu es responsable.
Parcontre tu fais une légère erreur lorsque tu parle de MD5. Tu dis que tu fais confiance au developpeur de PHP pour leur ecriture de MD5 comme fonction de hashage.
Tu as raison c´est une fonction de hashage et il est probable que son implémentation est correcte.
La ou tu fais une erreur c´est que personne n´a jamais dit que MD5 était une fonction cryptographiquement sur. (en fait on le disait il y a 10 ans. ptet 20)
Tu pourrais substituer dans ton code MD5 par SHA-1 (
http://fr2.php.net/sha1) et ainsi rendre ton application globalement plus sur.
Ensuite, il y a des choses qui te concerne auxquels tu n´as probablement pas pensé. Comme par exemple. Que se passe t´il si ton lien réseau est écouté ? Etant donné que tu n´utilise de protocole de chiffrement (ou alors tu n´en as pas parlé), les mots de passe des utilisateurs passent en clair sur le réseau et sont donc intercepté par le ´méchant´. Tu vas me dire que la sécurité est du ressort de l´administrateur système et pas du webmaster.
Certes Mais il ne peut pas forcément savoir que le lien est écouté, il FAUT donc y
Tu dis:
"De même, je ne préoccupe pas vraiment de possibles faille dans les sessions : ça c´est le job des développeurs PHP, on va leur faire confiance et supposer que c´est suffisamment sécurisé. "
Tu aura la joie de pouvoir dire "c´est pas de ma faute" mais tu seras quand meme emmerdé... Et c´est d´ailleurs TON travail de webmaster d´assuré la sécurité des informations des utilisateurs. Il faut donc le savoir, ce tenir au courant et mettre a jour son site web en consequence.
Bien evidement le travail de veille et de securisation est COLOSSAL, mais je penses qu´il y a des choses simples qui peuvent eviter bien des problemes.
Pour conclure je dirais que deux protection valent mieux qu´une, masi si une est mieux qu´aucune. Prudence est mere de surete.
Désolé, j´ai été un peu absent ces derniers jours, je vais revenir sur une partie de la conversation.
"La plupart du temps, les ingénieurs finiront par faire de l´informatique de gestion et passeront leur temps a faire des petites boites de dialogue et de l´interfacage avec une bases de donnée.
Aujourd´hui en france on recrute des ingénieurs pour faire ca.
Mais en fait, c´est du travail de technicien."
Oui, c´est malheureusement le cas !
J´en ai peut-être déjà parlé, mais une étude récente a montrée qu´au court des 2 dernières années, le secteur informatique a été un des secteurs qui a le plus recruté ... mais à 95% des ingénieurs et souvent pour des emplois destinés à des bacs+2.
Je crois que c´est un des gros problèmes actuels, c´est qu´une très grande majorité des entreprises, ne savent pas quel diplôme correspond à quel emploi, ce qui fait que certains se disent qu´un bac+5, étant donné qu´il a étudié 3 ans de plus qu´un bac+2, est forcément plus compétent, donc autant l´embaucher, surtout si par la même occasion, on peut le payer le même salaire que celui qu´on aurait donné à un bac+2.
C´est probablement l´une des raisons qui fait que la moyenne des salaires a pas mal baissés ces dernières années.
Oui, une personne qui a étudié 3 ans de plus dans un domaine est forcément plus compétente (Tu ne vas pas me dire que les 4 ans de spécialisation des chirurgiens ne signifient rien ! "Ben, ce n´est pas la même chose !" Et pourtant, si, l´informatique est un vrai domaine et les études ne sont pas bidons au delà de Bac +2, contrairement à ce que les geeks qui se prennent pour des informaticiens parcequ´ils ont fait un SELECT sur une page PhP pensent). Par contre, le problème est égalment que les postes d´ingénieur informaticiens ont des salaires de misère comparé à ceux des DUT/BTS et ça, pour un stress plus important et des projets souvent 15x moins intéressants. En général, le choix est vite fait pour un diplômé d´école d´ingénieur. Et fatalment, ça a les conséquences que l´on connaît.
"C´est ce qui me chagrine : j´ai l´impression que les gens ne se rendent pas compte qu´un DUT ou un BTS ne sait et ne peut pas tout faire. J´aimerais bien qu´on m´indique un BTS ou un DUT d´IA ou une formation dans ce domaine qui fait abstraction des maths, ou encore savoir si des boîtes telles que Microsoft ou IBM utilisent des Bac+2 pour bosser sur leurs projets R&D."
Je trouve que tu dénigres beaucoup les bac+2 pour encenser les bac+5 !
Tu confonds une chose, c´est que le boulot des bac+2 et des bac+5 n´est pas le même, un bac+2 est un technicien, un bac+5 est plus théoricien, il a des connaissances plus pointues dans certains domaines, il sait s´adapter rapidement au nouveaux outils, et il est là aussi pour gérer une équipe.
Quand tu prends l´exemple de l´IA, tu prends un exemple extrême, parce que c´est un domaine qui en est à ses tout début, qui pour le moment à très peu d´applications concrêtes, c´est surtout de la recherche.
Pour ce qui est des bac+2 chez Microsoft en R&D, si, il y´en a et bien plus que tu ne penses. Je sais de quoi je parles un copain bac+2 en fait partie.
"La plupart du temps, les ingénieurs finiront par faire de l´informatique de gestion et passeront leur temps a faire des petites boites de dialogue et de l´interfacage avec une bases de donnée.
Aujourd´hui en france on recrute des ingénieurs pour faire ca.
Mais en fait, c´est du travail de technicien."
Un ingénieur employé pour ça n´est pas plus compétent qu´un bac+2, au contraire, il l´est souvent même moins, car ce n´est pas un domaine qui le concerne et il n´a pas été formé pour ça. Il a d´autres compétences, mais pas dans ce domaine. Il va s´adapter, mais il lui faudra un certain temps. Sauf bien sûr s´il est passé par la case BTS/DUT, mais ce n´est pas souvent le cas !
Qu´est-ce que tu n´arrives pas à accpeter dans "Docteur > Ingénieur > Technicien" ?
J´ai l´impression que tu limites l´informatique à la phase de production et d´exploitation.
je ne vois pas ce que tu veux dire par "Docteur > Ingénieur > Technicien"
la seule chose vraie là dedans est :
"AnnéesD´étudeOf(Docteur) > AnnéesD´étudeOf(Ingénieur) > AnnéesD´étudeOf(Technicien)"
mais justement, ce sont des métiers qui n´ont rien à voir. Tu mets un docteur (même en informatique) à un poste de technicien et il sera calamiteux, car ça n´a rien a voir avec ce qu´il sait faire, de même avec un ingé, et c´est valable pour toute les combinaisons.
Et contrairement à Darth-Bane, je ne dirait pas qu´ils vont mettre un certain temps à s´adapter : un ingé à un poste de technicien va se faire chier, se dire qu´il est sous payé pour ce qu´il sait faire et que son boulot n´est pas intéressant, et il ne deviendra jamais bon.
d´autre part, ta comparaison avec la médecine est caduque : si un médecin spécialiste est d´abord un généraliste qui fait ensuite quelques années de spécialisation, ça n´a rien à voir avec les métier de l´informatique.
Tu prend quelqu´un qui est ingé à BAC+5, à BAC+2 il n´est rien, généralement il ne peut même pas te coder un hello world. Un ingénieur n´a jamais été "avant" un technicien (sauf exception car un technicien de formation peut ensuite évoluer vers de l´ingénierie, mais après quelques années d´expérience). La formation n´a rien à voir et on ne peut pas comparer cela avec de la spécialisation.
Ce sont deux formations très différentes, et les uns ne savent pas faire ce que font les autres.
Dans tout ça, je ne parle même pas des docteur, les avoir mis là était une aberration totale. tant le boulot de chercheurs en informatique est éloigné du boulot d´informaticiens, que ce soit pour un technicien ou pour un ingénieur.
en relisant tes messages pls haut, je vois ce qui cloche : tu évoque la R&D de boite comme microsoft ou google. MAis il faut se dire que ça, ça n´a rien à voir avec l´informatique.
99% des informaticiens bosse dans les services informatiques des divers botes et leur boulot est interne, ils gèrent l´informatique de l´entreprise elle même, les réseau, les PGI (comme on dit maintenant), l´assistance aux utilisateurs, (même si par ailleurs la boite est une boite d´informatique, ce qui n´est pas la majorité des cas), ils font du développement, mais pour leur entreprise (ou des clients dans certaine cas, mais le résultat est le même).
Le développement de grand logiciels commerciaux, ou la mise au points des grand système (windows, moteur de recherche, toutes la recherche universitaire, etc), n´emploi qu´une petite minorité d´informaticiens.
Ton exemple même de l´IA pour laquel il n´y a pas de DUT est marquant : personne n´a besoin de coder une IA. Le développement de jeux vidéo n´est pas un débouché pour un informaticiens, c´est un secteur très très marginale de l´informatique (que ce soit du point de vue du nombre d´emploi ou de l´argent qui est en jeu).
L´IA pour les jeux vidéos représente une part marginale de ses applications. L´IA n´existe pas, c´est juste une appelation pour des techniques d´algorithmie avancée, très prisées par l´industrie (Planification, satisfaction de contraintes, reconnaissances diverses et variées, systèmes d´aide à la décision, recherche opérationelle, et j´en passe).
Pour ce qui est de la spécialisation, je ne suis pas d´aaccord : un chercheur en BD est incapable de faire ce que fait un chercheur en Système et idem pour toutes les spécialisations. Pour ce qui est des compétences techniques des docteurs en informatique, je te rapelle qu´il existe le poste d´ingénieur de recherche où l´on ne recrute que des docteurs et d´autres personnes en interne par concours, ces gens là bossent sur des porjets où même un ingénieur ne suffit pas (Transcription de travaux de recherche en technologies exploitables, par exemple). Pour finir sur le R&D, la plupart des professeurs d´université que je connais ont des contrats de consulting pour des grosses boîtes comme Renault et autres, pour justement faire du R&D. Enfin, dire qu´un docteur ou un ingénieur est une brelle en coding, c´est ne pas avoir suivit ce cursus : ayant suvit à la fois un DUT et un Master, je peux te garantir que ce n´est pas le cas.
PS : Dire que le jeu vidéo est un secteur marginal de l´informatique est exagéré : il est quand même devant celui du cinéma en termes de marché :p