プログラミングの知識を保持するのに役立つテクニックは何ですか?[閉まっている]


44

プログラミング関連のものをどのように覚えていますか?数年前、今あなたが前に持っていたエラーに遭遇し、その時その原因を知っていたが、今ではそれを忘れていると誓うことができると感じたことがありますか?

少し前にxslの文字列解析で作業しましたが、xslの文字列関数がどれであるかを正確に思い出せず、ゼロから開始する必要がありますか?あるいは、過去に使用したことがある「述語によるコレクションのフィルタリング」など、Apache Commonsの機能を忘れてしまったかもしれません。

それでどうやってやるの?ブログを作成しようとしましたが、アプリを開発するときに、ブログを更新したり、自分の経験について書いたりする時間がありません。また、Wikiを使用することは良いことですが、ブログの投稿を変更してそのトピックに関する新しい情報を追加する必要が何度もあったため、Wikiを明確に分離することは困難でした。これにより、このトピックをブログではなくwikiに実際に置くべきだと思いました。

プログラミングの経験を思い出すのに役立つシステムはありますか?あなたのセットアップは何ですか?


82
私の設定:1.google 2.ブックマークページ3.ブックマークを忘れる4.goto-> 1。
e-MEE

4
個人のWikiを使用します。解決した各問題を書き留めて、自分と他の人が後で表示できるようにします。数か月間やれば、豊富な情報が得られます。私はWikidPadとそのかなりの素敵な使用
超人

2
googleは答えには素晴らしいですが、メモリテクニックに関するこの質問に本当に対処しているとは思いません。もちろん、それはただのコメントです。
マイケルデュラント

4
私の脳は私のCPUとキャッシュです。私はそれをすることでキャッシュにデータを置きます。私の残りの知識は、古いソースコード、メモ、stackoverflow.comなどの他の場所にあります。
歪み

5
@ e-MEE:あなたが説明した状況はよく使われますが、それは悪い習慣であり、それに頼ることはできません。それは時間がかかり、冗長です。その時間を使って、車輪を再発明するのではなく、素晴らしい機能を構築できます:)
Claudiu Constantin

回答:


64

物事を忘れることは正常です。過去にあなたを助けたいくつかのトリックを覚えていないことも普通です。これは、認めるべき最初のステップです。その後、さらに修正するために知識を「保存」する方法がいくつかあります。

  • 時間とブログを見つけてください。未来-あなたは現在のあなたにとても感謝するでしょう。
  • 小さなデモで作業し、何らかの方法でアーカイブします。必ずこのアーカイブを何度もステップスルーしてください。
  • stackexchangeプロファイルを使用します。興味深い質問/問題/問題/ヒント/トリックをお気に入りとしてマークして、さらに調査します。
  • 続け、プログラミングを続けてください。フレームワークの特定の部分を使用すればするほど、フレームワークに慣れて覚えることができます。

5
「やり続ける」の部分に+1、知識をリフレッシュするようなものです。
-tehnyit

ポイント1は、The Officeのエピソードを思い出させます
...-JBRWilkinson

あなたの答えを支持するためだけにここに登録しました。完璧なもの
マーティン。

3
ログ/日記の値に対して+1。ロギングは、ダイエット、金融、フィットネスなど、ほとんどすべての成功を向上させます。最近の過去の出来事について、それらの出来事を批判的に検討し、ストーリーにまとめます。このプロセスは記憶を助け、作家に未来について考えさせます。その場合、ほとんどの場合、ログの利点は、事後のログの読み取りではなく、作成中の個人的および真の価値からです。
クォータニオン

ブログは最高です。私は自分がやっていることのブログを書いています-遭遇した問題に関する投稿をしています(そして、私が好きなことや面白いと思うことはめったにありません)。このようにして、何らかの問題が発生した場合(このライブラリを再びここにインストールする方法を教えてください)、ブログの投稿に移動して進みます。魅力のように機能し、実際にいつか誰かを助けるかもしれません。
マシューロック

