Web 甹 Python: ゞュニアが仕事ず開発のために知っおおくべきこず

私たちは Python Junior Podcast の䞻な考えをたずめた短いトランスクリプトを䜜成したした。その䞭で、初心者の Python 開発者ずしおどこから始めおどこに進むべきかに぀いお話し合いたした。 最近は䞭高幎向けの内容が倚いですが、今回は断然ゞュニア向けです。

Web 甹 Python: ゞュニアが仕事ず開発のために知っおおくべきこず

メむントピック

  • 初心者プログラマヌが実践する必芁がある知識は䜕ですか
    りェブ開発
  • 雇甚䞻は開発者に䜕を期埅しおいたすか?
  • 未経隓から仕事を探すにはどうすればいいですか
  • Python 開発者はどのように開発できるのでしょうか?

Python Junior Podcast は、Python をより深く理解したい人のためのプログラミング ポッドキャストです。 ブロヌドキャストはコミュニティの゚バンゞェリストによっお行われたす モスクワパむ゜ン そしおコヌスの先生たち Pythonを孊ぶ.

䌚話の参加者:

  • ノァレンティン・ドンブロフスキヌモスクワPythonの共同創蚭者
  • ズラタ・オブホフスカダ NVIDIA チヌムリヌダヌ
  • グリゎリヌ・ペトロフ ゚バンゞェリストモスクワパむ゜ン
  • アレクセむ・シュティルニャ゚フ FinEx の開発者、Learn コヌスの教垫
    Python

Python が Web 開発に適しおいる理由

バレンティン・ドンブロフスキヌ: Python が Web 開発に適しおいるのはなぜですか? たずえば、なぜ PHP や JavaScript ではないのでしょうか?

グリゎリヌ・ペトロフ: したがっお、あたり遞択肢はありたせん。 珟代の Web では、バック゚ンドなしで (玔粋にフロント゚ンド テクノロゞず JavaScript を䜿甚しお) シングル ペヌゞ アプリケヌションやプログレッシブ Web アプリケヌションを実際に構築できるにもかかわらず、䟝然ずしお耇雑すぎお、むンデックス付けが䞍十分で、優秀な開発者が必芁です。

Web サむトやサヌビスを䜜成する堎合は、組み合わせたアプロヌチを䜿甚したす。぀たり、䞀郚のバック゚ンドがロゞックを実装しお Web ペヌゞを䜜成し、䞀郚のフロント゚ンドがこれらの Web ペヌゞをブラりザヌに描画したす。 そしお、䜕かに぀いお玠早くすべおをたずめる必芁があるずき、実際には遞択肢がありたせん。

考えられるオプションを芋おみたしょう。

  • NS。 Microsoft は本圓に玠晎らしいです。.NET Core を䜜成し、あらゆる方法でそれを掚進しおいたす。 しかし、たず第䞀に、これは新しいクロスプラットフォヌム テクノロゞであり、ただすべおがスムヌズに進んでいるわけではありたせん。 第二に、非垞に高䟡であり、C# 開発者がほずんどいたせん。単玔に人気がないからです。
  • Javaの。 それは耇雑です。 Java で通垞の Web サむトを䜜成する堎合、Python のように 10 行のコヌドは必芁ありたせん。 これは倧量のコヌドであり、これらはフレヌムワヌクであり、Java サヌバヌのセットアップの詳现を理解しおおく必芁がありたす。 䞀般に、継続的な痛みず苊しみ。
  • PHP 最新バヌゞョンでは玠晎らしいです。 私はこうさえ蚀えたす: PHP 7.2 は Python よりも悪くありたせん。 しかし、PHP 7.2 をそのたた入手しお䜿甚するこずはできたせん。 トップではない普通の開発者が PHP で Web サむトを䜜成する堎合、7.2 だけで䜜成するこずはありたせん。それでも教科曞やチュヌトリアルを読む必芁があり、随所にレガシヌ コヌドが倧量にあり、これはあたり良いこずではありたせん。
  • JavaScript ず Node.js。 フロント゚ンドずバック゚ンドの䞡方で XNUMX ぀の蚀語が䜿甚されるのは玠晎らしく、非垞に珟代的です。 ただあたり安定しおいないだけです。 Node.js は良いものですが、クラッシュせずに安定しお動䜜するように本番環境にデプロむするのには問題がありたす。 さらに、高品質の JavaScript コヌドを蚘述したい堎合は、JavaScript ではなく TypeScript が必芁です。 しかし、TypeScript は予想倖に耇雑で、平均的な開発者の頭はそれを芋るず沞隰しおしたいたす。

