見出し画像

「プログラミングを学ぶ」という思考ではなく「こんなものを作りたい」が学習の第一歩だと改めて思った件

JABです!

かくかくしかじか、メンタルダウンしていますw
起業って、人間関係って難しいなと思う今日この頃です。

とはいえ、思えることは

スキルを身につけておいて損はない!

ってことですね。はい!

「プログラミング学習」をとりあえず・・・では学習速度が遅くならない?

完全に個人的見解ですが・・・プログラミングを学ぶことが目的になってたら、習得する速度がかなり遅くなると最近感じます。

私はそもそも必要に迫られて、自分でWebサイトを作らなければならない状況に追い込まれて、初めてHTML、CSS、JavaScriptを学びました。
そしてそれがいつしか(それも結構早いタイミングで)仕事になっていったわけですが。

たぶんプログラミング言語を初めて学ぶ人は、その言語がどんな場面でどんな風に使われているか想像し難いと思うんですよね。
もちろん事前に「このサービスってこの言語で動いてるんだぁ」ってくらいには調べたりしている方もいるとは思いますが。

プログラミングは自由な働き方ができて、収入も高く、就職もしやすい

なんていうイメージがまだまだある最近では、「とりあえずプログラミング」という感じで学習をスタートする人も多いんじゃないかなと思っています。
(私のように前職戦闘機パイロットでいきなり退職したら、食い扶持稼ぐために「高収入」って調べたら、エンジニアが一番って思ってしまうことも十分にあり得ますw)

でも、実際よくTwitterなどでも呟いている人が多いですが、

「実務の中で学ぶのが一番早いし、身になる」

っていうのは本当だと思います。

「言語を学ぶ」となると、構文というか、プログラムの書き方をとにかくキーボードを叩いて、辞書を写経するかのように書いていく感じになるんでしょうかね。

if文、for文、、、変数、関数、、、

書き方はなんとなくわかるし、意味はわかるようになるかもしれませんが、こういった覚え方って相当体力がいると思うんです。

気力体力がいる作業になると、人間誰しも億劫になる時がきます。それを跳ね除けるほどの根性がある人はそれでもいいかもしれませんが・・・

でもこうして学んだ言語って、「何にどう使うの?」ってところをもう一度整理しなきゃいけなくなるんですよね。

うまくは言えませんが、学んだ言語でオリジナルのアプリなりWebサービスなりを作ってみたらわかると思います。

とたんに手が動かなくなるはずです。

今の参考書などは簡単なプロダクトを作ることを題材にして、学習を進めていくスタイルが多くなってきているとは思いますが、

自分の作りたいものではない、言語学習のための制作

だから、なかなかテンション上げるのが難しいんじゃないかなって。(少なくとも私はテンション上がりませんw)

もうひとつ大きな損は、それで作ったものってポートフォリオにならない場合が多いってところです。

要は初めて作ったものだろうがなんだろうが、自分の「制作実績」になった方が絶対的に時間的コストも安く上がるんです。
特に就職を目指している方にとっては、このポートフォリオって絶対的に必要になるものです。

であれば、、、

自分が作りたいと思ったものを作りながら言語を学ぶのが手っ取り早い

どうせ「学習」です。せっかくなら自分の作りたいものを作りながら学べば、モチベーションも保てるし、モチベーションが高ければ学習効率も上がるって思ってます。

自分ごとですが、Webでもアプリでも私はこれでそれぞれの言語を学びました。

中でもつい最近手をつけているのが、C#です。アプリを作る必要が出てきたので、目標は「ASAPでリリース」と定めて、Unityで早速作り始めました。もちろんこの時がUnityを初めて触った日ですw

Unityの使い方自体もその場でググって一つずつ覚えていく感じですが、そんな時・・・

C#で動かすんだぁ・・・

とw

GUIだけでできるかなと思っていましたが、結局新たにC#の基礎的なところを学ばなければならなくなりました。
とにかく、どういう動きをさせたいかをイメージして、それをブラウザの検索窓に片っぱしから叩き込んでググっていきました。

(その時開かれるタブの数は常軌を逸していますwww)