20

私の鍵は

バラエティ


繰り返し。 一度つかの間になることができます。100番目の出現を見ると違いが出ます!

指による記憶。実際に数回入力したときのコードのほうがずっとよく覚えています。

コードライブラリ -使用して見たコードとトリックの個人的な隠し場所を保持します。

集中化。 私はすべてのユーザー名(数百)で1つのファイルを1つのPCに保管します。セキュリティを適用します。

規律 -あなたは自分のブログを更新するための時間がない/努力するなどと述べました。あなたはただもっと一生懸命努力し、あなたがそれをすることを確認しなければならないことを。

受け入れ -ラスウィークで学んだスキルとテクニック、物事は新鮮です。3年前にあなたが言うアイテムのいくつかは覚えにくいでしょう。脳がより多くのスペースを作るので、それは正常です。

多感覚 -時にはニーモニックを使用し、時には独特の方法で描かれた重要な概念の写真をドロップします。私は読んで、ポッドキャストを聞いて、ビデオを見て、エディターで色を使います。使用する感覚が多ければ多いほど良い。

ニーモニック、たとえばcss border order Tarball(TaRBalL)TopRightBottomLeft。また、色や形を使って言葉やテーマを覚えています。多くの場合、奇妙なほど記憶に残ります!

継続使用 -これは「使用するか失うか」の効果です。すべての知識は時間とともに消えていきます。Time ++ Fade ++

Stack Exchange Network-複数の領域でStack Overflowを使用して、現在のジョブ/プロジェクトで使用していない場合でも、さまざまなスキルとテクニックを「現在」および「記憶」し続けています。

Dropboxの -私はメモリ関連の項目でcommnon小さなファイルを保ちます

-私は今でも、本の愚かさと感じが好きです。また、どこでも参照できる複数のkindleやその他のオンライン技術書もあります。明らかに、私の技術ライブラリは、それが巨大なデジタルであればどこからでもアクセスできます。

Googleの効果 -これに言及しなければ、アイテムのリストは完全には完成しません。これは覚えておく必要のないものについての詳細です。グーグルで検索できるからです。これも重要な考慮事項です。より多くの人々が知識を得るこの方法に熟達するにつれて、特定の事実を実際に暗記する必要性は低下しています。しかし、これは現在の環境で実行するために深い概念的理解が必要であることをますます発見しているナレッジワーカーにとっても「水準を上げる」ことです。もちろん、CMEのものはどれですか。

私自身のブログ

自分のブックマークサイト。

  • ブログとブックマークを更新するにはどうすればよいですか?結局のところ、私はそれが規律気品だと思う、つまり、はい、それにはある程度の献身が必要です。ただし、学位を取得して100,000ドル(または10,000ドル)を支払った場合、または独学の場合は、献身と粘り強さの意味を知っています。これも同じです。気の利いた、つまり「気の利いた要素」は、クールなチュートリアルやテクニックなどを備えたクールなWebサイトを見たとき、または厄介な厄介な問題を克服したときに、「ちょっとそれは気の利いた!」-したがって、これ(または使用するキャッチフレーズ)を感じたら、それを「ブログに登録するか、そのブックマークを記録する必要がある」と関連付けます。あなたがPCにいない可能性が高く、その瞬間にあなたのブログを更新しているので、あなた自身にメール、テキスト、またはボイスメール、またはタスクリストの新しいタスクを送信してください-あなたのために働くものは何でも-それを行うように自分自身に思い出させるために!たとえば、私のアンドロイド携帯電話にはこれに役立つタスクアプリがあります。

思慮深い答えをありがとう。彼はあなたのブログの更新について規律を守っていますか?私が抱えている問題は怠であるか、他の人がそれから利益を得るとは思わないので、私は何かを投稿しないと思います。
カイル・ヘイズ

多様性のために+1。本当に機能し、何度も経験しました。
カルティクスリーニバサン

