36 votes

Devenir un programmeur professionnel / ingénieur logiciel

Ce n'est pas strictement sur la programmation, le plus sur d'être un programmeur, donc je suis désolé si ce n'est pas le genre de question à poser sur ce forum (mod, s'il vous plaît supprimer si elle n'est pas)

Je suis un technicien informatique dans l'Armée américaine, et une fois que je suis je vais avoir huit ans sur le poste de travail. Je suis sur le point de commencer un degré en ligne de l'école (la seule façon que je peux obtenir de l'armée à payer pour cela, alors que je suis toujours), et je suis sérieux en regardant l'obtention d'un diplôme en sciences informatiques.

Je suis très bien avec les ordinateurs. Je peux prendre une part et le remettre ensemble avec mes yeux fermés. Je suis A+ et Network+ certifiés et je reçois un couple d'autres CompTIA certs avant de m'en sortir. Je peux travailler de Windows aussi bien que quiconque sur cette planète et je ne suis pas terrible avec Linux. Un emploi dans l'informatique est quelque chose que j'ai toujours voulu.

Mais, à part d'être un technicien en informatique, il semble que chaque emploi dans le domaine nécessite la capacité de programmation. J'aime la programmation comme un hobby. J'ai programmé TI de BASE à l'école secondaire et j'apprends Python, mais c'est aussi loin que mon expérience va. Ce genre de me ramène à mes questions:

  1. J'ai toujours entendu dire que la première langue est le plus difficile, et une fois que vous l'avez bien appris ensuite tous les autres, en sorte de se mettre en place pour vous. Est-ce vrai? Comme, si je passe les huit prochains mois mastering Python, va je suis assez d'être en mesure de ramasser au moins juste la compétence dans tout autre langage OO à l'intérieur d'un mois de l'étudiant ou quoi?

  2. Comment est-il facile de burn out? la plus grande chose que je crains est juste brûler sur la programmation. Je peux aller tout au long de la journée, si je suis à la programmation strictement pour mon propre désir, mais je peux imaginer qu'il soit vraiment facile à brûler après quelques années de programmation des délais et de certaines spécifications. Surtout si c'est un gros projet impliquant une douzaine de différents designers.

  3. À partir de ce que je vous ai dit à propos de moi-même, j'ai déjà être qualifié pour travailler en tant que régulier technicien (geek squad de type ou peut-être l'exécution d'un ordinateur à l'atelier de réparation).

  4. Est Python une bonne base pour apprendre? J'ai entendu dire qu'il vous fait détester les autres langues, car ils se sentent plus compliquée lors de l'apprentissage, mais aussi que son grand débutant langue.

  5. Si vous êtes un programmeur professionnel, avez-vous eu une de ces peurs?

  6. Recommanderiez-vous que je m'en tiens à la réparation d'ordinateur et Python plutôt que d'essayer d'entrer dans l'entreprise de programmation? (seulement à partir de ce que vous avez lu dans ce fil, de toute façon)

Merci de prendre le temps de lire tout cela, et la réponse (si vous avez)

23voto

S.Lott Points 207588

la première langue est le plus difficile,

La première chose est plus difficile. Essayez de changer de skis, un snowboard.

si je passe les huit prochains mois mastering Python, va je suis assez d'être en mesure de ramasser au moins juste la compétence dans tout autre langage OO à l'intérieur d'un mois de l'étudiant ou quoi?

Un mois? Pas de. Finalement? Oui.

Comment est-il facile de burn out?

C'est un travail. Comment est-il facile de graver à tout emploi?

Est Python une bonne base pour apprendre?

Il vous fait détester les autres langues, car ils se sentent plus compliquée lors de l'apprentissage.

De la sorte? C'est un travail. Toutes les quelques années, il y a une nouvelle technologie que (a) vous devez apprendre et (b) ne se compare pas avec n'importe quelle autre technologie.

Déception sur ce point. Après 35 années de programmation, je peux seulement dire que vous avez raison. Tout ce qui est nouveau est mauvais et tout ce que vous savez déjà, c'est mieux.

Si vous êtes un programmeur professionnel, avez-vous eu une de ces peurs?

Pas de. Aucune des choses que vous avez mentionner beaucoup d'importance à tous.

Peur de criminellement mal gérées sortir de l'entreprise. C'est quelque chose à craindre.

Peur d'une nouvelle technologie? S'il vous plaît. Plongée dans. Obtenir un emploi. Si vous ne l'aimez pas, acquérir de nouvelles compétences, d'en trouver d'autres emplois.

