プログラマー教育-何? どこ? いつ?







こんにちは、Habr! 教育、特にプログラマーについては、より適切なプログラムまたは不適切なプログラムについて多くのことが言われていますが、毎年状況は変化し、どれほど悲しくても、あなたはこれを理解する必要があります(申請者であろうと雇用主であろうと)。 正確にalma mater



選択して旅を始めることは非常に重要です...トピックに関する長い記事を恐れていない人は皆カットしてください。







警告!

この記事/投稿は、すでにITに携わっているか、自分の人生をITと結びつけたい人のためのチュートリアルまたはガイドと見なすことができます。 すぐに予約します。ここでは、システム管理者、設計者、またはエンジニアではなく、プログラマー(1Cからディープラーニングまで)について話します。







0-ゼロステップ。 学校教育。 高校(5年生から9年生)



人生で最初に出会うのは学校です。 これは私たちの生活の大きな部分であり、多くの場合、私たちの第二の家です(残念ながら、現在の現実では-学校で過ごす時間の観点から)。 そして非常に重要なイベントとして、責任を持って意識的に将来の教育機関の選択にアプローチする必要があります。







数学







理性的な思考に傾倒している人や考えることを好む人の生活における特別な役割は、数学、物理学、コンピューターサイエンスなどの正確な科学によって果たされます。 多くの人は、IT分野の幅広い問題で数学はあまり必要ないと主張するかもしれませんが、私は同意しません。 機械的な計算機から最初のコンピューターの作成まで、すべてが数学の原理とモデルに基づいていました。 はい、もちろんこれは数学の狭い部分ではありませんでしたが、各問題には独自のアプローチが必要であり、数学で見つけることができました。 考える能力はまだ誰も止めていません。これは非常に有用なスキルですが、常識では十分ではありません。あなたのアイデアを実現できる追加のライブラリが必要です。 したがって、そのようなライブラリの役割は数学です。







物理学







物理学には「純粋な」プログラマーは必要ありませんが、若い心が科学がそれを与えないことを理解しているなら、彼は正しいです。 物理的には、理論的にさえ使用されていない場合は必要ありませんが、タスクの全範囲において、それは単に重要です。 少なくともゲームの開発を見てください。既成のソリューションやエンジンを使用できますが、何かを修正したり、作り直したり、単にその仕組みを理解したりしたくないでしょうか。 そして、あなたがそれをやり直す必要があるなら? 基本的な基礎を知ることなく、真実を求めて教科書やウェブサイトを調べますが、それが何であり、どのようにそれを適用するかを知っていれば、神経細胞を探して失うことに時間を費やす必要はありません。 あなたはサルのコーダーとしてだけでなく、根本的な問題を解決できる思考者として高く評価されるようになります。 それはポイントではありませんか? すべての科学的計算、視覚化、およびその他のことは現在コンピューター上で行われ、プログラムはまったく同じプログラマーによって書かれています。







また、多くの日常的な問題を解決するため、受け入れる価値があります。 たとえば、電源に問題がある場合は、爆発したコンデンサを簡単に交換して作業を続行できます。 ハードウェアレベルで誤動作が発生する理由と、これを回避する方法を理解できます。 したがって、学年では、特にプログラムはそれほど複雑ではないため、物理学は絶対に避けてはなりません。







コンピュータサイエンス







私が言えることは、あなたが成功しなかったとしても、それがあまり好きでなくても構いません(結局、これはただの高校です)。 しかし、あなたがそれを好きで、それをする衝動を感じたら-素晴らしい!







ロシアの現実では、コンピューターサイエンスのレッスンがなければ、プログラミングに行くことはそれほど魅力的ではありません。 もちろん、あなたはいくつかの大学で教えられますが、これは正しいアプローチではなく、おそらくあなたはこのビジネスをやめるでしょう。







コンピュータープログラマーにコンピューターサイエンスを教えることは価値がありますか、それとも学校で数学にもっと注意を払う必要がありますか? 良い質問です、それはすべてあなたがそれぞれのアイテムでどれだけうまくやっているかに依存します。 最初のものを犠牲にして、2番目のものに満足することは不可能です。







