【日記】なんでも良いからプログラム作ってみたい【アザラシのたわごと】

タイトルにかなり悩みましたが、時々アザラシが思う事をいう
たわごとシリーズとして書いて行こうかと思います。

今回の記事は
プログラムを勉強したい。もしくはなんでも良いからプログラム作ってみたいという人に向けた僕の考えです。

プログラムの書き方や、テクニック。そういう物はないですが、勉強を進めていく上での意識的な物についてかいてあります。

自分自身を振り返り、これからプログラムを勉強する人に
少しでも役に立てばそれだけでもいいなと思いましたので、
気が向いたらみてください。

1.なんでも良いはダメ

急に否定かよ。アザッパリらしいな(テコパク)
プログラムでなにか作りたい!もしくは、〇〇という言語を触ってみたい!
というのは、意欲は良いです。

大抵はそこで止まってしまいます。
なんでも良いから作りたい。とりあえずプログラム言語触りたい。というのは
何もしないパターンのほうが多いです。

何故何もしないパターンが多いか。
それは、目標が無いからです。目標や区切りも無しに勉強するって結構
難しいですよね?

自分自身も時々、あ~なんかすっげぇ物つくりてぇ
青山に土地買うってやべぇっすか?トレンドに載りてぇ・・・(ハンケチプリンス)
等思うことがあります。が、これらは思うだけで結局やらないです。

1-1.じゃあどうすんだよ。

プログラム言語を勉強したい。なんか作ってみたいではなく
〇〇を作りたい!からプログラム言語を勉強して作りたい!
のほうがかなりいいです。

そもそもプログラム言語はなにかソフトウェア等を作るために
手段として用いるだけなので、手段“だけ"を勉強しても
意欲につながらないですよね。

なので、ウェブサイト作ってみたいからhtml勉強したいであったり、
STGゲームを作りたいからC言語を勉強したい。
等のほうが目的が明確になっていて意欲に繋がります。

自分自身を乗り気にしないと無理です

ちなみにプログラムに知見がある人に、教えて!という場合も
〇〇を作ってみたいからプログラムの言語教えて!
の方がすんなり話が通ります。(但しその言語を相手が知っている場合に限る)

2.いきなり難しいものを作ろうとしない

これ。本当にやりがち。プログラムを少し作れるようになると
絶対やってしまう・・・かもしれません。
(僕はやってしまってました)

めちゃ面白い物思いついた!これ絶対おもしろい!
と思いついたものが、最初は時間はかかるけどできるだろうという気持ちで
取り組むと、実は難しい仕様の部分があって全然思うように行かなかった。

もしくは、考えついたけどそもそも規模がデカかった。
プログラムだけで完結しない。付随する別の知識が必要。
環境が用意できない等があります。

2-1.じゃあ何作ればいいんだよ!

これね~今でもいろいろ思い出します。解決法は自分なりには出ていますが
本当にプログラムやりはじめの頃はとりあえず簡単なものを作って
それを積み重ねていったほうがいいです。

おみくじ とか 数字あてゲーム 等の処理が明確な物から作り、
プログラムごとの固有の書き方。条件分岐、乱数等をおぼえていく。
新しくおぼえる言語では大体いつもこれを作ってます。

ゲームを作るならSTGゲームから作るのが良いというのもよく言われていますが、
STGゲームを作れれば大抵のゲームのロジックは作ることができるからという
理由もあります。

2-2.こんな御高説たれてるくせにお前は本当にやってんのかぁ~?

そもそもこれらの失敗があったから今があります。
僕自身も高校生のときにとりあえずなんかモノつくりてぇ(悪手)から
始まりました。

その時はやはり東方が好きなので、よっしゃSTGゲームつくるぜ!
といきり立ったのですが、まあ難しいですよね。
そこでまず挫折しかけました。

その後計算するソフトとか作って見ようかな。簡単なゲーム作ってみようかな。
等している内に、東方が好きなので東方用の便利ソフトを作ろう!
という気持ちになり東方ランチャーにたどり着きました。

簡単なものでも、完成したらそれだけでかなり気持ちが良いものです。

で、そこから色々勉強していく上で、もう一度STGゲーム作るのチャレンジ
してみよう!ということでやってみると、昔挫折した所が
理解できているので、作ることができるようになります。

ちなみに・・・当時はC#という言語ですべて作っていましたが、
最近触って無いから忘れてそう。そろそろ東方ランチャーもう一回
作り直そうかな。。。

3.参考書を買おう

今はググれば参考書なんて買わなくても記事なんでいっぱいありますが、
始めたばかりの時に調べていくと、理解し辛い記事もあると思います。
(決して記事が悪いわけではありません)

そのために別の情報源として、参考書という選択肢も
持っておいた方が良いということです。特に始めたばかりは、
わからないことが多いのでたくさんの情報を見る必要があります。

他のメリットはやってる感がでます。
ハ~~~~くだらね。でもこれ大事。モチベーションにつながるし、
せっかく参考書買ったのに何もしなかったら無駄だよね。

やらないといけない。という気持ちにすることも大事です。

3-1.オススメの参考書

僕自身が買うならこれ。という物はありますが
それがこの記事を見てくれている人に必ずしもオススメであるということは
ないです。

参考書を買うときは自分にとって見やすいもの、理解しやすいもの。
つまり情報を噛み砕きやすい物を選ぶのがベストです。
なので書店等で色々な参考書を見るのがおすすめです。

