それで、あなたはプログラマーになることを決めました。
何か新しいものを作成することに興味があるかもしれません。
おそらくあなたは大きな給料に惹かれます。
アクティビティの範囲を変更したいだけかもしれません。
ポイントではありません。
重要- プログラマーになることを決めた。
今何をしますか?
そして、いくつかのアプローチがあります。
最初に :IT専門のために大学に行き、専門教育を受けます。 最も一般的で、比較的信頼性が高く、非常に長く、最も基本的な方法です。 まだ学校を卒業している場合、または次の1半期(最高の状態ですべてをその場でつかみ、2年目に仕事を始めることができる場合)から4(学校と仕事を組み合わせることはあなたのものではない場合) )年。
ここで知っておくべき重要なことは何ですか?
- 適切な大学を選択する必要があります。 トレーニングプログラム、評価をご覧ください。 良い指標は大学のオリンピックです。 大学チームが少なくとも定期的に上位10位の比較的大きなプログラミングオリンピックで開催される場合、大学でのコーディングは基本的ではありません(個人的にはオリンピックに興味がないかもしれませんが)。 まあ、一般的に、常識的なルール:バイカル州立大学の兄弟支部があなたを強力なフルスタックにすることはまずありません。
良い大学の例:モスクワ州立大学/サンクトペテルブルク州立大学(明らかに)、バウマンカ(モスクワ)、ITMO(ピーター)、NSU(ノボシビルスク)。 彼らのすべての卓越性にもかかわらず、トップ部門をマークしない限り、彼らの予算に到達することはかなり可能です。 - ユニユニバーサルではありません。 あなたはあらゆる種類のことを包括的に訓練されるという事実にもかかわらず、これは十分ではありません。 官僚主義のおかげで、訓練プログラムはほとんど常に現代のトレンドに遅れをとることになります。 せいぜい1〜2年。 最悪の場合-5〜10年。 違いを自分で補う必要があります。 さて、明らかなのは、他の学生と同等に教材を研究する場合、それぞれが同等の競争相手になります。 必要に応じて前に出れば、市場での見栄えはずっと良くなります。
- できるだけ早く仕事を探してください。 私は2年目から働き始めました。 大学の終わりまでに、私はすでにかなり中間の開発者であり、経験のない控えめな6月ではありませんでした。 卒業後、100kを稼ぐ方が30kよりも楽しいことは明らかだと思います。 これを達成する方法は? まず、ポイントAとBを参照してください。次に、会議、フェスティバル、会議、就職説明会に行きます。 市場を監視し、少なくともほぼ適性のある会社でパートタイムのジュニア/研修生を獲得してください。 有料の会議を恐れる必要はありません。生徒はそこで非常に良い割引を受けることがよくあります。
これらすべての点を守れば、卒業証書を受け取るまでに、職業経験と豊富な基礎知識を備えた非常に優れた専門家になることができます。 まあ、地殻はあなたが海外に行くことを計画している場合に役立ちます:彼らはしばしばそこを見る。
従わない場合...さて、フローに沿って進み、書き留めて、夜の試験の準備をすることでクラストを得ることができます。 しかし、あなたはどう思いますか? もちろん、トップ5のすべてを閉じる必要があるとは言っていません。 あなたは知識を得る必要があります。 常識を使用します。 興味深く有用なものを学びますが、成績は気にしません。
主なものは、彼らがあなたに詰め込もうとしているものではありません。 主なことは、それが興味深く、関連性があるということです
-
次に、 2番目の方法 : プログラミングコース 。 インターネットは、わずか3か月のクラスであなたをジュニアにするためのオファーで溢れています。 ここポートフォリオで、さらには仕事を見つけるのに役立ちます。 毎月1万回だけです。
おそらく誰かのためにこれは動作しますが、純粋に私見:これは完全なゴミです。 時間とお金を無駄にしないでください。 理由は次のとおりです。
ITから遠く離れている人は、3か月以内に職業の詳細を入力することはできません。 それはまったく何もありません。 たくさんの情報を学ぶ必要があり、理解するにはあまりにも多く、そして何が必要なのかを把握する必要があります。
それから彼らはあなたに何を売りますか? 「メカニカルスキル」が販売されます。 詳細をあまり理解していなければ、ここで正確な結果を得るために何を書く必要があるかが示されます。 詳細な指示と教師の助けを借りて、まだ何らかのアプリケーションを作成します。 1つ、最大2つ。 これがポートフォリオです。 そして、仕事を見つけるのに役立つのは、面接を受ける可能性が低い大企業からの求人を送信することです。
なぜそうですか? 簡単です。プログラマーが抽象的に考えることは非常に重要です。 プログラマーは、10億通りの方法で解決できる問題を解決します。 そして、主なタスクは、数十億の中で最も正確なものを選択し、それを実現することです。 指示に従って1つまたは2つのプロジェクトを作成すると、プログラミング言語の知識は得られますが、抽象的な問題の解決方法はわかりません。 類推:あなたがオリエンテーリングの訓練を受けることを約束され、一対の単純な観光ルートに沿って導かれ、そして冬にタイガを一人で征服する準備ができていると言うでしょう。 まあ、何、彼らはコンパスを使用し、マッチなしで火をつけることをあなたに教えました。
要約:短時間であなたを「運転」すると約束する人を信じないでください。 これが可能であれば、誰もが長い間プログラマーだったでしょう。
左:教えられること。 右:職場で何が必要か
-
3番目のパスは、多数派によって選択されたパスです。 自習 。
最も難しいが、おそらく最も高貴な方法。 さらに詳しく見ていきましょう。
プログラマーになることを決めました。 どこから始めますか?
まず、質問に答える必要があります。なぜこれが必要なのですか? 答えが「もちろん、これは特に興味深いものではありませんが、多くのお金を払っています」という場合は、ここでやめることができます。 あなたはここにいません。 あなたの意志が多くの情報をシャベルし、数千行のコードを書き、数百の失敗を経験し、それでも仕事を得るのに十分であるとしても、その結果として、職業への愛なしで、これは燃え尽きにつながります。 プログラミングには膨大な知的努力が必要であり、これらの努力がタスクに対する満足という形での感情的リターンによって促進されない場合、脳は遅かれ早かれ、何かを決定する能力を失望させて奪います。 最も快適なシナリオではありません。
興味があると確信している場合は、詳細を決定することができます-正確に何をしたいのか。 プログラマーがお互いにどのように異なるのかわからない場合は、Googleがお手伝いします。
すぐに忘れないように最初のアドバイスを書く:英語を学ぶ。 英語が必要です。 英語がなければ、どこにもありません。 まさか。 英語がなければ、通常のプログラマーになることはできません。 それだけです。
次に、ロードマップを作成することが望ましいです。ロードマップは、開発計画に従って作成します。 詳細を調べ、専門分野の空席を確認し、そこで使用されているテクノロジーを表面的に調べます。
バックエンドプログラマーのロードマップの例(もちろん、誰も対象ではありませんが、これは可能なオプションの1つにすぎません):
- html / cssの基本。
- Python 基本。
- ネットワークプログラミング。 PythonとWebの相互作用。
- 開発フレームワーク。 ジャンゴ、フラスコ。 (備考:どんな種類の「ジャンゴ」と「フラスコ」を理解するために、欠員を調べ、そこで必要なものを読む必要があります)
- Pythonの詳細な研究。
- jsの基本。
これは非常に繰り返しますが、 非常に大まかな計画であり、それぞれがそれ自体で巨大であり、多くのトピックが含まれていません(たとえば、コードテスト)。 しかし、これは少なくとも何らかの知識の体系化であり、あなたが知っていることとそうでないことを混同しないようにします。 学習の過程で、不足しているものがより明確になり、このロードマップは補足されます。
次に:学習する資料を見つけます。 主なオプションは次のとおりです。
- オンラインコース。 「6月3日」のコースではなく、1つの特定のことを教えます。 多くの場合、これらのコースは無料です。 通常のコースがあるサイトの例: stepik 、 coursera 。
- オンラインチュートリアル。 無料、シェアウェア、有料があります。 どこで支払うか、どこで支払わないかは、自分で判断します。 例: htmlacademy 、 learn.javascript.ru 、 django book 。
- 本。 たくさんあります。 選択できない場合は、次の3つのヒントを参考にしてください。 情報はすぐに古くなってしまいます。 O'Reillyのパブリッシャーは、かなり高いレベルの品質と通常のプレゼンテーションを備えています。 可能であれば、英語で読んでください。
- Mitapy /会議/講義。 情報の飽和という点ではそれほど有用ではありませんが、店内の同僚とコミュニケーションをとったり、現在の質問をしたり、友達を作ったりする能力という点では非常に有用です。 仕事を見つけることもあります。
- Google。 多くの人が過小評価していますが、いくつかの質問に対する答えを単に見つける能力は非常に重要です。 奇妙なものをグーグルでお気軽に。 ベテランの先輩でさえこれをしています。 何かについての情報を素早く見つける能力は、あなたがそれを知っているという事実と実質的に同等です。
さて、情報源を決定しました。 彼らと一緒に働くには?
- 注意深く読んでください。 疲れて読まないでください。 意味を掘り下げて、明らかと思われる瞬間をスキップしないでください。 多くの場合、明白なものから理解できないものへの移行は非常に迅速に行われます。 気軽に戻って読み直してください。
- 情報の概要を説明します。 まず、多くの情報がある場合にメモを整理する方が簡単です。 第二に、この方法で情報がよりよく吸収されます。
- ソースが提供するすべてのタスクを実行します。 いいえ、そうではありません。 ソースが提供するすべてのタスクを実行します。 単純に見えるものでさえ。 特に複雑すぎるように見えるもの。 行き詰まっている場合は、少なくともgoogle translateを使用して、 stackoverflowについてサポートを依頼してください。 タスクは理由のために書かれており、素材を正しく同化するために必要です。
- 自分でタスクを考えて、それらも実行します。 理想的には、実践は理論以上のものであるべきです。 素材をより密に修正すればするほど、1か月以内にそれを忘れない可能性が高くなります。
- オプション:読みながらクイズを作成します。 トリッキーな質問を別のソースに書き込み、1週間または1か月後に読んで回答を試みます。 うまくいきません。もう一度勉強してください。
そして、研究中の各テクノロジーについて、これら5つのポイントを繰り返します。 この方法でのみ(理論の徹底的な研究と実践の厳密な範囲で)、専門家になることができる高品質の知識ベースが得られます。
そして、すべてが単純であるように思えます。私たちは技術を一つ一つ学び、禅を理解し、仕事に行きます。 それはそうですが、そうではありません。
プログラミングを勉強するほとんどの人はこのようなことをします:
写真はここから正直に盗まれました
そしてここで、各ステップをさらに詳しく説明する必要があります。
開始 :知識がゼロです。 出発地。 これまでのところ、何も明確ではありませんが、おそらく非常に興味深いものです。 道は上り坂から始まりますが、軽いです。 すぐに登ります
ナンセンスのピーク : 「ほら、あなたは最初の数コースを修了しました!すべてが判明しました!」 この段階では、最初の成功からの幸福感が目を覆います。 あなたはまだ旅の始まりであるにもかかわらず、成功は近いようです。 そして、この成功を目指して、あなたはピットへの急速な落下がどのように始まるかに気付かないかもしれません。 そして、このピットの名前:
絶望の谷 :それで、あなたは基本的なコースを経て、いくつかの本を読んで、あなた自身のものを書き始めることに決めました。 そして、突然機能しません 。 すべてがわかっているようですが、これを組み合わせて機能させる方法は明確ではありません。 「何も知らない 」「成功しない」 この時点で、多くはあきらめます。 実際、本当に知識があり、どこにも蒸発していません。 明確な要件、サポートはなくなりました。 実際のプログラミングが開始されました。 目標はあるが中間段階がないスペースで操縦しなければならない場合、多くはst迷に陥ります。 しかし実際には、これはトレーニングのもう1つの段階に過ぎません。たとえ最初の10回はすべてが何らかの形で、多大な努力で見苦しくなります。 主なことは、少なくとも何らかの形で 、問題を何度も何度も完了することです。 11回目は、物事が簡単になります。 50年には、あなたにとって美しいと思われる解決策があります。 100分の1で怖いことはありません。 そして来て
啓発のスロープ :この段階では、あなたの知識と無知の端が明らかに現れています。 無知はもはや恐ろしくありません、理解はそれを克服する方法が表示されます。 ソリューションなしで宇宙での操縦が容易になります。 これがフィニッシュラインです。 スペシャリストとして不足しているものをすでに認識しているので、必要なものを仕上げて統合し、落ち着いた魂が入ります
安定プラトー :おめでとうございます。 これで終わりです。 あなたは専門家です。 あなたは働くことができます、あなたがなじみのない技術と会うとき、あなたは迷子になりません。 十分な努力をすれば、ほとんどすべての問題を克服できます。 そして、これがフィニッシュラインであるという事実にもかかわらず、これはさらに大きな道の始まりに過ぎません。
プログラマーの道。
それで頑張ってください!
オプションの読書のための文献 :
プログラマーになることとDunning-Krueger効果: tykについて 。
9か月でプログラマーになるためのハードコアな方法(すべての人向けではありません): tyk
トレーニング中に独立して実装できるプロジェクトのリスト: tyk
少し余分な動機: tyk 。