こんにちは、Ftpsです。
最近身近な人とかにプログラミングを教える機会があったりしたので、なんとなく書き綴ってみます。
一応いくつかのプログラミングの大会で優勝させてもらっています(実名でるので何かは言えない)
...高校生のくせにみたいな文章があるかもしれませんが、ご了承ください
()中は心の声です(え?)
警告
途中で雑になっているので、また書き直すかもです...
大事なこと
まず最初に自分がプログラミングで何をしたいかできるだけ具体的に考えてみてください!
- Discordの入退出管理botを作ってみたい→(Python, Javascript...)
- タイマーを作ってみたい→(C#-WPF)
- ArduinoとかSpresenseとかを使ってミュージックプレイヤーを作ってみたい→Arduino言語(C/C++)
何か思いつきましたか?
それによって学ぶ言語が変わってきます
具体的に何するか
どの言語を学ぼうか決めて、やることは大きく分けて3つだと思います
- 言語の構文を学ぶ
- 標準ライブラリをある程度マスターする
- 調べまくる、質問する
正直、これだけです。
言語の構文を学ぶ
ここでの構文とは、代入だったりif文、どのようなものを作るにあたっても使うものです
代入といっても、言語によって方法が違います。
例えば、配列array[1, 2, 3]の中身を順番に出力し、値3の時に文字列"It's 3!"を出力する(なにこれ)コードは
#include <stdio.h>
int main(void)
{
int array[3] = {1, 2, 3};
int i;
for(i = 0; i<3; i++) {
printf("%d\n", array[i]);
if(array[i] == 3) {
printf("It's 3!\n");
}
}
return 0;
}
const array = [1, 2, 3]
array.forEach(( number ) =>{
console.log(number)
if (number==3) {
console.log("It's 3!")
}
});
だったり、ちょっとずつ違ってたりします。
両方とも出力結果は
1
2
3
It's 3!
です。(え、ほんとなにこのコード)
言語によって同じことをするコードでも書き方が変わってきます。
同じように標準ライブラリも違うのでそれをある程度覚えておくことをお勧めします!
私がC言語を学んだときは
- https://9cguide.appspot.com/
-
https://learn.microsoft.com/ja-jp/cpp/c-language/c-language-reference?view=msvc-170
この二つのサイトにお世話になりました
よし、構文の書き方もライブラリの使い方もなんとなくわかったぞ!
ってなったらあなたはもうプログラマーです
あとは自分の腕を磨いていきましょう!
調べまくる
ここで先ほど決めてもらった目標を使います。
例えば、Spresenseを使ってミュージックプレイヤーを作りたいと思ったら、どのような動作が必要か
- microSD カードにある WAV 音楽ファイルを再生する
- DSPを使ってデコードする必要がある
- WAVファイルをフレームに書き込む
- 音量調節機能
- setVolume(volume)
- 再生/停止
- startPlayer()
- stopPlayer()
...
調べてみると、いろんな人のやってみた例や、開発元のリファレンスだったりが出来ると思います。
それらを読み漁って、身に着けた構文などに当てはめていって、それで作りたいものが作れたのではないでしょうか?
質問する
勿論、調べてもわからないこともあると思いますし、エラーに悩まされると思います(悩まさられない人はいない)
そんなときは有識者に質問してみるのがいいと思います!
stackoverflowやteratailなど、質問できるコミュニティもありますので、ぜひ使ってみてください
最後に
なんとなく書き綴ってみましたが、とりあえずこの
- 言語の構文を学ぶ
- 標準ライブラリをある程度マスターする
- 調べまくる、質問する
が一番大事だと私は思っています。
エラーと格闘して時間をかけて完成させることも大事です。
そうやって自分の技術を磨き上げることがプログラミングの醍醐味でもあると思います!
(途中雑でごめんね)