カイルの良い質問、答えを更新しました。しかし、私の答えは、私がどのように規律を保つというよりも、常に最新情報を入手する必要性についてです。ある時点で、それは個人的な動機付けになります。
マイケルデュラント

7

昨年、Evernoteは私が欠かせないプログラムになり、すべてをEvernoteにコピーしました。コードの切り取り、スクリーンショット、連絡先データ、バージョン履歴など。ですから、それほど多くの詳細を覚える必要はありません。どこかにあることを知っています。

基本バージョンは無料です。やってみて!


1
それでは、evernoteのサービスがダウンした日、またはインターネットがない場合(たとえば、通信事業者がヌードになっているため)、何をしますか?重要なノウハウを保存するために「クラウド」に依存することはお勧めしません。
ミスタースミス

私は現在Evernoteを使用していますが、そこにすべてを配置すると、タグセクションが非常に乱雑になり、使用が少なくなります。これについて素晴らしいトリックがあれば、共有するのに大いに役立ちます!ありがとうございました!
輝く光

@danleadgy、タグに同意します。もっと気を配る必要があったので、心配する必要はありません。
カイル・ヘイズ

Stack Overflowでこれと同じ質問をした後、Evernoteの使用を開始しましたが、非常にうまく機能します。プログラミング情報の他に、ハウツープロセスを保存しています。たとえば、開発マシンをゼロからセットアップする方法(OSのインストール、ソフトウェアのインストール、構成)。これは非常に便利です。また、どのデバイスからでも同じ情報にアクセスできます。したがって、1台のコンピューターまたはタブレットで読み、別のコンピューターまたはタブレットで作業できます。
B

6

シャーロック・ホームズはかつて「男の心は屋根裏部屋のようなものです。些細なことで満たすと、本当に重要なことの余地はありません。これらすべての詳細には百科事典があります。」

写真の記憶とその問題がない限り、すべてを覚えているわけではありません。リソースのセット、情報問題解決技術の両方の個人ライブラリーを構築します。

答えを覚えていないかもしれませんし、答えがどこに書かれているかも覚えていないかもしれません。しかし、問題の解決方法を知っていれば、いつでも答えを見つけることができます。うまくいけば、これには検索可能かつ再利用可能な方法でソリューションを文書化することが含まれます。


4

まあ、多分私の場合は特別です...しかし:私はラップトップ、プログラム、スクリプト、構成などに76以来書いたソフトウェアのすべてのスクラップを持っています。そのため、時間の経過とともに(告白しなければならない)ものに関するメタデータを記憶すること。確かに、それの多くはもはや関連していませんが、実際にそれらを実装するのではなく、難しい部分がアイデアを持っていることがわかります。したがって、メタデータは基本的に、「アイデア」がどこで見つかるかを示すインデックスです。

最近、新しい芝を見つけたとき、新しい側面を使用する大きなコードベースを見つけて、コードベースで充実した時間を過ごす傾向があります。私はそれを研究し、テスト環境で動作するように試み、それから新しいツール(ライブラリ、言語、ビルドテクノロジーなど)に慣れるためにそれを増強しようとします。このプロセスにより、パターン、アイデアを例にマップできます。私はそのようなミニプロジェクトをいくつか行うのに時間をかけ、参照として私が家で最も感じるものを選ぶかもしれません。それが完了したら、最終的にそのコードベースを再利用して、自分のアプリのスケルトンを構築します。

個人のアーカイブが失敗したとき、私は最近SOを追加したネットに行きました。gaagleの前にSOで「新しい」概念(個人的な観点からは新しい)でヒットします。実際、私はめったに(今日では)gaagleに戻ることはありません。最初の関連する回答は、通常、SOに関するいくつかの興味深い質問へのリンクです。


4

他の人と同様に、ブックマークを使用して物事を追跡します。

以前はDeliciousを使用していましたが、現在はPinboardに移行しています。

