web-dev-qa-db-fra.com

Combien de temps faudrait-il à un non-programmeur pour apprendre le C #, le .NET Framework et le SQL?

Je ne suis pas si bon en programmation. J'ai terminé ma maîtrise en électronique. Je veux apprendre le C #, le .NET Framework et SQL. Combien de temps pensez-vous que cela prendrait (si j'ai 5 heures par jour à y consacrer)? Aussi, dans quel ordre je les apprends? J'ai Visual Web Developer 2008, est-ce suffisant pour commencer?

Copié d'une nouvelle question par le même utilisateur:
J'aurais dû préciser que je souhaitais faire carrière dans le développement .NET. Je voudrais me donner 2 mois pour obtenir les «bases». En tant que développeur, qu'attendez-vous de vous dans les entreprises informatiques? De quelles compétences ont-ils besoin et quelles sont les responsabilités en tant que développeur débutant ou intermédiaire? Je n'ai aucune expérience dans le secteur. Est-ce que je pourrai avoir une idée des tâches de mon travail chez moi?

16
user51713

C'est comme demander combien de temps il faudrait pour apprendre le français:

  • 1 jour pour apprendre ce que c'est
  • 1 semaine pour apprendre à un nourrisson/élémentaire
  • 1 an pour être considéré débutant par les professionnels
  • Plusieurs années pour être considéré comme un professionnel expérimenté
  • De plus, il existe une connaissance "profonde" de ces sujets qu'un simple mortel, comme vous ou moi, n'apprendrons jamais

Encore une fois, beaucoup de gens (la plupart des gens normaux, non programmeurs) jamais apprennent ces sujets, donc si vous êtes comme "la plupart" des gens, alors la réponse serait "ça prendrait pour toujours" ou se produire".

51
ChrisW

Plongez, faites-en un passe-temps et amusez-vous bien :)

Venant moi-même de l’électronique, je peux vous dire que vous devriez l’acquérir assez rapidement. Et avoir une formation en électronique vous permettra de mieux comprendre le matériel sous-jacent.

IMHO la base de la technologie de l'information est l'électronique.

Par exemple..

Pensez aux objets en tant que composants.

Le framework .NET est essentiellement constitué de tiroirs contenant des composants standard.

Par exemple, vous savez ce qu'un 7400 (porte NAND) est capable de faire. Vous avez une fiche technique montrant les broches et les exemples de configuration. Vous ne vous souciez généralement pas des circuits internes. Les objets logiciels sont les mêmes. Nous avons des intrants et nous avons des méthodes qui agissent sur les intrants pour produire des extrants prévisibles. En tant que développeurs, nous ne nous soucions généralement pas de la manière dont l'objet a été écrit ... seulement qu'il fait ce qu'il dit qu'il fera.

Vous savez également que vous pouvez créer des circuits logiques supplémentaires en utilisant deux portes NAND ou plus. Ceci de ceci comme instanciation.

Vous savez également que vous pouvez prendre une porte NAND et la placer à l'intérieur d'un circuit dans lequel vous pouvez modifier les signaux d'entrée entrant pour que les sorties aient des comportements différents. Ceci est un exemple brut, mais vous pouvez considérer cela comme un héritage.

J'ai aussi appris qu'il est utile d'avoir un projet sur lequel travailler. Ce pourrait être un projet d'amateur ou un projet de travail. Commencez petit, obtenez quelque chose de très fondamental et travaillez à partir de là.

Pour répondre à votre question spécifique sur "Que devrais-je apprendre en premier".

1) Prenez votre projet que vous avez à l’esprit et divisez-le en étapes. Par exemple ... obtenez un numéro de l'utilisateur, ajoutez-en un au nombre, affichez le résultat. Pensez à cela comme à votre conception.