最も重要なことは、オリンピックに参加することです。 そのため、あなたはより賢くなり、経験を積み、「考える」人々の世界をよりよく知るようになります。 おそらくあなたはとても運が悪いので、一人のオリンピアードに勝つことはできませんが、私は良いニュースを言います:私はこの運動に常に参加し、単一のオリンピアードに勝つことのない(または少なくとも受賞者にならない)人を知りません







これらの科目の学校知識には、欠点よりも多くの利点があると言えます。 若くなればなるほど、有用な情報を吸収する必要があります。







1-最初のステップ。 学校教育。 高校(10年から11年生まで)



難しい選択があります。良いトレーニングに時間を割いて、状態を渡すことです。 試験(試験など)、または専門的な活動を掘り下げて応用プログラミングに従事し始めることができ、オリンピックやアルゴリズムに集中することさえできますか?







明確な答えはありませんが、オリンピアードに参加することを今でもお勧めしますが、非常に便利です。







「本物の」プログラミングに専念することに関しては、この方法はすべての人に適しているわけではありません。 最終的に達成する必要がある目標は、プログラマー、真のプロフェッショナルな「脳エンコーダー」になることです。 大学を辞め、その分野で億万長者になった人々、スティーブ・ジョブズ、ビル・ゲイツ、マーク・ザッカーバーグ、マイケル・デルなどの話を思い出しましょう。 しかし、1つの非常に重要なことを理解してください。彼らは誰も学校を辞めようとしませんでした。 誰かが裕福な両親の息子であり、ビジネスをする才能があり、誰かは有名な家族で生まれ、愚か者ではなく、誰かはそれほど幸運ではなかったが、彼は素晴らしかった。 誰もが自分の物語を持っていますが、一部の人が生存の困難のために脱落し、それから「立ち上がる」場合、他の人はすぐに家族の形で有利なスタートを切り、ビジネスを開始して開始するタイミングを学ぶことを気にしません。







ちなみに、ザッカーバーグ家とゲイツ家の名声にもかかわらず、彼らは才能のある学生であり、世界で最高の大学で過ごしました。

ですから、人生の状況が気分を良くさせてくれるなら、家、食べ物、愛する人がいるなら、不確かな未来のために特定のプレゼントを犠牲にしてはいけません。 最後にこの場合のあなたの最初の重要な目標は良い大学であるため、機会がある間に学び、プログラムを書き、正確な科学を研究してください。 しかし、試験であれオリンピックであれ、準備する必要があります。 生物学、化学、地理学などに時間を無駄にすることはできません。今では絶対にそれらを必要としないので、10年生から11年生では情報が狭すぎて、チュメニにある油田の数や斑点を付けられた猫がどんな子孫になるのかを覚えても意味がありません。 もちろん、IT部門は雇用の面ではるかに寛容ですが、他の人は教育を受けているため複雑になりますが、一部のレベルを経験している人もいれば、5倍遅れたとしてもあなたはそうではありません彼らの同僚のスキルに優れている場合、あなたは時間を持っていなかった、忘れてしまった、終わっていないという感覚を残すことはありません...







一般に、トレーニングについてさらに詳しく説明します。







良い大学を目指すなら、良い学校が必要です。 彼女を選ぶ方法は? とても簡単です:学校/ライセウムの評価をグーグルで検索し、好きなそれぞれについて読んで、生徒に尋ねて、独自のコントロール評価を作成します。 最後に、あらゆる面で快適になる場所に行きます。 一生懸命働く必要がありますが、それだけの価値はあります。







しかし、あなたが望む場所に着かなかったなら、絶望しないでください。 まず、自己教育について覚えておいてください。特に、あなたにとって複数回役立つからです。 第二に、良い準備に時間を費やす素晴らしい機会があります。 ほとんどの場合、教師はオリンピックの方向であなたを助けませんが、あなたは完全に試験の準備をすることができます。 コースを探して、クラスのスケジュールを作成し、始めましょう。 スケジュールを明確に守れば、資料をどれだけよく理解し始めたかがわかります。 したがって、試験で300または400ポイントを獲得することはかなり達成可能です。 コースを探し、本を読んで、オプションを決定してください!







2017/2018年の学校ランキング







仕事の時間です!







2-最初の代替ステップ。 大学(9年生以降)



予想外に。 大学に興味があるのは誰ですか? -お願いします。 数千人の9年生-私は答えます。