しかし、私は以前ほどこの方法を使用していません。私が遭遇したプログラミングの問題はすべて、小さなグーグル検索であるようです。そして、昨年かそこらで、Stackoverflowを検索用語の1つとして使い始めました!

特に難しい問題についてSOの質問に答えるたびに、それを追跡するのが好きなので、これはブックマークの別の形です。


私も過去においしいものを使っていましたが、彼らはそのプロジェクトを台無しにしました。現在、ブックマークとハイライトにDiigoを使用しています。ピンボードをチェックする必要があります。
jmq

3

「絵を覚えて、細かいストロークを忘れて」

より細かい詳細を覚えていないことは絶対に普通です。ただし、重要なことは忘れてください。バグを修正した場合は、少なくとも問題が何であるかについての概念的なアイデアが必要です。

ブックマーク、ブログ、ノートブックは、これらの細かい詳細を保存するのに適しています。しかし、最終的にはさらに大きな「画像」を覚えておく必要があります。そうしないと、これらの「より細かい」詳細を再発見するのがはるかに難しくなります。


2

自分のノートで、物事を自分の言葉で表現してください。あなたのターゲットオーディエンスはあなたです。(しかし、ブログの投稿は本当に明確でよく編集する必要があり、時間がかかります。)良い記事/ブログ投稿を見つけたら、URLを記録しますが、それでも自分の言葉で説明してください。

私は、小さくて短い単一トピックファイルの大きな階層を保持しています。ファイルはほとんど自由形式ですが、Markdownの使用に切り替えています。grep / findを使用して検索します。私はDropBoxにフォルダを保持しているので、いつでも利用できます。


以前はこのようなファイルとしても使用していましたが、Evernoteもこのタイプのデータの優れたリポジトリであることがわかりました。
カイル・ヘイズ

1

誰もが彼/彼女がそれに慣れている独自のスタイルを持っているかもしれません、私のために、私はカテゴリの知識を分けます:

  • 記事

  • コレクション(いくつかの段落に限って興味深いと思うもの-私は実際に情報をコピーし、時にはソースに注釈を付けます)-例:OODevelopment、Generics、...など

  • 再利用可能なコード(テキストとスニペット)-それぞれが適切なツリー編成の下の個別のファイルにあります。たとえば、DataValidationノードには、異なるデータ項目を検証するための多くの手法が含まれ、それぞれが個別のファイルに含まれます

  • 完了したプロジェクト

  • 個人用ビデオチュートリアル(手順が多すぎる場合に物事を行う方法のビデオを時々記録します)。

  • リンク集

上記を主題ごとに整理し、各主題を適切なツリー構造にしています。

重複するものがある場合もありますが、私は自分が欲しいものを見つけることができます。

また、Googleデスクトップを使用すると、テキストまたはファイルの検索が非常に高速です。


あなたが共有したいなら、あなたのツリーを見ることは面白いでしょう。
カイル・ヘイズ

@KyleHayes、Iはサンプルを提供することができる
NoChance

0

OneNoteを使用します。私はさまざまなプログラミング言語を使用しているため、言語ごとに異なるセクションがあり、メモの種類ごとに異なるタブがあります。

現在、Stack Exchangeも使用し始めています。


-1

メモリと「ストレージ」のバランスをとる必要があります。メモリに頼りすぎたり、メモリ内の間違ったものに頼ったりすると、==問題になります。

私のルール:

-美化しすぎないでください!あなたのドキュメントでフォントサイズが異なっていても重要なものを書いてください:)

-過度に組織化しないでください。自分の考えを整理するには10レベルのツリー構造が必要であると確信する

-記録するものを見つけるのに時間を費やしました。同じ問題に対して5つの解決策を見つけることができます。あなたがそれらをすべて書き留める瞬間、あなたはゆるい。本当にあなたを助ける1-2を書き留めてください。あなたは今、あなたはこれのための時間を持っていないことを自分に言わせないでください。それはかなり奇妙ですが、それは適用されます:「時間を得るために時間を費やしました」

