最後に全てをかけた大勝負をして敗北し、フリーランスのiOSエンジニアになるというプログラマーとしての遍歴を歩んできたのですが、会社に属したことがなかったのでずっと独学でした。【アプリ開発5年の物語】現状を嘆く必要はない。変化は劇的に起こるだから特に最初の3年は大変でした。分からないことを誰にも聞けない。聞ける人が周りにいないのです。仕方がないのでググりまくる。自分のぶち当たっている問題を解決してくれる記事に出くわすとは限りません。英語や中国語のサイトはたくさんあるけど、日本語のサイトは皆無だったりする。仕方がないので英語のサイトを一生懸命読む。うまくいかない...世界最大のプログラマー向け質問サイトで英語で質問してみたこともあります。文章書くだけで死ぬほど時間かかる。返事来ない...そんな闇の中を歩いていたんですが、数年前に素晴らしい日本語のプログラミング質問サイトができたんです。それがteratail(テラテイル)。アプリ開発勉強会で知り合った80代のiPhoneアプリ開発者のおじいちゃんに教えてもらいました。世界最年長アプリ開発者イカさん、teratailっていうなんでも丁寧に質問に答えてくれるサイトがあるんですよ教えてもらった時はアプリ開発が出来るようになっていたから使う機会がなかったんです。ところが今年、サイト制作をゼロから初めて初心者に。分からないことが出てきたので試しに使ってみました。・すぐ回答が来る・回答率90.45%回答率90%以上ってスゴいですよね。イカ太郎このサービスがもっと前からあれば、僕のアプリ開発ももう少しスムーズだったのに...そう思いました。Codeというエディターを試していて、使いやすいようにカスタマイズしていました。拡張機能(プラグイン)を追加するとラクに書くことができるようになるのでドンドン追加していたのですが、とあるプラグインだけがうまく機能しないのです。1.ダウンロードして2.有効化やるべきことがシンプルすぎて、逆にうまくいかない理由がわからない。困り果てたあげくテラテイルに投稿。今までの経験上、プログラミングコミュニティに質問を投げて戻ってくるのは早くても半日。そんなテンポ感なので期待せずに待っていたら、なんと数時間後に2件も回答が来たのです。早い!答えはシンプルなものでした。ダウンロードして2.有効化これで使えるのですが、このプラグインは1.ダウンロード2.有効化3.再読込みもう1ステップ必要なタイプだったのです。おかげでバッチリ使えるようになりました。なんで無料で答えてくれるの?どうして無料で教えてくれるのか?これはプログラマーの文化と言えると思います。シリコンバレーで生まれたハッカー文化です。facebook黎明期、「Hack!」(ハックしろ!)というスローガンが壁に描いてあったそうです。それは「情報を不正に取得せよ!」っていう意味じゃなくて「不可能を可能にしろ!」みたいなイメージ。・不可能を可能にするため協力する・新しい技術で地球をよりよい世界にこういうことをクールとする考え方がハッカー文化なのです。プログラマーの世界には浸透していて、日本でもイケてるプログラマーはこの考えかたを持っています。大変な労力をかけて作ったソフトウェアを世界の人とのために無料公開したりする。超有名なところだとLinuxというOSがその例ですね。Windows、MacOS、Linuxという世界3大OSのうちのひとつが無料で使える背景には、そんなハッカー文化があるのです。プログラマーの世界に足を踏み込んだ時はこの文化にはビックリしました。iPhoneアプリ開発勉強会で出会ったスゴいキャリアのあるプログラマーさんが、自分の時間を削って見ず知らずの僕に一生懸命教えてくれるわけです。最初は「この人だけでしょ?」「例外でしょ?」って思ってたのに、そんな与える人たちが次々と出てくるわけです。人間観が変わるくらいの衝撃でした。イカ太郎これが心の豊かさというものか!テラテイルにも同じ側面があると思います。一般のエンジニアが無償で他人に質問に答えているのです。いえ完全に無報酬では多くの人間を動かすことはできません。彼らは何を得ているのか?それは2つ。・テラテイル上のステータス値や称号ゲームのように数字や称号を得ていく仕組みが彼らを突き動かしているのです。凄さの違いが分かりやすいですよね!ここに例に出したjollyjoesterさんはアプリ開発の書籍も出している強キャラ。勉強会でもドンドン有益情報を教えてくれるまさしくハッカーです。僕はこういう人たちを幸せプログラマーと呼んでいます。僕も実際Qiitaという別のサービスで何回か開発関連の情報を提供したことがあるのですが、ステータス値が上がっていくのはモチベーションになりましたね。コメントをもらえるのも嬉しかったです。して誰かが無償提供してくれる情報で後からはじめた人たちがスムースに育つようになっているのかプログラマーの世界なのです。すばらしいでしょ?良い回答をもらうための良い質問の立て方テラテイルの回答率は90.45%ですが、解決まで到達する確率はもっと低いはずです。1つの回答で確実に解決されるわけではないからです。解決につながらない回答もある。そのため、より多くの回答をもらえるようにする必要があります。「回答したい!」と思ってもらうための基本的なことを押さえるのです。1.何に困っているのかを分かりやすくタイトル名で伝える2.現状とゴールを伝える3.実際のコードを提示する4.画像を使ってイメージしやすくする5.頭を下げる他の人の質問なのですが、良い例があったのでこれを参考にして説明していこうと思います。1.何に困っているのかを分かりやすいタイトル名で伝える上のタイトルはまず、【swift】で自分が今どういうタイプのプログラミングをしているのかを端的に伝えています。MEMOswiftはiPhoneアプリ開発に使われるプログラミング言語その上で「自分はこうしたい。できなくて困っている」ということを表現しています。回答がつかない質問を見ているとタイトルの時点で失敗しているものが多いです。例をいくつか見てみましょう。質問したい内容が大雑把すぎて何に困っているのかが全然わかりません。例2:「python(flask)_db接続のセッションがきれたときのステータスコードについて」これはやりがちなミス。状況を細かく書いているのに「〇〇について」で終わらせているので結局何に困っているのか分からない回答がついてない質問をまとめて見れる場所があるので、そこを見るといい半面教師がたくさんいます。自分がそうなっていないかたまに確認してみるといいですよ。イカ太郎あーたしかにこれじゃ目につかないし、答える気にならないわ〜その感覚をつかめたら締めたもの。回答者は大量にある質問タイトルだけをザーッと見ながら答えたいものを探しています。目に留まることが大切です。簡潔に質問内容をイメージできるタイトルを考えましょう。2.現状とゴールを伝える119番で火事の連絡をしたことがありますか?緊急事態すぎて混乱しているのでなかなか状況をうまく伝えられなくなりがちですが、これを覚えておくと上手に伝えられます。・今自分がどこにいてどんな状況にあるのか?・どこに来てほしいのか?救急車でも警察でも人に助けをお願いするときにはやることは同じ。プログラミングで助けをお願いするときも同じなのです。自分が今どういう状況にあって何を目指しているのか?これを伝えるだけで相手は「自分が何をすれば助けられるか?」をハッキリ理解することができます。現状とゴールを分かりやすく伝えましょう。結局プログラマーとはコードで話すのが一番です。大事なのは、実際のコードを恥ずかしがらずに見せること。コード内に補足コメントをいれておけばなお良しです。上の例では「どんな風に不格好で、どんな風にかっこよくしたいのか」の説明がありません。うまく伝わればいいのですが、伝わらない場合、せっかく回答をもらったのに自分が思っていた答えではないことにもなりかねません。それはもったいないので、せっかく質問するなら丁寧に説明しましょう。5.頭を下げる回答者も人間なので心を持っています。できれば一生懸命プログラミングに取り組んでいる人に力を貸したいと思っています。・自分なりに調べる努力をした形跡が全然見えない(他人任せすぎる)・教えてもらう態度になってない(横柄)などの状態だと回答がもらえないことに繋がります。イカ太郎ちゃんとググったけどわからないのでお力を貸してください!そういう姿勢を見せることも回答をもらう上では地味に大切です。質問してみよう!というわけでプログラミング初心者の強い味方、テラテイルを紹介してきました。上手に質問して、ドンドンわからないことを解消し、スムーズに成長しちゃいましょう!コツをもう一度おさらいして終わりにしたいと思います。ショップカードデザイン。フランチャイズチェーンに入社。店長業務や店舗の運営コンサルタントとして4年働いたのちドロップアウト。人生をかけてやりたいことを探し始めるものの大迷走。10年ほどいろんな職を転々とする。35歳でプログラミングをスタート。6年間アプリ開発者として活動したのち、再びドロップアウト。人気YouTube動画https://www.youtube.com/watch?v=7A_PdrAP-o4&t=58s「裸足と瞑想の日々」はamazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。