プログラミング初心者はteratailで質問すればもっとラクに学べる

 

イカ太郎

こんにちは、アプリ開発者歴7年のイカ太郎です

僕は35才の時、職業訓練でプログラミングを学び始め、その後

  1. iOSアプリの個人開発者になり、
  2. その後友達と2人でゲームアプリを作り、
  3. 成功したので法人化し、
  4. 最後に全てをかけた大勝負をして敗北し、
  5. フリーランスのiOSエンジニアになる

というプログラマーとしての遍歴を歩んできたのですが、会社に属したことがなかったのでずっと独学でした。

 

だから特に最初の3年は大変でした。

分からないことを誰にも聞けない。

聞ける人が周りにいないのです。

 

仕方がないのでググりまくる。

でも必ずしも自分のぶち当たっている問題を解決してくれる記事に出くわすとは限りません。

英語や中国語のサイトはたくさんあるけど、日本語のサイトは皆無だったりする。

仕方がないので英語のサイトを一生懸命読む。試す。うまくいかない…

 

世界最大のプログラマー向け質問サイトで英語で質問してみたこともあります。

でも文章書くだけで死ぬほど時間かかる。ヘロヘロ。しかも返事来ない…

 

そんな闇の中を歩いていたんですが、数年前に素晴らしい日本語のプログラミング質問サイトができたんです。

それがteratail(テラテイル)

アプリ開発勉強会で知り合った80代のiPhoneアプリ開発者のおじいちゃんに教えてもらいました。

世界最年長アプリ開発者

イカさん、teratailっていうなんでも丁寧に質問に答えてくれるサイトがあるんですよ

 

教えてもらった時はアプリ開発が出来るようになっていたから使う機会がなかったんです。

ところが今年、サイト制作をゼロから初めて初心者に。

分からないことが出てきたので試しに使ってみました。

そしたらメチャクチャよかった!

・無料

 

・すぐ回答が来る

 

・回答率90.45%

 

回答率90%以上ってスゴいですよね。

イカ太郎

このサービスがもっと前からあれば、僕のアプリ開発ももう少しスムーズだったのに…

そう思いました。

 

今日はそんな素敵なプログラマー向け質問サービスteratailをご紹介します!

使ってみた時のこと

まずは実際に僕が使った時の質問をお見せしますね↓

 

この時はVisual Studio Codeというエディターを試していて、使いやすいようにカスタマイズしていました。

拡張機能(プラグイン)を追加するとラクに書くことができるようになるのでドンドン追加していたのですが、とあるプラグインだけがうまく機能しないのです。

 

1.ダウンロードして

2.有効化

やるべきことがシンプルすぎて、逆にうまくいかない理由がわからない。

 

困り果てたあげくテラテイルに投稿。

今までの経験上、プログラミングコミュニティに質問を投げて戻ってくるのは早くても半日。

そんなテンポ感なので期待せずに待っていたら、なんと数時間後に2件も回答が来たのです。

イカ太郎

早い!

 

答えはシンプルなものでした。

ほとんどのプラグインは

1. ダウンロードして

2.有効化

これで使えるのですが、

このプラグインは

1.ダウンロード

2.有効化

3.再読込み

もう1ステップ必要なタイプだったのです。

 

おかげでバッチリ使えるようになりました。

メチャクチャ嬉しかったですね。

なんで無料で答えてくれるの?

どうして無料で教えてくれるのか?

これはプログラマーの文化と言えると思います。

シリコンバレーで生まれたハッカー文化です。

 

ハッカーって言うと「セキュリティを突破して情報を不正利用する人」みたいな悪いイメージがある人もいますよね?

でもそれは完全な偏見 or 勘違い

 

facebook黎明期、「Hack!」(ハックしろ!)というスローガンが壁に描いてあったそうです。

それは「情報を不正に取得せよ!」っていう意味じゃなくて「不可能を可能にしろ!」みたいなイメージ。

・不可能を可能にするため協力する

 

・新しい技術で地球をよりよい世界に

 

こういうことをクールとする考え方がハッカー文化なのです。

プログラマーの世界には浸透していて、日本でもイケてるプログラマーはこの考えかたを持っています。

だから大変な労力をかけて作ったソフトウェアを世界の人とのために無料公開したりする。

超有名なところだとLinuxというOSがその例ですね。

Windows、MacOS、Linuxという世界3大OSのうちのひとつが無料で使える背景には、そんなハッカー文化があるのです。

 

プログラマーの世界に足を踏み込んだ時はこの文化にはビックリしました。

iPhoneアプリ開発勉強会で出会ったスゴいキャリアのあるプログラマーさんが、自分の時間を削って見ず知らずの僕に一生懸命教えてくれるわけです。

最初は「この人だけでしょ?」「例外でしょ?」って思ってたのに、そんな与える人たちが次々と出てくるわけです。

人間観が変わるくらいの衝撃でした。

イカ太郎

これが心の豊かさというものか!

 

テラテイルにも同じ側面があると思います。

一般のエンジニアが無償で他人に質問に答えているのです。

 

とはいえ完全に無報酬では多くの人間を動かすことはできません。

じゃあ彼らは何を得ているのか?

それは2つ。

・質問者からの感謝の言葉

 

・テラテイル上のステータス値や称号

 