自分が作りたいものに対して、最短経路でそのコードを引っ張ってくる感じです。(ここでは検索のスキルが実は最重要)

最初はコピペでいいと思ってます。

どうせ「クラス名が違う」とか「スコープがあってない」とかで動かなかったりするので、さらに検索していくことで基礎的な書き方を覚えていきました。

それを続けていきました。

最低限必要な機能だけを実装したら即リリース

この感覚がとても大事で、本当に必要最低限だけを実装してiOSアプリとしてリリースしました。

それがこちらのアプリ。

アプリさえリリースできればいいと思っていたので、アイコン画像とかもかなりダサいし、App Storeの画像も間に合わせでテキトー、説明文などもそんなに深く考えてないのがバレバレでお恥ずかしい・・・w

でもね、、、これ、実際に初めてUnityを触ったところから約2週間ちょっとでリリースまで行けた感じです。

(リリースするためにもちろんApple Developerなども勉強しましたよ!この期間で!)

さらにいうと、仕事もしているのでまともに作業していたのは毎日の夜中に数時間と家から職場の移動間の時間だけで作りました。

作りたいものがあったら、それを作るために必要な言語を学ぶってスタイルというか、考え方でプログラミング学習をすると本当に効率がいいと思います。

最初に言ったように、モチベーションも高く維持できます。なぜなら

早くリリースしてユーザーのリアクションをみたい!

とか

誰かの役に立てるかも!

とか

収益になるかも!

って常に思いながら、制作、学習ができるからです。

ちなみに、私の場合これは初めから有料で販売するつもりでした。それは次に作りたいアプリも決まっているので、そのモチベーションも保ちたかったからです。

2つ目のアプリを作るには、さらに負担が大きくなります。

一度経験しているとは言え、全く同じプログラムで動かせるわけではないので、またググりながら、試行錯誤しながら作らなければならないわけで・・・
そしてそれだけではなくて、前回作ったアプリのアップデートもしていかなきゃ行けないんです。

単純にやることが多くなって、かかる時間も多くなるので、そこにはモチベーションもお金も必要なわけです。なので処女作ではあるけども「有料で」というところは譲れないポイントでした。

(じゃないと継続なんてできないですよw。裕福じゃないんで・・・www)

オリジナルで作りたいものを初めから学習材料としての位置付けも兼ねて制作すると、こうして実績にもなるんです。

不完全かもしれませんが、それはおいおいアップデートしていけるので、例えばポートフォリオとして企業に提出しなければいけない時までにちょこちょこ隙間時間でクオリティを上げていけば十分制作実績になります。

長々書きましたが、要は「言語学習」を目的とせず、「作りたいものを作る過程で言語を学ぶ」っていう方が、いろいろと効率がよくて早いってことが言いたかった!w

(ただしこれはあくまで私個人としていいなぁって思うやり方で、学習方法には人それぞれ向き不向きがあるってことが大前提です。)

(さらに、結局はこうやって基礎を作った後に、「これってこうやってプログラム書いたけど、なんでだろう?」っていうのを深く調べていくうちに、言語を理解していくって作業はちゃんとやります。というか好奇心でやらずにはいられない)


余談

先ほども言ったように、色々あって我が家は裕福とは言えないんですw

時間をかける以上、それなりの成果が必要になってくるので有料で販売したんですが(GooglePlayの審査待ちが痛い)、知ってもらうため、買ってもらうためのプロモーションも考えていました。プロモーションというか、リリースの仕方というか。

今はSNSが身近にあります。そして、最初のアプリを使って欲しい人たち(ペルソナ)は、SNSの利用率も高く、幸運にも個人アカウントでの繋がりもあります。

なので、最初のリリースはひっそりと繋がりの深い人たちだけにして、使ってもらってフィードバックを受けて、若干の改善(バージョンアップデート)をしたのちに、SNSで発信しました。

あとは媒体を増やしていって、より多くの人に活用してもらえたらいいなぁと思っている今日この頃です。

AM2:00なので、寝ます。

サポートしていただけると嬉しいです!! Web関連、育児関連、ビジネス関連など情報を発信していくために使わせていただきます。