才能が無いなりにプログラミングの勉強はしてきました。
本を買ったり、ネットで調べたり、質問サイトで質問したり、アプリの作品を作ってみたり、色々やりました。
その中で、自分が特に効果が高かったというものをゴミプログラマーの視点で紹介したいと思います。
と、ここまで書いて会社に行って、家に戻ってきて続きを考えていると、効果が高かったものというのは一つに集約されるんじゃないか、てかもうこれしかないわと思ったので、そのことについて深く掘り下げて書いていこうと思います。
アプリを作る
僕はiPhoneアプリのエンジニアとして仕事をしています。
なので実際にちょこちょこ自分でアプリを作ったりしていました。
このサイトの作品ページに僕が作ったアプリがあるのですが、まぁ、機能的に言うと全然凄くないです^^;
でも僕はゴミプログラマーなんで、最初から凄いものを作ろうとして結局バグだらけのぐちゃぐちゃアプリを産み出してしまったことがあります。
なので、プログラムの開発経験があまりなく、プログラミングが苦手だなと思っている人は、小さい機能から作り始めればいいと思います。
例えば自分で無料のレンタルサーバーを借りて、実際にファイルをサーバーに置いて、アプリとサーバー間でデータのやり取りをしてみるとか。
また、データベースに「名前、生年月日、趣味」といった簡単なデータを保存して、アプリから読み込んでみるとか。そして読み込みが成功したら、今度はデータベースのデータを少しだけ加工してみるとか。
こんな感じで一つ一つの成功体験を積み重ねていくことが大切だと思います。
まぁ、凄い人たちは自分の組みたいようなプログラムをどんどん組んでいくんですけど、僕やプログラミングが苦手な人はその人とは違います。
そんな才能に溢れた人と比べる必要はないです。才能の差というのは、生まれ持ったものなので、こればかりは仕方がありません。
僕は思うようなプログラムが書けなくて、バグばかり出していて凄く悩んだのですが、今はそんな自分の努力ではどうしようもならないことに心を痛める必要はないと思い、自分のできることを一つ一つ積み重ねていってます。(とは言いつつもたまに劣等感を抱く時はあります…^^;)
一つ一つできることが増えていけば、その分自信にも繋がりますし、何よりプログラミングが面白くなってきます。こうなればシメたものですね。
また、とりあえずデータベースとかサーバーとかよく分からなくても、一度手を出した経験を持っていると、将来またデータベースやサーバーを触る時に、「あぁ、そういえばこんな感じだったな」ってな感じで以前より理解できると思います。
そんなことを繰り返しているうちに、よく分からなかったこともいつの間にか分かるようになってきます。僕の経験上。
なので、とりあえず何かを作ってみる、一つの形にして世の中に出してみるというのは自分の知識や経験を底上げする上で良いモチベーションにもなりますし、実際に上に書いたような感じで技術が身についていきます。
お客さんがいることのプレッシャー
あと、僕は最近一人で開発をやるプロジェクトを任されているのですが、僕の作ったものが全てお客さんに見られるということで、かなり丁寧に作っています。
もう、個人の趣味でアプリを作っていたのとは比べ物にならないくらい作り込んでいます。
でも実際この作り込んでいく経験は、かなりの開発の成長に繋がっているかなと感じています。
例えば適切なタイムアウト処理を施し、ネットワーク通信をしてサーバーから応答がなければ、きちんとユーザーに分かる形で通知を行うとか、メモリの解放忘れがないようにプログラムを組んでいったりとか、かなりパフォーマンスとか例外処理に力を注いでいます。
今まで僕は、
「メモリリーク?循環参照?どうでも良くない?」
とか、
「例外処理ってあるけど、こんなの書かなくていいやん」
と思っていました。
でもきちんとしたプログラムを組む上でこれらの認識は大間違いです。
むしろ正常系の処理より例外処理の方が大事なんじゃないかとも今は思っています。
なぜならユーザーがアプリを使ってて、例外処理が適切に施されてなかったらアプリが落ちたりします。思いもよらぬ操作をユーザーがするなんてことはザラにあるんですね。
さらに適切な例外処理が施されていると、
「ネットワーク通信に失敗しました」
と表示され、あぁネットワーク関連で何か失敗したのかと分かるのですが、雑な例外処理が施されていて、
「エラーが発生しました」
と表示されても、ユーザーは原因も分からず、何をすればいいかも分かりません。
なので問い合わせが来たり、挙げ句の果てには「もういいや」でユーザーがアプリから離れてしまうことも十分にありえます。
例外処理は大事です。これはガチで大事です。プログラマー歴3年半、ようやく気づきました。
このように僕はお客さんがいるというプレッシャーがあることで、かなり丁寧に作り込んでいます。
その事で以前よりもキッチリとしたアプリを作れるようになってきていると思いますし、その他にもハードウェアの事もよく考慮するので、ソフトに限らず色々な知識がついてきていると思います。
まとめ
実際にアプリを作っていると、こんな感じで技術が上がっていったよ〜ということをお話ししました。
にしてもプログラミングって奥が深すぎる。
プログラミングの才能のある人のコードを見ると、凄く綺麗なんですよね。
全体的にスッキリと整ってて、見てて美しい。
そんな中で自分のコードを見ると悲しくなるぽ(´・ω・`)
まぁ、ぼちぼちやっていくのが一番ですね。
コメント