誰かにとってはニュースかもしれませんが、私たちの国には次のタイプの機関があります-大学。







約10年前でさえ、大学は例外なく、さまざまなインターネットサイトでミームとして振る舞う職業学校を思い出させました。 しかし、文字通り今日、オープンソースソフトウェア(中等職業教育)の需要は、学生の間で何度も増加しています。 この理由は何ですか? いくつかの理由を挙げることができます:







  1. 入学時および卒業後に試験を受ける必要はありません。
  2. 大学の内部試験。
  3. プロのスキルと専門科目。
  4. 認定スペシャリスト。


多くの人が試験システムを好まないため、多くの場合、これが大学に行く最初の理由です。 あなたはこれを責めることはできません、なぜなら 試験はストレスが多く、同じ年に再受験することも不可能な場合は、それ以上です。 実際、良い意味で、これは最も重要でない理由であるはずです。 多くの人は、試験ではなく内部試験を受ける機会に魅了されています。







専門的なスキルと専門科目は、すべての大学の不可欠な部分です。 あなたが教授で基本的な知識を得るという事実に加えて。 この領域で既に適用を開始している領域。 技術的な知識、スキル、経験、これらすべてがこの機関をさらに魅力的にしています。







そしてもちろん、あなたはあなたの分野の専門家になったと言っている卒業証書( 本当にない







すべては、トレーニングの方向を選択し、選択委員会に申請書を提出することから始まります。 これは、大学でアプリケーションを受け入れるのと非常によく似ています。人々は同じようにテーブルに座り、学生は教職員に招待して入学を申し出ます。 昨年私が現在学んでいる専門分野を紹介したいと思います(プログラミングにはあまり専門性がなく、コンピューターサイエンスも応用されていますが、最も合理的な選択はPCSです)。

03/09/03-コンピューターシステム(PCS)でのプログラミング。







大学の説明とリストへのリンク







なぜなら 私たちはプログラマーについて話しているので、最も適切な専門はPKSであると仮定することは論理的です。 これは、応用プログラミングの最新のトレンドに精通している人材をトレーニングすることを目的としています。 ウェブであろうとデスクトップであろうと、おそらくモバイル開発であろうと、これはすべてこの専門分野に当てはまります。 多くの教育機関では、プログラムはさまざまですが、最も一般的な義務的な分野は次のとおりです。10〜11学年(標準-研究の最初の年、通常は数学と物理学に重点が置かれます)、プログラミングの基礎、アルゴリズム化(基本アルゴリズム)、数理論理学の要素(a-離散数学の「ライト」バージョンでは、数学的分析の基礎(技術大学の最初の学期の線形代数プログラムを部分的に含む)、オペレーティングシステム、通信ネットワークおよびシステム、コンピューターアーキテクチャ istem。 上級コースでは、応用プログラミング、Webプログラミング、情報セキュリティなどの科目が表示される場合があります。 大学から大学へ、研修プログラム、オリエンテーションは変化していますが、どういうわけかこれらの科目は常にそこにあります。 あなたは常に教育機関の公式ウェブサイトでトレーニングプログラムを見る必要があります、これは重要です。







ここで私たちが持っていた小さなことを説明しました

-プログラミングの基礎:

これらのクラスでは、ロジックの「基本」を学び、コードを書き、フローチャートを分解します(オプションの部分)。 システム全体を掘り下げて、何が何であるかを理解するための非常に有用な演習。 すでにプログラミングの経験がある場合、クラスは退屈に思えるかもしれませんが、何もする必要はありません。







-アルゴリズム化:

私が言えることは、このテーマはアルゴリズムに専念しているということです。 ただし、たとえば、プログラムでは、チューリングマシン、マークマシン、およびポストマシンという意味でした。 つまり、論理に関するタスクが与えられました。 さらに、再帰や関数の概念などの例もありましたが、数学的な側面がありました。 すべてが教師に依存することを理解する必要があります。







著者からのコメント:







このコースは、ユニークで興味深い教師がいたからではなく、私が勉強した教育機関で私が好きな数少ないものの1つです。私たちはこれらのアイデアとタスクに染み込んで、素早く解決しようとし、お互いのソリューションを比較し、最高を探していました! それは本当にクールでした! 確かに、マットを使用して再帰について説明されたとき。 式の中で、私たちは非常にひどくそれを行ったので、単に問題の解決策を経験的に選択しました...

-数学ロジック:

これは、一般的な開発のための離散数学の短期コースです。 個人的には、セットの概念とDNFが何であるかだけでなく、プロセッサなどの原理がどのように機能するかを理解しました。 つまり 数学ですが、第一に、大学で役立ちます。第二に、多くのことに目を向けます。







-数学的分析と線形代数の基礎

要するに:大学プログラムの各学期からの基本的な概念。 つまり 微分方程式を解きましたが、二重積分については伝えなかったとしましょう。 線形代数では、行列、それらの演算、行列式、およびそのカウント方法について説明されました。







正直なところ、私はこのプログラムに満足していました。 それは高等数学のコースの紹介にすぎませんが、私はすべてがとても好きな素晴らしい先生に出くわしました。私たちに与えられたすべてを解決し、クラスメートと競争してすべてをより速くしました(そしてもちろん正しく)。 確かに、これらのクラスに参加する価値はあります。特に、この拠点は大学で役立つので、

-確率論。 統計

これらの2つの分野は、マットの基本と同じ教師によって教えられました。 分析。 つまり 素晴らしかった。 これらの講義は、大学でのあなたにも役立ちます。







-コンピュータシステムアーキテクチャ

コンピュータが物理レベルでどのように機能するか、作業時にハードウェアに何が起こるかなどを理解する絶好の機会です。マイクロコントローラ、プロセッサなどのアーキテクチャを構築する原理も考慮されます。LogiSimプログラムで作業し、そこで実際の作業を実行することも可能です。







残念ながら、私たちは非常に怠laな先生に出くわし、ほとんど何も理解していませんでした。 彼は絶えずラップトップにこだわっており、「バックログ」で、彼自身がどうすればいいか分からない仕事をしました。 それは起こります、何もできません。

-オペレーティングシステム

オペレーティングシステムのコースでは、実際、最新のオペレーティングシステム(Linux、Windows、リアルタイムシステムなど)の作業を考慮しています。 実験室のものもあります。







完全ではありませんが、Linuxのシグナル、オペレーティングシステムを構築するためのさまざまなアーキテクチャ、そしてvimで動作することを学びました!

-ネットワークと通信システム

ネットワークのコースはプログラマにとって必須です。 マスクとは何か、またはネットワークアドレスとホストアドレスの違いがわからない場合は、黒い羊のように見えます。 ここでは、ネットワーク用語の基本概念、トポロジが考慮され、作業はCisco Packet Tracerで構成され、実際の機器の構成も含まれます。







2つの類似したテーマがあり、両方ともネットワークについてでした。 1人は怠け者の先生を「アーキテクチャ」から導きましたが、2人目は非常に有用なことを教えてくれました。 私はこれらのクラスから最大のものを絞り込もうとし、私ができるすべての仕事をしました。 間違いなく規律が好きです。

-システムプログラミング

システムプログラミングコースでは、低レベルのアセンブリ言語プログラミングを扱います。 私の大学ではMASM611でした。 プログラマーの観点からコンピューターで何が起こっているかについてさらに学びたい人のための有用な入門コース。 実験室、理論-すべて「風水」による。







たとえば、通常の言語では、配列の最初の要素のインデックスがゼロから始まるのはなぜですか?


答え

インデックスは配列要素の型のサイズによるメモリ内の単なるオフセットであり、最初の要素はすでに先頭にあるためです。







-アプリケーションプログラミング

このコースは必須ですが、カリキュラムは各教師が独自の方法で選択して実施します。 完全に異なるプログラミング言語から選択できます。 実際、プログラマーにとって最も重要なコースです。







とても面白い(悲しい)物語がありました。 私たちは、実際の経験を持つ新しい教師がこのコースを教えると言われました。 彼女(教師)が20年前にある工場でアセンブラーでプログラミングしたのは最後で、授業の仕方をまったく知らなかったことが判明しました。 そして、私はそれの代わりにC#でコースを実施することを提案しました。 クラスの準備(Mytishchi School of Programmersの素晴らしい教師の助けを受けた)は、課題、実験室、コントロール、宿題を思いつきました。 最初の学期に、私も試験を受けました。 満足です!

UPD:実際、教師ではなく学生が継続的に学期中にカップルをリードする場合、これは非常に悪い状況です。 教師の低い資格について話します。

-情報セキュリティ

散布が大きすぎるため、これを実施する方法について明確な計画はありません(大学では通常、これは別の方向です)。 期待値をゼロにリセットします。







哲学、経済学、経営、ドキュメンテーションなどのテーマは検討する意味がありません。これは、私が学習に時間を費やしたいものではないからです。 ちなみに、私たちは専門的な主題よりもこれでbeatられました。これは恐ろしいことです。 大学のカルマでは大きなマイナスです。







: , – . つまり ! - . , , , , - . , .







:







, ( - , ). ( ). ( ). . . . 絶対に。 . , . , . . , , , (, , .. ).







— , , , . , - front-end . , , — . .







UPD: . .







. . (, - ), , . , , - . 4 , , , CTF , - ( ) , (99%), , , .







3 – . .



. . , .







  1. – . , . , ( ).
  2. , . , , .
  3. 数学 — .
  4. , .
  5. , .


:







  1. . (4-5 )
  2. .
  3. .
  4. .
  5. , .


, . はい、できます。 , , , , , , .

, .







UPD: : « » IT , .







. :









, — . .







: C# , , big data, . “” “” .







:









“” “”.

注意! . .







(01.03.02)



“”. : , , (. ), . , , , ( ).







, , , , .







, , . , , ,







, , , “ ” :







  • 離散数学
  • アルゴリズムとデータ構造
  • データベース
  • /
  • (50/50)


  • ( , ):
  • 機械学習
  • ,
  • システムプログラミング
  • -
  • データ分析
  • コンピュータービジョン
  • ( , )


, , . つまり , data scientist ( ), ( ..). , , ( ) .

, . , , , .

2017 2018 (2017/2018/):

– 295/295/310 (+)

– 298/297/310 (+)

– 422/425/510 (+ , + )

. – 277/268/310 (+)

– 309/283/310 (+)

– 266/263/310 (+)

– 253/249/310 (+)

* , . (). , ( ) 2018 . , ( , , .. ).







“”. つまり , , .







(02.03.01)



, : ( ).













  • 離散数学
  • -


. , , , , . , , . , .

2017 2018 (2017/2018/):

– XXX/273/310 (+)

– 251/246/310 (+)







“”. “”, .







(02.03.02)



— .







,







  • 離散数学
  • アルゴリズムとデータ構造
  • コンピューターネットワーク
  • C++ ( )
  • XML, UML
  • ( , ..)
  • データベース


. , . , , . , , . , .

PS , , .

2017 2018 (2017/2018/):

– 267/264/310 (+)

– 258/254/310 (+)

“”, , “” .







, 9. , , — .







(09.03.01)



.







, , . ,







  • ( )
  • /
  • 線形代数
  • 離散数学
  • アルゴリズムとデータ構造
  • ,


何が見えますか? , , , . “” . , , , .



2017 2018 (2017/2018/):

– 389/410 (+, +)

– 257/263/310 (+)

. – 275/278/310 (+)

– 272/272/310 (+)

– 255/249/310 (+)

“” “”. . , , , “”.







.







(09.03.03)



— .







. ,







  • 経済学
  • -
  • UML
  • 数学
  • 離散数学
  • コンピュータサイエンス
  • ソフトウェア工学
  • データ管理
  • データベース
  • プログラミング
  • アルゴリズムとデータ構造
  • -


, . , ? .

2017 2018 (2017/2018/):

. – 272/274/310 (+)

– 285/282/310 (+)

“”, .. , ó , .

PS : , “ ” ( , ).







— .







(09.03.04)



— .







, . , , ,







  • 離散数学
  • -
  • アルゴリズムとデータ構造
  • データベース
  • -


  • :
  • システムプログラミング
  • データ分析
  • Mathlab
  • (Android / iOS) —


, " " , , , , . . . , , . , . , , , data scientist, , , / . .







2017 2018 (2017/2018/):

– 296/296/310 (+)

. – 275/287/310 (+)

– 282/284/310 (+)

– 282/281/310 (+)

– 259/262/310 (+)







"", , , .







: , , -2017 , () , , , IT







UPD: , . ! – . . .










. , "Computer Sceince", . , , .







, .

- "" . , , ( ), . - , "" .







PS , :







, .

, ( , 300/400 ) , , .







, , , . ( ). . .

, ( . )...







, IT



UPD: , .







,

, .



, , (, ), ?

, , , . , 10 , , ...







? ?

, , , ( ), . 9 , ( -).







?

, , .







?

, , ) 6 + 4







?

, :)







