質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

Q&A

解決済

2回答

1539閲覧

最長どのくらいエラーと格闘していたことがありますか?

atage517

総合スコア36

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

0グッド

2クリップ

投稿2020/07/02 09:51

編集2020/07/02 09:51

プログラマーの仕事は7割がエラーと戦うことだと聞いたことがあります。
僕はまだプログラミングの勉強を始めたばかりで先日から環境構築などでエラーを連発し、teratailで聞いてみたり、ググっても全くわからず、コード通りにコマンドを実行しても全くエラーが解決しなくて憂鬱な気持ちになったことが何回もあります。

Teratailにいる方の中には凄腕プログラマーのような方がたくさんいると思いますが、エラーが全然解決しないときはどう対処していますか?
タイトルにもある通り最長どのくらいエラーと戦っていたのか、またそういった状況での対処法をぜひお伺いしたいです。

(例、コードを見直す、初歩的なミスが多いなど。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/07/02 10:17

「アンケート」は非推奨です。 具体的に自身が直面している問題について質問してください。 それに、時間なんて何の指標にもならないし、知ってどうしたいのかわからない。 問題によって切り口も違う。 結局この質問で何を得たいのかわかりません
guest

回答2

0

エラーと格闘する最長時間について

独りでエラーと格闘する時間に関しては
僕の場合は 1 日を上限にするようにしています

チーム開発ではスクラム開発という開発の進め方の指針があります
この指針の中に、「朝会を毎日開催する」という方法があり、
これを行うことで、
チームのメンバーが独りで解決しない課題をかかえたままになってしまう状態を防ぎます

朝会では次のことを話します:

  • 昨日やったこと
  • 今日やること
  • 今かかえている問題、または問題に思っていること

「ほう・れん・そう」を15分の朝会に置き換える (1/2):開発チームを改善するためのスクラムTips(1) - @IT

エラーが全然解決しないときの対処法について

  • エラーメッセージを読む
  • 検索する
  • 切り分けする
  • 検証する

上記の解説は長くなるので、省略しますが、

憂鬱な気持ちになったことが何回もあります

この点について、
休憩を取る」という方法は有効とされています

XP開発という開発の進め方の指針では、
最適なペースの仕事: プログラミングは週 40 時間までという指針があり、
集中力モチベーションのためにも
やりすぎは良くないとされているようです

僕も、休憩中に解決法を思いつくなどの経験は何度もあり、
多くの知人のプログラマーが同様の体験を語ります

参考:
エクストリーム・プログラミング - Wikipedia
第1回 XPな開発者の1日 (1/2) - ITmedia エンタープライズ

投稿2020/07/02 10:22

y_shinoda

総合スコア3272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atage517

2020/07/02 10:35

アドバイスありがとうございます!
guest

0

ベストアンサー

私もエラーには幾度となく泣かされてきました。
しかし、プログラマができる手段は「どうしてエラーになるのか確かめる」事だけです。

  • エラー文を翻訳機を使ってでも読む
  • エラー文でぐぐってみる
  • 何行目でエラーになったのかを確認する
  • 関数・メソッドに同じ値を投げ込んで動作を確認する
  • デバッグプリントを仕込んでみる

それを続けていると嫌になってくるのが人間というもので、
私もエラーを出さない・最小限の労力で見つけられるよう工夫するようになりました。


1つ目の工夫が良いコードを書くことです。

  • リーダブルコードを読んだ
  • コード量の少ないコードを書くようになった
  • カッコのネストを嫌うようになった

読みやすく記述量の少ないコードの書き方を学び、創意工夫することで、
大幅に不具合を起こす事が少なくなりました。

分かりづらい文章は書いている本人ですらわかりませんが、
わかりやすい簡潔な文章は、間違いが記述してあると浮かび上がってくるようになります。


2つ目の工夫は高速な確認作業です。

  • タイピング速度を上げ、知らない関数・メソッドをREPLで検証するようになった
  • 知らない関数・メソッドは公式のリファレンスを読んで確かめるようになった

これは癖の問題です。
自分のタイピング速度が遅いと確認を避けるようになります。

自分はたまたま入った職場のプロジェクトがCoffeeScriptという言語を採用しており、
コードを眺めているだけでは中々解決出来ないから確認を強いられました。
その結果、自力でコードとエラー文から問題を抽出する事が得意になりました。

また、JavaScriptもPHPもそうなんですか、
リファレンスのサイトを都度眺める事で、
自分の知識がアップデートされていき、短時間でより多くの情報を抜き出せるようになります。


3つ目の工夫は道具の手入れです。

  • インデントの不揃い対策にEditorConfigを導入した
  • typo対策にlinterを導入するようになった
  • 処理を小さな単位で関数・メソッドに閉じ込めるようになった
  • ファイルを変更してすぐ挙動を確認できるよう、ビルドツールやテストツールを整備した

自分が困る事なんて全世界のプログラマが困っているわけで、
ちょっと調べれば腐るほど答えが転がっています。

多数の記事を読み、前人の知恵を引き出すようになって、
飛躍的に生産性が上がりました。

タイピングが遅い人なんかはIDEやプラグインを組み合わせ
少ないタイプ数で多くのコードを生み出したり、
少ない操作で瞬時にエラー箇所を分析して見つけ出すスキルに優れています。


現在TeratailでJavaScript等の質問が来る事がありますが、
コードはたいていこの解答欄のTextareaタグ内で作っています。

デベロッパーツールのconsoleで動作を軽く検証して載せています。
何をやるのかは明白で、たいてい1-2度動かせば想定通りに動作します。

なので、長くプログラマーとして生きていけば
そのうち慣れてきて一撃で動作するコードは書けるようになります。
まずはじっくり何が発生しているのか自分の目で確かめる、
エラーの文章を深読みや早合点せずに正しく理解する。

そして昨日より今日、今日より明日が少しだけ便利になるようにツールを探してみましょう。
それをコツコツ積み重ねて行く事が重要です。

投稿2020/07/02 10:31

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atage517

2020/07/02 10:35

アドバイスありがとうございます!
miyabi-sun

2020/07/02 11:10 編集

回答見返すと自慢みたいになってしまいましたが、 やることが高度であれば高度であるほど悩みますし、 今でも普通に3日経っても進まないこととかありますよ。 趣味でC言語で配布されているライブラリをJavaScriptに移植した事があります。 そういうC言語をコンパイルしてJavaScriptにして使うツールってのは存在するから使うだけなんですが、 ツールの使い方はどこにも載ってないし、謎のエラーだらけで遅々として進まなくてまじで地獄でしたね。 結局2ヶ月くらい掛けて一定の完成はしました、詳しい人なら半分以下の期間でサラッと作ってるはずです。 こんな風にやることが高度・ニッチになればなるほどより大変になるので、 上級者になっても結局新しいものに挑戦するのは大変ですね。
atage517

2020/07/03 01:30

すごいですね。僕にはまだ想像できない世界です。正直ミヤビさんがいっていることの半分も理解できていない状態なのでこれからも学習に励みたいと思います笑
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問