始める時に思ったこと

この記事は主にプログラミングを始めたばかりの人に送る記事です。
偉そうなことを偉そうに書いているかもしれませんがお付き合いください。
偉そうだなとか言うだけの人よりじゃあどこでそう感じるのかどうやったら感じない文章になるのか考えたり指摘してくれたりする人がより素晴らしい人だと思います。
mito自身にも当てはまることがあったりしますが、とりあえず自分のことは棚に上げて書いています。

とりあえずやってみる

新しいことに挑戦するという事はとても勇気がいります。
失敗しないだろうか、自分にはできないんじゃないか、やらなくてもいいのでは、時間の無駄かもしれない、etc...
そう言うことをどんどん考えていくと挑戦しない道を選んだ方が楽なことが多いです。
でも、そこを敢えて挑戦していくと違った世界が見えてくるはずです。
新しい言語の勉強をするときもとりあえず動く何かを作ってみて実感を得ることが大事になってきます。

自分は今年のPCKの開発の際に、挑戦しなくてもよかったかもしれない事をやりながら開発していました。
一番大きいことは積極的にライブラリを使っていったことです。
去年のPCKで出したふぁみここのコードを見るとサーバとの通信方法やJSONのパースの仕方などを標準のはめんどくさい、使いにくいと言われても標準で用意されている機能だけでやったのが多いです。
(一部、okhttpとかが使われているのはおりさの先輩に相談した時のコードです)
その時は、使いにくさだったりは特に感じていなかったし、いざライブラリを使おうとなっても使い方が分からず結局元に戻るだろうと思いが強かったです。
そして今年の開発でもそのコードを流用すればすぐに終わったかもしれない事ばかりでした。
でも、今年はmoshiやokhttp、Ankoといったライブラリを多く使いました。
特にAnkoはKotlinでxmlなしに画面レイアウトが作成できるみたいなライブラリなんですが、そもそもKotlinの情報が増え始めた頃でAnkoの情報が多いわけもなく、分からないことだらけで辛かったです(特にid周り)
こういったライブラリを使ったことでライブラリの便利さ・有り難さが身に染みてわかりました。
今は積極的にライブラリを使うようにしています。

少し脱線しましたが、やってみることによって得られる経験はとても良いものです。
やってみて結局使わなかった・いらなかった・分からないままだったでも、それはそれで良いと思います。 使わなかった・いらなかったでも他のプロジェクトでは使えたり、他のことに挑戦する時にあれではこうだったけどこれではどうなんだろうとかで良い経験値にはなると思います。 分からないままでもしばらく他の事をやってたりして時間を置いてまたやって見ると案外楽になったりします。(少なくとも悪化することはないと思う)

できることからやる

なんか上のやつと矛盾したことになりそうですが、やりたいことがあるが途中でやる気を失ってしまったり達成できずに終わってしまったりすると精神的にしんどいです。
でも、そういう場合って基礎が足りていないだけだったり前提知識がないだけだったりするのでやりたいことだけでなく、今できることを地道にやってどんどんやりたいことに近づいていくというのも道だと思います。

いろんなことに手を出す

よくいろんなことに手を出すより1つのことを極めた方がいいだとか、広く浅い知識より狭く深い知識の方がいいだとか言われることがあります。確かにこれらのことは技術職や専門職の人達にとっては必須ですが、プログラミングを始めたばかりだったりどれを深めていいのかわかっていない状態だと、それよりはいろんなことに手を出して自分の好きなことやりたいこと興味を持ったことを見つけるのが最優先だと思います。
(自分の経験とか書きたいけど1つ目で疲れた長くなりそうなので以降省略)

時にはなぜを忘れる

開発中に実装したい機能がある時にやり方が分からずにググってQiitaとかStackOverflowとかにあるサンプルコードを見つけて使いたいときがあります。
その時になぜそのコードが動くのか分からない状態で使うのは良くないと言われます。確かにその通りでそのコードの意味がわからないと使用独特のバグが生えてしまったり、使えなかった時の対処法がわからなかったりして開発に支障が出てしまいます。でも状況によってはそんなこと言っていられず動けるものを作らないといけないと言った時はわからないままでもいいと思います。
わからないままでもしばらくすると自然にわからないままにしたくないだとか単純に興味が湧いらとかでなぜ動くのかを調べるようになります。
とりあえずは動かすことに意味があると思います。

自分の環境を作る

プログラミングをする際に、ツールにもっとこだわった方が良いです。 どんなに有名なツールでも自分にとってとても使い勝手の悪いものだったらそれを使い続けることは精神的負荷になってきます。 これもとりあえずやってみると近いですが、どんどんいろんな環境を試してみて自分にしっくりくるものを見つけ、それをまた自分に合うようにカスタマイズしていきましょう。
自分の場合はもうJetBrains製品の虜になってしまい、AndroidStudioやIntellijのカスタマイズを結構やっています。 しかし、もうすでに開発が終了していたり非推奨になっていたりするものはなるべく避けましょう。
それ以外であれば、周りの他人に少し言われるくらい言われても拘ったほうがいいです。

どんどん公開する

せっかく何かしら作っても、「いや、駄作だから,,,」とかと言って公開せずに自分や身内だけで終わらせてしまう人がいます。
正直、勿体無いと思います。
せっかく作ったものが日の目を浴びないというのもですが後悔しないと他の人からフィードバックを得られません。 フィードバックを得たものと得てないもののサハ歴然んです。
後悔したことによって起こる人はいませんし(多分)、どんどん公開していきましょう。
個人的にはgithubで星をもらえたらいPRもらうのは嬉しい。

理由を教えてくれそうな人を見つける

何かあった時にその理由や原因をきちんと教えてくれる人は良い人です。やるだけだよとかしか言わない人に聞いていても仕方ありません。他を当たってみましょう。
何かやろうとした時にダメとしか言わないよりなぜダメなのか説明があったほうがいいですよね。そんな感じです。

最後に

途中から疲れてしまって閣僚もだいぶ減って、いくつか項目を消したのもありますがいかがでしたか。
偉そうだなと思った人はいると思います。自分がそうです。
この記事は割と雑に書いてしまっていて間違っているところもあるとは思いますが、参考程度にしてやってください。
ここに書いてあることを実践したからといって必ず良くなるとは限りませんし、このことを意識しすぎるとそれもまた良くないでしょう。
何事も適当にやるのが良いですよ。(この適当は本来の意味)
頑張ってください。応援してます。自分も今以上に頑張ります。

mito.