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

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

ただいまの
回答率

87.49%

【意見超大募集】プログラミング勉強するにあたって学習した方がいい項目、しなくても良い余計な項目の整理

解決済

回答 7

投稿

  • 評価
  • クリップ 6
  • VIEW 2,183

score 128

現在rubyとpythonを勉強しています。

勉強してきた中で気づいたことと同時に疑問が出てきましたので質問させていただきます。

まず、プログラミングとは問題を解決する為であって、必死に数式や関数名とかを覚えても仕方がない。というところまではわかりました。

では、結局どれぐらいまで理解できればいいのか?という問題に関してなんですが、これは何を作るかによっても変わってくると思います。

少なくとも私は頻繁に出てくるものは覚えて、出来るだけストレスフリーでプログラミングをしていきたいです。

そこでなんですが、これから更に学習を進めて行くにあたって、覚えておいた方がいいメソッド、数式、思考法の範囲はどれぐらいになるでしょうか?

前提ステータスとして、私は現在、rubyの基本的な文法(変数、for while each if~elsif~else def( ) times class self 継承など。先頭であればあるほどよく覚えているもの)を覚えているところです。pythonもほぼ同じ程度と考えてもらっても良いです。(rubyのほうがsulit等の関数も覚えていますが・・・)

なお、rubyの勉強をし始めてから現在2週間ぐらいですが、その前に一カ月ぐらいjavascript jqueryの勉強をしていました。

また、簡単なfizzbuzzや簡単な計算、条件分岐、配列繰り返し、jqueryでよく使うあれこれは演習で組んだので、頭の中でコードをある程度組めますが、たとえば4を100%として、最初に20%差し引いたものをA,そのAを今度は100%として30%引いた答えXを求めるコードは組むことができません(paiza dランクは組めてもcランクはなかなか答えられない状態です)

pythonを使いだ押すにはもちろんSランクまで習得必須だと思いますが、webアプリケーション実装、という点で考えると、そこまで難しい(式)は作れなくてもよいとしても、最低でもpaizaでいうどの問題までできるようになるとよろしいでしょうか?(やっていなければたとえばこの問題を解けるぐらいまで。とかでも構いません)

以上、よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

+9

言語に関係なく、デバッグ技術は学習すべき重要な項目です。

プログラムはある程度経験を積めば、誰でも書けるようになります。
しかし、いつも思った通りに動くわけではありません。
思った通りに動かなくなったとき、それを解決する技術が「デバッグ」です。

ここでのデバッグとは

  • 現象を確実に再現し、その内容(状態)を確認できるようにする。
  • 確認できた内容から、原因を探し特定する。
  • 原因から解決(修正)方法を導き出す。

ことを指します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/19 17:49

    解答ありがとうございます!

    デバッグ技術はとても大切な項目なんですね…

    コードを組んでいく中で、なぜそのエラーが起こっているのか?それを解決するにはどうしたらいいのか?
    思った通りに動かない場合、全体を見渡して、ちゃんとプログラムを組めているのか?

    こういったところにしっかり重点を置く必要があるんですね。

    そして、try&エラーを起こしていく中で、一つ一つデバッグを取ることを積み重ねていくことで、応用範囲を増やしていく…なるほど。しっかり覚えなければできないもんだと思っていましたが、やはりプロフィールから説得力がありますね。

    地道にデバッグを積み重ねて様々なものをモノにしていきたいと思いました!

    キャンセル

  • 2017/05/19 17:58

    デバッグ技術を身につけると、エラーを修正することができるようになるだけではなく
    データやプログラムの流れを頭の中でイメージし操作することができるようになります。
    これができるとプログラマとしての能力は確実にレベルアップします。
    がんばってください。

    キャンセル

checkベストアンサー

+3

仕事でPythonでウェブアプリを複数作って運用中の者です。

Paizaは広告しか見たことがないのでわかりません・・・すみません。

この問題が解けるか、ということであれば1個簡単なアプリを作れるか?というのが具体的な課題としては良いと思います。

おすすめは一度簡単なアプリを一から手作りしてみると一気に実力があがりますよ^^
即戦力がある証明にもなりますし^^

アプリはほとんどはフレームワークというコードがすでにできているものの塊を使います。例えばパスワード認証などの毎回使う機能は他の誰かが作ったものを再利用できるというわけです。

フレームワークを利用して、ブログや、やること一覧表などを練習台に作る方が多いと思います。(私もそうでした。)
pythonならDjangoというフレームワークが世界的に人気です(インスタグラムで使われていることでも有名 私の会社もDjangoでの開発案件が多いです)

(私Rubyは使ったこと無いのですがRubyであればRuby on Rails が一番人気だと思います)

一つアプリを作っている間に、クラス等の基礎から様々な技術的におさえるべきことが身につきやすいと思います^^

基礎的なことで、いつまでも役立つなあとよく感じるのは、文字列操作です。pythonだとsplit(".")とかはしょっちゅう使いますので重点的に勉強しておいて損はありません、・・・多分^^

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

何を目指しているかわかりませんが、
プログラマなら、必要に関数とか覚える必要はないと思います。
(やってて覚えている関数はたくさんありますが、意図的に覚える必要はない)

そのライブラリやフレームワークや言語で、どんなことができて、どんなことができないか。
それを利用する方法(ググるキーワードでもいいと思っている)くらい覚えておけば、
プログラミングをする上で大体のことは解決します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/19 17:40

    解答ありがとうございます!

    基礎を身に付けたら、あとは作ってみるに限るんですね…
    頑張ります!

    キャンセル

+1

英語が出来ないのであれば英語です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/19 17:38

    解答ありがとうございます。単純明快ですねっ!
    ホンット苦手です。超苦手です^^;

    以外にも英語が優先順位高かったり…
    うまく両立して勉強進めて行きます^^;

    キャンセル

0

覚えておいた方が良いメソッドは、一度使ったもの全てです。
引数までコード補完の使えるエディタが使えるなら、完璧でなくても構いません。
メソッド名にどんな単語が含まれていて、何を引数に何を求めるのかということは覚えてください。

paiza ランクは実用的でないので、あまりあてにはなりません。
知識や実力を測るものというより、プログラマとしての適性を測るもののような気がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/19 17:36

    解答ありがとうございます!

    そうなんですね・・・
    どちらかというと、適性を図るもの、と見たほうがよさそうですね…

    メソッドや引数、簡単な概要だけでも覚えておけばいいのですね!
    良く使いそうなものから広く浅く覚えて行きたいと思います<m(__)m>

    キャンセル

0

paizaは問題文が難しいので私はあまりやっていません。
(私の読解力が著しく低い。)

趣味でプログラミングやっておられるならご自身が
納得されるところまでで良いと私は思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/19 17:37

    解答ありがとうございます!

    実は、勉強して間もなくですが、もうすぐ転職する予定でして…(独学オンリーです)
    優先順位を立てて勉強していきたかったので^^;

    キャンセル

  • 2017/05/19 18:49

    おぉ。幸運を祈ります。

    キャンセル

0

... 思考法の範囲 ...

各種の疑問が浮かんだり、問題が発生したときに、仮説を立てて、それを確認し、解決していくという思考・行動様式が必須です。

そのための方法のひとつに, web 上で同様の問題をすでに解決している人がいないかを検索するというものがあります。
そして、その検索範囲は日本語だけに限定していたのでは、解決できる可能性が低いです。

英語の stackoverflow にある QA のやりとりを読めるだけの英語の読解力が必須スキルとなります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • Rubyに関する質問
  • 【意見超大募集】プログラミング勉強するにあたって学習した方がいい項目、しなくても良い余計な項目の整理