私自身について
学生として、私は18歳の時のように私の職業がバラ色ではないことに気付きました。 したがって、私は適切なお金を稼ぐ方法について考え始めました。 また、1Cで当時のいとこがどのように狂ったお金を手に入れたかについての話を聞いた後、私は自分の人生をITにつなげることにも決めました。
当初、これらはデザイナーとワードプレスのテンプレートサイトでした。その後、SEOを開始し、ある時点でHabrに出会い、その後本格的なプログラマーになることを決めました。 私は高等数学を持っていなかったので、必要のない球体、つまりWeb開発を選択することにしました。
明らかな質問がありました:どの言語を選択するか-php / python / ruby。 Habréで十分な記事を見た後、phpに対する嫌悪感を読み、Yandexの動機付けのビデオをいくつか見ました。 Pythonを選びました。 この言語の利点は知っていると思いますので、お話ししません。
一次言語トレーニング
語学トレーニングとメインの仕事を組み合わせたので、本を読んで、チュートリアルを見て、夕方には小さなプロジェクトを見ました。 一般的に、私は年間
1)勉強した本:
- Mark Lutz-Pythonの学習
- Mark Lutz-Pythonプログラミング
- チャド・ファウラー-プログラマーの狂信者
- ビル・ルバノビッチ-シンプルなPython
2)Djangoでウクライナ/ブルジョアの著者から多くのビデオを学びました
3)codeacademyからコースに合格した
4)PyCharmをマスターした
最初のプロジェクト
次に、非常に具体的なトピックに関する小さなサービスのアイデアを思いつきました。Python+ Djangoの知識を統合するために、それを行うことにしました。
サイトを作成するには
1)勉強した本:
- John Duckett-HTMLおよびCSS。 ウェブサイトの開発と設計
- デビッド・フラナガン-JavaScript。 詳細ガイド
- ベンフォート-独自のSQLをマスターします。
2)私のタスクのためにDjangoドキュメントを調べた
3)Django Gunicorn + nginx + centOSでのプロジェクトのデプロイを勉強しました
最初の通常のプロジェクト
最初の適切なサイトが失敗した後、価値のあるものを作成することを決め、アイデアを選択し、実装スキームを選択して、夕方の3か月間作成しました。
このプロジェクトは、その実行可能性を示しています(今日まで、私はいくらかのお金をもたらしています。 そして、私はすでにそれをもっと良くすることに決めました。
「Percival H.-Pythonを使用したテスト駆動開発」という本を読んだ後、まずDjangoコンポーネントに基づいてテストを作成することにし、次にセレンのドキュメントを作成し、すでに外部テストを実行しました。
かっこよくなりたい
Python-Django開発者のために空席を開いたので、私はそのような空席に通常必要とされる他のものを調べました:
- Django Rest Framework
- セロリ
- 竜巻/ツイスト/ asyncio(選択肢は1つのみ)
- クラスベースのビューDjango
- 角度/反応(1つから選択)
これらのことを知る/試すために3か月を費やした。 また、標準のPythonライブラリ+ beautifulSoupを解析するための外部ライブラリも作成しました。
C / C ++なしでは動作しません
C / C ++の知識がなければ、プログラマは自分をプログラマと呼ぶことはできないと考えられています。 そのため、暇なときに本に精通しました。
- Brown Kernighan-Cプログラミング言語
- スタンリーBリップマン-C ++プログラミング言語。 ベーシックコース
私は本を読み、コードをいじり、コンパイルを見て、コード例を見てました。 一般に、リンク、ポインター、並べ替え、OOP、および要素の処理速度が異なるさまざまな配列(その位置に応じて異なる)について言及するとき、私は大きな目を向けませんでした。
戦いの準備ができました!
そして、ここで最も重要な瞬間に来ます。 合計2年を費やして、上記で説明したWebプログラミングのすべての要素を学びました。 私は、Python Web開発者としての資格を得る準備が十分に整っていることに気付きました。 もちろん、私は何かをあまりよく知りませんでした、何かは表面的なものでしたが、まったく知りませんでした(たとえば、フラスコ)が、私の一般的な理解とスキルは悪くありませんでした。
そして、ここでPythonの問題が始まりました。ほとんどの場合、人々は注意を集中しません。 すなわち、ジュニア/プレミドルレベルのPython開発者のビジネスの需要に応じて。
この質問で私は市場に参入しました
一見Pythonには多くの欠員があるように見えますが、詳細が始まると、すべてが劇的に変わります。
1.すぐに空席の大規模なスクリーニングが行われます。Pythonは排他的な補助言語です。 ほとんどの場合、これらはJava開発者、システム管理者、QA自動化の役職です。 また、現在、数学学習+ R言語が必要なData Learningに大きなドロップアウトがあります。 1つのPythonでは、この欠員を拾うことはできません。
2.私の都市には、Pythonに欠員はないということが判明しました。 エリア全体に検索範囲を広げることで、満足のいく結果も得られませんでした。 Pythonが「プラス」になる予定のPHPでのいくつかの仕事。 過去3年間にフィルターを開いた後、Pythonに空席がまったくないこともわかりました。 つまり 地方の企業は、多くの場合、Pythonよりもシンプルで人気のあるテクノロジーを選択します。
3.一般的な検索エンジンでPythonの空席を開いて、次の傾向を発見しました。
- 空室の90%+はモスクワまたはサンクトペテルブルクにあります
- 空室の90%+は中級+ /上級レベルを必要とします
- モスクワまたはサンクトペテルブルクのジュニア空室の100%(ほとんどの場合、巨人から)
言い換えれば、サンクトペテルブルクのモスクワに住んでおらず、それらを「征服」するつもりがない場合、実際に最初の仕事を得る場所がないということが判明しました。
もちろん、カザンなど、Pythonがまだ使用されているセンターがいくつかあります。 しかし、ほとんどの場合、これはある種の1つの会社であり、Jobsではそれは非常に中高年でもあります。
4.現在のレベルまで削除を検索するオプションも、雇用主がそのようなリスクを負う準備ができていないことを示しました。 少しの経験+ udalenka =これはある種のファンタジーです。
それにもかかわらず、私はまだいくつかの選択肢を見つけることができましたが、すでに最初のインタビューで、これは次のようなナンセンスであることが明らかになりました:「あなたは私たちと一緒に仕事をする3ヶ月があります。 最良の選択肢ではありません。
5.大企業の数人の人事と話をしたところ、彼らはこの傾向を表明しました。 「私たちは通常、1年からPythonの経験がある人と、別の言語(3年以上)の経験がある人を連れています。 ほとんどの場合、php / Java。」 言い換えれば、彼らはPythonだけを持っている人を連れて行くという選択肢をまったく考慮していませんでした。
6.プロファイルフォーラムのメンバーと話し合った結果、これはかなり典型的な状況であることが明らかになりました。 彼らの話から、無駄な検索の後、人々はphp / 1cで作業するか、何らかの形で後処理/自分のプロジェクト/テスト自動化を行ったことが明らかになりました。
しかし、ケースからケースに再び。
一般に、Pythonは強力なプロジェクトを実行できる優れた言語であることが判明しました。 そして、彼らの集中が首都にあるということはたまたま起こりました。 そして、これらは複雑なプロジェクトであるため、従業員はすでに中間レベルで必要です。 Pythonを学んだばかりの人は、そのような仕事に就く準備ができていますか? 難しい
しかし、別の方法があります!
現時点では、私の都市でのみ、さまざまなレベルのPHPに24の空きがあります(現在のサイトを維持する必要のある小さな会社から始まり、機能の一貫した拡張を提供する電子商取引の巨人で終わります)。 そして、1Cでほぼ同じ空室。 そして、これらの欠員の約半数は、少なくともプログラミングの何かを知っている人を受け入れる準備ができています。 ほとんどの場合、これらは最良の場所ではありませんが、これは最初の作業であり、その後は公式にHRの経験を持つプログラマーになります。
最後に
クールなPythonプログラミング言語を学び、路上に留まることができます。 または、「嫌われた」PHP / 1cを学び、仕事を終わらせることができます。 もちろん、この作品の質には多くの疑問が残されていますが、これはすでに経験です。
私に関しては、私の状況では(モスクワ/サンクトペテルブルクには行かない)、実際に言語を学ぶことに時間を費やしました。 私はその場で、または遠隔地で仕事を見つけることに成功しませんでした。 今、私はphpに向かっています。
したがって、サンクトペテルブルクのモスクワに住んでいない場合、工科大学の学生ではない場合、Pythonを第一言語で学ぶことはお勧めしません。 PHPに注意してください-PHPには常に場所があり、仕事があり、経験があります。 そして、さらなる開発パスはあなたのものです。
PS友達が私に言ったように、Rubyでもほぼ同じ状況があります。 しかし、ここでは自信を持って話すことはできません。