参考書の中でも役に立ったなと思う種類は逆引きリファレンスです。
なにそれ?という方向けに言うと、言語ごとの関数の使い方や
for文 if文などの書き方等の使い方”だけ”が載っている参考書です。

3-1-1.逆引きリファレンス

逆引きリファレンスの強みは、
〇〇をしたいけど使い方がわからないなどのときにかなり有効です。
(例 array(配列)を使いたいけど作り方、入れ方、出し方がわからん)

よくある参考書等だと、様々な説明をした上で関数等の使い方の説明をしていますが、使い方だけ知れた方がプログラムを作成していく上で、穴を埋めやすいです。

他にも、入門書系等のとおりにプログラムを書くことをおぼえてしまうと
入門書のような書き方しかできず、幅が狭まります。
なので、あくまでやりたいことを埋める為の参考書を買うのをおすすめします。

よくある入門書、超初心者向け、いちからはじめる~などのシリーズの書籍。
は昔は買ったこともありましたが、結局無駄になったことがおおいです。
何故無駄かというと、それこそネットに転がってますよそんなの。

4.難しいことを考えない

最初はネットや参考書などで、プログラムの書き方(コーディングルール)
はこうすべき。など難しいことを突きつけてきます。
こまけぇことは良いんだよ!

最初は“動く"ものを作るのを頑張ろう。
そもそも最初からコーディングルールまで意識すると、
やる気がなくなる可能性が高いです。

もちろん仕事等ではちゃんと書かないとダメですが、
始めたばかりは考えたものを具現化するという楽しみを元に
始めているんですから、深いことは気にせず動くものを作りましょう。

ただ、コーディングルールはプログラムの可読性が上がります。
共同でプログラムを書くことになった時に、書き方を合わせることで
読みやすくなったり、書いたコードを見直す時にとても役に立ちます。

なので、最初は動くものを意識して、作ることになれてきたら
コーディングルール等の難しいことも少しづつ意識して
やっていく事をオススメします。

5.プログラマーよ、コミュ力を抱け

えぇ?プログラムって一人で書くものだしコミュ力いらないでしょ?
と、思った方。そんな事ありません。
必要です。

プログラムは確かに書いてるときは一人で書くときもありますが、
仕様に沿って書く時に仕様が問題ないかすり合わせしたり、
web制作ならデザイナーとのやり取りが必要です。

他にも先程の項目ですこし触れましたが、アプリケーションを作る為に
共同でプログラムを書くこともあり、その時は他の人と
コミュニケーションをしっかり取らないといけません。

えーでも別に趣味でやってるだけだし・・・仕事でやらんし・・・
という人もいると思いますが、それでも最低限のコミュ力は
必要です。

5-1.えっ、趣味でやるのにコミュ力が?!

急に知らない人と話して仲良くなれとかそういうコミュ力ではないです。
趣味でやるのにも必要なコミュ力は、
テスターをしてくれる友人ぐらいは欲しい。ということです。

いざプログラムができたから公開するにしても、バグがないか。ミスはないか。
見た目は変ではないか。ユーザーにわかりやすいものか(UI/UX)。
などは、案外作っている本人はわからないものです。

そういう時に第三者視点として友人等に見てもらって、
率直な意見を述べてもらいましょう。この時に、率直な意見に対して
基本的に怒ったり否定したりしてはいけません。

友人は善意でやってくれています。意見は意見として受け入れて、
その上で良いなと思ったものを採用するのがベターと感じます。
そうしていく事で良いものができます。

僕自身も今ちょっとしたゲームを作る上で友人たちから意見をもらいつつ
ゲームを作っています。友人たちに見てもらうと、そういうのもありだな。とか
こうしたらもっと面白くね?などと色々とおしゃべりしながら改善できます。

最低でも作ったプログラムをレビューしてくれる友人はいるレベルの
コミュ力は絶対にあったほうがいいですよ。
強い人は勉強会とかスイスイ行くけど僕はそこまでできない。

6.プログラマーが今一番おぼえるべき言語

英語です。(なんかの記事で見た)
実際英語が読めたほうが良いです。色々やっていく内に、
プログラムを書く上で英語で使い方が書いてある場合が多々多々あります。

学生で、英語が苦手なら学生の内に英語の教師に教えてくださいベロベロキャンキャン
ってしたほうがいいですよ。実際僕は高校時代、英語の教師に
英語雑魚なんで放課後に教えてくださいベロベロキャンキャンしました。してよかった。

学生じゃないなら・・・英語・・・うん。社会人になってから英語おぼえるのって
辛くね?(俺も辛い)さっき学生時代に教えてもらったって言ったけど、
大分抜けてるし、本当はちゃんと勉強したほうがいいんだよね。俺も。

なので、英語の参考書とかそういうの買って時間見つけて勉強するしか無いかと。
ちなみに高校時代お世話になった英語の参考書はハーヴェストです。
英語教師のお墨付きだから間違いない。

7.終わりに

大した事は書いてませんが、大事な事です。特にこれからプログラムを作ってみたいという方が陥りがちな事を書いておきました。

アザラシテメーそんなこと無いぞ。という方。そういう人は元々強いタイプの人なんでしょう。そういう人は悩むことなくこんな記事見ないで、プログラム書いてこい。

おわり