2 flat logo on transparent 256
2018-12-01

【初心者・独学者向け】プログラミングに困ったらテラテイルで質問してみよう

Qa20181201

言語に関わらず、プログラミングの初心者や独学者が一番困るのはエラーが発生した時に質問できるインフラがないことです。

そんな中プログラマー向け質問サイトの対応しているマークダウンの種類はテラテイルへ「適切」に質問を投げると、初心者が行うチュートリアルや簡単なAPIなどの質問は殆ど回答がつきます。

この「適切に」が需要なのですが、後述します。

テラテイルを勧める理由

思考の整理にもなります

テラテイルは質問サイトなので、発生している現象を文字で投稿しなければなりません。

文字化する事によって、自分が何に困っていて、何のエラーで停止しているかなど思考の整理にもなります。

さらに現象を言語化して、文字で説明できるようになると プログラミングをある程度、自走して勉強できるようになります。

また、質問する前に同じような質問がないかサイト内で検索してみると似たような質問を見つける事も可能です。

この検索するスキルもプログラミングを行う上で非常に重要になります。

しかし、適切に質問をしなければ回答は得られません

適切に質問する上での注意点

自分の環境・やりたい事・コード・エラーの内容を記載する

以下に簡単に利用できる質問テンプレートを記載しました。

●自身の環境●
Railsのバージョン
Rubyのバージョン
利用環境(Windows Mac Linux)
※クラウド9を利用している場合はその旨を記載

■やりたい事■
ツイッターを利用してauth認証をしたい 

★コード★

▲進まない所▲                 
403エラーが出て画面遷移しない

★エラーの内容★

自身の環境がMacかWindowsかによっても解決方法が変わる場合もありますので、環境は必ず記載した方がよいです。

また、エラーの内容とコードも記載したほうがいいですが記載方法は必ずマークダウン形式(シンタックスハイライト)で記載する必要があります。

コードやエラーの内容は必ずマークダウン形式(シンタックスハイライト)で記載する。

例えば以下のコードの場合マークダウン形式(シンタックスハイライト)で記載するとコードが分かりやすく表示されています。

  def index
    @categories= Category.includes(:parents, :children).order(id: :desc)
  end

  def new
    @category = Category.new
  end

しかし、以下のように同じコードをマークダウン形式(シンタックスハイライト)で記載しなかった場合は、インデントも正しく表示されませんし、どういうコードかも読みづらいです。  def index @categories= Category.includes(:parents, :children).order(id: :desc) end

def new @category = Category.new end

その為必ず、マークダウン形式で質問を記載する事を心がけましょう なお、対応しているマークダウンの種類は こちらを御覧ください

エラーの内容を記載する

エラーが発生している場合は、画面とコンソール上に必ず表示されます。

画面にエラーメッセージが表示されているのであれば、その内容をキャプチャして投稿すればよいですし、コンソール上でエラーメッセージが表示されているのであれば、その内容をマークダウン形式で投稿してください。

以下はRails5でツイッター認証を行った際に発生する403エラーのコンソール上のログです。

INFO -- omniauth: (twitter) Request phase initiated.

OAuth::Unauthorized (403 Forbidden):

oauth (0.5.4) lib/oauth/consumer.rb:236:in token_request'
oauth (0.5.4) lib/oauth/consumer.rb:155:in get_request_token'
omniauth-oauth (1.1.0) lib/omniauth/strategies/oauth.rb:28:in request_phase'
omniauth-twitter (1.4.0) lib/omniauth/strategies/twitter.rb:61:in request_phase'
omniauth (1.8.1) lib/omniauth/strategy.rb:224:in request_call'
omniauth (1.8.1) lib/omniauth/strategy.rb:187:in call!'
omniauth (1.8.1) lib/omniauth/strategy.rb:168:in call'
omniauth (1.8.1) lib/omniauth/strategy.rb:190:in call!'

コンソール上で表示されるログは大量にあるので、可能ならエラーが発生したであろう処理の前後のみ投稿したいところですが、 判断できない際はマルっとコピーして投稿することをおすすめします。

以上になります。 適切に質問するスキルを得れれば、プログラミング学習を自走する上でかなり進みが早くなるので、是非試していただきたいです。

その他関連記事

初心者・独学者向け|Rubyで文字列を表示する方法を解説

Ruby技術者認定試験 (Silver version 2.1)対策 | !が付かない破壊的メソッド

Ruby On Railsでredcarpetを利用し、シンタックスハイライトに対応したブログ機能を実装する

前の記事
次の記事