Brèves

WebTV

Actualité de la scène

Compétitions

Forum
Index du forum > VaKarM > Le bistrot > Apprendre le codage ?
Apprendre le codage ? - 71 messages, 13511 vues
Page 5 sur 8
1
...
3
4
5
6
7
...
8
Réponse #41
Par Sindai - 14/05/2015 00:40:27
Il faut savoir que si tu sais programmer avec un langage, si t'as bien appris tu peux switcher d'un langage a l'autre facilement (enfin ça dépend, certain langage sont chelou).

Non, non et non. Ca c'est une utopie de développeur débutant. La syntaxe d'un langage, c'est 10% du boulot (enfin un peu plus avec Haskell, ok :D).
Ce qui est important c'est de connaitre et d'apprendre les idiomes du langage et la librairie standard (et non standard après). Et ça, ça se fait pas en 2 jours. Alors oui, bien sur que tu pourras parcourir ton tableau en Python ou en ruby en faisant un for(int i=0; i < sizeof(a)/sizeof(a[0]); i++) { blabla }. Et ça marchera. Mais c'est pas du python ou du ruby ça. Comment tu parses un CSV/un XLS ? Comment tu te connectes à un webservice REST ? Comment tu fais un SSO avec Facebook ? Comment tu trouves un plus court chemin dans un graphe de millions de noeuds ? Etc, etc... Et tout ça, c'est long et ça prend du temps à savoir.

@root : Le TIOBE index a aucun intérêt ici. Pour le moment le mec veut pas en faire son métier. Et quand bien même il voudrait chercher un taf de dev, tous les langages présent dans le top 10 permettent de trouver des taf super facilement. Du coup savoir si t'auras 1000 offres d'emplois (dont 990 de SSII ceci étant) en JAVA ou 100 en Python, je suis pas sur que ce soit discriminant : dans tous les cas tu trouves un job.



Je suis pas du tout d'accord avec toi, le plus dur c'est d'avoir les notions d'algorithmie, ensuite switcher d'un langage a un autre ça requirt un petit temps à chaque fois mais si t'en es pas capable tu vas pas très loin. Pour ton exemple, je ne programme pas en Python, donc je ne connais pas du tout sa bibliothèque standard (et pas librairie hein ^^) pourtant si je devais programmer un petit parser de csv(qui est d'ailleurs le pire exemple du monde vu le format de fichier que c'est) ou un xls je ferais une recherche sur Google et je suis sur que je mettrais juste un petit peu plus de temps que toi qui connait la bibli.

Et pour l'indice TIOBE encore une fois je suis pas vraiment d'accord, il peut être déterminant dans le choix d'un langage vu qu'il est bati au nombre de recherche sur les langages, donc, virtuellement sur le nombre de personne qui s'interresse à un langage sur la durée.
Réponse #42
Par NeO-Windrunner - 14/05/2015 00:42:09
école d'ingénieurs généralistes alors.

Parce que je t'assure que tu peux être ingénieur et être une vraie bite en maths, et tout particulièrement ingé réseau x)

Sinon, plus grand monde ne fait de C c'est vrai, mais c'est un language qui a d'énormes avantages d'un point de vue pédagogique:
- non orienté objet
- introduit la gestion mémoire, la pile et le tas, avec les pointeurs et les allocations
- ultra simple à mettre en oeuvre depuis un environnement Linux
- compilé donc permet de voir plein de choses sur la compilation, le language machine

Alors à terme, pour développer peut-être pas.
Mais pour s'initier à la programmation c'est parfait comme langage, précisément parce que c'est exigeant et que tu dois gérer, et donc comprendre, des notions d'architecture matérielle

Perso j'ai adoré faire du C, alors que j'ai commencé par d'autres langages


Je suis parfaitement d'accord avec ton point de vue.
Un développeur se doit de connaitre les fondamentaux d'une machine, son fonctionnement, sa gestion etc. C'est primordial et le langage C est pour moi l'un des meilleurs pour le découvrir.
Réponse #43
Par SekYo - 14/05/2015 01:17:39
Je suis pas du tout d'accord avec toi, le plus dur c'est d'avoir les notions d'algorithmie, ensuite switcher d'un langage a un autre ça requirt un petit temps à chaque fois mais si t'en es pas capable tu vas pas très loin. Pour ton exemple, je ne programme pas en Python, donc je ne connais pas du tout sa bibliothèque standard (et pas librairie hein ^^) pourtant si je devais programmer un petit parser de csv(qui est d'ailleurs le pire exemple du monde vu le format de fichier que c'est) ou un xls je ferais une recherche sur Google et je suis sur que je mettrais juste un petit peu plus de temps que toi qui connait la bibli.

