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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

プログラミング言語

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

7回答

1605閲覧

プログラミング独学について(特にandroid)

TakamasaAwai

総合スコア73

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

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

プログラミング言語

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2015/07/29 15:29

私はプログラミング初心者で、しょっちゅうコピペばかりしています。なので、一度実装したことがある機能も覚えられていません。
しかし、このままコピペばかりしていてはいつまでも初心者から抜け出せないと思います。ほとんど何も見ずにコードを書けるようになるにはどう
すればよいのでしょうか?また、実際、出来る方はどのように勉強されたのか経験談なども嬉しいです。

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

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

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

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

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

guest

回答7

0

私は、よく自分の実装を参考にコーディングします。
覚えなきゃいけないことが多すぎるため、忘れるものも多いです。(笑)

ただ、何度も同じ処理を組むことによって、コードが洗練されていく部分も多いです。
コピべでなく、写経(見ながらタイプすること)をおすすめします。

投稿2015/07/29 16:14

iwamoto_takaaki

総合スコア2883

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

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

0

同じくAndroidについてです。

私は個人的によく使う機能(HTTP、SQLiteなど)ならネット等を見なくても実装できますが、個人的にあまり使わない機能(Wi-Fi、Bluetoothなど)は覚えてないのでネットで調べています。
ネットという便利なツールがあるので、普段利用しない機能を無理して覚えるくらいなら、普段利用する機能を深く知り、覚える方がいいと開き直っています。

覚えているといっても、IDEの補完とJavadoc頼りのときも間々あります。
とある機能を実装したいときに、その機能を実装するために必要なクラスさえ分かっていれば、補完候補とJavadoc頼りに探したりします。

Androidに限った話ではありませんが、膨大な数のAPIを全て覚えるのは無謀です。
「ほとんど何も見ずにコードを書くには?」という質問の答えとしてはアレですが、開き直るのも一つの手では?

余談ですが(いや、これが本題ですね)、私がコードを覚えるときは、コピペ後にコード1行1行をネットで「この行はどんな処理をしているのか」を調べています。そうすれば、頭の片隅くらいには残ります。
Google公式のAndroidディベロッパーサイトも割としっかりしてますし、調べればある程度のことは分かります。
日本語指定しても肝心のクラスやメソッドのリファレンスが英語のままなのはご愛嬌…

投稿2015/07/29 16:05

shiolier

総合スコア1156

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

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

TakamasaAwai

2015/07/30 00:30

developerサイトは英語でも読んだ方がいいのですね。ありがとうございます。
guest

0

ベストアンサー

こんばんわ

しかし、このままコピペばかりしていてはいつまでも初心者から抜け出せないと思います。ほとんど何も見ずにコードを書けるようになるにはどうすればよいのでしょうか?また、実際、出来る方はどのように勉強されたのか経験談なども嬉しいです。

昔、昔、あるところにCobolプログラマーがいらっしゃいました。なんて時代だといたらしいです。ほとんど何も見ずにコードを書く人たちが。機能が少なく、徹底したレビューと予算と時間があったからこそできたものかと思います。(今ほどコンピュータが一般的でもなかったでしょうしね)

今はというとWebページだって、サイト内検索だったり、多様なブラウザの対応が求められたり、多機能を求められるのでおそらく今それが出来る人は本当の天才と呼ばれるような人たちだけだと思います。

現在求められる大事な事はそういうことではなく、コードの意味を理解して作りこむとか、調べながらでも良いからエラーの原因を突き止めたり、ちゃんと整理しながらコードを書いたり、といった能力じゃないでしょうか?

投稿2015/07/29 16:40

tenraku

総合スコア148

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

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

TakamasaAwai

2015/07/30 13:58

コードの暗記をする前に、switchやfor文で整理しようと思います
guest

0

ほとんど何も見ずにコードを書けるようになるにはどうすればよいのでしょうか?

ほとんど何も見ずにというのはよほどのスペシャリストか、記憶力が並はずれているとかでないと難しいように思います。私なんかは3ヶ月もすれば自分が考えてコーティングした所でも忘れてしまいます。

ロジックとして考えるべき所はコピペをするべきではないと思いますが、単純な機能の実装であれば、コピペでも別にいいと思います。ただ内容については理解しておく必要はありますが。。

こういう実装をした事があると機能ベースで覚えておけば、コピペであっても過去の資産として使えますので、自身の能力の中で効率的な方法を模索しながらやっていくのがベストではないでしょうか?

投稿2015/07/29 15:58

chiku_

総合スコア1464

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

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

TakamasaAwai

2015/07/29 23:50

