こんばんは!
はるです。
IT知識皆無の状態で入社して約1ヶ月!
知識ゼロの状態からどんな感じでプログラマーができるようになっていくのか、
勉強する前は全然よくわかりませんでした。
本でコードをこう書けばこう動く。
というような基本的な勉強を終えた現在の状態で、
プログラミングの難しさについて思ったことを書きたいと思います。
使う文法が多いのではなく、組み合わせや使いどきが難しい
例えば、よくある課題として
電卓を作る
というものがあったりします。
さて、皆さんは電卓の中がどう動いているのかわかりますか??
文法だけを勉強した状態で、
いざ電卓つくってね!!
と言われても、
外観のボタン配置のみできて、そこから何すれば良いのかわからない!!
という状況でした。
わかりやすく料理で例えてみると、
本で基本的な茹でる、炒める、さしすせその調味料かあるということ、皮の剥き方、使う道具(フライパン)などを勉強するとします。
ここの時点が本で基礎文法を勉強した状態。
んで、
いざグラタン作ってください。
(電卓つくってください)
みたいに言われても、
- 材料は何か?
- どの順序でどういう調理法で進めるのか?
- どの調味料を使うのか?
こんな感じで、いろんな疑問が湧いてきて何から手をつければ良いかわからない!!
みたいな状況でした。
これが料理に慣れてる人
(プログラミングに慣れてる人)なら
ホワイトルーを作るために牛乳、小麦粉、バターがいるかな?
(なんの構文を使うかの検討)
先にこの3つを炒めてから具材を合わせるのか、具材炒めてからさっきの3つを入れるのかどっちが効率的かな?
(すっきりした軽いコードにするにはどの順序で書こうかなという検討)
という感じで進められるのだと思います。
この、
まずなにすればよいかわからなくて手が止まる問題!
の壁を突破するには…!!!
多分、料理とプログラミングは同じ感じ。
料理なら、
調理法が簡単な料理から始めて、徐々に調理法が多いものにステップアップする。
例:
汁物、煮物(茹で+味付けのみ)
⇩
グラタン(炒める→煮る→仕上げに焼く)
⇩
オムライス(米を炊く+味付け、卵で程よい硬さで巻く)
こんな感じ!
一個一個を分解して何回も似たようなのを作ればきっと複雑なものもなんとなく作れるようになるんですよね。
グラタンが作れたなら
あとご飯の炊き方を覚えればドリアにできるし
上のチーズとパン粉だけを切り取って、
パン粉焼きにもできる。
調味料を変えたアレンジもできる!
牛乳を豆乳に変えてみたり…
こんな感じで、試行錯誤力がつくわけですね。
今はまだ、調味料も食材もどんな料理があるのかも知識が足りないので
あの美味しかった料理作りたいけどどうやって作るんだろう?状態。
でも、きっと何回も何回も小さなものを作っていくことで、
あの美味しかった料理は多分この調味料使ってあるだろうなとか
あの時の食感と似てるから調理法はこれだなとか
経験でわかるようになっていくのだと思う!
劇的にプログラミングに向いてる人は、きっとそういう予想する力がものすごく高いのではないかな。
それはいろんな経験してきたところからの予測なのかもしれないけど、元から頭の考え方というか閃きというか…
わたしは多分、そういう予測する力が現状ではまるで全然足りてないので、
経験を少しでも多くすることで解決していこうと思います!
以上、プログラミング初心者のつぶやきでした!