2) Apprendre le C # de base. Ecrivez une application console simple qui fait quelque chose. Apprenez ce qu'est une instruction if (toute la logique booléenne doit être quelque peu familière), découvrez les boucles, les opérations mathématiques, les fonctions (sous-routines). Jouez avec de simples fichiers i/o (lecture et écriture de fichiers texte). Le C # de base peut être considéré comme votre câblage et vos composants discrets (résistances, capuchons, transistors, etc.) sur vos puces (objets). 

3) Apprenez à instancier et à utiliser des objets du framework. Vous l'avez déjà fait, mais il est maintenant temps d'aller plus loin. Par exemple ... jouez avec System.Console encore un peu ... essayez de faire sonner le haut-parleur. Commencez également à rechercher des objets que vous souhaiterez peut-être utiliser pour le travail sur la base de données.

4) Apprendre le SQL de base. Beaucoup d'aide et d'exemples en ligne. Choisissez une base de données avec laquelle vous voulez travailler. Personnellement, je pense que MS Access est une excellente base de données pour débutants. Je ne l'utiliserais pas pour des applications de bureau multi-utilisateurs ou multiplateformes ... mais c'est une excellente base de données mono-utilisateur pour les utilisateurs Windows ... et un excellent moyen d'apprendre les bases du SQL. Il existe d'autres bases de données gratuites simples disponibles (Open Office en a une par exemple) si vous ne souhaitez pas utiliser Shell pour $ Access.

5) Développez votre application pour faire quelque chose avec une base de données.

17
Andy Webb

Eh bien, cela vous prendra pour toujours. Il y a tellement de choses à apprendre sur la programmation que 10 ans ne suffisent pas.

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

Ne vous méprenez pas, vous apprendrez les bases assez rapidement, mais pour devenir bon, cela prendra beaucoup plus de temps. 

Concentrez-vous sur un domaine et essayez de donner quelques exemples. Si vous choisissez le développement Web, commencez par une page Web Hello World, puis ajoutez-y du code. En savoir plus sur les publications, les vues et les sessions. Essayez de maîtriser les ifs, les cycles et les fonctions, vous avez vraiment beaucoup à couvrir, il n’est pas facile de dire «c’est la meilleure façon d’apprendre».

J'imagine qu'en fin de compte, vous apprendrez qu'il faut faire quelque chose.

8
Sergio

Simplement fais-le! Ne pas transpirer les détails.

7
Craig

Quelle est la longueur d'une ficelle? Je pense que c'est subjectif. Je connais des programmeurs qui ont appris énormément en très peu de temps, en se basant sur l'expérience à laquelle ils se sont exposés.

En gros, mettez la main à la pâte et vous en apprendrez plus.

5
Kezzer

Cela dépend vraiment de ce que vous entendez par "apprendre". Vous pourriez probablement passer une semaine et obtenir quelques pages sur le Web offrant un minimum d'interactivité pour enregistrer les informations saisies par l'utilisateur dans une base de données, puis disposer d'autres pages pour interroger et afficher les informations. Vous pourriez ensuite passer les 10 prochaines années de votre vie à apprendre toutes les subtilités du framework .Net, de SQL et de maîtriser à l'aide de l'EDI.

4
Kibbee

La période sur laquelle vous êtes capable d’apprendre dépend vraiment de votre capacité à comprendre la logique de la programmation, tandis que votre lieu d’apprentissage dépend de votre style d’apprentissage. 

Si vous êtes un type de gars apprenant par un livre, il suffit de vous rendre sur Amazon.com et d'effectuer une recherche rapide, de choisir le livre avec les meilleures critiques ou d'attendre que quelqu'un ici recommande un livre programmation par book mec)

Si vous préférez les screencasts (flux vidéo expliquant quoi faire) ou des tutoriels, allez directement à la source: http://www.asp.net/learn/ . Il existe une multitude de vidéos et de didacticiels expliquant tout ce dont vous avez besoin pour commencer.

Visual Web Developer 2008 Express devrait être tout ce dont vous avez besoin pour commencer. Fondamentalement, les éditions express sont Visual Studio découpées en un ensemble précis de fonctionnalités pour accomplir une chose. Ils ne disposent pas des fonctionnalités nécessaires au développement à grande échelle, mais de tout ce dont vous avez besoin.