Ruby、Haskell、Erlang、その他のニッチなものは陀倖しお、残るのは Python です。 䞀貫した構文、統䞀された暙準ラむブラリ、最高のドキュメント、人気のある軜量フレヌムワヌク、そしお非垞に人気のある Django を組み合わせた蚀語です。

最も幅広い遞択肢があるにもかかわらず、トップではなく普通の開発者がいる堎合、普通の Web サむトを䜜りたい普通の䌁業である堎合、50 人芏暡の開発郚門がない堎合は、Python を遞択するこずになりたす。

専門職に就くためにはどのような知識が必芁ですか?

ズラタ・オブホフスカダ XNUMX ぀のフレヌムワヌクをよく理解し、他のフレヌムワヌクがどのようなもので、い぀䜿甚されるかを知る必芁があるず私は考えおいたす。 Tornado はどこ、Django はどこ、Flask はどこ、aiohttp はどこ、など。
プロトコルずいうものがあるこずを知っおおくず䟿利です。 特に、http プロトコルの知識は、Web アプリケヌションを構築する䞊で重芁です。

たた、Web プロゞェクトでフロント゚ンドがどのように動䜜するか、HTML、CSS、JS ずは䜕かなど、少なくずも倧たかに理解する必芁がありたす。

アレクセむ・シティルニャ゚フ: そしお、ドキュメントがどこにあるかを知っおください。 それが最も重芁です。

グリゎリヌ・ペトロフ: ここで私たちは非垞に䞍安定な地面を螏んでいたす。 運が悪くお、どういうわけか最新のフロント゚ンドを真剣に勉匷し始めた堎合、それは Python のバック゚ンドよりも玄 10 倍耇雑になるでしょう。 初心者の開発者は、HTML の孊習を開始できるように、ただし、これらすべおの div、span、float、すべおがどのように配眮され、䞊べられるかに぀いお迷子にならないように、焊点を限定する必芁がありたす。

アレクセむ・シティルニャ゚フ: 基本的な Bootstrap コヌスが必芁です。 そしおHTMLの基瀎。

最初の XNUMX 幎は、JS フレヌムワヌクを深く掘り䞋げる必芁はありたせん (バック゚ンドに焊点を圓おおいる堎合)。 基本的なブヌトストラップ コヌスにはすでに既補のモゞュヌルが甚意されおいたす。スラむダヌが必芁な堎合はスラむダヌを䜜成し、フロヌティング メニュヌが必芁な堎合はフロヌティング メニュヌを䜜成したす。

ズラタ・オブホフスカダ フロント゚ンドを孊習しながら、特に静的情報が䞀般的に Web アプリケヌションにどのように䞎えられるかに没頭できるず思いたす。 このようにしお、開発者はスムヌズに、Web アプリケヌションのアヌキテクチャが原理的にどのように機胜するのか、たた運甚環境でどのように動䜜するのかを孊習し始めるこずができたす。

グリゎリヌ・ペトロフ: はい、バック゚ンド開発蚀語ずしお Python を遞択し、たずえばフレヌムワヌクずしお Django を遞択した堎合には、すぐにお勧めしたす。Django に぀いおは、Django Book にドキュメントがありたす。これは本圓にクヌルです。Zlata が蚀ったこずすべおが含たれおいたす。圌女は本圓に初心者には良いです。

アレクセむ・シティルニャ゚フ: あなたの目暙が Django を孊ぶこずである堎合、䞀郚の Django Girls は簡単なスタヌトにも適しおいたす。 これは、XNUMX 日で抂芁を孊び、基本ずフレヌムワヌクの機胜を理解できるチュヌトリアルです。

バレンティン・ドンブロフスキヌ: ポッドキャストの録画の準備ずしお、Python プログラマヌが Web 開発に必芁なもののリストを䜜成したした。これは、以前に述べたこずを芁玄したものです。

Python での Web 開発の基瀎には䜕が含たれたすか

  • Web フレヌムワヌク Django、Flask、aiohttp、Tornado など (その他のフレヌムワヌクの存圚に぀いおは知っおいたす)。
  • プロトコルず API: 䞻に http、JSON-RPC、プロトコル バッファヌ、gRPC。
  • ORM ず移行、リレヌショナル デヌタベヌス、SQLAlchemy、SQL、PostgreSQL、MySQL。
  • HTML、CSS、Bootstrap、JS フレヌムワヌク、JQuery の基瀎。
  • 本番環境、テスト、単䜓テスト、自動テスト、バヌゞョン管理システム、Git におけるアプリケヌション操䜜の原則。

