人々はプログラミング言語を学ぶのを助けるか?
12753 ワード
Exercism オンラインプラットフォームは、あなたが練習と指導を通してコーディングスキルを向上させるために設計されています.それは現在、50以上の言語のトラックを提供します.
Exercism 多数の言語を越えて広がる演習の何千もを提供します.完了したら、完了するための演習のコアセットを提示される言語のトラックを起動します.それぞれの楽しさと興味深い挑戦は、言語の機能についてもう少しを教えるように設計されます.
執筆の時点で、私は1950年代のメンテナですJavaScript and TypeScript トラックとa while back 私たちは経験の一部を自動化する作業を始めました.
上記のポストは、分析器を書く方法とこの仕事に入ったものについて広範囲に話します.
Hacktoberfestの一部として、私は
何ができるの
新しい問題を開き、我々はそれをラベルします 私たちはあなたに問題を割り当てますので、この運動に取り組む 新しいフォルダを作成する あなたがする必要があります クリエイトア クリエイトア クリエイトア ローカルでテストを実行する PRを開く. 注意:使用this Aへのリンク⚡️ 未実装の演習のライブリスト.
View on GitHub
現在17(またはそれ以上)のアナライザがあります!これは、任意の分析インフラストラクチャなしで多くのトラックがあることを意味します.あなたがよく言語を知っているならば、あなたはそれを助けることができます.しかし、私はあなたの助けを愛する 既存の運動のための完全な新しいアナライザを書いてください.我々は、500を提供します 既存の分析を改善するヘルプ.来たるべき週、より多くの問題は、改善が必要であることを示すために開けられます! 抵抗カラーデュオを改善してください
菅56
転写の
C : ' G 'です.
' C 'です.
A : ' u 'です.
T : ' A 'です.
//
エクスポート関数トルナ
リターンシーケンス
. split (')
MAP (ヌクレオチド=>転写[ヌクレオチド])
join ()
}
バリエーション
文字列破壊を使用することもできます.
[.シーケンス]を返します.マップ(*//).結合する
String#replace も使用できます:
戻り値シーケンス.置換(//g , (ヌクレオチド)>>*//)
バリエーションは、「既知の」ヌクレオチドだけを交換することを含む
シーケンス.置換(/[ cgat ] g/, (ヌクレオチド)=>*//)
匿名関数の代わりに、ヘルパー関数を使用します.
関数転写(ヌクレオチド) { }
転写を返す
}
これは、マッピングオブジェクトのないバージョンも考慮します.
関数転写(ヌクレオチド) { }
スイッチする
case ' C ' : { return ' g }
case ' G ' : { return ' c '
case ' a ' : { return ' u }
case ' t ' : { return ' a }
}
}
このアナライザでコメントする必要があります. 使用する 経由で反復を使用する
落胆 落胆
提案されるアプローチは以下の通りです. どのタイプのソリューションを検出しますか(スイッチ、マップ、またはforforeach ) 最適解が正しく処理されるようにしてください.あなたは そこから不承認にパスを追加してください. View on GitHub
当然、我々は常に新しい指導者を探しています.あなたの言語の専門家になる必要はありませんが、豊富な経験があれば私たちはそれを愛する.あなたは彼らの旅の流暢さを得るために人々をコーチングされます.また、私たちは
Javaでプログラムを知っているが、常に錆を習得したいですか?それとも、最終的には、ステップを知っているタイプスクリプト?いくつかのトラックは現在予約されていますが、一般的に我々は学生になるために誰でも歓迎します.注意:これはどのようにコードを教えるためのプラットフォームではありません.新しい言語で流暢さを得るプラットフォームです.
Exercism 多数の言語を越えて広がる演習の何千もを提供します.完了したら、完了するための演習のコアセットを提示される言語のトラックを起動します.それぞれの楽しさと興味深い挑戦は、言語の機能についてもう少しを教えるように設計されます.
執筆の時点で、私は1950年代のメンテナですJavaScript and TypeScript トラックとa while back 私たちは経験の一部を自動化する作業を始めました.
コードアナライザをタイプスクリプト(ゼロから)に書き込む
デリック・ジャン・ Jun 10 ' 19・ 17分読む
#typescript
#showdev
#opensource
#tutorial
上記のポストは、分析器を書く方法とこの仕事に入ったものについて広範囲に話します.
Hacktoberfestの一部として、私は
javascript-analyzer
and javascript
-track ガイドライン他のメンテナは、それらのリポジトリに関して同じことをしました.何ができるの
多くのプロジェクトが実行されているのでExercism , あなたが働くことができる多くもあります.ここでは、私は最も興味深い見つけるものの短いリストです.
私は非常に偏っているが、160のリポジトリで、少なくとも90のアクティブな過去の月には、誰も誰もがたくさんある.
お気に入りの言語を助けて
我々は50以上の言語のトラックを持っていることを考えると、お好みの言語はおそらくそれらの1つです.彼らの多くは、オープンな問題を抱えており、それらのすべては、他のトラックから移植される新しい演習を可能にします.
チェックリスト:実装可能な演習
#660
SleeplessByte
掲示される
こんにちは、新しい貢献者.
この方法は、以下のリンクを問題仕様に従うことができます.これはこの運動のための規範的なデータです.あなたがこの運動がどのように見えるかもしれないかの把握を望むならば、この運動が実行される他のトラックを見てください.あなたはおそらく次のような言語を使い始めるでしょう typescript
and coffeescript
, そして、おそらく他の疎型言語 ruby
or python
.
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
. View on GitHub
アナライザーを書くか、改善するのを助ける
現在17(またはそれ以上)のアナライザがあります!これは、任意の分析インフラストラクチャなしで多くのトラックがあることを意味します.あなたがよく言語を知っているならば、あなたはそれを助けることができます.しかし、私はあなたの助けを愛する
javascript-analyzer
or typescript-analyzer
. fixtures
そして何が承認されるべきか、何をすべきではありません.私たちはいくつかの初期のメッセージングを書くのを助けるでしょう、あなたはそれについて心配する必要はありません.抵抗カラーデュオを改善してください
菅56
SleeplessByte
掲示される
改善を説明します.
ソリューションが+expression
の代わりにNumber(expression)
, それ以外の場合は最適です、我々は特定のメッセージを与えたい.それはまだ承認する必要がありますが、メッセージを追加するNumber(...)
を超える+
.
どの運動resistor-color-duo
View 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
この運動は
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('')
読者が以下の解釈を必要とする、変更し、維持する.アプローチ
提案されるアプローチは以下の通りです.
batch
ランナーすべての治具の出力を生成します.メンターに加わる
当然、我々は常に新しい指導者を探しています.あなたの言語の専門家になる必要はありませんが、豊富な経験があれば私たちはそれを愛する.あなたは彼らの旅の流暢さを得るために人々をコーチングされます.また、私たちは
#mentor-the-mentor
プログラムは、より良いメンタリングで取得するために.学生に加わってください!
Javaでプログラムを知っているが、常に錆を習得したいですか?それとも、最終的には、ステップを知っているタイプスクリプト?いくつかのトラックは現在予約されていますが、一般的に我々は学生になるために誰でも歓迎します.注意:これはどのようにコードを教えるためのプラットフォームではありません.新しい言語で流暢さを得るプラットフォームです.
Reference
この問題について(人々はプログラミング言語を学ぶのを助けるか?), 我々は、より多くの情報をここで見つけました https://dev.to/sleeplessbyte/want-to-help-people-learn-programming-languages-3l29テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol