なで肩野良エンジニア記
野良エンジニアを名乗っている。ノラ犬とかノラ猫と同じ意味のノラで、野良エンジニア。この”野良”の部分はweb3友達のシルさんが命名してくれたもので大変気に入っている。
僕は正式なエンジニア街道を進んでこなかった、だけどエンジニアでありたい。そういう気持ちの部分をこの”野良”が代弁してくれている。
この「なで肩野良エンジニア記」は僕の普段のエンジニア活動の記録にしようと思っている。他の誰かが読んで、ちょっとでもおもしろいと感じてもらえるといいな、という思いだ(エンジニアの活動記録みたいなものってあんまり見かけないし)
僕はエンジニアを名乗っているがプログラミングのほとんどを理解できていない。プログラミングを本格的に開始したのはたかだか2年前くらい、普段の仕事もエンジニアとは程遠い仕事をしている。
それもあって僕は、正式なエンジニアの方にとっては常識的なことのほとんどをまるでわかっていない。githubの通例とか、コードの書き方とか暗黙的なルールとか、ファイル名の付け方とか、用語とか。
プロとアマチュアが存在する業界にはこういうことがよくあると思う。
プロがもっている知識をアマチュアはもっていない。当たり前だ。
そういう場面に出くわすとだいたいの人は「知らなくて恥ずかしい」と感じる。僕だってそうだ。知らない場面に出くわすと恥ずかしい。素人丸出しの自分が恥ずかしい。
だけど、恥ずかしいまま堂々と作ることを心がけている。知らなくても、恥ずかしくても、作る。堂々とやる。野良エンジニアとはそれができるエンジニアなのだと思うことにしている。
野良エンジニアについての解説が少々熱く長くなってしまった。
今回はプログラミング言語のsolidityについて書こうと思っている。僕が本格的にプログラミングを学び始めた最初の言語がsolidityだった。
なぜsolidityが最初の言語になったかというと、二年ほど前(2022年夏)、僕には一つの夢があったからだった。
「NFTを自分の書いたコードでつくってみたい!」
今思えばなんというか小さめの目標だと感じるものの、当時の自分からするとNFTをつくるということが未知だった。未知のそれを自分で書いたコードで作るのなんか夢のまた夢、未知中の未知と感じていた。NFTのつくりかたなんかいっさい知らない状況からのスタートだった。
とにかく知らないけどやってみるぞ。鼻息荒く、当時の僕はその夢を叶えるべくエンジニアになることを誓った。
目標は決まった。
「さて何をすればいいのか?」それが一番最初に降りかかった問題だった。何をすればいいのかがわからない。多くのプログラミング初学者が抱える問題だと思う。だからこそ”プログラミング学習はむずかしい”だったりにもつながっているのだろう。
その当時、僕が入り浸っていたDiscordコミュニティには中田さんというプログラミングの達人のようなweb3友達がいた(きっと、達人どころかもっとすごい人)。その中田さんから「solidityやるならクリプトゾンビやるといい」と教えてもらった。
そのヒントは”何から手をつけたらいいかわからない暗闇トンネル”を歩いている自分にとってすごく明るい目標だった。
今でも僕は中田さんにもらったこのレベル別表を見返して振り返り、復習のきっかけに使わせてもらっている。中田さんには感謝しまくりである。ありがとうございます。
ちなみについこないだ僕は、フルオンチェーンNFT「onono slot」をリリースした。表でいうところのレベル50だ。やったぜ!!
contract address
0x6D475FeB65db0e93472A4ACC6f10513e47450Bff
話を昔に戻す。
プログラミング初学者の僕はさっそくクリプトゾンビに向かった。
これがめちゃくちゃ難しかった。
クリプトゾンビの学習ロードマップはいくつかのチャプターに分かれているんだけど、チャプター1とか2まではそれなりにわかりやすい。しかし、3とかそれ以降になった途端に「???」が連続する。
とにかく難しい。
チャプターごとにクイズのようなテストが準備されていて正解することで次の学習に進められる仕組みになっている。考えてもわからない場合には”答えを見るボタン”を押すと見れる。
僕は何度もボタンを押して答えを見た。そして進み、クリプトゾンビをクリアした。
白状すると僕はいまだにクリプトゾンビの後半部分を理解しきれていない。結局、通算3回くらいはクリプトゾンビの学習コースをクリアした。クリアしているが理解はできていない。
つまり、理解できなくともクリプトゾンビは何度でもクリアできるということだ。
クリプトゾンビの学習を通して僕は「考えること」の大事さを学んだと自分に言い聞かせている。考えればすべて理解できるわけではない、それでも考えれば少しは理解できることもある。そういうことを学んだ。
プログラミング言語は”言語”というだけあって、どうやったら習得できるのかの正攻法がないのだと思う。言語の習得は、慣れだったり経験だったり場数なのだろう(想像でしかないけど)。
クリプトゾンビを完全理解しようとしていたら今頃僕はいまだにクリプトゾンビをしていたと思う。
理解できなくても手を動かして書いてみる。作ってみる。で、また本を読んでみる。そういうループ全体が学習なのかもしれない。
notionで当時メモった学習記録↓
クリプトゾンビをやったあとは「よし、じゃぁ実際に何かつくってみるか!」と息巻いた。ちょっと学習サイトをやっただけ(しかも理解できずズルしてクリア)だったが、とにかく何か作りたかったのだと思う。作りたい欲が先行しまくっていた。
その時の話はまた今度書こうと思う。
「なで肩野良エンジニア記」はたまに書いて続けていきます。
なで肩野良エンジニア記シリーズ
左だけなで肩サイト