Voici quelques logiciels que tout le monde devrait connaître 🙂
1. Les systèmes de contrôle des révisions -- que vous travailliez dans une équipe de 100 personnes, ou que vous'soyez juste tout seul, si vous'travaillez sur une conception, vous devriez utiliser un logiciel de contrôle des révisions. Il s'agit d'un logiciel qui vous permet de gérer différentes versions de documents, qu'il s'agisse de schémas ou de code source. Les documents textuels comme le code source ou les fichiers de configuration se prêtent particulièrement bien au contrôle de révision, car il'est facile de visualiser les différences entre les versions et de fusionner les changements d'une version à l'autre, surtout si plus d'une personne travaille sur un groupe de documents.
2. Outils de comparaison de fichiers -- Que vous'fusionniez le code source dans un système de contrôle de révision, ou que vous'essayiez simplement de voir quelle est la différence entre un fichier et un autre, vous'aurez besoin d'un logiciel de comparaison de fichiers. Il y a des outils en ligne de commande comme "diff", et il y a des logiciels de comparaison de fichiers en interface graphique. J'aime le programme appelé Beyond Compare -- il n'est pas gratuit, mais il est peu coûteux et très facile à utiliser. Il vous permet également de comparer deux répertoires, et vous permet de faire une comparaison de fichiers à trois. Il existe des versions Windows et Linux de Beyond Compare, et une version OSX est en préparation mais n'est pas encore disponible. Les autres outils disponibles sont SourceGear, DiffMerge (gratuit, multiplateforme = Win/OSX/Linux), Compare It ! (peu coûteux, Windows uniquement), DeltaWalker (coût modéré, OSX) et UltraCompare (coût modéré, multiplateforme).
3. Éditeurs -- travailler avec des fichiers texte peut être facile ou difficile selon le logiciel que vous'utilisez. Les éditeurs poids lourds sont les environnements de développement intégrés (IDE) comme Eclipse ou NetBeans ou Visual Studio. Ils sont parfaits si vous travaillez avec des outils logiciels spécifiques pour programmer un processeur particulier. Mais parfois, vous avez simplement besoin de modifier rapidement un fichier. Les éditeurs de base fournis avec le système d'exploitation (comme le Bloc-notes sous Windows ou TextEdit sur Mac) sont légers mais ne disposent pas de nombreuses fonctionnalités. J'aime avoir à ma disposition un éditeur de poids moyen : certains bons éditeurs gratuits dans cette catégorie sont Notepad++ pour Windows et TextWrangler pour le Mac ; j'ai également utilisé le non gratuit UltraEdit qui est un peu plus puissant et disponible pour Win/OSX/Linux. SlickEdit est un éditeur de niveau professionnel qui coûte quelques centaines de dollars et qui est probablement trop puissant pour la plupart des tâches, mais certains de mes collègues ne jurent que par lui. (Espérons qu'ils ne jurent pas par lui !)
4. Outils de construction -- si vous'commencez à écrire un logiciel dans un IDE, vous pouvez simplement cliquer sur "Build" et le programme compilera votre code source pour vous. Méfiez-vous de cette pratique. Cela signifie que vous laissez l'IDE s'occuper des détails, ce qui est bien pour les petits systèmes où vous apprenez quelque chose, mais il y a beaucoup d'options pour changer la façon dont votre logiciel est compilé, et dans un IDE, elles sont enterrées dans des menus, et ne sont pas facilement transférables d'un projet à un autre. Si vous'êtes chanceux, vous pouvez identifier les fichiers utilisés pour stocker les paramètres de construction, de sorte que vous pouvez les vérifier dans votre système de contrôle de révision, car sinon vous'ne stockez pas la source complète de votre projet.
5. Outils de scripting -- Parfois, vous avez besoin de mettre en place un logiciel rapide pour faire quelque chose. Il'est souvent difficile de le faire en C ou C++ parce que vous devez dépenser de l'énergie à écrire du code pour analyser des chaînes de caractères ou lire des fichiers ou autre chose, et ensuite vous devez compiler le programme C/C++ en un exécutable par plateforme informatique.
6. Outils d'analyse numérique -- À moins que vous ne fassiez quelque chose de vraiment simple comme un feu de circulation activé par Internet, il y a des chances que vous'fassiez une sorte de mathématiques dans un projet de système embarqué. Peut-être voulez-vous représenter des données sous forme de graphique, ou ajuster une courbe aux données, ou résoudre une équation, ou concevoir un filtre passe-bas, ou explorer comment quelque chose dans votre système varie lorsque vous changez un paramètre. Les outils d'analyse numérique vous aideront dans ces tâches et comprennent des programmes tels que MATLAB, Mathematica et MathCAD. Aucun de ces programmes n'est gratuit, et une version complète de MATLAB avec toutes les boîtes à outils peut vous coûter plusieurs milliers d'euros, mais ils offrent de nombreuses fonctionnalités. MATLAB est spécialisé dans l'analyse de données, et Mathematica dans l'algèbre symbolique. MathCAD se situe quelque part entre les deux, avec une approche du type "ce que vous voyez est ce que vous obtenez" : chaque opération utilisée pour obtenir le résultat que vous voyez dans une feuille de calcul MathCAD est visible dans cette feuille de calcul, ce qui est très transparent, et si vous imprimez la feuille de calcul, quelqu'un peut voir toutes les étapes nécessaires pour reproduire vos efforts. Comparez cela à une feuille de calcul Excel par exemple, où ce que vous voyez sont les résultats d'une opération ; pour regarder les étapes nécessaires pour effectuer cette opération, vous devez regarder dans chacune des cellules et voir s'il y a une formule à cet endroit.
7. Utilitaires de documentation -- souvent, vous aurez besoin de communiquer vos idées à d'autres personnes, et il existe de nombreux types de logiciels différents pour aider à le faire. Oui, il y a't les programmes Microsoft non gratuits comme Visio pour les organigrammes/graphiques, Word pour les documents, et PowerPoint pour les présentations. Parfois, vous voulez quelque chose de gratuit ou de plus spécialisé, cependant, pour des types particuliers de documents.
8. Logiciels de terminal et de communication : Lorsque vous devez communiquer sur des ports série, il'est temps d'utiliser un logiciel de terminal. Avant les navigateurs web, c'était beaucoup plus courant. Quel est le bon logiciel ? Les amis ne laissent pas leurs amis utiliser la version d'HyperTerminal fournie avec Windows -- elle n'est pas très robuste -- et Microsoft a finalement cessé de l'inclure avec Windows lorsqu'ils ont sorti Vista. Mes préférés sont PuTTYtel et TeraTerm Pro.
9. Outils d'assurance qualité (QA) des logiciels : Si vous écrivez des logiciels et que vous pensez écrire des logiciels sans bogues, vous vous trompez. Il existe de nombreux outils logiciels qui peuvent vous aider à trouver des bogues avant qu'ils ne vous trouvent. Bon, c'est ici que je dois admettre que je ne suis vraiment qu'un débutant et que je ne suis pas très familier avec ce qui existe. (Honte à moi !) Mais j'en sais assez pour suggérer quelques endroits où chercher. Certaines des principales catégories ici sont les suivantes:
10. Utilitaires de base en ligne de commande:
Plusieurs des programmes suivants sont des utilitaires en ligne de commande UNIX de l'époque où il n'y avait pas d'interfaces graphiques et où les choses devaient être faites à la main. À moins qu'il n'y ait une amélioration révolutionnaire des interfaces graphiques, il y aura toujours beaucoup plus de choses que vous pouvez faire par la ligne de commande, simplement parce qu'il y a plus de combinaisons de choses que vous pouvez faire via des scripts. Si vous'êtes sous OSX ou Linux, vous avez déjà ceux-ci ; si vous'êtes sous Windows, vous pouvez télécharger des versions binaires qui fonctionneront sur votre OS aux ports Win 32 natifs de certains utilitaires GNU ou Unxutils.