1.新しいプログラミング言語を学ぶ
新しいプログラミング言語を習得すると、特に新しいプログラミング言語が慣れていないパラダイムを使用している場合は、新しい考え方が発達します。 習得した考え方の多くは、すでに知っている言語に適用できます。 おそらく、新しいプログラミング言語が大好きになり、本格的なプロジェクトに使用し始めることになるでしょう。
プログラミング言語の中でも、優れた認知効果と経験のキャッチアップは、 Lisp (またはScheme )、 Fort 、 PostScriptまたはFactor ( スタック型プログラミング言語 )、 Haskell ( 強く型付けされた 、純粋関数 型 言語 )またはOCaml ( オブジェクト指向 関数型プログラミング 言語 )、 Prolog ( 論理プログラミング )、 Erlang (優れた並列コンピューティング )。
2.プログラミングに関する優れた複雑な本を読む
本から多くの知識を集めることができます。 間違いなく、練習は非常に重要ですが、プログラミングに関する少なくとも1つの優れた複雑な本を読んだ後、思考をテストするだけでなく、おそらくこの問題のスキルを高めます。
ここにそのような文献の例があります: コンピュータープログラミングの芸術 (脳を沸騰させたい場合)、 コンピュータープログラムの構造と解釈 、プログラミングの規律、または有名なドラゴンの本 。 ArtemSmirnovによるアドバイス : コンピュータプログラミングの概念、技術、モデル 。
もちろん、簡単な本を読むことはできますが、「ダミー」、「... 24時間で」、「... 3週間で」などの文献は避けてください。 このような本は、プログラミングスキルの向上という点で大きなメリットをもたらしません。
3.オープンソースプロジェクトに参加する
オープンソースプロジェクトに参加するメリットは何ですか? チームワーク(特に、自分だけで作業していた場合は素晴らしいこと)、他の人のコードを掘り下げ、それを理解する方法を学ぶ能力(非常に難しいタスク)。
有名な(そしてそうではない)オープンソースコミュニティ: GitHub 、 Sourceforge 、 gitorious 、 BitBucket 、 Ohloh 。
4.プログラミングパズルを解く
これは、特に夕方のタスクを見つけることは今では問題にならないため、プログラミングスキルを向上させる優れた方法でもあります。 たとえば、数学指向の問題は、最も人気のあるプログラミングパズルサイトの1つであるProject Eulerで見つけることができます。 私自身から、 The Python Challengeについてアドバイスできます。
また、ゴルフのプログラミングを試してみることをお勧めします。プログラマは、キーストロークをできるだけ少なくして問題を解決しようとします。 これにより、プログラミング言語のアイソテリックな機能と特別な機能の多くを学ぶことができ、仕事がより創造的で楽しいものになります。 ここでこの特定のゴルフを試すことができます 。
sl_bugからのリンク: Timusオンライン裁判官
wingerからのリンク: acm.sgu.ru 、 codeforces.ru 、 topcoder.com
black_bunnyからのリンク: acm.mipt.ru
ケインからのリンク: spoj.pl
5.プログラム
新しいプログラムをすべて「ゼロから」作成し始めます。 すべてのアーキテクチャを独自に開発し、実装します。 繰り返します。
プログラミングは、プログラミングを学ぶ最良の方法です。 あなたは自分の過ちから学び、プロジェクトの終わりに本を読むよりもはるかに多くの喜びを得るでしょう。 さらに、「手を打つ」ことで、自分で見つけた問題をすばやくナビゲートできます。
6.コードを読んで学ぶ
Linuxカーネルなどの興味深いコードを調べてください (これは非常に大きなコードであることに注意してください)。 トレーニング目的に適したオペレーティングシステムはMINIX3です。 この言語の多くの新しいイディオムと、ソフトウェアアーキテクチャに関する何かを学ぶことができます。 なじみのないソースコードを読むことは、難しいですが非常に便利な仕事です。
7.プログラミングサイトやフォーラムに参加し、ブログを読む
プログラミングサイトやフォーラムに参加することで、自分を見せ、他の人から学ぶことができます。 また、できればもっと頻繁にブログを読んでください。 Joelにソフトウェア (エントリを公開しなくなりましたが、多くの興味深いものを見つけることができるアーカイブがあります)、 Coding HorrorおよびLambda the Ultimate についてアドバイスできます。 spmbtフィードから: Habrahabr 、 StackOverFlow
mgarinはあなたに伝えます:
forum.sources.ruおよびforum.vingrad.ru-さまざまなプログラミング言語に関する2つの大きなフォーラム
8.プログラミングについて書く
プログラミングに関する独自のブログを開始し、自分でブログを書いてください。 Q&Aなどのサイトを参照して、回答を試みてください。 したがって、あなた自身が遭遇したことのない問題について知識を得ることができます。 自信があるなら、チュートリアルを書いてください。 プログラミングについて書く場合は、質問の最新情報を最大限に活用し、適切な用語を使用して、トピックに関する質問に正しく回答できるようにしてください。 英語のサイトで書く場合-これは英語の知識を深める絶好の機会でもあります。
9.低レベルのプログラミングを学ぶ
低レベルのプログラミングについて学ぶことは、マシンのパフォーマンスをよりよく理解するのに役立ちます。 C 、おそらくマスターアセンブラーについて読んでください。 コンピューターがプログラムをどのように実行し、オペレーティングシステムがどのように機能するかを調べます(少なくとも高レベルで)。 低レベルのプログラミングに関する深刻なことを知りたい場合は、コンピューターの構成、オペレーティングシステム、組み込みシステム、ドライバー開発などに関する本を読んでください。
hx0はあなたに伝えます:
アセンブラーとオペレーティングシステムの構築について学びたい場合は、 VictoriaOSのソースコードを検討し、echoなどの簡単なプログラムを作成してみてください。
SaveTheRbtzは興味深いリンクを共有しました:
MITのOSに言及する価値があると思います。
pdos.csail.mit.edu/6.828/xv6/
+素晴らしいPDFが添付されています
10.機能しませんか? すぐに助けを求めないでください! 自分で考えてください!
そのため、コードに問題があります。機能しないか、正常に機能しません。 できるだけ早く解決したい。 何してるの? フォーラムに直接、QAで、または友人に書き込みます。 今、 決してそれをしないでください 。 自分でエラーを修正するために時間を費やす方が良いです。 紙を取り、鉛筆でアルゴリズムのスキームを書き、コードを確認します。 うまくいかなかった? リラックスして、散歩に出かけ、脳をリフレッシュして、もう一度考えてみてください。 すでに1〜2時間ですか(時間は問題の規模によって異なります)、このコードで苦しんでいますか? ソリューションを探してGoogleを倒しますか? だから、助けを求めてください。 いずれにせよ、あなたの脳の問題を解決してみてください。 時間を費やしますが、スキルを追加します。
PS:いくつかの段落には、良い本、ブログ、サイトへのリンクがあります。 リンクリストを補完するもの(できればロシア語のリソース、書籍)があれば、PMに書き込み、間違いなく追加します。