Recommanderiez-vous que je m'en tiens à la réparation d'ordinateur et Python plutôt que d'essayer d'entrer dans l'entreprise de programmation?

Encore une fois, il n'a pas d'importance. 30 ans à partir de maintenant, rien de tout cela n'existe pas et nous allons tous être de la programmation avec des langages qui n'ont pas été inventés sur des interfaces utilisateur qui n'existent même pas dans les films.

Quand j'ai commencé, nous perforées de nos programmes sur les cartes papier. Vraiment.

Si vous avez peur de l'avenir, vous avez peur de la vie elle-même. Ne vous inquiétez pas. Acquérir de nouvelles compétences tout aussi rapidement que vous le pouvez.

5voto

Benoit Points 39210
  1. La première langue est certainement la plus difficile car vous devez également apprendre les concepts avec elle comme des tableaux, des collections d'objets et de flux de programme. La deuxième langue que vous apprenez a beaucoup de "Oh, c'est comme ça de langue, sauf avec la petite différence"

  2. Je ne pouvais pas m'imaginer la gravure de la programmation, mais c'est probablement parce que je l'apprécie vraiment et j'ai développé une méthode. Je suis constamment à l'eau potable ou de thé, et si je ne fais pas de progrès (c'est à dire: je suis bloqué) je prends une pause et essayer d'oublier ce que je suis de codage. Le problème sera plus clair quand je reviendrai.

  3. Après avoir étudié Un+ et Network+ moi-même, je n'aurais certainement dire que vous avez les compétences nécessaires pour exécuter un atelier de réparation ou à un technicien de PC.

  4. Je n'ai pas appris python encore (j'ai l'intention de bientôt), mais de ce que j'ai lu à ce sujet, c'est un puissant langage orienté objet qui a beaucoup de fonctionnalités modernes. Donc, je m'attends à ce qu'il ne soit un début décent. Personnellement, j'ai commencé avec Java dans les années 90 appris plus tard, C/C++. Je pense que l'apprentissage de Java, C# ou C++ (pas d'ordre particulier) est important en tant que programmeur, juste parce qu'ils sont les langues les plus populaires actuellement.

  5. J'ai eu la chance et savais que je voulais code depuis que j'étais à l'école primaire. Donc je ne peux pas dire que j'ai eu les mêmes angoisses que toi.

  6. Avant de prendre cette décision, vous devriez apprendre à code. Une fois que vous débutez, vous verrez si c'est un bon ajustement pour vous. Je veux le regarder pour tech travailler et passer le temps ou les personnels de temps à l'apprentissage de la programmation. Si vous l'aimez plus que la réparation, puis prendre la plongée.

Mon contexte: je suis en informatique avec un logiciel d'ingénierie de la concentration à l'Université de Waterloo dans mon dernier terme. Je suis actuellement dans les dernières étapes de l'entrevue avec Google et Amazon. J'ai eu l'équivalent de 2 années de stages à la JANTE et Sybase et quelques autres sociétés de développement.

5voto

Shane Castle Points 1252

Peter Norvig, directeur de recherche chez Google, a un excellent post sur la façon de devenir un professionnel:

http://norvig.com/21-days.html

