人々はプログラミング言語を学ぶのを助けるか?


Exercism オンラインプラットフォームは、あなたが練習と指導を通してコーディングスキルを向上させるために設計されています.それは現在、50以上の言語のトラックを提供します.
Exercism 多数の言語を越えて広がる演習の何千もを提供します.完了したら、完了するための演習のコアセットを提示される言語のトラックを起動します.それぞれの楽しさと興味深い挑戦は、言語の機能についてもう少しを教えるように設計されます.
執筆の時点で、私は1950年代のメンテナですJavaScript and TypeScript トラックとa while back 私たちは経験の一部を自動化する作業を始めました.


上記のポストは、分析器を書く方法とこの仕事に入ったものについて広範囲に話します.
Hacktoberfestの一部として、私は javascript-analyzer and javascript -track ガイドライン他のメンテナは、それらのリポジトリに関して同じことをしました.

何ができるの


多くのプロジェクトが実行されているのでExercism , あなたが働くことができる多くもあります.ここでは、私は最も興味深い見つけるものの短いリストです.
私は非常に偏っているが、160のリポジトリで、少なくとも90のアクティブな過去の月には、誰も誰もがたくさんある.

お気に入りの言語を助けて


我々は50以上の言語のトラックを持っていることを考えると、お好みの言語はおそらくそれらの1つです.彼らの多くは、オープンな問題を抱えており、それらのすべては、他のトラックから移植される新しい演習を可能にします.

チェックリスト:実装可能な演習 #660