4
Chance

La meilleure chose à propos de C # est qu’il est très entraînant. Facile à prendre en main et vous vous amuserez aussi à le faire.

Mais .NET Framework est une très grande bibliothèque pleine de choses formidables à découvrir. Encore une fois, grâce à la nature de .Net, vous aurez également du plaisir à l’apprendre. C'est une bibliothèque cohérente, orientée objet et bien documentée, et C # le rend si simple à utiliser que vous pouvez simplement vous y retrouver en codant. 

La grande majorité des articles, livres ou ressources sur .Net et C # se concentrent simplement sur une explication de la fonctionnalité et du cadre, et beaucoup moins sur la manière d'éviter les bizarreries, les solutions de contournement ou les cas exceptionnels, comme cela arrive dans d'autres langages que je ne souhaite pas nommer ( * toux C++ *) l’apprentissage de C # et .Net est donc très agréable du début à la fin, et ce que vous pouvez accomplir avec .Net le rend également très enrichissant.

Vous avez choisi une bonne langue pour commencer, à mon avis, et enfin pour répondre à votre question, cela vous prendra environ:

  • 2 à 3 mois pour apprendre les bases 
  • 1 à 2 ans pour devenir développeur expérimenté
  • 5 ans ou plus pour devenir un expert ou, selon votre dévouement, un "gourou".

Mais encore une fois, battre les chiffres et briser les limites réside dans la nature humaine. Pouvez-vous le faire plus vite que ça? ;-)

4
Pop Catalin

Je ne peux pas dire combien de temps cela prendrait, cela dépend vraiment de vos connaissances actuelles. J'ai réussi à apprendre le C #/.NET 2.0 les bases en environ 2 mois . nouvelle technologie. Voir Microsoft Learning .

3
driAn

Si vous voulez apprendre, voulez VRAIMENT apprendre, le temps n'a pas d'importance. Avance juste tous les jours. Laissez votre passion pour ce genre de choses vous faire avancer. Et un jour, vous verrez que vous êtes bon en C #/.NET. 

2
Alex Baranosky

Vous allez prendre c # assez rapidement (la syntaxe du langage n’est pas si compliquée). Il vous faudra beaucoup de temps pour vraiment apprendre le framework .NET, mais vous allez récupérer assez rapidement les parties très utilisées du framework et vous devriez commencer à voir des modèles dans le framework.

Mon conseil: ne pas apprenez seulement d’un livre ou d’un site Web. Ils vous apprendront le langage et le cadre, mais ils ne vous apprendront pas comment programmer quoi que ce soit d’utile. 

Écrire de petits extraits de code vous apprendra comment effectuer des tâches très spécifiques, mais pas pour écrire des applications. Ma suggestion est que vous pensiez à une application sur laquelle il pourrait être amusant de travailler (et faisable ... par exemple, ne pensez pas que vous allez écrire un système d’exploitation, une crysis ou autre dans un mois ou deux). Personnellement, quand j’étais en train d’apprendre, j’ai écrit ma propre application IRC complète, avec texte enrichi, messagerie personnelle, etc.

2
Giovanni Galbo

Si vous avez une expérience en programmation, vous pourrez probablement apprendre la syntaxe C # en quelques heures et vous en sentir à l'aise d'ici une semaine environ. Cependant, vous n'écrirez pas de structures complexes à moins d'écrire beaucoup de code avec. C'est vraiment la même chose que d'apprendre n'importe quelle langue: vous pouvez apprendre tous les mots et le grammeur assez rapidement, mais il faut un certain temps pour parler couramment.

MODIFIER

Un livre que vous pouvez choisir pour apprendre C # est C # en quelques mots (3.0) que j’ai trouvé très utile et qui a été recommandé par plusieurs personnes ici.

1
Elie

