見出し画像

英語学習とプログラミング学習を混同した男の末路

 自己紹介にも書きましたが、ぼくがプログラマーになりたいと思ったとき、話を聞こうにもITに詳しい友人・知人は限られていました。今から3年くらい前の話ですが、その時はちょうどネットでソフトウェア・エンジニアが持て囃されていた時でもありました。youtubeやSNS等で、フリーランスエンジニアになることを推奨するインフルエンサーが雨後の筍のように現れたのもちょうどこれくらいの時期だったかと思います。

 今ではネット界隈で嘲笑の的となっている感のあるインフルエンサーですが、当時のぼくにとってはほとんど唯一の国内の情報源といっていい存在でした。彼らの言っていることが必ずしも役立ったとは言えませんが、物事を誇張して伝える彼らでさえ未経験者には厳しい世界なのだと言っていたところについては嘘ではなかったと今では思います。

 全ての仕事に当てはまることとは思うのですが、経験年数とスキルの有無には明確な相関関係があります。ソフトウェア・エンジニアの場合、実務経験年数が二年三年と増えていくに従って、未経験者との知識量の差は歴然とひらいていきます。実際の業務で個々の特殊な事例に対応するうえで、イレギュラーは避けては通れないのですが、このイレギュラーに対応するためには連携している他のサービスなど、一つ下のレイヤーからも考える必要があります。職業エンジニアは、こうしたイレギュラーに対応するたびに周辺知識が厚くなり、応用力が磨かれるため未経験者との差が開いていくのだと思います。

 ここまで余計な前振りになってしまいましたが、プログラミングなど特に何も習得していない状態でソフトウェア・エンジニアになることは通常できません。そのため、未経験者はまず一つの言語を覚えて、アプリなどを作り、それをアピール材料として転職するのが一般的です。もちろん例外はあると思いますが、ぼくはそのように教えられました。念のため補足しておくと、教えてくれたのはインフルエンサーではなく、現役のエンジニアの方でした。(以下Hさんとしておきます)

 Hさんとはエンジニアを志望し始めた頃に知り合い、以降プログラミングのイロハを教わることになりました。彼の職場では当時まだ新しかったGo言語が使われていたらしく、ぼくもGoという言語を使ってプログラミングをはじめることになりました。その時点では、プログラミング言語は人間がコンピュータに指令を出す道具であるということくらいは理解できていたのですが、日本語や英語などの自然言語のイメージが強く、とりあえず文法から勉強しようと考えていました。

 自然言語における文法はプログラミング言語における構文と言い換えられます。各プログラミング言語の構文は公式サイトのドキュメントなどで見ることができます。Go言語の場合も同様で、公式サイトにA Tour of Goというコンテンツが用意されていました。このチュートリアルの売りはGoogle chromeなどのブラウザ上でプログラミングを書いて実行ができるというところでした。このチュートリアルでは、データを格納する変数(プログラマが変数の名前を決められる。データを取り出したい時はこの変数名を使い回す)の使い方や、同じ処理を繰り返すfor loop構文、実行時の条件によって処理の内容を切り替えるif構文などを学びました。

 この時点ではプログラミング言語は、ぼくの中でまだ自然言語の枠組みに収まっていました。自然言語同様、プログラミング言語も左から右に読み、基本的には上から1行ずつ順番に実行されていきます。構文も英文法のように理解することができました。もちろんインターフェイスや構造体などの不明な概念も出てきてはいましたが、最低限使い方を覚えたら実際に使ってみるのが自然言語習得の流儀です。英語学習などのイメージから抜けきれていないぼくは、早速英語学習の流儀に従って簡単なアプリを一つ作ってみることにしました。ちなみにこの時にスキップしたオブジェクトなどの概念は、エンジニアにってしばらく経った後も、ぼくの苦手分野の一つになっていました。

 プログラミング言語の本質をいまだ理解しきれていないぼくは、Hさんがはじめて作ったというスクレイピングアプリを作ってみることにしました。スクレイピングアプリとは、ウェブページなどから必要な情報のみを削り取ってくる(スクレイプする)アプリです。なんでもHさんは学生時代にエロ画像の収集癖があったそうで、大量のエロ画像を自動で保存してくれるアプリの制作に熱中していたと言います。Hさんがそのような話をしてくれたのは、単なるおふざけではなく、強い動機や熱意をもってアプリを制作した方が、ぼくの身に付くだろうという考えがあってのことでした。
 
 当時のぼくはプログラミングでこれがやりたいという明確な目標はなく、ただ知的好奇心だけで学習を続けていました。とはいえ、Hさんの真似をしてエロ画像収集アプリを作ったのでは芸がないとも思ってもいました。なぜならぼく自身はあまりエロ画像収集に興味がありませんでしたし、あくまでオリジナルでなければHさんの考えにも背くことになるのではないかと考えたからです。

 自分にとって熱中できることはなんなのか、そしてそれをどうプログラミングと結びつけるのか、それがその後のぼくの悩みになりました。

長くなってしまったので、今回はこの辺りで区切ろうと思います。

それでは

この記事が気に入ったらサポートをしてみませんか?