こちらはqnote Advent Calendar 20日目の記事となります。
会社のAdvent Calendarらしく、初心者プログラマー向けのアドバイスをまとめてみました。
翌日の内容と被ってたらスミマセン。狙ってテーマを被せたわけではありません。スミマセンパイ。
心がけ編
1.プログラミングに興味を持つ
まずはコレです。
職業プログラマーではなく、プログラミングに興味を持ち、プログラミングを好きになってください。
きっかけは難しいですが、これがステップアップの一番の近道です。
身につけたプログラミングの技術は、何も仕事にだけ使わなくても良いのです。
アプリやゲーム、サービスを趣味で作ってみるなど、プログラミングの技術が活かせることは沢山あります。
好きなものを作るのはきっと楽しいですし、うまくやれば副収入も得られますよ。
2.怠惰は素質
「何もかもめんどくせー」というのはプログラマーとして良い素質です。
100個のファイルを1つずつ手でリネームする、数千件のExcelデータを1行ずつ手でいじる、そんなものはクソくらえです。
プログラムを使って、もっと楽に解決する方法を考えましょう。
楽するために苦労する、これはプログラマーの本質とも言えます。
3.俺イケてるって思え
自分に自信を持つことはとても重要です。
いい感じのコードが書けたら、自分をイケメンだと思い込みましょう。
そして、自信を付けたところでもっと凄いコードを見つけて、「俺ぜんぜんダメだ」ってなってください。
ダメだってなったら、ひたすら勉強しましょう。
イケてると思い続けるためには日々の努力が欠かせないのです。
注意すること編
4.コードは必ず「他人」が見ることを意識せよ
仮に誰にも見られる余地がなくても、その場凌ぎの汚いコードで済ませるのは出来るだけ避けましょう。
半年後にあなたはそれを見て「なんだこのクソコード!誰が書いたんだ!!」と思ってしまうからです。
半年も経つと、もはやあなたは「他人」になってしまうのです。
5.リファクタリングは思い立ったらすぐ実行
コード汚いなーって思ったら、出来るだけ早い段階で直しましょう。
放っておくと、そのコードはあなたのティータイムをファイヤーでバーニングな時間に変えてくれます。
食後のコーヒーくらいゆっくり飲みたいですよね?
6.コーディングルールを守るべし
コーディングルールが守られていないコードは、それだけで「品質が悪い」という烙印を押される可能性があります。
基本的な部分が統一されていないと、プログラム構造の一貫性も期待出来ないからです。
特別な理由が無ければ、言語やフレームワークのコーディング規約に沿うのをオススメします。
複数人数で開発する場合は、特に気を付けた方が良いでしょう。
7.ログを収集しよう
ちゃんと動いてるからログなんて要らない?
いやいや、それヤバイですよ。
バグってやつは想定外のところで発生します。(というか想定内のバグなんてありません)
ログがあれば、バグが発生したときの対応が格段に楽になります。
せっかくの休日を不具合対応で潰してしまわないよう、ログは出来るだけとっておきましょう。
後から追いづらい部分は特に、です。
8.トレンドに流され過ぎない
トレンドはステキです。
素敵な設計、素敵なフレームワーク、日々色々なトレンドが生み出されています。
でもちょっと落ち着いて、それがホントに良いものかどうかを考えてみましょう。
最先端を走るのも重要ですが、安定性を求めるのであれば枯れた技術の方が確実です。
何でもかんでも食いつくのではなく、要はバランスが大切ということです。
9.TODOリストを作る
人間の記憶力なんてたかが知れてます。
私もメシ食ったら自分の名前以外全部忘れてた、なんてことはザラです。
(ウソですすみません。)
やるべき事が思い浮かんだら、忘れないうちにTODOリスト化しておきましょう。
コード中のTODOコメントも積極的に書きましょう。
やってみよう編
10.既存アプリの仕組みを想像してみよう
アプリでもゲームでもWebサイトでも、気に入ったものがあるなら仕組みを想像してみてください。
ここは多分こういう仕組みで動いているのだろう、自分だったらこう実装するだろうな、ここは仕組みがさっぱりわからない など、想像するだけでも得られることは沢山あります。
そして、想像がついた部分は雑でもいいので試しに実装してみましょう。
手を動かすと、もっともっと得られることが増えます。
11.勉強会に参加してみよう
たまには仕事を早めに切り上げて、勉強会に参加してみて下さい。
無料の勉強会はたくさんありますので、コストはかかりません。
勉強会の後に懇親会があったりしますが、苦手なら帰ってしまってもOKです。
勉強会に参加すると、知識はもとより、素敵な出会いなんかも得られるかもしれません。
12.当たり前をアウトプットしよう
あなたが当たり前だと思っている知識が、誰かにとっては得難いものかもしれません。
ちょっと手間はかかりますが、積極的にアウトプットしていきましょう。
アウトプットの機会を増やすと、必然的に調べごとをする機会も増えます。
誰かの役に立つだけではなく、自分のためにもなるのです。
13.ユーティリティクラスを作る前にメソッドやライブラリを探してみよう
初心者のうちは特に、自分が頑張って実装したユーティリティクラス(便利メソッド群)が言語デフォルトのメソッドとして存在していたり、他の人がライブラリを作っていたりすることが往々にしてあります。
(特に、配列をいじりまわす処理などで非常にありがちです)
配列制御・日付制御などのありがちな処理は、作る前にGoogleやgithubなどで検索するときっと幸せになれます。
14.ユーザの立場で考えてみよう
どんなアプリでも、必ずユーザが存在します。
クライアント(依頼主)の要望は出来るだけ聞いてあげるべきですが、クライアントが何をしたいかって言うと、最終的にはアプリをユーザに使ってもらいたいわけです。
単純にイエスマンになるのではなく、ユーザの立場に立って積極的に議論しましょう。
請け手としてではなく主体的に考えることで、クライアントにも評価される可能性が上がります。
まとめ
例えソロ開発であっても、プログラミングは自分の力だけで進められるものではありません。
技術書を買って勉強する場合は、著者の方がまとめた情報に頼ることになります。
インターネットで検索する場合は、見知らぬ先人たちがまとめた情報に頼ることになります。
むしろプログラミング言語を使う時点で、言語開発者のまとめた情報に頼ることになります。
プログラミングは人同士の助け合いによって成り立っているのです。
偉大なる先人たちに学び、後輩たちにもぜひ何かを残せるよう頑張りましょう。