Voici quelques-uns des principaux points de son de son article (citation directe, paroles de Pierre):

  • S'intéresser à la programmation, et faire un peu parce que c'est amusant. Assurez-vous qu'il reste suffisamment de plaisir, de sorte que vous serez prêt à mettre dans dix ans.

  • Parlez à d'autres programmeurs; lire d'autres programmes. C'est plus important que n'importe quel livre ou cours de formation.

  • Programme. Le meilleur apprentissage est l'apprentissage par la pratique. Pour mettre plus techniquement, "le niveau maximal de performance pour les particuliers dans un domaine donné n'est pas atteint automatiquement en fonction de l'étendue de l'expérience, mais le niveau de performance peut être encore augmenté par les personnes hautement qualifiées en tant que résultat d'un effort délibéré pour s'améliorer." (p. 366) et "les plus efficaces de l'apprentissage est une tâche bien précise avec un niveau de difficulté pour la personne en particulier, instructif commentaires, et les opportunités pour la répétition et la correction des erreurs." (p. 20-21) Le livre de la Cognition dans la Pratique: l'Esprit, les Mathématiques et la Culture dans la Vie Quotidienne est une référence intéressante de ce point de vue.

  • Si vous le souhaitez, mettre en quatre ans dans un collège (ou plus dans une école d'études supérieures). Cela vous donnera accès à certains emplois qui nécessitent des informations d'identification, et il vous donnera une compréhension plus profonde de la matière, mais si vous n'appréciez pas l'école, vous pouvez (avec un dévouement) obtenir une expérience similaire sur le travail. En tout cas, le livre de l'apprentissage tout seul ne sera pas suffisant. "L'enseignement de l'informatique ne peut pas faire de quelqu'un un expert programmeur, pas plus que l'étude de brosses et de pigment peut faire à quelqu'un expert peintre", dit Eric Raymond, auteur de La Nouvelle Hacker Dictionnaire. L'un des meilleurs programmeurs j'ai jamais embauché avait seulement un diplôme d'études secondaires; il a produit beaucoup de grands logiciels, a son propre groupe de presse, et fait assez d'options d'achat d'actions pour acheter son propre boîte de nuit.

  • Travailler sur des projets avec d'autres programmeurs. Être le meilleur programmeur sur certains projets; être le pire sur certains autres. Lorsque vous êtes le meilleur, vous obtenez pour tester vos capacités à conduire un projet, et d'inspirer les autres avec votre vision. Lorsque vous êtes le pire des cas, vous apprendre ce que les maîtres n', et vous apprendre ce qu'ils n'aiment pas faire (parce qu'ils vous font faire à leur place).

  • Travailler sur des projets après les autres programmeurs. Être impliqué dans la compréhension d'un programme écrit par quelqu'un d'autre. Voir ce qu'il faut pour comprendre et réparer lorsque l'original programmeurs ne sont pas autour. Réfléchir à la manière de la conception de vos programmes afin de les rendre plus facile pour ceux qui le maintiendra après vous.

  • Apprendre au moins une demi-douzaine de langages de programmation. Inclure une langue qui prend en charge la classe des abstractions (comme le Java ou le C++), qui prend en charge fonctionnelle de l'abstraction (comme Lisp ou ML), qui prend en charge syntaxique abstraction (comme Lisp), qui prend en charge déclarative des spécifications (comme Prolog ou les modèles C++), qui prend en charge coroutines (comme Icône ou le Régime), et celui qui prend en charge le parallélisme (comme le Sisal).

  • Rappelez-vous qu'il est un "ordinateur" "computer science". Savoir combien de temps il faut à votre ordinateur pour exécuter une instruction, récupérer un mot de la mémoire (avec et sans cache miss), lire les mots consécutifs à partir du disque, et de chercher un nouvel emplacement sur le disque. (Les réponses ici.)

3voto

Paul Nathan Points 22910

La voie classique pour un logiciel professionnel d'ingénieur est par l'intermédiaire d'un Baccalauréat en Sciences de l'Informatique (Logiciel ou d'un Ingénieur, mais que la spécialisation est rare), avec des stages de votre deuxième et junior étés. Vous êtes qualifié pour démarrer le BSC et le faire bien.

La première langue est mindblowing dur et frustrant, la deuxième langue est le réapprentissage de la façon de penser, la troisième langue est assez banale.

Concernant Python, il est acceptable de la langue première et de ne pas dédaigner. Pour être complet, vous voulez savoir Assemblée/C/C#/(celui de F#, Haskell, Lisp) au moment où vous allez la recherche d'emploi.

Je ne suis pas un expert Python, donc je refuse de commenter si sa OO installations sont à la hauteur.

Les ordinateurs auront toujours besoin de fixation. Vous pouvez trouver une niche dans le, IL/EST monde hautement qualifiés, le système de soutien, en plus de vos compétences actuelles. ( www.serverfault.com est un bon endroit pour prendre un coup d'oeil à cette partie du monde).

edit:

La base qualificatif est le désir et votre capacité à moudre à travers la partie la plus dure et obtenir le doux et moelleux couches. C'est un travail, c'est du travail, ça peut être marrant, mais à la fin de la journée, le travail est toujours travailler. Voulez-vous faire ce travail ou un autre travail? Vous seul pouvez répondre.

3voto

slugster Points 27178

La programmation est un choix fantastique, pour beaucoup de gens, il semble geek et triste, mais c'est un travail où vous ne cessez jamais d'apprendre.

Cela dit (et ne voulant pas répéter ce que les autres ont déjà dit), si vous cherchez à entrer dans une entreprise, alors vous devez être prêt à faire de votre temps - vous aurez probablement besoin de commencer par le bas sur un salaire de merde et de faire quelques années avant que l'argent devient bon.

Votre arrière-plan dans la mise en réseau et la construction va être très bon, bien, il va vous faire un bien équilibré développeur parce que vous avez une compréhension de concepts en dehors de la programmation normale de monde.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X