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

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

ただいまの
回答率

90.76%

  • Android

    6252questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    3491questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

プログラミングの勉強のしかた

解決済

回答 4

投稿

  • 評価
  • クリップ 2
  • VIEW 290

olee46

score 22

Androidアプリ初心者です

テキストを1冊購入

テストアプリをいくつか作成

アプリを1つリリース

(半年くらいのブランク)

2つ目のアプリを作成中

という段階です
1つ目のアプリを作っているときに、当たり前ですが、テキストに書いてない知識が必要になりました
その都度、ネットで検索→記事を読む→自分のアプリで実装とやっていたのですが、勉強の仕方がこれでいいのか不安になってきました

1つのテキストで必要なことが全て網羅されていないのは当然ですが、毎回検索するのもなんだか効率が悪いような気がしています
何かおすすめの勉強法/Androidプログラミングの本などあれば、教えてください

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 4

checkベストアンサー

+3

前提
プログラミングをする上で調査をすることは避けられません。
言語や言語の動作環境について完全に暗記することは不可能ですし、そもそも公式ドキュメントにミスがあったり、言語そのものにバグがあることもあります。

かつ、学習の仕方は人によって異なるので自分にあった学習方法を見つけるしかないと思います。

という前提に立つと
「如何に効率よく調査出来るようになるか、調査する能力を鍛えるか」という点を考えて学習方法を模索してみると言うのが一つの方法になるかなと思います。

私の場合
私の場合、以下の様な事が役立ったように思います。
思いついたままに書いたのでレイヤーもばらばらですが、何かの役に立てば幸いです。

  • まずは数をこなす
    同じフレームワークでも言語でもいいので、いくつもアプリケーションを開発すると、だんだんと手癖で開発が出来るようになってきます。ちょっと分かった気分になり、自分に自信が持てたり、思いついたものをパッと作れるようになるので作る事自体が楽しくなってきます。(作る事自体が楽しく無い場合は、義務感であったり使命感、対価に見合った労働としてプログラミングをすることになり、その場合の対応方法はどちらかというとビジネス書で方法論を探したほうが早そうです。)

  • コーディング以外の部分の知識も得てみる
    コーディングについての知識や経験が足し算として働くとすると、デザインパターンや設計手法、開発手法、ドキュメント作成方法、情報処理全般の知識などの直接コーディングに関わらない部分は掛け算として機能すると思っています。
    最初は理解できなくていいので、とにかく詰め込んでおくと、実際に開発している時にふと理解したり腑に落ちたりして、視野が一気に広がることがあります。
    視野が広がると、検索したいことが全体のどのあたりに存在しているものなのかが把握しやすくなり、検索の手探り感が減ってきて、未知の分野でも調査/検索をしやすくなったりします。
    例えば、IPAの情報処理技術者検定なんかは教科書も豊富にあって浅く広く、体系的に知識を得るのに役立ちます。

  • コピペで終わらせない
    少なくとも、自分でコードを書いた部分(たとえその元のコードが検索してたどり着いたものでも)については、「わからない部分がわかっている」状態までは理解してから組み込む。もちろん、わからない部分が存在しないことがベストですが、自分で責任を取れる範囲であれば理解を後回しにするのもありだと思います。

  • 外部仕様をきっちりと決めてから作リ始めてみる
    それなりに経験を積んでいるプログラマ(30代とか)でも、結構な割合で外部仕様を考えてから作り始めるということが出来ない/しない人が居ます。 そういう人は多くのケースで調べるのが下手だったり、調査に時間がかかったりする傾向があるように感じます(逆に、コーディング自体は早くて正確だったりします)
    最初にアプリケーション全体の仕様を考えるのが難しければ、ある一連の処理だけ、それも難しればクラスだけ、メソッドだけ、メソッドの中のある処理だけ でも、先に外部仕様をきっちり決めてからコーディングをするようにすると、「実現したいこと」を整理する能力が獲得できると思っています。
    「実現したいこと」が整理できていれば、実現したいことを構成する要素や要件を整理できてくるので、調査が効率的に行えるようになりますし、そのものずばりなコードが検索で見つからなくても何とかなるようになってきます。

  • 他人に開発させる、チームで開発する
    一人で開発をしていると、手を動かしていればいつかは完成する(してしまう)ので、なかなか問題点などに気付けないです。複数人でコミュニケーションをとりながら分担して開発する、お互いに指示やレビューをしあうという経験が出来るととても勉強になります。
    他人が必要になる事なのでなかなか難しいのですが、他の方法では得られない成長の仕方が出来ます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+3

プログラミングというのは様々な知識の積み重ねの上に成り立ちます。それは積み木のように例えられることもあります。AndroidのようなSDKを用いるプログラミングは、その積み木の中でも一番上の層に該当します。Androidプログラミングの書籍というのは、当然ながら自分の層についてのみの解説が中心になります。直接触れる下の層については多少の解説がつくこともあるでしょうが、書籍の分量の問題もありますから、その下層を完全に理解できるほどの内容にはならないでしょう。

良いプログラムを作りたいと思ったら、なるべくは下から積み重ねていくのが理想だとは思います。ただ、なかなかそうはいかないでしょうから、その他層の理解の面で壁にあたったのなら、その層を専門に解説した書籍を求めるくらいの気持ちは必要ではないでしょうか。

まー、AndroidプログラミングをするのにはJava言語の基礎の理解は一通り必要ですよと助言しても、それを拒否る人もいるからねえ・・・。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

一番効率がいいのはプログラミングを教えてくれる学校に通う事でしょうね。
その場で教えてくれる人がいればとても効率がいいです。

そういうことができなければ、ネットで検索したり、本で勉強するしか
ないでしょう。

ドットインストールなど、動画で説明してくれるものは
理解しやすいですよ。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

検索しなくてもどんなアプリでも作れるようになる方法はありません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

関連した質問

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

  • Android

    6252questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    3491questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。