yucatio@システムエンジニア

趣味で作ったものいろいろ

会社では作りたいものを作れるわけではないのにプログラミング初学者には作りたいものがあってほしい、について

先日、表題のツイートをしまして、もっとこの件について語りたいため、記事にしました。

会社では作りたいものを作れるわけではない

ネガティブな言い回しになっていますが、単に、仕事って、顧客が欲しいものを作る(そして対価を得る)ということだよね、ってだけの話です。

プログラミング初学者には作りたいものがあってほしい

一方、プログラミングを学ぶ際には作りたいものがあってほしいのも事実です。1番の理由はプログラミング学習に挫折してほしくないためです。

語学を考えてみましょう。「なんとなくかっこよさそうだから」という動機の人と、「通訳になりたい」とか、「海外に行ってやりたいことがある」とでは、「思っていたより難しかった」と感じたときに違いが出るのではないでしょうか。

プログラミング学習は語学よりも難しくないと(個人的には)感じていますが、普段は使わない概念や専門用語が多く、理解するまで時間がかかることもあります。そこで挫折しないためにも、目標は持っていてほしいのです。

また、作りたいものがある場合、プログラミングを学ぶにつれて、目標に近づいている感じがしてわくわくするものです。 そのわくわくをぜひ体感してほしいと思っています。

繰り返される「プログラミング何から始めればよいですか」「何をしたいかによりますね」

話は変わりますが、 Twitterでは、たびたび「プログラミングに興味を持ちました。まず何から始めればよいでしょう」 に対し、 「何をしたいかによりますね」 と返信しているのを見かけます。

これは「作りたいものがあってほしい」とは少々性質が異なります(多少その成分は含まれますが)。

「何をしたいかによりますね」

これは、100%善意で発言しています。 と言うのも、プログラミングを学ぶ際、

  1. 習得するプログラミング言語を決める
  2. 1.で決めた言語の入門コンテンツをオンライン学習サービスや本で学ぶ

というステップになります。なので、最初に学ぶプログラミング言語を決定する必要があります。

しかし、現在、入門にぴったりなプログラミング言語はコレ!と言った鉄板な言語は存在しません。 また、圧倒的なシェアを誇る言語も存在しません。 ただ、言語によってどのような用途で使われるかの傾向があります。

というわけで、どのプログラミング言語を学ぶかのアドバイスをしたいために聞いています。

質問を質問で返されたほうの気持ち

システムエンジニアって「かっこいい」「給料がよさそう」「リモートワークができる」。少し勉強してみて、向いてそうだったら本格的に勉強して転職しよう、と考えている人にとって、質問に質問で返されるのは予想外かもしれません。 その気持ちはなんとなく分かります。 そもそもプログラミングで何ができるのか分からないのに、何がしたいのか聞かれても答えられるはずがありません。その場合は、

  • フィーリングでプログラミング言語を選択する
  • 自分がエンジニアになったときに、周り(親戚・友人)はどんなことを頼んできそうかを想像して、作りたいものを決める*1

で次に進みましょう。

「作りたいものが無いのになぜエンジニアを目指すのか」という辛辣な意見も目にしますが、 プログラミングを学習しながら、世の中でどのようにプログラミングが使われているか意識することで作りたいものも明確になってくると思います。

おわりに

会社では作りたいものを作れるわけではないのにプログラミング初学者には作りたいものがあってほしいという矛盾に気づいてからしばらく悶々としていましたが、フローとしては

プログラミングを勉強する

自分が作りたいものをつくる

他の人がほしいシステムを作る

こんなフローをたどれたらうれしいと思います。

*1:これは発想法の話であって、実際に知り合いから仕事を受注しろと言う話ではない