SleeplessByte
掲示される
こんにちは、新しい貢献者.
この方法は、以下のリンクを問題仕様に従うことができます.これはこの運動のための規範的なデータです.あなたがこの運動がどのように見えるかもしれないかの把握を望むならば、この運動が実行される他のトラックを見てください.あなたはおそらく次のような言語を使い始めるでしょう typescript and coffeescript , そして、おそらく他の疎型言語 ruby or python .
  • 新しい問題を開き、我々はそれをラベルしますnew exercise ✨
  • 私たちはあなたに問題を割り当てますので、この運動に取り組む
  • 新しいフォルダを作成する/exercises
  • あなたがする必要がありますsync この設定ファイルに一致するフォルダ.使えます scripts/sync 以下のようにします.ASSIGNMENT=slug npx @babel/node scripts/sync .
  • クリエイトア<slug>.js スタブファイル.
  • クリエイトア<slug>.spec.js テストファイル.ここでは、可能ならば標準のデータごとにテストを加えます.
  • クリエイトアexample.js ファイル.それが名前を変えられたと仮定して、働く実装を置きます<slug>.js
  • ローカルでテストを実行する scripts/test : ASSIGNMENT=slug npx @babel/node scripts/test .
  • PRを開く.
  • 注意:使用this Aへのリンク⚡️ 未実装の演習のライブリスト.
    View on GitHub

    アナライザーを書くか、改善するのを助ける


    現在17(またはそれ以上)のアナライザがあります!これは、任意の分析インフラストラクチャなしで多くのトラックがあることを意味します.あなたがよく言語を知っているならば、あなたはそれを助けることができます.しかし、私はあなたの助けを愛する javascript-analyzer or typescript-analyzer .
  • 既存の運動のための完全な新しいアナライザを書いてください.我々は、500を提供しますfixtures そして何が承認されるべきか、何をすべきではありません.私たちはいくつかの初期のメッセージングを書くのを助けるでしょう、あなたはそれについて心配する必要はありません.
  • 既存の分析を改善するヘルプ.来たるべき週、より多くの問題は、改善が必要であることを示すために開けられます!
  • 抵抗カラーデュオを改善してください 菅56



    SleeplessByte
    掲示される
    改善を説明します.
    ソリューションが+expression の代わりにNumber(expression) , それ以外の場合は最適です、我々は特定のメッセージを与えたい.それはまだ承認する必要がありますが、メッセージを追加するNumber(...) を超える+ .
    どの運動resistor-color-duoView on GitHub

    抵抗カラーデュオを改善してください 菅55



    SleeplessByte
    掲示される
    改善を説明します.
    次の主な方法が提供されると、分析器は早く保存されます.
    値をエクスポートする
    返り値+ ( color . indexof ( arr [ 0 ])+"+"++色.IndexOf ( arr [ 1 ]);
    //
    その代わりに、hasDigitsString , と同じコメントを生成します.
    どの運動resistor-color-duo追加コンテキスト
    The ResistorColorDuoSolution は、運動が構築された文字列を持っているかどうかをチェックするメソッドを持っています.現在のところ、文字列テンプレートリテラルを検出するだけです${a}${b} , しかし、我々はまた、次のキャプチャします.
    `${ a }`+` ${ B }`
    A +, B
    A+B+B
    「A + A + B
    さんの
    a . toString () + b
    a . toString () + b string ()
    a . toString ()を参照ください.譲歩する
    View on GitHub

    RNA転写用アナライザ 菅53



    SleeplessByte
    掲示される
    この問題は、議論と課題のための rna-transcription コアエクササイズjavascript トラック.
    🔗 implementation | mentor-notes | problem-specification
    この運動は

  • String 反復処理 String#replace , String#split )

  • Object /Map
  • 最適解


    転写の
    C : ' G 'です.
    ' C 'です.
    A : ' u 'です.
    T : ' A 'です.
    //
    エクスポート関数トルナ
    リターンシーケンス
    . split (')
    MAP (ヌクレオチド=>転写[ヌクレオチド])
    join ()

    バリエーションSet or Map with #get , これは有効です.

    バリエーション(コメントなしで)


    文字列破壊を使用することもできます.
    [.シーケンス]を返します.マップ(*//).結合する
    String#replace も使用できます:
    戻り値シーケンス.置換(//g , (ヌクレオチド)>>*//)
    バリエーションは、「既知の」ヌクレオチドだけを交換することを含む
    シーケンス.置換(/[ cgat ] g/, (ヌクレオチド)=>*//)

    ヘルパー関数変動


    匿名関数の代わりに、ヘルパー関数を使用します.
    関数転写(ヌクレオチド) { }
    転写を返す

    これは、マッピングオブジェクトのないバージョンも考慮します.
    関数転写(ヌクレオチド) { }
    スイッチする
    case ' C ' : { return ' g }
    case ' G ' : { return ' c '
    case ' a ' : { return ' u }
    case ' t ' : { return ' a }


    コメントと不承認


    このアナライザでコメントする必要があります.
  • 使用する Object 条件式の代わりにマッピングを追跡する.
  • 経由で反復を使用する String#split or String#replace 代わりにfor/forEach with Array#push
  • 落胆 Array#reduce この特定の解決法のために、それは多くの中間のストリングを作成するのでsplit 解決策の残りが正しいならば、アプローチを除いてください.使用reduce 読者に従って、変更し、維持するより多くの解釈が必要です.
  • 落胆 String#substring を返します.split('') より慣用的で、維持可能ですsubstring を返します.使用split('') 読者が以下の解釈を必要とする、変更し、維持する.
  • アプローチ


    提案されるアプローチは以下の通りです.
  • どのタイプのソリューションを検出しますか(スイッチ、マップ、またはforforeach )
  • 最適解が正しく処理されるようにしてください.あなたはbatch ランナーすべての治具の出力を生成します.
  • そこから不承認にパスを追加してください.
  • View on GitHub

    メンターに加わる


    当然、我々は常に新しい指導者を探しています.あなたの言語の専門家になる必要はありませんが、豊富な経験があれば私たちはそれを愛する.あなたは彼らの旅の流暢さを得るために人々をコーチングされます.また、私たちは#mentor-the-mentor プログラムは、より良いメンタリングで取得するために.

    学生に加わってください!


    Javaでプログラムを知っているが、常に錆を習得したいですか?それとも、最終的には、ステップを知っているタイプスクリプト?いくつかのトラックは現在予約されていますが、一般的に我々は学生になるために誰でも歓迎します.注意:これはどのようにコードを教えるためのプラットフォームではありません.新しい言語で流暢さを得るプラットフォームです.