? , ?

, , , : 96+84+84+71, 80/100







? ?

, ( ( , -)), , . , .







, ?







? ? ?

*, . , – , ( ) – data science :) : ( Linux) – , , .







, , . , ( , , – ). ( , , , ).

– , .*







//?

, ( )







, , ?

— ( ), () . . , , , , , () .







, ?

, , , . , — , ( , — , ////etc. )







- ?

– ( 40 ), . , 40 . - , , – .







, , ?

* . , , , . , – ( , , – . , , , .

, ( , , , , // ) . , , , - . – ( - – , Samsung ), , , , , . , .

– ( https://cs.msu.ru/departments ) – , . , , .

, . , , - , ( , – , ( Bushwhackers ), ). , , .*







.

?

, 4 .







, , .







: ?

, , — , , ( ); , . - "", . , — , .







?

— (, ) . , , — , — , ; ( -, ). — , () .







, ?

, , , – , , .







インタビューありがとうございます!







, Booking.com

.

, , (, ), ?

-, 104 (1- ), 653( 2- 7- ), 664 ( , 8- 11- ). , . , .

? ?

1 1 , :)

(, )?

.







:

?

いや

?

. 4.

? ?

( , ). .







...

?

, , – :)

, , ?

. , ( 10 ). , (, ). つまり .

, ?

, . , . .

, ?

, , .

/ ? ?

, . .

?

2000-, :)

- ?

, :)