Et pour l'indice TIOBE encore une fois je suis pas vraiment d'accord, il peut être déterminant dans le choix d'un langage vu qu'il est bati au nombre de recherche sur les langages, donc, virtuellement sur le nombre de personne qui s'interresse à un langage sur la durée.

80% (chiffre pifométrique) des jobs de dev ne nécessite que des connaissances très light en algo. A moins de bosser dans de la recherche, de toutes manières le jour ou t'as besoin de faire une recherche d'un plus court chemin, de calculer un diagramme de voronoi, de trier 100000000 d'éléments, de faire des multiplications de matrices tu vas passer par une librairie spécialisée qui va te faire ça 1000 fois mieux que toi. Alors oui faut avoir une certaine logique, être capable de découper un problème en modules, fonctions, se souvenir vaguement de quelques notions de maths... Mais j'aurai du mal à qualifier ça de "difficile".

Utiliser les bons idiomes du langage de façon quasi automatique, ça demande un peu de temps. Surtout quand tu commences à aborder de la programmation dynamique, ou des langages fonctionnels par exemple, qui sont pas forcément des modes de programmation très courant. Et donc auxquels tu vas penser en premier abord. Quand tu viens du C, tu penses plus à itérer sur tes listes avec un integer qui va faire ton compteur. Mais pourtant dans beaucoup de langage c'est quand même nettement mieux de passer par un itérateur. Exemple simpliste ici bien sur.

Mais c'est ce qui va te rendre efficace. Un langage, c'est un outil. Et comme n'importe quel outil, si tu l'utilises mal, c'est dommage. Certes tu peux clouer un clou avec un tournevis, mais je pense pas que ce soit la meilleure façon de l'utiliser. Python et Ruby sont des langages avec des possibilités de méta programmation très poussés et c'est ce qui rend des framework comme Django ou Rails super simple à utiliser.... là ou les équivalent PHP (Symfonie en tête) ont eu beaucoup plus de mal à implémenter certaines fonctions, rendant le FW moins facile à utiliser (ça s'est dans doute amélioré depuis).

Pour le TIOBE, ça sert à rien parce que tous les langages du top10 ont de toutes manières déjà une communauté tellement énorme que c'est pas des trucs qui disparaitront du jour au lendemain. Quand tu vois que tu trouves toujours des jobs en COBOL....


Sinon je pense que le C est bien, mais dans un second temps. Justement pour apprendre à creuser, à comprendre comment ça se passe derrière. En plus en 2ème effet kisscool, le python s'interface bien avec le C. Donc tu peux imaginer reprendre un programme Python écrit pour débuter et accélérer les parties critiques en C avec des bindings derrière.
Réponse #44
Par Sindai - 14/05/2015 01:25:45
Je suis pas du tout d'accord avec toi, le plus dur c'est d'avoir les notions d'algorithmie, ensuite switcher d'un langage a un autre ça requirt un petit temps à chaque fois mais si t'en es pas capable tu vas pas très loin. Pour ton exemple, je ne programme pas en Python, donc je ne connais pas du tout sa bibliothèque standard (et pas librairie hein ^^) pourtant si je devais programmer un petit parser de csv(qui est d'ailleurs le pire exemple du monde vu le format de fichier que c'est) ou un xls je ferais une recherche sur Google et je suis sur que je mettrais juste un petit peu plus de temps que toi qui connait la bibli.

Et pour l'indice TIOBE encore une fois je suis pas vraiment d'accord, il peut être déterminant dans le choix d'un langage vu qu'il est bati au nombre de recherche sur les langages, donc, virtuellement sur le nombre de personne qui s'interresse à un langage sur la durée.

80% (chiffre pifométrique) des jobs de dev ne nécessite que des connaissances très light en algo. A moins de bosser dans de la recherche, de toutes manières le jour ou t'as besoin de faire une recherche d'un plus court chemin, de calculer un diagramme de voronoi, de trier 100000000 d'éléments, de faire des multiplications de matrices tu vas passer par une librairie spécialisée qui va te faire ça 1000 fois mieux que toi. Alors oui faut avoir une certaine logique, être capable de découper un problème en modules, fonctions, se souvenir vaguement de quelques notions de maths... Mais j'aurai du mal à qualifier ça de "difficile".

