Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 12/01/2013, à 06:58

flhat

Aborder le langage informatique

Bonjour,

Ma quête de l'occupation perpétuelle m'a tout dernièrement mené au monde de l'informatique, du web, de la programmation ; et j'aimerais apprendre à comprendre et jouer avec cet univers et ses langages, mais ne sait par où commencer.

Je détaille en bref : je suis aspie, et ait une forte tendance à vouloir connaitre les choses dans les moindres détails avant d'en tirer une conclusion et passer à autre chose, ça m'amuse, m'occupe, bref j'aime ça. Le problème que je rencontre avec l'informatique est l'ampleur et la diversité des domaines et langages employés, et leur nébulosité pour qui n'est pas initié. Autant pour une langue  humaine il suffit de lire, d'assembler et de composer pour en faire quelque chose de sympa, les trames étant facilement repérables du fait que l'on en connaisse une ou plusieurs de base, autant aborder un langage de programmation sans savoir faire de liens concrets avec un langage connu est assez déroutant hmm

Ma question est donc simple : par quel langage commencer, et qu'apprendre en premier lieu pour avoir à l'esprit l'ensemble de la chaîne de conséquences d'une action, de l'appui sur la touche à l'apparition graphique, en passant par le processeur ?

ou simplement me donner la trame générale que suivent les etudiants

(cela fait trois jours que je cherche sur le net, mais ne trouve pas de réponse satisfaisante)

Merci, et sincèrement désolé du fait que la question ne concerne pas ubuntu directement, et soit de plus très générale, j'ai pensé que le forum d'une distrib orientée vulgarisation aurait de bonnes chances d'être lu par une personne ayant la compétence et la clairvoyance pour répondre à ceci

ps : fichtre, encore un pavé ~~

Dernière modification par flhat (Le 12/01/2013, à 07:02)

Hors ligne

#2 Le 12/01/2013, à 08:27

tiramiseb

Re : Aborder le langage informatique

Salut, je vais faire court car j'écris sur mon smartphone.

Si tu veux programmer et obtenir rapidement un résultat pour approfondir le côté "interfaces" et tout ça, je te conseillerais de commencer par un langage de haut niveau. Je préconise Python, facile à aborder.

Si tu veux comprendre les mécanismes de fonctionnement du système (utilisation de la mémoire, gestion manuelle des erreurs, etc) il faut te tourner vers un langage bas niveau,  idéalement le C.

Si tu veux être au plus près du matériel, comprendre le fonctionnement du processeur finement,  il faut que tu apprennes l'assembleur.


Note que, contrairement aux langues humaines qui ont toutes pour but de faire communiquer des gens (et sont théoriquement interchangeables), les langages informatiques ont des approches différentes et certains sont plus adaptés que d'autres à certains cas.


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXe siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#3 Le 12/01/2013, à 09:04

grim7reaper

Re : Aborder le langage informatique

tiramiseb a écrit :

Si tu veux être au plus près du matériel, comprendre le fonctionnement du processeur finement,  il faut que tu apprennes l'assembleur.

Le mieux reste encore de réaliser un processeur en VHDL, là tu vas vraiment comprendre comment ça fonctionne big_smile
Là, tu es encore plus près du matos qu’en assembleur.



@flhat : tu peux peut-être jeter un œil à ce fil, ça pourrait t’aiguiller.

Dernière modification par grim7reaper (Le 12/01/2013, à 09:05)

Hors ligne

#4 Le 12/01/2013, à 11:51

Shanx

Re : Aborder le langage informatique

grim7reaper a écrit :
tiramiseb a écrit :

Si tu veux être au plus près du matériel, comprendre le fonctionnement du processeur finement,  il faut que tu apprennes l'assembleur.

Le mieux reste encore de réaliser un processeur en VHDL, là tu vas vraiment comprendre comment ça fonctionne big_smile
Là, tu es encore plus près du matos qu’en assembleur.

Ouais, mais le but n’est pas de le dégoutter de l’informatique à tout jamais, ni de tuer des bébés phoques (chaque ligne écrite en VHDL tue un bébé phoque, c’est bien connu).


« En vérité, je ne voyage pas, moi, pour atteindre un endroit précis, mais pour marcher : simple plaisir de voyager. » R. L. Stevenson
--
Blog et randos

Hors ligne

#5 Le 12/01/2013, à 15:25

grim7reaper

Re : Aborder le langage informatique

Faudra que tu m’expliques en quoi ça dégoûte de l’informatique…
T’en a déjà fait du VHDL ?

Bon c’est sûr que quand ce qui te (je parle pas forcément de toi là hein) fait bander c’est le Java ou C#, le VHDL va te faire peur big_smile (mais l’assembleur sera pas mieux), donc ça dépend de tes goûts.
Là s’il veux comprendre le processeur, bah y’a pas mieux que d’en faire un hein tongue
Et puis c’est bien fun quand ton processeur tourne et que lui fait exécuter une addition cool