ご回答ありがとうございます。コピペはしても、内容は理解するように努めます。
guest

0

すでに回答がいくつか出ているので、すこし違う角度から回答します。

じつは、コピペすることと、何も見ずに書くことの、二択ではありません。
その中間に、いろいろ大事なことが埋もれていると思います。

たとえば、いろいろ調べながら書くが、まんまコピペではない、
そのつど関数やオブジェクトなどに適切にモジュール化する、
というやり方を私はしていますし、一般的に推奨できる方法でしょう。

  1. 何も見ずには書けないが、同じことをなるべく2回以上書かない
  2. 何も見ないで書けるが、同じことを何度も繰り返し書く

上を比較すると、現代のプログラミングでは、
2よりも1のほうが重要だと思っています。

言いかえると、似た実装を何回も出現させない、
高凝集かつ低結合でプログラムの複雑度を低く保つことが
問題の本質だと考えています。

投稿2015/07/30 00:47

LLman

総合スコア5592

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

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

tenroku

2015/07/30 07:10

私も似たような意見ですね。 そして1をやり続ければ限りなく見ずにできるようになります。 どういうことかというと自分で特定の機能のモジュールやサブルーチンを 作成し、機能に応じて変数の初期値や一部関数を変えるような運用にすれば ほとんどの機能を自分の作ったクラスで対応できるので使い方も一律です。 毎度毎度ワンオフで作ると都度ソースの書き方なども変わってしまうので 個人的にはこのやり方を推奨したいですね。
LLman

2015/07/30 07:34

コメントありがとうございます。 >ソースの書き方なども変わってしまう これはそうですね。 今はコーディング規約を守っているかとか、テストしやすいかとか、 コードの静的解析とか、いろいろな観点から評価されます。 だから、見ないでスラスラ書いたけど雑なコードよりも、 保守性や可読性を考慮したコードのほうが重要だと思います。
TakamasaAwai

2015/08/05 13:03

ありがとうございます。写したものを書き直すことも重要なのですね。
guest

0

自分も初学者(にちょっと毛の生えたような)です。

確かに「ほとんど何も見ずにコードを書けるように」なれれば良いですが、その域に達するのは結構大変ですし、必ずしもそうなる必要もないと最近では考えています。

もちろん意味も分からずにコピペを繰り返していたのでは成長しませんが、ベテランだって eclipseのようなIDE(統合開発環境)を使っていて、その多くが「コードスニペット」という一種の強力な入力補助機能を持っています。
これにはタイプミスによるバグの混入を防ぐとともに入力速度を速くすることで思考を妨げないようにという目的があるのですが、こうした便利機能を活用したからといってスキルが低いことにはなりません。むしろ、ツールを使いこなせるのはスキルが高い証拠でもあります。

そこで、自分が心がけているのは、
①良いコードをよく読む(意味を理解する)よう努力すること
②良いコードから「よく使うパターン」を拝借して覚えること
です。

お手本となる「良いコード」から「定石」とも言えるパターン(構文)を拝借して、(最初は完全なコピペかもしれませんがそのうちに馴染んできて)段々と使いこなせるようになってくれば、それで十分だと思います。

むしろ、どのコードが「良いコード」なのかを見分けられるようになることの方がより重要な能力だと思っています。

そのためにも、まずは諸先輩方の実装例から色々と拝借して、一見似通ったコードが、それぞれの条件でどのように異なってくるのか(自分が直面している現実の問題に適用すると結果にどんな違いがみられるのか)経験を積んで行くことが、スキルアップにとって何よりも近道なのではないかと思います。

この辺は、人によって考え方の一番異なるところかも知れませんが、「習うより慣れろ」ってことだと思います。

投稿2015/07/29 16:04

pi-chan

総合スコア5936

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

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

0

個人的には写経のようなものは必要ないと思います。
というかゼロから書ける必要もないと思いますし。

大事なのはコピペで動かしたあとにどういう順序でプログラムが動いたのか、
何のためにその機能が必要なのかを理解しておくことです。
そうすると、別のプログラムを書くときにそういえばあの時のプログラムが使えるな、
と気づくことができるようになります。

前書いたプログラムAとBを組み合わせて新しいプログラムCを作る、
こんなコピペの連鎖だけでおおよそのプログラムは作れるようになりますし、
これができればもはや初心者と呼べないレベルでしょう。

また、覚えることを意識していなくても、
重要度の高いものは何度もコピペ(目にして)していれば自然と書けるようになります。
そうやって上級者の方々もフルスクラッチで書けるようになったのではないでしょうか。

投稿2015/08/01 04:58

shichiria

総合スコア33

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問