20年後にそれが存在することを確認したいので、さまざまなプラットフォームに自分自身を移行したくないので、これらの物を「製品」に入れるのは好きではありません。

じゃあ何をすればいいの?

最小限の労力で情報を取得できるもの。

たとえば、phpBBをインストールして自分に書き込みます。無料ですぐに検索機能を使用でき、簡単なSQLステートメントでデータを抽出してファイルに入れることができます。アーカイブ用のファイルにあなたの考えをエクスポートするcronジョブを持つことができます。したがって、それらを別のシステムに配置する必要がある場合は、最小限の労力で準備ができています。

もう1つの問題は、見つけたリンクが明日機能することを保証する人がいないことです(5年後を想像してください)。そのため、情報を複製してみてください。

-ブラウザーの拡張機能を使用してビデオをダウンロードし、たとえばphpBBの投稿(またはワードプレスなど)に添付します。

それに直面する:あなたはプログラマであり、あなたは他の人のためのアプリを作る。あなた自身のためにシンプルなものを作り、あなたの最高のクライアントになります。

私の2c


-1

簡潔な答え:

練習、練習、練習。

それほど簡単ではない答え:

歩き方を覚えていますか?話す方法をどのように覚えていますか?確かにこれらのスキルはまったく同じではなく、一見したところ百科事典的な知識を必要としません(少なくとも初心者向け)が、同じことを使用しています:記憶。

私は、初心者にとって、プログラミングを勉強し始めると、信じられないほど大きなテーマに思えるかもしれませんが、基本を理解した後は、他のテーマと同じようになります。

私はそれを理解するとすぐに、物事をますます小さなチャンクに分割し始めました(私自身の、抽象化の個人版)。そうすることで、覚えにくいと思われたことが簡単になります(少なくとも私にとっては)。

物事を書き留めることは、あなたが思っている以上に助けになります(教育分野で働いたことがあるので、これがリテンションに大きなプラスの影響を与える可能性があることを知っています)。特に、そのままコピーするのではなく、自分の言葉で表現できる場合。言い換えたり、既に知っているものと同等にできる場合は、さらに良いでしょう。

例:C#では、Stringオブジェクトは不変です。つまり、文字列オブジェクトの内容を変更するようにプログラムに指示すると、実際に発生するのは元の文字列が破壊されることです(技術的にはガベージコレクターの最下位レベルに配置されます)。アーティストが大理石の彫刻を作成するときに間違いを犯したときとまったく同じです。変更することはできません。したがって、破壊されて新しいものが作成されます。

それは素晴らしい例ではありませんが、私が得ているものの基本を示しています。

高品質のドキュメントも役立ちます。私のプログラミング101講師がかつて私に言ったことがありました。

コメントを冗長にします。馬鹿げているわけではありませんが、プログラマでない人が理解できるコメントを書くことができる必要があります。そうすれば、プロジェクトの他の誰かが完全にそれを理解できることがわかります。あなたがシステムを実装するのに何ヶ月も費やしたが、仕事への途中で何らかの恐ろしい事故に巻き込まれたあなたを想像してください。他の誰かがあなたの仕事を割り当てられます-特にそれがクランチ時間に近い場合-そして彼らがあなたのコードが何をしているかを理解できない場合、生産は停止します。

良い本も素晴らしいリソースです。別の家庭教師がかつて私に、本に索引がなければ(そして、そうでないものがたくさんあるなら)、それは買う価値がないと言った。

Googleは素晴らしいリソースになる可能性がありますが、コピーペーストコーダーに注意してください。説明のないコードブロックだけを提供するサイトには近づかないでください。コードの小さなブロックに関する記事全体を読むことをお勧めします。コードのブロックが何を意味するのか、それがどのように行われるのか、そしてプログラマーがなぜそのように書いたのかを正確に知っているあなたは去ります。

役立つことを願っています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.