Hors ligne

#6 Le 12/01/2013, à 16:53

:!pakman

Re : Aborder le langage informatique

VHDL... Jamais entendu parler, je vais voire à quoi ça ressemble tongue

@ flhat :

flhat a écrit :

par quel langage commencer, et qu'apprendre en premier lieu pour avoir à l'esprit l'ensemble de la chaîne de conséquences d'une action, de l'appui sur la touche à l'apparition graphique, en passant par le processeur ?

C'est vrai que l’informatique et plus particulièrement la programmation c'est vaste, très vaste (tout autant que très intéressant) et ce n'est pas facile de savoir par ou commencer.

Je rejoins un peu ce qui t'a été dit, à peu près chaque langage sert à faire quelque chose de précis. Pour débuter, Python me semble pas mal.

Dernière modification par :!pakman (Le 12/01/2013, à 16:54)


...

Hors ligne

#7 Le 12/01/2013, à 18:00

Shanx

Re : Aborder le langage informatique

grim7reaper a écrit :

Faudra que tu m’expliques en quoi ça dégoûte de l’informatique…
T’en a déjà fait du VHDL ?

J’ai un partiel de VHDL dans quelques jours, d’où mon dégoût prononcé. big_smile

Dernière modification par Shanx (Le 12/01/2013, à 18:20)


« En vérité, je ne voyage pas, moi, pour atteindre un endroit précis, mais pour marcher : simple plaisir de voyager. » R. L. Stevenson
--
Blog et randos

Hors ligne

#8 Le 12/01/2013, à 19:51

grim7reaper

Re : Aborder le langage informatique

Bonne chance alors.
Mais bon, c’est plutôt simple comme langage.

Hors ligne

#9 Le 12/01/2013, à 22:30

Abel 0

Re : Aborder le langage informatique

C'est quoi un aspie ? J'ai cherché un peu avant de poser la question, mais ai surtout trouvé des liens vers le syndrome d'Asperger, qui est une forme d'autisme. Bref, je ne suis pas sûr d'avoir compris neutral

flhat a écrit :

Ma question est donc simple : par quel langage commencer, et qu'apprendre en premier lieu pour avoir à l'esprit l'ensemble de la chaîne de conséquences d'une action, de l'appui sur la touche à l'apparition graphique, en passant par le processeur ?

Si tu veux comprendre l'ensemble de la "chaine" que tu décris, c'est moins un langage de programmation que les principes de fonctionnement d'un système d'exploitation qu'il te faudra apprendre, à mon avis.
Car d'une part un langage te dira le comment mais pas le pourquoi, et d'autre part un seul langage ne répondra pas à tous tes "comment ?".
Dans ton exemple, il pourrait être entre autres question de la gestion par ton OS des périphériques entrants (en particulier, le clavier sur lequel tu presses ta touche...), des processus (car le résultat de ta saisie va dépendre du programme dans lequel tu la fais), de l'affichage (gestionnaire de fenêtres), et j'en passe.
Maintenant, ça n'empêche pas d'apprendre aussi un langage (ou plusieurs), pour le "comment". Car tout ce que fait le système a été à un moment ou un autre programmé avec un langage de haut niveau (i.e. programmeur-"friendly"), avant d'être transcrit lors de la compilation en quelque chose d'illisible pour nous, mais de bien plus rapide pour la machine. En sortie de chaine, on se retrouve finalement avec des 0 et des 1 qui transitent dans des composants électroniques.

flhat a écrit :

ou simplement me donner la trame générale que suivent les etudiants

Ca dépend des études, en fait.
Entres des études courtes et des études longues, professionnalisées ou théoriques, et selon le domaine de spécialité, la trame n'est pas du tout la même.

Hors ligne

#10 Le 12/01/2013, à 22:37

lawl

Re : Aborder le langage informatique

je suis d'accord avec tiramiseb. Python permet d'avoir des résultats assez évolué rapidement ce qui est gratifiant. Mais si on est intéressé par ce qui ce passe sous le capot il va falloir s'attaquer ensuite au C mais rien n’empêche de débuter avec, c'est ce qui se faisait ou doit encore se faire dans certain cursus informatique. D’ailleurs j'ai carrément commencé avec l'assembleur puisque j'ai d'abord fait des études d'électronique ce qui est plutôt formateur mais aussi inutile dans la plupart des cas aujourd’hui.

Mais pour ne pas te disperser ce qui en informatique est vite arrivé il faudrait peut être te donner un but afin de choisir le langage en conséquence car comme tu la remarqué il y a beaucoup de langage qui ont tous des avantages et inconvénients et sont donc plus ou moins adapté à ce que l'on veux faire.