À mon avis, la réponse est liée à la question de savoir si vous avez un problème concret à résoudre ou si vous souhaitez simplement apprendre, par exemple, à vous préparer à un éventuel nouvel emploi. Si vous avez un problème, vous êtes en meilleure forme. Vous pouvez commencer par regarder autour de vous et voir comment d’autres personnes ont résolu ce problème. Les langues en général, vous devriez être capable de maîtriser assez rapidement (après tout, vous êtes titulaire d’un MS en EE, ce qui n’est pas une mince affaire pour l’OMI). 

Ce que vous devez être à l'affût, ce sont de bonnes pratiques de programmation. Vous vous verrez probablement vous demander "pourquoi cette méthode est-elle si petite", "pourquoi cette méthode est-elle vide et que diable fait cette Parole abstraite ici". Cela vous donnera une perspective au-delà de la syntaxe pour une bonne écriture.

1
Otávio Décio

Lorsque j'ai abandonné ma carrière dans la finance, j'ai pris neuf mois pour étudier à temps plein un livre d'Ivor Horton consacré à C++. J'avais beaucoup de soutien de mon meilleur ami, un gourou, et je programmais comme passe-temps depuis le lycée (j'avais 36 ans à l'époque). 

Ce n'est pas seulement la syntaxe qui est un problème. L'idée d'éléments tels que les pointeurs, les passages par références, les architectures à plusieurs niveaux, les classes vs les classes, etc., tout cela prend du temps à comprendre et à apprendre à utiliser. Et vous ajoutez à cela le framework .Net, qui est énorme et en constante évolution, et SQL, qui est un ensemble de compétences totalement différent de celui de C #. Vous n'avez pas non plus mentionné divers sous-ensembles du cadre qui sont de plus en plus utilisés, tels que WPF, WCF, WF, etc.

Vous êtes un universitaire, vous pouvez donc le faire, mais cela demandera beaucoup d'efforts pendant un long moment, et vous aurez certainement besoin de projets sur lesquels vous voulez travailler. Bonne chance à toi.

1
Mike K

Selon Malcolm Gladwell, il vous faudra 10 000 heures pour devenir vraiment bon. Alors commencez à craquer.

0
Patrick Harrington

Construisez sur ce que vous savez déjà et consultez de nombreuses offres d’emploi. Par exemple, j'ai vu des travaux demandant WinForms/WPF ET des composants électroniques pour l'écriture d'une interface utilisateur permettant de contrôler un matériel personnalisé. 

Vous pouvez trouver la boîte à outils .net «robotique» intéressante. 

.Net est maintenant trop gros pour que quiconque puisse apprendre à la fois Web et Desktop. Vous devez donc décider de la voie à suivre. Web a beaucoup plus de tâches, mais très peu de personnes possèdent de bonnes images fixes de bureau.

0
Ian Ringrose

Réponse simple: beaucoup plus longue que deux mois. Apprendre à programmer avec compétence prendra plus de temps que cela, quoi qu'il arrive. Il m'a fallu des années pour apprendre à être un programmeur orienté objet compétent et je suis bon dans ce domaine.

Des réponses plus détaillées: peu importe que vous appreniez C # ou SQL en premier, car ils sont très différents. Je suggérerais probablement SQL, car il est plus facile à apprendre et plus utile indépendamment.

Vous aurez du mal à vous habituer à la réalité du travail à la maison, un peu comme si vous étudiez la plomberie ou la finance quantitative.

Vous allez avoir du mal à rassembler toutes les informations sans un ou plusieurs projets que vous essayez de réaliser. Vous allez avoir besoin que d'autres personnes vous disent quand vous êtes stupide, quand vous êtes trop gros et que vous allez payer pour plus tard, et quand vous l'obtenez réellement.

Essayez de trouver un projet open source que vous trouvez vaguement intéressant. Étudiez leur code. Déterminez pourquoi ils font ce qu'ils font. Regardez la liste des bogues et essayez de trouver quelque chose d'aussi simple que possible à corriger. Travailler à partir de là. Apprendre à contribuer vous enseignera des choses utiles dans le monde du travail et vous donnera quelque chose à pointer. Il sera beaucoup plus facile d’obtenir votre premier emploi si vous avez une certaine expérience à pointer.

