JavaRush /Java Blog /Random-JA /普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか? コンピューターサイエンスを学ぶ

普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか? コンピューターサイエンスを学ぶ

Random-JA グループに公開済み
現代の IT およびソフトウェア開発の世界は非常に厳しいものです。プログラマーの資格に対する高い要件、絶え間ない変化、激化する競争により、この分野で働くスペシャリストは常に自己教育し、成長する必要があります。「人生をやり遂げる」ことは梨の殻むきと同じくらい簡単であるため、単に人気のあるスペシャリストであり続けるためにも、継続的な学習が必要です。 普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか?  コンピューター サイエンスの学習 - 1JavaRush の出版物では、魅力的な IT 開発の世界で可能な限り競争力を高めるために、読者が完全に開発し、自己学習できるよう支援するよう努めています。今日の記事では、非常に幅広い分野であるコンピューター サイエンスにおける自己教育について説明します。コンピューター サイエンス (CS) の概念に正確に何が含まれるかについては、少し後ほど説明しますが、ここでは、実際に、なぜプログラマーが CS 科目を学び、この分野で向上するよう努力する必要があるのか​​という質問に答えてみましょう。 。

コンピューター サイエンス – なぜ教えるのか?

「プログラミングは知っているものではありません。それはあなたが理解できるものです。」 Chris Pine 氏、プログラミングの専門家、書籍やチュートリアルの著者。 「ある意味、プログラミングは絵を描くことに似ています。最初は、空白のキャンバスと素材しかありません。これらすべてをどうするかを考えるには、科学、芸術、工芸を組み合わせて使用​​する必要があります。」 Andrew Hunt 氏は、ベストセラー本『The Pragmatic Programmer』の著者であり、『Agile Manifesto』の共著者です。私たちがどこに向かっているのかを理解するのは難しいことではありません。本当に優れたプログラマーになるには、あるいは単に普通のプログラマーよりも少なくとも 1 段階上のレベルに上がるには、プログラミング言語自体に加えて、さまざまな分野について最も幅広く、同時にかなり深い知識を持っている必要があります。そして、CS の概念に含まれる分野を習得することが、ここでの最初の場所の 1 つです。

コンピュータサイエンス分野

コンピューターサイエンスの分野にはどのような科目が含まれるかを見てみましょう。専門分野を研究する理由を添えて簡潔に説明するために、おそらくオズ・ノヴァとマイルズが書いたコンピューターサイエンスの最高の英語ガイドから、その主題に関する最高の書籍と最高の無料ビデオ講義シリーズの推奨事項を追加します。バーン、サンフランシスコのコンピュータ サイエンス スクール ブラッドフィールドの教師。
  • プログラミング

    プログラミングはコンピュータ サイエンスの基礎かつ基本的な分野であり、ほとんどの学生はプログラミングから CS コースの学習を始めます。最高の CS プログラミング コースは、初心者だけでなく、初めて学習するときに特定のプログラミング概念やモデルを見逃した可能性がある経験豊富なプログラマーにとっても役立ちます。

    最優秀著書:「コンピュータプログラムの構造と解釈」著者: ジェラルド・サスマンとハル・エイベルソン。

    А на JavaRush, кстати говоря, всем желающим доступен для изучения легендарный гарвардский курс “CS50. Основы программирования”, fully переведенный на русский.

    Лучшая видеолекция: Brian Harvey’s Berkeley CS 61A

  • Алгоритмы и структуры данных

    Знание наиболее распространенных алгоритмов и структур данных помогает решать разного рода задачи, а это очень важно в любой из областей компьютерных наук, включая, конечно, и разработку программного обеспечения.

    Лучшая книга: The Algorithm Design Manual. Author: Стивен Скьена (Steven Skiena).

    Лучшая видеолекция: лекции Стивена Скьены

  • Компьютерная архитектура

    Знание компьютерной архитектуры, то есть понимание того, How на самом деле работает компьютер, является еще одной важной частичкой пазла, без которой попытки построения программных конструкций и моделей часто оказываются неудачными.

    Лучшая книга: “Архитектура компьютера и проектирование компьютерных систем” (Computer Organization and Design). Authorы: Дэвид Паттерсон (David Patterson) и Джон Хеннеси (John Hennessy).

    Лучшая видеолекция: Berkeley CS 61C

  • Операционные системы

    Практически весь code, написанный программистом, будет выполняться операционной системой, поэтому знание принципов работы ОС также является важным элементом.

    Лучшая книга: “Введение в операционные системы” (Operating Systems: Three Easy Pieces). Authorы: Андреа Арпачи-Дюссо (Andrea Arpaci-Dusseau) и Ремзи Арпачи-Дюссо (Remzi Arpaci-Dusseau).

    Лучшая видеолекция: Berkeley CS 162

  • Компьютерные сети

    Мало что в современном ИТ может обойтись без использования Интернета, поэтому ИТ-специалистам важно понимать, How Всемирная сеть работает, чтобы использовать ее потенциал по полной.

    Лучшая книга: Computer Networking: A Top-Down Approach. Authorы: Джеймс Куросе (James Kurose), Кит Росс ( Keith Ross).

    Лучшая видеолекция: Stanford CS 144

  • Математика для computer science

    Поскольку компьютерные науки, по сути, являются ответвлением прикладной математики, знание этого предмета тоже будет очень полезным практически в любой профессии, связанной с программированием. А также даст вам конкурентное преимущество перед теми, кто этой дисциплиной не владеет.

    Лучшая книга: Mathematics for Computer Science. Authorы: Альберт Р. Мейер (Albert R. Meyer), Эрик Леман (Eric Lehman) и Фрэнк Томсон Лейтон (Frank Thomson Leighton).

    Лучшая видеолекция: Tom Leighton’s MIT 6.042J

  • Базы данных

    Базы данных — относительно новая область компьютерных наук, и экспертов в ней по-прежнему не так уж много. Данные — еще один ключевой элемент CS, потому что они лежат в основе большинства значимых программ, но мало кто понимает, How на самом деле работают системы баз данных.

    最優秀書籍: Readings in Database Systems。著者: ジョセフ M. ヘラースタイン、マイケル ストーンブレイカー。

    最優秀ビデオ講義: Joe Hellerstein の Berkeley CS 186 普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか?  コンピューター サイエンスの学習 - 2

  • 言語とコンパイラ

    プログラミング言語とコンパイラーが技術的にどのように機能するかを理解することで、コードとプログラミングのスキルを向上させることができます。また、新しい言語の学習も容易になります。これは、長期的には開発者にとって非常に重要です。

    最高の本:『コンパイラー: 原則、テクニック、ツール』。著者: アルフレッド・アホ、モニカ・S・ラム、ラヴィ・セティ、ジェフリー・ウルマン。

    最優秀ビデオ講義: Alex Aiken 氏のラグニータに関するコース

  • 分散システム

    最近では、ほとんどのシステムが分散化されています。コンピューターとプログラムはますます複雑になっており、分散システムの知識はソフトウェアを正しくスムーズに実行するために役立ちます。

    最優秀書籍:分散システム、第 3 版。著者: マールテン・ヴァン・ステーンとアンドリュー・S・タネンバウム。

    最優秀ビデオ講義: CS 436: 分散コンピュータ システム