ゲームのように数字や称号を得ていく仕組みが彼らを突き動かしているのです。

喜ばれたい!

 

ステータス値を上げたい!

 

称号を得たい!

 

見てください、iPhoneアプリ開発の有名人と僕との圧倒的なステータス値の違いを!

ステータスの高い人↓

 

ステータスの低い人↓

凄さの違いが分かりやすいですよね!

 

ここに例に出したjollyjoesterさんはアプリ開発の書籍も出している強キャラ。

勉強会でもドンドン有益情報を教えてくれるまさしくハッカーです。

僕はこういう人たちを幸せプログラマーと呼んでいます。

 

僕も実際Qiitaという別のサービスで何回か開発関連の情報を提供したことがあるのですが、ステータス値が上がっていくのはモチベーションになりましたね。

 

コメントをもらえるのも嬉しかったです。

 

こうして誰かが無償提供してくれる情報で後からはじめた人たちがスムースに育つようになっているのかプログラマーの世界なのです。

すばらしいでしょ?



良い回答をもらうための良い質問の立て方

テラテイルの回答率は90.45%ですが、解決まで到達する確率はもっと低いはずです。

1つの回答で確実に解決されるわけではないからです。

解決につながらない回答もある。

 

そのため、より多くの回答をもらえるようにする必要があります。

「回答したい!」と思ってもらうための基本的なことを押さえるのです。

1.何に困っているのかを分かりやすくタイトル名で伝える

 

2.現状とゴールを伝える

 

3.実際のコードを提示する

 

4.画像を使ってイメージしやすくする

 

5.頭を下げる

他の人の質問なのですが、良い例があったのでこれを参考にして説明していこうと思います。

1.何に困っているのかを分かりやすいタイトル名で伝える

上のタイトルはまず、【swift】で自分が今どういうタイプのプログラミングをしているのかを端的に伝えています。

MEMO
swiftはiPhoneアプリ開発に使われるプログラミング言語

 

その上で「自分はこうしたい。だけどできなくて困っている」ということを表現しています。

 

回答がつかない質問を見ているとタイトルの時点で失敗しているものが多いです。

例をいくつか見てみましょう。

例1: 「react pm2の使い方が分からない」

質問したい内容が大雑把すぎて何に困っているのかが全然わかりません。

 

例2:「python(flask)_db接続のセッションがきれたときのステータスコードについて」

これはやりがちなミス。せっかく状況を細かく書いているのに「〇〇について」で終わらせているので結局何に困っているのか分からない

 

回答がついてない質問をまとめて見れる場所があるので、そこを見るといい半面教師がたくさんいます。

自分がそうなっていないかたまに確認してみるといいですよ。

イカ太郎

あーたしかにこれじゃ目につかないし、答える気にならないわ〜

その感覚をつかめたら締めたもの。

 

回答者は大量にある質問タイトルだけをザーッと見ながら答えたいものを探しています。

なので、まずは目に留まることが大切です。

簡潔に質問内容をイメージできるタイトルを考えましょう。

2.現状とゴールを伝える

119番で火事の連絡をしたことがありますか?

緊急事態すぎて混乱しているのでなかなか状況をうまく伝えられなくなりがちですが、これを覚えておくと上手に伝えられます。

・今自分がどこにいてどんな状況にあるのか?

 

・どこに来てほしいのか?

救急車でも警察でも人に助けをお願いするときにはやることは同じ。

 

プログラミングで助けをお願いするときも同じなのです。

自分が今どういう状況にあって何を目指しているのか?

これを伝えるだけで相手は「自分が何をすれば助けられるか?」をハッキリ理解することができます。

 

現状とゴールを分かりやすく伝えましょう。

3.実際のコードを提示

結局プログラマーとはコードで話すのが一番です。

大事なのは、実際のコードを恥ずかしがらずに見せること。

 

コード内に補足コメントをいれておけばなお良しです。

4.画像を使ってイメージしやすくする

例に出させてもらった質問で唯一改善させるとしたらこの部分ですね↓

上の例では「どんな風に不格好で、どんな風にかっこよくしたいのか」の説明がありません。

うまく伝わればいいのですが、伝わらない場合、せっかく回答をもらったのに自分が思っていた答えではないことにもなりかねません。

それはもったいないので、せっかく質問するなら丁寧に説明しましょう。

5.頭を下げる

回答者も人間なので心を持っています。

できれば一生懸命プログラミングに取り組んでいる人に力を貸したいと思っています。

 

なので、

・自分なりに調べる努力をした形跡が全然見えない(他人任せすぎる)

 

・教えてもらう態度になってない(横柄)

などの状態だと回答がもらえないことに繋がります。

なので、

イカ太郎

ちゃんとググったけどわからないのでお力を貸してください!

そういう姿勢を見せることも回答をもらう上では地味に大切です。



まずは質問してみよう!

というわけでプログラミング初心者の強い味方、テラテイルを紹介してきました。

上手に質問して、ドンドンわからないことを解消し、スムーズに成長しちゃいましょう!

 

コツをもう一度おさらいして終わりにしたいと思います。

1.何に困っているのかを分かりやすくタイトル名で伝える

 

2.現状とゴールを伝える

 

3.実際のコードを提示する

 

4.画像を使ってイメージしやすくする

 

5.頭を下げる

幸せなプログラマーライフを!!