ITにまったく関わっていない人が、この分野の魅力的な美しさに染み込んで、プログラミングをゼロから徐々にマスターするというタスクを自分自身で設定することがあります。 そして、ここで彼はしばしば単に道に迷ってしまい、どこから始めればよいのか理解できず、良い基盤と体系的なアプローチを必要としています。
私は最近、同じ状況にあり、グーグルでHabréのマニュアルを探しました(私は何かを見つけました: プログラマーを始める ための10のヒント、 スタートアップに関する プログラマーを始めるだけでなく... )、最終的に私は1人の良い人にアドバイスを求めましたそれは私にとってそのような計画を作り上げました。 この人の許可を得て、私はこの計画をHabréに置きます-突然、それは他の誰かにとって便利になります。 (さらに、リストされている本は、この分野の文学の「黄金基金」に属し、実績があります。)
UPD:コメントに注意するように新人に勧めます-この計画は積極的かつ合理的に調整されています。
ステージI.基本
ノートン「IBM PCソフトウェアおよびハードウェア組織」
この本は、その処方にもかかわらず、決して時代遅れではないものを指します。 初心者として、私は物語がITのほぼ完全なティーポットで理解できることを確認します。
フック「IBM PCハードウェア」
そして、この本は「上に」読む価値があります-それは今、この分野で物事がどのようにあるかについて話します。
ステージII。 ハードウェア
ステップ1
モールス、アルバート「マイクロプロセッサアーキテクチャ80286」
なぜマイクロプロセッサ80286がここで基礎となるのか-最初の段階の作業の研究から明らかになるでしょう。
ステップ2
フック「PCハードウェアインターフェイス」
「ストレージデバイスインターフェイス」のフック
ステージIII。 オペレーティングシステム
ステップ1
Tanenbaum「コンピューターアーキテクチャ」
ステップ2
Kolisnichenko、Allen「Linux:完全なガイド」
一般的な理論から、特定のオペレーティングシステム(Linuxの例)の研究に移ります。
Németh、Snyder、Hane「Linux管理者ガイド」
ステージIV。 プログラミング自体
ステップ1
リッチン・カーニガン「Cプログラミング言語」
開発用にCが最初に選択されたのはなぜですか? 知識のある仲間が私に言ったように、それは正しい「プログラム的思考」を達成するのに役立ちます。これは、例えばPascalで研究を開始することによって達成することは困難です。 さらに、Cは現在も使用されており、アプリケーションとシステムの両方のプログラミングに適しています。
ステップ2
クヌート「プログラミングの芸術」:
ボリューム1.基本的なアルゴリズム
ボリューム2.結果として得られるアルゴリズム
ボリューム3.並べ替えと検索
ベントレー「プログラミングの真珠」
なぜこれらの作品をマスターするのですか? Habréで既に述べたように 、「おそらくayti以外では、このような膨大な数の自転車は発明されていません。」 これらの本はこれを避けるのに役立ちます-そして、彼らはコードだけでなく良いコードを書く能力を植え付けます。
まあ、初心者のために、短いシリーズの講義「プログラミングの文化」(著者-A. Babiy)を読むことができます。 初心者プログラマーは、自分の活動が真空で行われないことを理解するのに役立ちますが、必然的に他のプログラマー、顧客およびユーザーとの相互作用を含みます(また、後で自分自身または他の人々のプログラムを掘り下げる必要性を含みます)。
初心者の自然な質問:これをすべて研究するのにどれくらい時間がかかりますか? 私の顧問の予測によると、プログラミングを勉強するために夜と休みを過ごすことができる人は、最初の3つの段階の文献を読んで理解するのに6ヶ月から1年かかります。 また、第4段階には1年が与えられます。読書には、自己プログラミングの練習が必要です。 どのようにそれが実際に判明する-時間は教えてくれます。
あなたのアドバイスと説明にとても感謝しています。