, , ?

, 11 . . , . - , .







:

? , ?

, . Booking.com. . 3 .

, /?

. , . , .

, ?

Computer Science, (Android ), .







:

: ?

, . .

, ?

. , .







, !







,

, , (, ), ?

, : , . , .

? ?

, , . , .

?

, .

(, )

. :







:

?

, .

?

, , . , )

? , ?

, . 75, , , . , — .

? ?

, . .







:

/?

.

, , ?

, , , .

, / ?

, . , .

, ?

, .

/ ? ?

, . , 3-5% , . , , . , , :)

?

いや

- ?

. , , .

, , ?

, , . , . , . , . , .







:

? , ?

3 , , , .

, /?

.

, ?

.







:

: ?

. .

?

, , . , , .

, ?

, . .







,

:

, , (, ), ?

1563 .

? ?

, — .

?

.

(, )?

.







:

?

.

? , ?

, .







:

/?

.

, , ?

, , ( ).

, / ?

.

, ?

.

/ ? ?

3 .

?

いや

?

, .







:

? , ?

, 2 .

?

.

?

, .







:

, ?

.

: ?

.

, ?

.







, : , , , . – . , .







, / . (PS : https://docs.google.com/spreadsheets/d/1utkv_GnvsU378ktW-Ztlcjdqb7zp8PCYShEBZOuLyjc/edit?usp=sharing )







警告!







よくある質問

:







  1. . , - , - , .







  2. . , - , .







  3. - , , , !







  4. – . , !









: https://goo.gl/forms/W7DGa1htfFCZlzOD3

UPD: , !









, 4 5, : , /.









, . , 01.03.xx 02.03.xx 09.03.xx. 17% , . , , . , ( ) , .. , , , .







: - , - HR , , – . (), C# . つまりインタビュー対象者の気分は、聞いた学校の名前に大きく依存していました。個人的には、Leroy、Copter Express、MTS、Yandex(そうですね)、Lanit BPM、Delta Solutionsなどの企業でこれに気付きました。他の小規模企業は、あなたの高等教育またはあなたが3年生であるという事実の確認なしに、個人的な会合にまったく招待されません。電話をかけるためにどこかで解体する必要さえありました。結局、私は大学生としてこれらの会社の1つで切望された仕事を得ました。確かに私が理解したことの1つは、あなたの背後に良い基盤とまともな大学を持っていることは大きなプラスになるだけだということです!







ご質問、説明がありましたら、コメントでお願いしますので、迅速に対応できます。








All Articles