私はプログラミング初心者で、しょっちゅうコピペばかりしています。なので、一度実装したことがある機能も覚えられていません。
しかし、このままコピペばかりしていてはいつまでも初心者から抜け出せないと思います。ほとんど何も見ずにコードを書けるようになるにはどう
すればよいのでしょうか?また、実際、出来る方はどのように勉強されたのか経験談なども嬉しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
私は、よく自分の実装を参考にコーディングします。
覚えなきゃいけないことが多すぎるため、忘れるものも多いです。(笑)
ただ、何度も同じ処理を組むことによって、コードが洗練されていく部分も多いです。
コピべでなく、写経(見ながらタイプすること)をおすすめします。
投稿2015/07/29 16:14
総合スコア2883
0
同じくAndroidについてです。
私は個人的によく使う機能(HTTP、SQLiteなど)ならネット等を見なくても実装できますが、個人的にあまり使わない機能(Wi-Fi、Bluetoothなど)は覚えてないのでネットで調べています。
ネットという便利なツールがあるので、普段利用しない機能を無理して覚えるくらいなら、普段利用する機能を深く知り、覚える方がいいと開き直っています。
覚えているといっても、IDEの補完とJavadoc頼りのときも間々あります。
とある機能を実装したいときに、その機能を実装するために必要なクラスさえ分かっていれば、補完候補とJavadoc頼りに探したりします。
Androidに限った話ではありませんが、膨大な数のAPIを全て覚えるのは無謀です。
「ほとんど何も見ずにコードを書くには?」という質問の答えとしてはアレですが、開き直るのも一つの手では?
余談ですが(いや、これが本題ですね)、私がコードを覚えるときは、コピペ後にコード1行1行をネットで「この行はどんな処理をしているのか」を調べています。そうすれば、頭の片隅くらいには残ります。
Google公式のAndroidディベロッパーサイトも割としっかりしてますし、調べればある程度のことは分かります。
日本語指定しても肝心のクラスやメソッドのリファレンスが英語のままなのはご愛嬌…
投稿2015/07/29 16:05
総合スコア1156
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
こんばんわ
しかし、このままコピペばかりしていてはいつまでも初心者から抜け出せないと思います。ほとんど何も見ずにコードを書けるようになるにはどうすればよいのでしょうか?また、実際、出来る方はどのように勉強されたのか経験談なども嬉しいです。
昔、昔、あるところにCobolプログラマーがいらっしゃいました。なんて時代だといたらしいです。ほとんど何も見ずにコードを書く人たちが。機能が少なく、徹底したレビューと予算と時間があったからこそできたものかと思います。(今ほどコンピュータが一般的でもなかったでしょうしね)
今はというとWebページだって、サイト内検索だったり、多様なブラウザの対応が求められたり、多機能を求められるのでおそらく今それが出来る人は本当の天才と呼ばれるような人たちだけだと思います。
現在求められる大事な事はそういうことではなく、コードの意味を理解して作りこむとか、調べながらでも良いからエラーの原因を突き止めたり、ちゃんと整理しながらコードを書いたり、といった能力じゃないでしょうか?
投稿2015/07/29 16:40
総合スコア148
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ほとんど何も見ずにコードを書けるようになるにはどうすればよいのでしょうか?
ほとんど何も見ずにというのはよほどのスペシャリストか、記憶力が並はずれているとかでないと難しいように思います。私なんかは3ヶ月もすれば自分が考えてコーティングした所でも忘れてしまいます。
ロジックとして考えるべき所はコピペをするべきではないと思いますが、単純な機能の実装であれば、コピペでも別にいいと思います。ただ内容については理解しておく必要はありますが。。
こういう実装をした事があると機能ベースで覚えておけば、コピペであっても過去の資産として使えますので、自身の能力の中で効率的な方法を模索しながらやっていくのがベストではないでしょうか?
投稿2015/07/29 15:58
総合スコア1464
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
すでに回答がいくつか出ているので、すこし違う角度から回答します。
じつは、コピペすることと、何も見ずに書くことの、二択ではありません。
その中間に、いろいろ大事なことが埋もれていると思います。
たとえば、いろいろ調べながら書くが、まんまコピペではない、
そのつど関数やオブジェクトなどに適切にモジュール化する、
というやり方を私はしていますし、一般的に推奨できる方法でしょう。
- 何も見ずには書けないが、同じことをなるべく2回以上書かない
- 何も見ないで書けるが、同じことを何度も繰り返し書く
上を比較すると、現代のプログラミングでは、
2よりも1のほうが重要だと思っています。
言いかえると、似た実装を何回も出現させない、
高凝集かつ低結合でプログラムの複雑度を低く保つことが
問題の本質だと考えています。
投稿2015/07/30 00:47
総合スコア5592
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/30 07:10
2015/07/30 07:34
2015/08/05 13:03
0
自分も初学者(にちょっと毛の生えたような)です。
確かに「ほとんど何も見ずにコードを書けるように」なれれば良いですが、その域に達するのは結構大変ですし、必ずしもそうなる必要もないと最近では考えています。
もちろん意味も分からずにコピペを繰り返していたのでは成長しませんが、ベテランだって eclipseのようなIDE(統合開発環境)を使っていて、その多くが「コードスニペット」という一種の強力な入力補助機能を持っています。
これにはタイプミスによるバグの混入を防ぐとともに入力速度を速くすることで思考を妨げないようにという目的があるのですが、こうした便利機能を活用したからといってスキルが低いことにはなりません。むしろ、ツールを使いこなせるのはスキルが高い証拠でもあります。
そこで、自分が心がけているのは、
①良いコードをよく読む(意味を理解する)よう努力すること
②良いコードから「よく使うパターン」を拝借して覚えること
です。
お手本となる「良いコード」から「定石」とも言えるパターン(構文)を拝借して、(最初は完全なコピペかもしれませんがそのうちに馴染んできて)段々と使いこなせるようになってくれば、それで十分だと思います。
むしろ、どのコードが「良いコード」なのかを見分けられるようになることの方がより重要な能力だと思っています。
そのためにも、まずは諸先輩方の実装例から色々と拝借して、一見似通ったコードが、それぞれの条件でどのように異なってくるのか(自分が直面している現実の問題に適用すると結果にどんな違いがみられるのか)経験を積んで行くことが、スキルアップにとって何よりも近道なのではないかと思います。
この辺は、人によって考え方の一番異なるところかも知れませんが、「習うより慣れろ」ってことだと思います。
投稿2015/07/29 16:04
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
個人的には写経のようなものは必要ないと思います。
というかゼロから書ける必要もないと思いますし。
大事なのはコピペで動かしたあとにどういう順序でプログラムが動いたのか、
何のためにその機能が必要なのかを理解しておくことです。
そうすると、別のプログラムを書くときにそういえばあの時のプログラムが使えるな、
と気づくことができるようになります。
前書いたプログラムAとBを組み合わせて新しいプログラムCを作る、
こんなコピペの連鎖だけでおおよそのプログラムは作れるようになりますし、
これができればもはや初心者と呼べないレベルでしょう。
また、覚えることを意識していなくても、
重要度の高いものは何度もコピペ(目にして)していれば自然と書けるようになります。
そうやって上級者の方々もフルスクラッチで書けるようになったのではないでしょうか。
投稿2015/08/01 04:58
総合スコア33
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。