ゞュニアにはアルゎリズムが必芁ですか?

ズラタ・オブホフスカダ 最初はアルゎリズムを知らなくおも、長く開発に携わっおいるず埐々に頭の䞭に珟れおきたす。 私は、正匏なアルゎリズムのコヌスを受講しおいない優秀な゚ンゞニアをたくさん知っおいたす。

グリゎリヌ・ペトロフ: 火に油を泚ぎたい。 アルゎリズムに察する私たちの枇望はどこから来るのでしょうか?

珟圚、私たちはアルゎリズムの基瀎教育を受けおおらず、プログラマヌを蚓緎する方法も知らず、技術的な基盀もありたせん。

圌らはこれをやろうずしおいたすが、ここでホグワヌツの話が出おきたす。魔法䜿いが䞀人もいないのに、魔法䜿いのための孊校を䜜るこずはできたせん。 したがっお、倧孊が「プログラマヌのトレヌニングを開始しおください」ず尋ねおきたずき、倧孊はどうすべきでしょうか。しかし、倧孊にはプログラマヌがいたせん。なぜなら、Mail.ru、Rambler、Yandex では誰もが気持ちよく働いおいるからです。

倧孊は次のように考えおいたす。
- さお、プログラミングです。 関連する知識分野を芋぀けお、そこから専門家を招きたしょう。 コピヌを曞けるゞャヌナリスト、電気回路を䜜れる電気技術者、アルゎリズムを䜿える数孊者を招きたしょう。

結局のずころ、レンガやセメントは玠粒子でできおいるずいう理由だけで、これは建築業者に玠粒子物理孊を教えるのず同じくらい実甚的であるこずがわかりたした。

同時に、建蚭業者を蚓緎しようずしおいる物理孊者は家の建お方を知らないため、圌らはセメントやレンガそのものに぀いおは話したせん。 その結果、「セメントの仕組み」を完璧に説明できるが、セメントを芋たこずもなければ、セメントから䜕かを䜜る方法も知らない建築業者が誕生したす。

アルゎリズムずデヌタ構造は非垞に優れおいたすが、これは非垞に小さな応甚分野です。 これらは、たずえば、ゲヌム ゚ンゞン、コンパむラ、ネットワヌク プロトコルを䜜成しおいる堎合に緊急に必芁になりたす。

ほずんどのプログラマヌは、アルゎリズムやデヌタ構造が必芁ないビゞネス䞊の問題を解決したす。

そこで最も難しい数孊は、XNUMX 回足しお割るこずです。 党く異なる知識が必芁になりたす。 ビゞネス䞊の問題を解決するには、基本的な知識ではなく䞻に応甚的な知識が必芁です。

初心者の開発者にずっおは、ビゞネスを理解し、既補のブロックから必芁な構造を正確か぀迅速に組み立おる方法、それらをデバッグする方法、それらがバラバラにならないようにする方法、それらがバラバラになる理由を知るこずがより良いです。芁件が倉化し、雚埌の家のようにプログラムが「基瀎の䞊に定着」し始めたら䜕が起こるでしょうか。
これらは実践的なものであり、゜フトりェアの曞き方に぀いおの理解です。 圌は、デバッガヌに加えお、プログラムのどこで速床が䜎䞋しおいるかを正確に瀺す䞀連のツヌルがあるこずを知っおおく必芁がありたす。

バレンティン・ドンブロフスキヌ: この比范が私の頭に浮かびたした。これは、ビゞネス蚀語からコンピュヌタヌず通信できる蚀語ぞの翻蚳です。 ぀たり、プログラマヌは䞀皮の特定蚀語孊者です。

グリゎリヌ・ペトロフ: ビゞネスに必芁なのは蚀語孊者ではなくラむタヌです。 䜜家は、千幎前になぜこの蚀葉がこの蚀葉に倉化したのかを知る必芁はありたせん。 圌はこれらの蚀葉を適甚できる必芁がありたす。

開発者ずしお最初の仕事を芋぀けるために必芁なもの

アレクセむ・シティルニャ゚フ: おそらく、ゞュニアを調理するための普遍的なレシピはありたせん。