Hors ligne

#11 Le 12/01/2013, à 23:38

flhat

Re : Aborder le langage informatique

Merci infiniment pour ces réponses, le fil que tu donnes Grim est exactement ce que je cherchais, j'ai commencé à télécharger une partie des bouquins cités, histoire de me faire une idée plus approfondie des différents langages, des différentes approches avant d'aller plus loin.

et effectivement apprendre les langages sans avoir au préalable abordé la mécanique interne de l'ordinateur en général, et des systèmes d'exploitations, n'aurait pas franchement de sens dans mon cas : mon approche est celle du gars qui se dit "tiens pourquoi je peux pas faire de mon wave 2 une clé wifi, une webcam/micro" ou "wah c'est quoi ce sudoku ? un shellcode ... wat ?"

De la même façon la première question que je me suis posée a été de savoir s'il était possible de discerner une trame "grammaticale" ou syntaxique" transposable d'un langage à l'autre, ou de procéder par "niveaux" d'opération : ce qui parlera directement au composant, puis ce qui permettra au composant d'agir dans un environnement, puis ce qui permettra de donner une utilité au dit environnement, puis à l'environnement de former un ecosysteme etc, grossièrement

@abel 0, oui aspie c'est bien ça, j'ai toujours un doute sur ma façon d'aborder/de parler d'un sujet, du coup je préfère préciser

Hors ligne

#12 Le 12/01/2013, à 23:45

Shanx

Re : Aborder le langage informatique

Sinon, dans un domaine plus théorique, les bouquins de Tanenbaum sont pas mal (en tout cas, j’ai utilisé celui sur les réseaux pour mes cours, il est pas mal foutu et assez intéressant, même s’il y a parfois un peu trop de blabla).


« En vérité, je ne voyage pas, moi, pour atteindre un endroit précis, mais pour marcher : simple plaisir de voyager. » R. L. Stevenson
--
Blog et randos

Hors ligne

#13 Le 14/01/2013, à 00:35

flhat

Re : Aborder le langage informatique

merci;)

Pour le moment je me plonge dans l'algorithmique, et reprend par la même occasion des bases mathématiques et électroniques non maîtrisées, c'est sympa

Pour la suite je pense me prendre un Raspberry Pi et un petit routeur, histoire d'apprendre les bases sur du petit model domestique, avec des applications pratiques sans pour autant craindre de flinguer le matos, si vous voyez une contrainte technique ou theorique à commencer par ce genre de materiel n'hésitez pas

Dernière modification par flhat (Le 14/01/2013, à 01:03)

Hors ligne

#14 Le 28/01/2013, à 15:16

Abel 0

Re : Aborder le langage informatique

Tiens, j'avais oublié de revenir sur la question (implicite) ci-dessous :

flhat a écrit :

De la même façon la première question que je me suis posée a été de savoir s'il était possible de discerner une trame "grammaticale" ou syntaxique" transposable d'un langage à l'autre

Oui et non.
Ces éléments peuvent pas mal changer d'un langage à l'autre (sinon l'intérêt d'avoir des centaines de langages différents serait limité).
En revanche, il n'y a pas des centaines de manières d'exprimer une condition, par exemple ; tu peux donc t'attendre à trouver dans de nombreux langages un truc comme ça :

if (condition) then
    instruction1
else
    instruction2
fin

Même un truc aussi simple peut varier :

if (condition) {
    instruction1
} else {
    instruction2
}

OU

IF(condition ; instruction1 ; instruction2)

OU

(if (condition) (instruction1) (instruction2))

etc.

Mais tu retomberas souvent sur des formes déjà vues, qui feront que tu reconnaitras assez vite un "si alors sinon" quand tu en verras un.

En revanche, si la syntaxe (la forme) varie, la sémantique (le sens) varie peu, ce qui nous mène au coeur de la programmation : l'algorithmique (dans laquelle tu es en train de te plonger), ou "quel mode opératoire appliquer pour programmer telle fonction de manière juste et efficace ?"

Noter que j'ai parlé de sémantique et d'algorithme en réponse à ton évocation d'une "trame grammaticale", car le terme "grammaire" existe en maths et en informatique, mais avec un sens bien défini.

flhat a écrit :

ou de procéder par "niveaux" d'opération : ce qui parlera directement au composant, puis ce qui permettra au composant d'agir dans un environnement, puis ce qui permettra de donner une utilité au dit environnement, [...]

Hmmm, difficile d'être sûr de ce que tu as en tête exactement, mais tel que je l'imagine, ça pourrait correspondre à la notion de modularité, qui consiste à développer ses programmes comme un ensemble de fonctions "génériques" en interaction, de manière à ce qu'il soit possible de réutiliser ailleurs des éléments déjà développés.

Hors ligne

Haut de page ↑