Je suis un débutant dans le domaine du développement de logiciels. Je suis avide de plus de possibilités à travers lesquelles je peux développer, développer et mûrir dans mes compétences de développement, de script et de programmation, plus encore en dehors du temps de travail. Je voudrais savoir quel type d'installation (matériel et/ou logiciel) serait extrêmement bénéfique ou que d'autres ont trouvé nécessaire pour cette entreprise. Je veux être en mesure d'équiper mon «bureau» d'accueil avec des outils qui me permettront de progresser et de grandir en tant que développeur.Quel type de configuration/d'outils faut-il avoir si je veux développer mes compétences en tant que développeur de logiciels (en Java, Python, C, C++)?
Répondre
Ecrire le code:
Dans cette articleJeff Atwood parle de la façon de mieux à la conception et l'écriture de logiciels en concevant et en écriture d'un grand nombre de logiciels. Son est énoncé plus élégamment, mais c'est un point valable. Plus vous faites quelque chose, mieux vous l'obtiendrez.
Matériel:
Tout PC moderne/matériel Mac devrait suffire. Si vous envisagez d'utiliser Windows ou Linux, j'utiliserais un PC sur Mac. Il y a beaucoup de clameurs sur ce qui est mieux, mais utilisez celui que vous préférez.
Il devrait être un point discutable à ce jour et l'âge, mais assurez-vous d'avoir une sorte de connexion Internet fiable (câble, DSL, peu importe ...). Ensuite, vous aurez accès à Google et stackoverflow; les deux bonnes ressources pour les programmeurs. Assurez-vous d'avoir un clavier et une souris à l'aise avec vous.Cela comprend la mise en place de votre bureau et de votre chaise pour s'adapter à votre taille et à votre position de la main. Vous serez à l'ordinateur pendant de longues périodes, et vous voulez être à l'aise.
Editor/IDE:
Choisissez un éditeur: Vim, EMACS, KATE, Eclipse, tout. Peu importe lequel, mais celui que vous choisissez l'apprend bien. L'éditeur est votre outil principal et vous voulez être à l'aise et bien informé lors de son utilisation. Mieux vous connaissez votre éditeur, plus vite vous pouvez créer/modifier du code.
Il est utile d'avoir un éditeur qui fonctionne sur toutes les plateformes sur lesquelles vous pouvez développer, mais ce n'est pas nécessaire.
Outils: Construire
À un certain moment, vous trouverez votre auto face à face avec avoir à créer ou fixer une construction stystem. Make est assez standard pour * nix et C/C++, mais pour vos projets personnels, trouvez celui qui vous convient le mieux. Il y a beaucoup à choisir: Scons, Ant, Make, Jam, ...
Personnellement, j'utilise SCons, car il est basé sur python, et j'aime python.
Livres:
Lors de l'apprentissage d'un nouveau sujet, je vous recommande de prendre un bon livre sur elle. Cela vous donnera généralement un bon aperçu de ce que vous entreprenez, et vous donnera une bonne base pour apprendre. Google et Stackoverflow sont utiles pour des questions spécifiques, mais un aperçu général d'un sujet est plus difficile à obtenir. Cela suppose évidemment que vous avez le luxe du temps et de l'argent. Pour les contraintes monétaires, vous pouvez souvent trouver des versions gratuites de livres électroniques en ligne.
Langues:
Je l'habitude d'avoir des sentiments forts au sujet de langues à apprendre, mais maintenant je me rends compte que vous devriez écrire dans la langue que vous aimez le plus. Cependant, n'ayez pas peur d'essayer de nouvelles langues. Personnellement, j'aime C++, Python et C# dans aucun ordre particulier.
Depuis que vous débutez, choisissez les langues que vous pouvez obtenir gratuitement, ce que je pense réellement être la plupart des langues de nos jours.
Dans le monde des affaires, la langue de choix a tendance à fluctuer sur un cycle d'environ 5-7 ans. Cependant vous pouvez trouver un travail (au moins actuellement) dans tous les "grands" langages (C++, JAVA, C# VB.net, python, ruby, perl, ...). Si vous apprenez bien l'une des langues modernes, il n'est généralement pas difficile de passer rapidement à une autre langue. Les bibliothèques ont tendance à prendre plus de temps à apprendre que la langue elle-même. Choisissez donc une langue que vous aimez apprendre et apprenez-la.
Pensées Divers:
Comme Marc Charbonneau dit mis en place le contrôle de la source. Il existe de nombreuses offres de contrôle de source libre, alors choisissez celui que vous préférez. Personnellement, j'utilise Perforce, qui est gratuit pour deux personnes ou moins. J'ai également entendu de bonnes choses à propos de Subversion et git. Le spécifique n'est pas aussi important, mais en choisir un.
Si vous voulez acquérir une connaissance plus approfondie de l'informatique, je recommanderais les Book et Knuth de Sipser.
Quelle que soit la langue que vous choisissez, je passerais du temps à apprendre le débogueur.
Si vous faites du développement Web, assurez-vous de savoir comment configurer et exécuter au minimum Apachie (ou IIS).
Évitez les guerres saintes si vous le pouvez. Ils sont une perte de temps, et vous n'en apprenez rien, sauf que les gens sont têtus. Quelques sujets de guerre sainte (style support, éditeurs, endianess, "meilleur" langage, "meilleur" OS, ...).
Ma configuration personnelle:
PC standard (Windows XP Pro)
- Visual Studio 2007 (un peu en arrière).
- VIM
- Python
- C/C++
- C#
- Scons
PC standard (FreeBSD fonctionne sans tête: pas d'interface graphique)
- chaîne d'outils gnu (marque, C/C++ etc.)
- VIM
- python
- Scons
Personnellement, je recommande de commencer par Linux - à peu près tous les langages de programmation ont de bons outils libres sous Linux. Ensuite, j'utiliserais VMWare pour créer des machines virtuelles avec d'autres plateformes sur lesquelles vous pourriez tester votre logiciel: Windows, autres distributions Linux, OpenSolaris, etc. Encore une fois, d'après mon expérience, Linux avec Windows VM fonctionne mieux qu'avec Windows avec Linux VM.
Je recommande KATE (partie de KDE) en tant qu'éditeur. C'est un éditeur léger et facile avec la coloration syntaxique, plusieurs fichiers et un terminal intégré. Ce n'est pas imposant comme emacs ou vim, et c'est génial pour toutes sortes de projets, à cause du terminal. C'est un peu comme un mini-IDE.
Rien ne vaudra plus que de choisir un projet qui utilise les technologies qui vous intéressent le plus et de le construire. Vous pourriez décider que vous allez apprendre le langage X ou lire un livre sur Y pour aucune autre raison que d'augmenter vos connaissances, mais même si vous avez la volonté de suivre tout le chemin, je suis prêt à parier que vous apprendrez tout autant et obtenir beaucoup plus de satisfaction de baser votre apprentissage autour de quelque chose de pratique.
En ce qui concerne les outils spécifiques, eh bien, la seule réponse dépend de ce que vous voulez faire. Vous pourriez utiliser Visual C# Express de Microsoft, NetBeans IDE pour Java ou Xcode sur un Mac. Tout cela est gratuit, mais c'est vraiment ce que vous envisagez de faire avec les outils qui comptent, et non pas que vous les ayez installés sur votre disque dur. La même chose vaut pour le matériel et l'OS, vous pouvez avoir un bon PC Windows pour construire un jeu en C#, ou utiliser un Mac pour le développement web, etc. Décidez de ce que vous voulez faire, et choisissez les meilleurs outils qui permettent vous pour atteindre cet objectif. Une chose qui est à peu près indépendante de tout est une sorte de contrôle de version; c'est une bonne idée, peu importe le projet ou la technologie que vous utilisez. Git et Subversion sont deux choix populaires, multi-plateformes.
A __gVirt_NP_NN_NNPS<__ connexion rapide (pour le téléchargement de linux), et un compte safari.oreilly.com!
+ 1 réponse brillante – whytheq
Je viens de commencer à jouer avec vim et un peu inquiet que le travail est totalement centré sur MS donc je pourrais ne pas avoir assez de temps pour apprendre correctement vim - mais si je limite mon ordinateur portable à la maison, je peux apprenez le meilleur des deux mondes - VS pendant la journée et VIM la nuit! – whytheq