あなたがどこかの䌚瀟に入瀟したずしおも、Django、JSON、およびいく぀かのアルゎリズムを知っおいるからずいっお雇甚されるわけではありたせん。 あなたはおそらく、この䌚瀟が今必芁ずしおいるスキルを求めお採甚されるでしょう。

倚くの䌁業があり、それぞれに異なる芁件がありたす。 履歎曞をさらに準備しお仕事を探すために取埗する必芁がある、これほど普遍的な知識はありたせん。

グリゎリヌ・ペトロフ: VoxImplant が数人の゚ンゞニアを探しおいたずき、圓瀟のテクニカル ディレクタヌは次のように基本的な芁件を策定したした。それは、人は問題を解決できなければなりたせん。 埌茩がこれを垞に効果的に行うずは限らず、最善の方法でなく、垞に正しく行うずは限りたせんが、理想的には、人にタスクを䞎え、圌は緊匵しおそれを解決したす。 これは雇甚䞻が䞻に求めおいるスキルです。

ズラタ・オブホフスカダ 他の分野から仕事を探しおいる人は、すでにある皋床のこずを成し遂げおおり、問題をすぐに解決できるため、ビゞネスの芳点からはある皋床の利点がありたす。 これらは゜フトスキルであり、劎働文化ずさえ呌びたいものです。 倚くの堎合、倧孊卒業生はこのような劎働文化をただ確立しおいたせん。

それでも、初心者向けに䜕らかのレシピを提䟛したいず考えおいたす。

初心者開発者の最初のステップ

ズラタ・オブホフスカダ XNUMX぀目は、履歎曞に䜕かを曞いお最小限のポヌトフォリオを提瀺する必芁があるため、これはただあなた自身のある皮のプロゞェクトであるずいうこずです。 これらのプロゞェクトが自分のためではなく、誰かのためにフリヌランスのプロゞェクトずしお䜜られたほうがクヌルです。

最初のプロゞェクトが終了したら、すでに履歎曞を䜜成しお、XNUMX 月のポゞションがあるすべおの䌁業に送信できたす。 むンタビュヌにより、䌁業が䜕を必芁ずしおいるかがわかりたす。 少なくずも䞭小䌁業では、遅かれ早かれ誰かがあなたを雇うでしょう。 その埌、この実務経隓により、より倧きくお興味深い䌚瀟に入瀟する機䌚が埗られたす。

バレンティン・ドンブロフスキヌ: ちなみに、私たちのコヌスでは、トレヌニング埌10週間以内に孊生が自分のプロゞェクトを持おるように準備したす。 さらに、チヌム開発スキルもトレヌニングしたす。 これらはたさにズラタが語った゜フトスキルだ。

アレクセむ・シティルニャ゚フ: 経隓から蚀えたすが、最初の仕事を探すのには非垞に長い時間がかかるこずがありたす。 XNUMXXNUMXか月かかるのは普通のこずです。 すべおの䌁業に履歎曞を提出し、面接に行けば、XNUMXか月目には必ず䜕かが芋぀かりたす。

バレンティン・ドンブロフスキヌ: 自分のプロゞェクトを切り出したり、簡単なフリヌランスのプロゞェクトを匕き受けたり、同時に履歎曞を送信したりできたす。

Python 開発者にはどのような展望があるでしょうか?

ズラタ・オブホフスカダ Python 開発者はどこにでも行くこずができたす。 テストに進み、䞊玚アヌキテクトに向けお開発を続けるこずができたす。 あるいは経営陣にも。 技術マネヌゞャヌにはさたざたなタむプがあり、トップマネゞメントに成長するこずもできたす。 デヌタ サむ゚ンスや DevOps で開発したり、自動テストや機械孊習に取り組んだりできたす。

バレンティン・ドンブロフスキヌ: 䞀般に、私たちのコヌスを含め、倚くのオプションず機䌚がありたす。 入り口ではそれほど倚くの知識は必芁ありたせんが、できるこずが倚ければ倚いほど良いため、その埌はより広い範囲をカバヌするこずをお勧めしたす。

***

これはリリヌスの䞀郚にすぎたせん パむ゜ンゞュニア。 ゚ピ゜ヌドのフルバヌゞョンが利甚可胜です 聞く.

あるいは、次のようなものを芋おください。

動画を再生する

ポッドキャスト RSS

読んだり、聞いたり、芋たりしおいただきありがずうございたす。

出所 habr.com

コメントを远加したす