0
David Thornley

Toute "relativité" mise à part, pas rapide. Basé sur le fait que vous avez dit que vous n'aviez jamais programmé auparavant ... pour devenir un programmeur de base, quelques années. 

Et pour devenir un bon à exceptionnel (en utilisant des modèles de conception et des normes reconnues dans l'industrie qui se rapportent à des normes communes telles que définies par la norme ISO/IEC 9126 telles que la testabilité, la maintenabilité, etc.), il faut des années d'expérience et de codage souvent. ne deviens pas "Sr." ou un "architecte" du jour au lendemain et la même chose est vraie pour un développeur de niveau intermédiaire qui ne code pas slop.

C'est toujours un processus d'amélioration. Donc, l'apprentissage est relatif. Mais apprendre les bases semble simple jusqu'à ce que vous commenciez à concevoir des classes et des interfaces. Et même Leads trébuche sur les bases .. faire les choses mal. Tout le monde le fait. Il y a tellement de choses à connaître.

Si vous allez simplement ajouter des fonctionnalités (en utilisant des classes que votre responsable ou un architecte a écrasées pour l'équipe) sans ajouter vraiment de nouvelles classes, etc., c'est plus simple ... mais vous devez veiller à coder en utilisant des normes et vous-même. doivent encore connaître des domaines complexes de la POO. Mais ce n'est pas vraiment la POO. Lorsque vous commencez à créer des classes, des interfaces et à connaître l'héritage, les tas, les références, etc., yada yada ... et à comprendre VRAIMENT, cela prend du temps, aussi intelligent ou pensant que vous soyez.

Donc, pour un nouveau programmeur. Pas facile. Soyez prêt à coder beaucoup. Et si vous ne l'êtes pas, trouvez un emploi où vous êtes. Il s'agit de coder autant que possible afin que vous puissiez vous améliorer.

Lisez ces livres en premier. Ne plongez pas dans les autres, car ils ne sont pas conçus pour vous apprendre la langue de manière à ce que vous puissiez vous mettre à niveau rapidement:

http://www.Amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ref=pd_bbs_sr_4?ie=UTF8&s=books&qid=1231280335&sr=8-4

http://www.Amazon.com/Head-First-SQL-Brain-Learners/dp/0596526849/ref=pd_bbs_sr_7?ie=UTF8&s=books&qid=1231280335&sr=8-7

http://www.Amazon.com/Head-First-C-Brain-Friendly-Guides/dp/0596514824/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1231280393&sr=8-1

http://www.Amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1231280393&sr=8-3

ils vous feront comprendre le mieux que tous les autres livres. 

Également pour ces types de réponses boiteuses, ignorez-les:

"Là encore, beaucoup de gens (la plupart des gens normaux, non programmeurs) n'apprennent jamais ces sujets, donc si vous êtes comme" la plupart "des gens, la réponse serait" cela prendrait pour toujours "ou" cela n'arrivera jamais ". "

Ceux qui viennent de développeurs (généralement des chefs de file) qui ont fait un voyage sur leur ego ne veulent PAS que vous appreniez. Tout le monde apprend différemment et à des rythmes différents et vous finirez par devenir "rapide". Je suis très fatigué d'entendre les développeurs Sr. dire de telles déclarations lorsque leur sh ** pue aussi souvent, quelle que soit leur qualité. Au lieu de cela, ils devraient aider l’équipe à réussir et à apprendre, à condition que son équipe travaille dur pour se tenir au courant et fasse ce qu’elle peut faire elle-même (sans lixiviation).

Assurez-vous d’obtenir d’abord un poste de développeur de niveau junior ...

0

2-3 mois pour apprendre les bases ... pas moyen. À moins que vous ne codifiiez les spaghettis. Même chose pour les 1-2 ans. Spaghetti c'est alors ..

0