Utiliser les bons idiomes du langage de façon quasi automatique, ça demande un peu de temps. Surtout quand tu commences à aborder de la programmation dynamique, ou des langages fonctionnels par exemple, qui sont pas forcément des modes de programmation très courant. Et donc auxquels tu vas penser en premier abord. Quand tu viens du C, tu penses plus à itérer sur tes listes avec un integer qui va faire ton compteur. Mais pourtant dans beaucoup de langage c'est quand même nettement mieux de passer par un itérateur. Exemple simpliste ici bien sur.

Mais c'est ce qui va te rendre efficace. Un langage, c'est un outil. Et comme n'importe quel outil, si tu l'utilises mal, c'est dommage. Certes tu peux clouer un clou avec un tournevis, mais je pense pas que ce soit la meilleure façon de l'utiliser. Python et Ruby sont des langages avec des possibilités de méta programmation très poussés et c'est ce qui rend des framework comme Django ou Rails super simple à utiliser.... là ou les équivalent PHP (Symfonie en tête) ont eu beaucoup plus de mal à implémenter certaines fonctions, rendant le FW moins facile à utiliser (ça s'est dans doute amélioré depuis).

Pour le TIOBE, ça sert à rien parce que tous les langages du top10 ont de toutes manières déjà une communauté tellement énorme que c'est pas des trucs qui disparaitront du jour au lendemain. Quand tu vois que tu trouves toujours des jobs en COBOL....


Sinon je pense que le C est bien, mais dans un second temps. Justement pour apprendre à creuser, à comprendre comment ça se passe derrière. En plus en 2ème effet kisscool, le python s'interface bien avec le C. Donc tu peux imaginer reprendre un programme Python écrit pour débuter et accélérer les parties critiques en C avec des bindings derrière.



Quand je parle de notions d'algorithmie je parle bien entendu de variable, de structure conditionnelles, itératives, répétitives mais aussi des notions de POO (héritage, polymorphisme toussa). Une fois que t'as ce bagage la bien ancré, passer d'un langage a un autre c'est très rapide et t'as jamais vraiment un besoin absolu d'utiliser les spécificités d'un langage (ou alors si c'est vraiment a ce point tu le connais parce que tu fais un peu de veille et t'as un peu de culture technique).

Et ensuite pour répondre à la question, Java c'est pas mal pour apprendre la programmation et la POO en général, le tout c'est de choisir un langage parmis ceux proposés (Python c'est très bien aussi, C# c'est pas mal et de mieux en mieux vu le contexte .NET) et de t'y tenir un certain temps.
Réponse #45
Par SatisFaction - 14/05/2015 01:30:12
C/C++ (le plus utile, et puissant)

Pour info quasi plus personne ne fait du "C" pur, à part en embarqué, ou si tu bosses très bas niveau sur genre des drivers. C'est vraiment devenu une niche maintenant (bon une grosse niche hein, mais ça reste un faible % des applications). Le C++ a pris le dessus pour tout ce qui est dev de soft classique ( et le C# a le vent en poupe aussi, merci .Net ;) )


J'fais du C classique moi. C'est mieux pour l'assembleur :D
Version 99.
Réponse #46
Par SekYo - 14/05/2015 01:31:26
J'fais du C classique moi. C'est mieux pour l'assembleur :D
Version 99.

J'ai pas dit que ça existait plus hein :D
Réponse #47
Par SatisFaction - 14/05/2015 01:32:51
Il faut savoir que si tu sais programmer avec un langage, si t'as bien appris tu peux switcher d'un langage a l'autre facilement (enfin ça dépend, certain langage sont chelou).

Non, non et non. Ca c'est une utopie de développeur débutant. La syntaxe d'un langage, c'est 10% du boulot (enfin un peu plus avec Haskell, ok :D).
Ce qui est important c'est de connaitre et d'apprendre les idiomes du langage et la librairie standard (et non standard après). Et ça, ça se fait pas en 2 jours. Alors oui, bien sur que tu pourras parcourir ton tableau en Python ou en ruby en faisant un for(int i=0; i < sizeof(a)/sizeof(a[0]); i++) { blabla }. Et ça marchera. Mais c'est pas du python ou du ruby ça. Comment tu parses un CSV/un XLS ? Comment tu te connectes à un webservice REST ? Comment tu fais un SSO avec Facebook ? Comment tu trouves un plus court chemin dans un graphe de millions de noeuds ? Etc, etc... Et tout ça, c'est long et ça prend du temps à savoir.

