1. ã¯ããã«
ãã®èšäºã§ã¯ãã³ãŒãã£ã³ã°ã¹ãã«ãé«ããããã°ã©ãã³ã°ã®äžçãžé£ã³èŸŒãããã®ã¹ããããšãªããRubyåŠç¿ã®ããã®ãªã³ã©ã€ã³ãµã€ãã«ã€ããŠè©³ãã解説ããŠãããŸããããããRubyãåŠã³ããæ¹ãããã§ã«åŠç¿ãå§ããŠããæ¹ãããã«ã¹ãã«ãã¢ãããããäžçŽè 以äžã®æ¹ã«ã圹ç«ã€æ å ±ãæºèŒã§ãã
1.1 Rubyãšã¯
Rubyã¯ã誰ã§ãç°¡åã«ã³ãŒãã£ã³ã°ãã§ããããã«äœãããããã°ã©ãã³ã°èšèªã®äžã€ã§ããRubyã¯ã人éã®ããã®èšèªããšããå²åŠã®ããšãéåžžã«èªã¿ããããç解ããããã³ãŒããç¹åŸŽã§ãããŸããRuby on Railsãšãããã¬ãŒã ã¯ãŒã¯ã䜿çšããããšã§ãè€éãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ãå¹çè¯ãéçºããããšãå¯èœãšãªããŸãããããã®ç¹æ§ãããåããŠããã°ã©ãã³ã°ãåŠã¶äººã ããã¹ã¿ãŒãã¢ããäŒæ¥ã«ããã¢ããªéçºã®å Žã§åºã䜿ãããŠããŸãã
1.2 ããã°ã©ãã³ã°åŠç¿ã®éèŠæ§
ããã°ã©ãã³ã°ã®ã¹ãã«ã¯ãçŸä»£ç€ŸäŒã«ãããŠéåžžã«éèŠãªèœåãšãªã£ãŠããŸããHuman Skillsãšå°éç¥èãçµã¿åãããããšã§ãæªæ¥ãçãæãããã®ãçååããé«ããããšãå¯èœã§ããç¹ã«Rubyã¯ããã®ã³ãŒãã®èªã¿ããããåŠç¿ã®ãããããããããã°ã©ãã³ã°ååŠè ã«ãšã£ãŠæé©ãªèšèªãšèšããã§ãããã
ããããã®æ å ±ç€ŸäŒã«ãããŠã¯ãã³ã³ãã¥ãŒã¿ãŒãšå ±ã«çããŠããããã®èšèªèœåãšããŠãããã°ã©ãã³ã°ãç解ããããã掻çšã§ããåãå¿ èŠãšãããŠããŸããç¹ã«ããŠã§ããã¢ããªã±ãŒã·ã§ã³ãèªåã®æã§äœãåºãããšã¯ãèªãã®ã¢ã€ãã¢ã圢ã«ããã ãã§ãªããèªå·±å®çŸã«ç¹ãããããåŠç¿ãã䟡å€ã倧ãã«ãããŸãã
ããã°ã©ãã³ã°ãåŠã¶ããšã«ãããããžã«ã«ã·ã³ãã³ã°ãéããããšãã§ããåé¡è§£æ±ºèœåã身ã«ã€ããããšãã§ããŸãããããã®èœåã¯ãåŠåãè·æ¥ãåãããã©ã®åéã«ãããŠã䟡å€ããã¹ãã«ãšãªããŸãããã®ãããçŸåšã©ã®ãããªè·æ¥ã«ã€ããŠãã人ã§ããããã°ã©ãã³ã°ãåŠã¶ããšã§æ°ããªèŠéãå¯èœæ§ãéãããšãæåŸ ã§ããŸãã
2. RubyåŠç¿ã®ããã®ãªã³ã©ã€ã³ãµã€ãã®éžã³æ¹
ããã°ã©ãã³ã°èšèªããã¹ã¿ãŒããããã«ã¯ãèªåã«åã£ãåŠç¿ãµã€ããéžã¶ããšã倧å€éèŠã§ããRubyåŠç¿ãµã€ãã¯æ°å€ãååšããŸããããã®ãªãããã©ã®ããã«æé©ãªãµã€ããéžã³åºãã®ããä»åŸã®åŠç¿ã®é²æã«å€§ããªåœ±é¿ãåãŒããŸãã
2.1 åŠç¿ç®æšãæ確ã«ãã
ãŸã第äžã«ãåŠç¿ç®æšãæ確ã«èšå®ããŸããããRubyãåŠã¶ç®çã¯äººããããã§ããWebéçºãè¡ãããã®ããããŒã¿åæã«äœ¿çšãããã®ãã趣å³ã§ããã°ã©ãã³ã°ãåŠã³ããã®ããããããã®ç®æšã«ãããæãé©ããåŠç¿ãµã€ãã¯ç°ãªãããã§ããåŠç¿ç®æšãã¯ã£ãããããŠããã®ç®æšã«å¯Ÿããæé©ãªææãæäŸãããµã€ããéžã³ãŸãããã
2.2 è±å¯ãªåŠç¿ã³ã³ãã³ãããããµã€ããéžã¶
次ã«ãRubyåŠç¿ã«å¿ èŠãªç¥èãç¶²çŸ ããŠãããµã€ããéžã³ãŸããããåºç€ããå¿çšãŸã§äžè²«ããŠåŠã¶ããšãã§ãããµã€ãã¯ãåŠç¿ãéåããããšãªãã¹ã ãŒãºã«é²ããããŸããå ããŠãå°ãè€éãªãããã¯ãææ°ã®ãã¬ã³ãã«ã€ããŠãã«ããŒããŠãããµã€ãã¯ãäžæ©é²ãã åŠç¿ãæãæ¹ã«ãšã£ãŠæçšã§ãã
2.3 ãŠãŒã¶ãŒã®ã¬ãã«ã«å¿ããææããããµã€ããéžã¶
æåŸã«ããŠãŒã¶ãŒã®ã¬ãã«ã«é©ããææãçšæãããŠãããµã€ããéžã³ãŸããããå§ããŠããã°ã©ãã³ã°ãåŠã¶åå¿è ã«ã¯ãåºç€çãªææ³ããäžå¯§ã«æããŠããããµã€ããæé©ã§ããäžæ¹ã§ããã§ã«åºæ¬çãªç¥èãæã£ãŠããæ¹ããããæ·±ãç¥èãæ±ããäžçŽè ã«ã¯ãå ·äœçãªãããžã§ã¯ããéããŠã¹ãã«ã磚ãããšãã§ãããµã€ãããé«åºŠãªãããã¯ã«å¯Ÿããæ·±ãç解ãåŸããããµã€ããæãŸããã§ããèªåã®ã¬ãã«ãèŠæ¥µããããã«å¯ŸããŠæé©ãªã³ã³ãã³ããæäŸããŠãããµã€ããéžæããã°ãå¹ççãªåŠç¿ãå¯èœã«ãªããŸãã
3. åå¿è ã«ããããã®RubyåŠç¿ãµã€ã5éž
ããã°ã©ãã³ã°ã®åŠç¿ãå§ããããæ¹ã ãžãä»åã¯åå¿è ã«ããããã®RubyåŠç¿ãµã€ã5ã€ã玹ä»ããŸãããã®5ã€ã®ãµã€ãã¯ãå 容ã®è³ªãé«ããäžå¯§ãã䜿ããããããåå¿è ã«ç¹ã«äŸ¿å©ãªãµã€ããšãªã£ãŠããŸãã
3.1 Progate
Progateã¯ãåå¿è ãæ°ããããã°ã©ãã³ã°èšèªã®äžããæåã«åŠã¶ã¹ãæé©ãªèšèªãšããŠRubyãæšå¥šããŠããŸããè±å¯ãªããžã¥ã¢ã«ãçšæãããŠãããããããã®ã³ãŒããå ·äœçã«ã©ã®ãããªåäœãããã®ããèŠèŠçã«ç解ãããããªã£ãŠããŸãã
3.2 ãããã€ã³ã¹ããŒã«
次ã«ãããããªã®ã¯ãããã€ã³ã¹ããŒã«ã§ããåå¿è ããå§ããããåºæ¬çãªããã°ã©ãã³ã°ã¹ãã«ã身ã«ã€ããªãããæçµçã«ã¯èªåã§ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«ãªãã³ãŒã¹ãæäŸãããŠããŸããçæéã§åŠã¹ããããªåœ¢åŒã®ã¬ãã¹ã³ãç¹åŸŽã§ãã
3.3 Codecademy
æµ·å€çºã®ãµã€ãã§ããCodecademyãåå¿è ã«ã¯éåžžã«äŸ¿å©ã§ããç¹ã«ãã€ã³ã¿ã©ã¯ãã£ããªåŠç¿åœ¢åŒãç¹åŸŽã§ãåã¬ãã¹ã³ã®åŸã«ç¢ºèªåé¡ããããããåŠç¿å 容ããã£ãããšé ã«å ¥ãäœããšãªã£ãŠããŸãã
3.4 RubyMonk
RubyMonkã¯åºæ¬çãªRubyã®ææ³ããå§ãã段éçã«ã¬ãã«ãäžããŠãã圢åŒã®åŠç¿ãµã€ãã§ããåã¬ãã¹ã³ã®æåŸã«ã¯å°ãã¹ãããããç解床ãéæ確èªããªããåŠç¿ãé²ããããŸãã
3.5 Railsãã¥ãŒããªã¢ã«
æåŸã«ãRailsãã¥ãŒããªã¢ã«ã玹ä»ããŸããããã¯Ruby on Railsã®ææãšãªããŸãããRubyã®ç解ãæ·±ããäžã§éåžžã«å¹æçã§ããåå¿è ã§ãæãåãããªããåŠã¹ãããã«ãªã£ãŠãããããèªåã§äœããäœãäžããæèŠãå³ãããŸãã
ãããã®ãµã€ãã掻çšããã°ãåå¿è ã§ãRubyã®åŠç¿ã楜ãã¿ãªããããã£ãããšã¹ãã«ã身ã«ã€ããããšãã§ããŸãã
4. äžçŽè 以äžã«ããããã®RubyåŠç¿ãµã€ã5éž
ããã°ã©ãã³ã°ã®ç¿ç床ãäžããã«ã€ããŠãããé«åºŠãªèª²é¡ã«ãã£ã¬ã³ãžããããšã§ãæ°ããªçºèŠãã¹ãã«åäžã®æ©äŒãåºãããŸããããã§ã¯ãäžçŽè 以äžã®æ¹ããããªãã¹ãã«ã¢ããã«ç¹ããRubyåŠç¿ãµã€ãã5ã€ã玹ä»ããŸãã
4.1 CodeWars
CodeWarsã¯ãèªèº«ã®ã³ãŒãã£ã³ã°ã¹ãã«ãè©Šãããšãã§ãããªã³ã©ã€ã³åŠç¿ãµã€ãã§ããå šäžçã®ãŠãŒã¶ãŒãäœæããæ§ã ãªåé¡ïŒåã¯âã«ã¿âãšåŒã°ããïŒã«ãã£ã¬ã³ãžãã圢ã§åŠã¹ããããå®è·µçãªçµéšãç©ãããšãåºæ¥ãŸãããŸããåã課é¡ã«å¯Ÿããä»ãŠãŒã¶ãŒã®è§£çãèŠãããšã§ãæ°ããªç¥èã»èŠç¹ãåŸãããšãå¯èœã§ãã
4.2 Exercism.io
Exercism.ioã¯ãå€ãã®ããã°ã©ãã³ã°èšèªã«å¯Ÿå¿ãããã¥ãŒããªã¢ã«åŠç¿ãµã€ãã§ãç¡æã§åŠç¿ããããšãã§ããŸããäžã€äžã€ã®èª²é¡ãéåžžã«ã¹ãã©ã¯ãã£ãŒåãããŠãããå課é¡æ¯ã«èªèº«ã®ã³ãŒãã«å¯Ÿãããã£ãŒãããã¯ãåãåãããšãå¯èœã§ããããã«ãããããæ·±ãç解ãšç¶ç¶çãªã¹ãã«æ¹åãä¿é²ããŸãã
4.3 LeetCode
LeetCodeã¯äž»ã«ããã°ã©ãã³ã°é¢æ¥ã®ããã®åé¡éãšããŠã¢ã«ãŽãªãºã ã«çŠç¹ãåœãŠãåŠç¿ãµã€ãã§ãããã®ãããæ±ããããã¹ãã«ã¯Rubyã®ææ³ã ãã§ã¯ãªããã¢ã«ãŽãªãºã ãããŒã¿æ§é ã®ç解ãå¿ èŠãšãªããŸãããã®ãããå®çšçãªã³ãŒãã£ã³ã°åé¡ã解ãããšã§ãããå®è·µçãªèœåãéããããšãåºæ¥ãŸãã
4.4 Rubocop
ãã ã³ãŒããæžãã ãã§ãªãããã®è³ªãéèŠã§ããRubocopã¯Rubyã³ãã¥ããã£ãæšå¥šããã¹ã¿ã€ã«ã¬ã€ãã«åºã¥ããŠã³ãŒããèªåã§ãã§ãã¯ããŠããã䟿å©ãªããŒã«ã§ãããã®ããŒã«ã掻çšããããšã§ãäžè²«æ§ã®ããã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã身ã«ã€ããããšãã§ããŸãã
4.5 devdocs.io
devdocs.ioã¯æ§ã ãªããã°ã©ãã³ã°èšèªã®å ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ãéçŽãããµã€ãã§ããå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ç¬ç¹ã®æ å ±éãšæ§é ãç解ããå¿ èŠãªæ å ±ãå¹ççã«ååŸããã¹ãã«ã¯ãããã°ã©ãã³ã°ã¹ãã«åäžã®ããã«æ¬ ãããŸããããã©ã®ã¡ãœããã䜿ãã°è¯ãã®ãïŒãçã®çåãæµ®ããã éã«ãåç §ããã ããŸãã
以äžããäžçŽè 以äžã®æ¹ã«æšå¥šããRubyåŠç¿ãµã€ãã®äžéšã§ããããããã®ç¹æ§ãç解ããèªåã®ã¹ãã«ã¢ããã«æé©ãªãµã€ããèŠã€ããŠããã ãããã§ãã
5. RubyåŠç¿ã«åœ¹ç«ã€è£å©ããŒã«ãšãªãœãŒã¹
Rubyãå¹çããåŠç¿ããããã«ã¯ãåã«ææãæ¶åããã ãã§ãªãããã®åŠç¿ãè£å©ããããŒã«ããªãœãŒã¹ã掻çšããããšãéèŠã§ãããããã§ã¯ããªã³ã©ã€ã³IDEãããã¥ã¡ã³ããŒã·ã§ã³ããŒã«ãã³ãã¥ããã£ãšSNSã«ã€ããŠè§£èª¬ããã
5.1 ãªã³ã©ã€ã³IDE
åãã«çŽ¹ä»ããã®ã¯ãªã³ã©ã€ã³IDEã§ãããããã¯ãWebãã©ãŠã¶äžã§åäœããçµ±åéçºç°å¢ã®ããšãæããããã°ã©ãã³ã°ã®ç·Žç¿ãè¡ã£ãããã³ãŒããå®è¡ãããããããã°ãè¡ã£ãããšãã£ãããšãå¯èœã§ãããç¹ã«Rubyã®åŠç¿ãåããŠéããªã段éã§ã¯ãèªèº«ã®ããœã³ã³ã«éçºç°å¢ãæ§ç¯ããå¿ èŠããªããäœãæºåãããšãããã«ããã°ã©ãã³ã°ãå§ããããç¹ãé åã§ããã代衚çãªãªã³ã©ã€ã³IDEã«ã¯Repl.itãCodeanywhereãªã©ãããã
5.2 ããã¥ã¡ã³ããŒã·ã§ã³ããŒã«
次ã«åœ¹ç«ã€ã®ãããã¥ã¡ã³ããŒã·ã§ã³ããŒã«ã§ãããããã¯ãRubyããã®é¢é£ã©ã€ãã©ãªã®å ¬åŒããã¥ã¡ã³ããæ€çŽ¢ãããé²èŠ§ãããããã®ã«äœ¿ããããã³ãŒããæžããŠããéäžã§äœ¿ãããé¢æ°ã®åäœãç解ã§ããªããšãããæ°ããªã©ã€ãã©ãªãè©ŠããŠã¿ãããšããªã©ã«äœ¿ãããããšãå€ãããã®ããŒã«ã掻çšããããšã§ãããã°ã©ãã³ã°ã®è³ªåã«èªåã§çããèŠã€ããèœåã身ã«ã€ããããšãã§ããã代衚çãªããã¥ã¡ã³ããŒã·ã§ã³ããŒã«ã«ã¯RubyDocãDevDocsãªã©ãããã
5.3 ã³ãã¥ããã£ãšSNS
æåŸã¯ã³ãã¥ããã£ãšSNSã§ãããRubyã®åŠç¿ã«ãããŠã¯ãããã°ã©ãã³ã°ã«é¢é£ãã質åãæçš¿ã§ããã¹ã¿ãã¯ãªãŒããŒãããŒãããããžã§ã¯ãã®ã³ãŒããå ¬éã»å ±æã§ããGitHubãšãã£ãã³ãã¥ããã£ãµã€ãã圹ç«ã€ããšãå€ãããŸããTwitterã®ããã«å ·äœçãªäººç©ããã©ããŒããããšã§ãæ¥ã ã®ããã°ã©ãã³ã°ã®ãã¹ããåç §ã§ããããããæ°ããªç¥èãçºæ³ãåŸãããšãã§ããããããã®ã³ãã¥ããã£ãSNSã掻çšããããšã§ãèªåäžäººã§ããã°ã©ãã³ã°ãåŠç¿ããã®ã§ã¯ãªããäžçäžã®ããã°ã©ããŒãšäžç·ã«åŠã¶ããšãå¯èœãšãªãã
6. ãŸãšã: RubyåŠç¿ã®ããã®æé©ãªãµã€ããšã¯
æ¬èšäºã§ã¯ãRubyã®åŠç¿ã«æé©ãªãªã³ã©ã€ã³ãµã€ãã®éžã³æ¹ãšå ·äœçãªãµã€ãããããŠè£å©ããŒã«ããªãœãŒã¹ã«ã€ããŠçŽ¹ä»ããŸãããRubyåŠç¿ã®ããã®ãªã³ã©ã€ã³ãµã€ããšã¯ãèªåã®åŠç¿ã¬ãã«ãç®æšã«åãããŠææãéžã¹ããªããã€è±å¯ãªåŠç¿ã³ã³ãã³ããæã£ãŠãããã®ãšèšããŸãã
åå¿è ãã¹ã ãŒãºã«åŠç¿ãå§ãããããããªãµã€ããšããŠã¯ãProgateããããã€ã³ã¹ããŒã«ãCodecademyãªã©ãæããããŸããäžæ¹ãäžçŽè 以äžã®ã¬ãã«ã®æ¹ãæŽãªãã¹ãã«ã¢ãããç®æãããã«ã¯ãCodeWarsãExercism.ioãLeetCodeçãæå¹ã§ãããã
ãããããªã³ã©ã€ã³ãµã€ãã ãã§ã¯ãªãããªã³ã©ã€ã³IDEãããã¥ã¡ã³ããŒã·ã§ã³ããŒã«ãããã°ã©ãã³ã°ã³ãã¥ããã£çãšãã£ãå€éšãªãœãŒã¹ãå©çšããããšã§ãåŠç¿ã®å¹çãšç解床ãåäžãããŸããææã¯ãã èªãã ãã§ã¯ãªããæãåãããŠå®éã«ã³ãŒãã£ã³ã°ããããšãéèŠã§ãã
æåŸã«ãå°ã£ãæã¯ç©æ¥µçã«è³ªåããããã°ã©ãã³ã°ã³ãã¥ããã£ã§å©ããæ±ããŸããããä»ã®éçºè ããã®ãã£ãŒãããã¯ã¯ãèªåäžäººã§èãã以äžã«è±ããªèŠç¹ãšç¥èããããããŸãã
ããã°ã©ãã³ã°åŠç¿ã¯äžèŠé£ãããã§ãããæé©ãªåŠç¿ãªãœãŒã¹ã掻çšããã°ãã¹ã ãŒãºã«é²ããããšãå¯èœã§ããæ¯éãæ¬èšäºã§çŽ¹ä»ãããµã€ããããŒã«ã掻çšãã楜ããRubyã®åŠç¿ãé²ããŠãã ããã