Combien de temps faudra-t-il pour un développeur d'apprendre Ruby? Et développer un site Web de production comme Stackoverflow? Normalement. Si le développeur a une expérience .NET mais aucune expérience de Ruby et MySQL ou PostgreSQL. P>
3 Réponses :
Si vous suivez le "Ruby Koans" , vous en apprendrez beaucoup sur RUBY IN 4 heures. Après cela, vous avez la pratique et cela viendra. P>
Ce n'est pas une langue difficile à apprendre, surtout si vous connaissez déjà des langues qui mélangent des concepts fonctionnels et orientés objet (comme C #). C'est une langue très expressif et vous permet de faire plus que c # lorsque vous entrez dans Meta-programmation. p>
En ce qui concerne le développement de sites Web avec Ruby, le cadre de Defacto est des rails, qu'un site comme Stackoverflow peut certainement être écrit. Cela vient avec sa propre courbe d'apprentissage plus raide (imo). Les rails résument la base de données loin de vous, alors en sachant que beaucoup sur les bases de données particulières n'est pas une nécessité. P>
Il s'agit d'une question massivement subjective, car cela dépend de votre expérience et de votre temps. Cependant, j'ai récemment appris Ruby et j'ai pu ramasser les bases sur quelques jours de lecture du livre Pickaxe. Je recommanderais que le livre si vous avez une expérience de programmation préalable, ou le guide poignant de rubis de Ruby si vous n'avez jamais programmé auparavant.
Donc, vous devriez pouvoir connaître une syntaxe de base après quelques heures de travail, mais cela vous mènera beaucoup plus longtemps pour maîtriser la langue. Attendez-vous à quelques mois d'apprentissage solide pour pouvoir vous appeler avancé.
Depuis que vous avez mentionné le développement Web, des cadres tels que Sinatra sont assez faciles à démarrer. Les rails sont un peu plus difficiles et nécessitent plus d'apprentissage avant que un site Web fonctionnel puisse être construit. Ainsi, après avoir appris Ruby lui-même, je dirais environ 2 à 3 semaines (en fonction du temps investi) pour pouvoir construire des sites Web «appropriés» avec Sinatra. Quant à quelque chose comme Stackoverflow, cela prendrait beaucoup plus de temps et probablement une équipe de développeurs. P>
J'adore _Pourquoi et son guide poignant, mais alors qu'il était divertissant, j'ai eu du mal à en apprendre.
J'ai travaillé avec .NET pendant environ 3-4 ans et Java depuis 3 ans avant cela, je travaille maintenant dans un magasin de rails.
L'apprentissage de la syntaxe de base est morte simple. Enroulant votre tête autour de certains des concepts prendra beaucoup plus de temps. Comme un peu d'une liste de contrôle p>
C'est le genre simple. Après cela, vous voulez apprendre plus de ce genre de choses p>
Il est difficile de dire combien de temps cela prendra. Pour moi, les premiers bits ont pris environ un mois de jouer avec des livres de rubis et de lecture. La seconde moitié a probablement pris plus de trois ou quatre (bien qu'il y avait des rails d'apprentissage là-bas aussi) p>
comme pour mysql / pg, ce n'est pas comme si vous devez commencer complètement à partir de zéro. L'outil n'est pas aussi génial que SSMS (IMO, la meilleure partie de la pile MS), mais il suffit d'obtenir. Si vous utilisez des rails, la plupart des trucs de base de données sont abstraits. Si vous avez besoin de vérifier quelque chose dans la DB, neuf fois sur dix vous déroulez un script / console et utilisez simplement l'API ActiveCord (qui est hors de ce monde incroyable) p>
EDIT: P >
Individuation de l'objet signifie que chaque instance d'objet est sa propre "chose", qui est basée sur une classe, mais n'est peut-être pas simplement cette classe. Voici quelques exemples P>
Tout d'abord, nous construisons une classe p> Nous l'instanciez deux fois p> redéfinir une méthode tirée de la classe, mais uniquement sur t2 code> p> t1 CODE> P> irb(main):018:0> module TestModule
irb(main):019:1> def tm
irb(main):020:2> puts 'this is where it gets interesting'
irb(main):021:2> end
irb(main):022:1> end
=> nil
irb(main):023:0> t2.extend TestModule
=> #<TestClass:0x7fea78ed6ba0>
irb(main):024:0> t2.tm
this is where it gets interesting
=> nil
irb(main):025:0> t1.tm
NoMethodError: undefined method `tm' for #<TestClass:0x7fea78ee6f78>
from (irb):25
from :0
irb(main):026:0> t1.is_a? TestModule
=> false
irb(main):027:0> t2.is_a? TestModule
=> true
ajouté une explication comme édition
Merci Matt. Pour l'instant, je pense que l'individuation de l'objet est quelque chose comme JavaScript ou C # 4.0. Mais avec un soutien natif. Je pense que le rubis vaut la peine d'essayer dans le nouveau projet. Merci pour tout ce que vous avez dit!
Combien de temps dure une str.slice (fixnum, fixnum)?
Combien de routes un homme doit-il descendre ...