@root : Le TIOBE index a aucun intérêt ici. Pour le moment le mec veut pas en faire son métier. Et quand bien même il voudrait chercher un taf de dev, tous les langages présent dans le top 10 permettent de trouver des taf super facilement. Du coup savoir si t'auras 1000 offres d'emplois (dont 990 de SSII ceci étant) en JAVA ou 100 en Python, je suis pas sur que ce soit discriminant : dans tous les cas tu trouves un job.


"Comment tu trouves un plus court chemin dans un graphe d'un million de noeuds?"

Ca, c'est pas du langage. Plus de l'algo ou de la RO. Donc je ne pense pas que ca dépende du langage pratiqué. En C et en ADA, la manip est la même.
Réponse #48
Par SatisFaction - 14/05/2015 01:34:27
J'fais du C classique moi. C'est mieux pour l'assembleur :D
Version 99.

J'ai pas dit que ça existait plus hein :D


Bien sûr, je ramenais juste ma phrase pour défendre le petit C qui est mon langage préféré ( <3 ).
Si c'est pas trop personnel, tu peux me décrire ton cursus rapidement? Je suis curieux aux vues des messages que tu as posté sur ce topic (c'est un compliment, hein :p ).
Réponse #49
Par SatisFaction - 14/05/2015 01:35:26 - Modifié le 14/05/2015 01:40:47
Je compte faire des études. Le codage c'est un plus qui est important dans le métier que je veux faire.


Si c'est pas indiscret, quel métier?

Ingénieur réseau, et refaire des études pour faire courtier / traders.;)


Passe ton brevet ma gueule on verra apres

Ingénieur réseau et trader c'est pas les même études poto

GL

T'apprendras que quand tu fait ingénieur ta un niveau assez bon en math pour poursuivre des études.
Merci poto!


Je plussoie. C'est pas les mêmes études à la fin, mais ca commence pareil. :)

Par contre, j'ai lu que (si j'ai bien compris) sekyo disait que l'algo, la RO, la logique n'étaient pas la plus grande partie de l'apprentissage de ton futur métier. Je suis de l'avis contraire. C'est la partie la plus importante et la plus dure, je trouve, personnellement. Apprendre un langage correctement, ca peut se faire tout seul sans problèmes (peut être pas le premier mais les suivants oui). Mais par contre, tu as besoin d'un réel enseignement académique pour tout ce qui "trouver le plus court chemin dans un graphe" ou tout ce qui est algorithme de triage, leur efficacité en moyenne, etc... Et ce sont ces connaissances-là qui te permettent de faire un code propre et de comprendre pour libérer les pointeurs dès qu'ils ne pointent plus est important ou pourquoi ta boucle n^n, y'a peut être mieux.
Réponse #50
Par SekYo - 14/05/2015 01:38:19 - Modifié le 14/05/2015 01:40:53
Ca, c'est pas du langage. Plus de l'algo ou de la RO. Donc je ne pense pas que ca dépende du langage pratiqué. En C et en ADA, la manip est la même.

C'est de l'algo oui. Mais en pratique, à moins d'avoir un besoin hyper spécifique, tu vas jamais réimplementer ton algo à la mano. Tu vas passer dans la mesure du possible par une librairie. Et donc c'est toujours bien d'avoir un écosystème fournit (comme en JAVA, ou C), ou t'auras toujours pleins de libs pour faire pleins de trucs, alors que Ruby par exemple est quand même très web-based. Du coup la connaissance de l'écosystème, savoir que pour bosser avec des matrices en Python t'as numpy (et surtout comment l'utiliser) ou savoir qu'au pire tu vas pouvoir te plugger sur telle librairie C via des bindings, ça dépend bien du langage.

Si je devais faire un Voronoï, je préférai avoir du Python ou du C++ (kikoo CGAL), plutôt que du PHP par exemple.


Edit: J'aime bien le C sinon. Ca me rappelle des bons souvenirs, quand je faisais de l'embarqué avec la datasheet d'un PIC16F sur les genoux, à essayer de gérer manuellement les quelques ko de bank de mémoire embarquée :D Super gratifiant la sensation de contrôle absolue que t'as sur le code qui sort.
Page 5 sur 8
1
...
3
4
5
6
7
...
8