コンピューターサイエンスを学ぶためのヒント

最後に、これから CS 分野の勉強を始めようと考えている人へのアドバイスです。 普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか?  コンピューター サイエンスの学習 - 3
  1. CS分野の実践的なスキルを開発する

    他の IT コースと同様、CS の利点の 1 つは、習得した理論的スキルがすぐに実践に応用できることです。このことを忘れずに、最良の結果を達成するために理論と実践を交互に行ってください。

  2. 先延ばしにしないでください

    コンピューター サイエンスはかなり複雑な主題であり、特に最初は、その研究を簡単にできる人はほとんどいません。そのため、CS 分野の学習を始めるときは、先延ばしを避ける必要があります。理論の習得、問題解決、実践を後回しにしないでください。これにより、学習時間が非常に長くなるだけでなく、効果が得られなくなる可能性が高くなります。

    普通のプログラマーからクールな開発者になるにはどうすればよいでしょうか?  コンピューター サイエンスの学習 - 4
  3. 1つのコースに限定しないでください

    たとえそれがどれほど優れたものであっても、1 つのコースでその科目に必要なすべての知識を得ることができるとは期待しないでください。この主題についてより広範な理解を得るには、少なくとも複数の情報源を参照することが常に最善です。

  4. 同じ考えの人を見つける

    少し陳腐に聞こえますが、効果的に学ぶことは、人生の他の多くのことを行うのと同じように、志を同じくする人々のグループの一員として行うのが最善です。CS を一緒に勉強するグループを見つけることは、さまざまな理由から有益です。これにより、より効果的に学習し、タスクや問題を一緒に解決したり、学習の進捗状況や新しい知識を適用するスキルを他の人と比較したりすることができます。

  5. コードだけでなく単語の書き方も学びましょう

    スキルを向上させ、専門レベルを向上させるために CS を勉強するプログラマーに対する多くの専門家からのもう 1 つの一般的なアドバイスは、(コードではなく) 書くことを学ぶこと、つまり、単語を文に入れたり、文からテキストを構成したりすることです。このスキルは開発者にとって非常に重要であり、これが欠けていると、コンピューター サイエンスの研究だけでなく、職業としてのプログラミングの他の側面でも進歩が妨げられます。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION