自己紹介
初めまして。新卒「ほぼ」未経験エンジニアのパン派です。
「ほぼ」と付けたわけ
実は大学時代、プログラミングには触れていました。ただ当時向いてないと思い早々に諦めた経緯があります。
それがなぜか今エンジニアとして働くことになっています。しかも割とそのことを前向きに捉えており、楽しく勉強しています。
「プログラミングに興味あったけど才能ないなー」 と諦めようとしている方や、 「どうやったらプログラミングに魅力を感じてもらえるかわからない!」 と思っている方の参考になればいいなと思っています。
なぜ苦手意識があったのか
1. 周囲に実力者がたくさんいたから
「自分よりはるかにできる人がいる」って事実を知ると、「今から始めてもしょうがない」とか「自分には才能ない」って思いこんでしまうことって、プログラミングに限らずあると思います。触れないことで「できない」のではなく「やっていない」ことにする って、結構みんなやっていることなんじゃないかと思っています。
2.プログラミングは「理系の独壇場」だと思っていた
理系の方が活躍できるフィールドであること自体は間違いではないと思うのですが、「数学や物理ができないとスタート地点にすら立てない」と思っており、両方不得意だからだめだなー。と思っていました。
さらに「その前の段階をすべて理解しなければ次の段階に進めない」と思い込んでおり、当然全部を理解できているわけなどないので匙を投げるといったことが多発しました。
苦手意識がなくなった理由
1.人は人、自分は自分。で折り合いがつけられるようになった
「オリンピックには出場できないから運動しない!」とはならないですよね。どんなクオリティであれ、勉強することに価値はあります。
(そのスタンスを認めてくれる職場環境であることも大きいと思います。ありがたい限りです。)
2.プログラミングって結構言語学習じゃない?と気づいた
外国語を学習するときって、
- 間違ってもいいからまず喋ってみる
- 手本の例文から文法や品詞を推察する
あたりが重要だと思っているのですが、これってかなりプログラミング学習にも通じるところがあるなと。
- 間違ってもいいからまずコードを書いてみる
- 手本のコードから文法や意図を推察する
みたいな。
もちろんアルゴリズム考えたりとか、数学っぽいこと考えなきゃいけなかったりする瞬間はあると思うんですが、そういう理系っぽいことより先に 「なんでもいいからプログラミング言語で喋って(書いて)みて!」 と言われていたら、文系の私はまた違った意識で取り組めたのかなとも思います。
(とはいえ「言語学習が嫌い!」という方もしばしば見かける気がするので、この辺りはなんとも言い難いですが……)
3.(余談)意外に「ちょっとやってた」意味があった
意外に 「最後に;を付ける」 とか 「変数という概念がある」 という超基礎を知っているだけでもだいぶ違うなと。
英語だったら文頭は大文字にするとか、慣れちゃえば当たり前なんですけど最初のうちは混乱しますよね。そういう「超基礎レベルのつまづき」を結構減らせていたと思っています。
もし初学者でつまづいている人がいたら、案外このあたりの「超基礎」を徹底して覚えるだけでもエラーの数は減らせるし、コードが読めるようになるのではないかと思います。
今の自分なら過去の私になんて言う?
これらを踏まえて、プログラミング向いてないと思っていた当時の私に今ならなんと声をかけるか考えてみました。
- 確かに他人と比較してプログラミングの経験もセンスもないかもしれないけれど、それでも勉強したっていいんだよ。他人と比較してできないことは、それをやってはいけない理由にはならないよ。
- プログラミングって案外言語学習だから、とりあえず触って、意味が分からなくても「喋って」みるのが大事だよ。
- (それはそれとして、未来の私が後悔しているので数学はちゃんと勉強してね)
おわりに
どこかで「プログラミングの才能なんかないよ!」と思っている誰かに届けばいいなと思いながら書きました。私もまだまだ勉強することしかない身なのでがんばろうと思います。