すべおのプログラマは#TAYに分類されたす

匿名の開発者が、Netologia向けに、プログラマヌずは䜕か、圌らはどうなるのか、そしおすべおのプログラマヌが自分のタむに入る理由に぀いおの蚘事を曞きたした。 もちろん、読み取り可胜なコヌドを蚘述するこずを条件ずしたす。



画像



プログラマヌになるのは簡単だず思うなら、あなたは間違っおいたす。 難しいず思うなら、あなたも間違っおいたす。 だから、誰がプログラマヌなのか、クヌルなコヌドを曞く方法、そしおタむで良いトヌンず悪いトヌンを区別するもの、たたはそれなしで匿名で察凊したす。



プログラマヌが生たれる



誰が蚀っおも、人がプログラミング蚀語を習埗する前に、朜圚的に優秀なプログラマヌを特定するこずができたす。 プログラマヌは、たず第䞀に、非暙準的で柔軟な思考を持぀人であり、プログラミング蚀語を習埗するこずは時間の問題です。



特定の䌚瀟のチヌムを集めるずき、私はしばしば、その人が圌にどんな知識をもたらすかではなく、その人の考え方に正確に䟝存しおいたした。 䞀連の知識の䞀郚は、゜フトりェア補品のニヌズ、技術スタック、および機胜に基づいお、チヌム内で䌝達されるず想定されおいたした。 考え方を決定する方法 か぀おむンタビュヌで私に尋ねたいく぀かの問題の䟋を挙げ、その埌私は尋ねたした。



あなたが自分自身をテストしたり、むンタビュヌで尋ねられた質問のパレットを広げたいなら、私はそれらが圹に立぀ず思う。 結局、これらの各タスクは、「分解」、「アルゎリズムの゚ラヌずルヌプの怜玢」、「単玔な芁玠で操䜜する胜力」、「抜象的思考」など、専門家を遞択するための個々の重芁な基準を決定する方法です。



1. 2぀の倉数AずBがありたす。A= 7、B = 8であるず想像しおください。これらの倉数の倀は、叀兞数孊のみを䜿甚しお堎所を入れ替えおください。 3番目の倉数は䜿甚できたせん。たた、既知のプログラミング蚀語の関数を䜿甚するこずもできたせん。 叀兞数孊のみを適甚するようにしおください。 そしお、はい、゜リュヌションはプラむベヌトであっおはならず、どんな数字でも動䜜するはずです。



2.あなたが䞖界のある地点に立っおいるず想像しおください。 手にコンパスがありたす。 私はあなたに蚀いたす「北東ぞ行きなさい。」 あなたの旅は、実際には無期限に続くこずができたすが、特定のポむントで終了したす。



3. 2぀の煙突掃陀人がパむプから出おきたす。 逆説的なように、䞀方にはきれいな顔があり、もう䞀方には汚れた顔がありたす。 どちらを掗うのですか この問題に察する唯䞀の解決策はないこずを知っおおくこずが重芁です-いく぀かの解決策がありたす。 そしお、それらのそれぞれは正圓化するこずができ、正圓化されるべきです。



4.叀兞的な問題「オオカミ、ダギ、キャベツ」。 非垞に簡単なタスクですが、本圓に気に入っおいたす。 こんな感じです。 あなたは船頭です、あなたは反察偎に䞊蚘のオブゞェクトを茞送する必芁がありたす。 しかし、いく぀かの条件がありたす。 ボヌトに耇数のオブゞェクトを持ち蟌むこずはできたせん。たた、オオカミずダギを䞀緒に残すこずはできたせん。 どうぞ



5.あなたは科孊者です。 これは非垞に危険な皮類のバクテリアがあるペトリ皿です。 バクテリアの数は2回ごずに増加しおいるこずを知っおいたす。 12時になるず、この非垞に掻発な皮類のバクテリアでカップが完党に満たされるこずを確信しおおり、急ぐ必芁がありたす。 質問に答えおくださいカップはい぀半分になりたすかたたは、奜きなように半分は空になりたすか



6.䞞めのタスク。 小売業で働く䌁業向けのシステムを開発しおいるずしたす。 圌らのモットヌは「ノヌセント」です。 しかし、私たちの仕事は、数十ルヌブルに䞞めるのではなく、50ルヌブルに䞞めるこずです。 ぀たり、130ルヌブルは150ルヌブルで䞞められ、115ルヌブルは100ルヌブルで䞞められたす。 この原理で䞞める方法は



*回答は蚘事の最埌に曞きたす。 今のずころ考えおみおください。



どこぞ、どこぞ



プログラミング蚀語の遞択は完党にあなた次第です。 しかし、Web開発に぀いお話しおいるので、 フロント゚ンドずバック ゚ンドの遞択を怜蚎したす。



それでもただわからない堎合は、簡単な蚀葉で蚀えば、フロント゚ンドはWebリ゜ヌス、ナヌザヌむンタヌフェむス、およびリ゜ヌスの技術的な郚分ずの察話のレバヌに衚瀺されるものです。 そしお、バック゚ンドは、ナヌザヌずしおは決しお芋えないものです。



フロント゚ンドは、あなたがいるりェブリ゜ヌスのロゞックの党力を隠したす。 車を䟋にずるず、フロント゚ンドは車の内郚であり、バック゚ンドはボンネットやスキンの䞋に隠れおいるものです。 もちろん、ロゞックのほずんどがフロント゚ンド開発者の肩に正確に眮かれおいるリ゜ヌスがありたす。 ただし、ほずんどのWebリ゜ヌスでは、バック゚ンドがロゞックを担圓しおいたす。



あなたがどちらの偎の力を取るべきかの遞択に盎面しおいるなら、私はあなたが開発の䞡方の面で自分自身を詊すこずを勧めたす。



「タッチ」し、すでにあなたの心に近いものを決定するず、倚分あなたは䞡偎で高品質のコヌドを曞くこずができるゞェネラリストになるでしょう。 ずころで、私はあなたず私の芳察を共有したす。 倚くの堎合、バック゚ンド郚分を曞く人はフロント゚ンドも曞くこずができたす。 ただし、このルヌルが逆方向に機胜するこずはほずんどありたせん。



フロント゚ンド開発者の倧勢を怒らせたくありたせん-これは単なる個人的な芳察です。 たた、バック゚ンドの開発は垞にりェブリ゜ヌスに関連しおいるわけではないこずを理解するこずが重芁です。倚くの堎合、モバむルアプリケヌションや高床に専門化されたさたざたなサヌビスに隠れおいたす。



緎習のヒント



あなたがただ開発者になるこずに決めた堎合、私はあなたず私の経隓からいく぀かの芳察、間違いずいく぀かの物語を共有したいず思いたす。



症候矀「ナタヌシャ・ロストフ」



この定矩は、プログラマヌの日垞生掻に぀いおのゞョヌクがむンタヌネットに登堎したずきに私のサヌクルに珟れたした。



「あなたが䜜家であり、プロゞェクト「戊争ず平和」を支揎しおいるず想像しおください。 あなたはTKを持っおいたす-ナタヌシャ・ロストワが雚の䞭で公園を歩いた方法に関する章を曞きたす。 あなたは「雚が降っおいた」ず曞いお保存するず、゚ラヌメッセヌゞが飛び出したす「ナタヌシャ・ロストノァは死にたした。継続は䞍可胜です。」 なぜ圌女は死んだのですか あなたは理解し始めたす。 ピ゚ヌル・ベズホフの぀る぀るした靎、圌は転萜し、銃は地面にぶ぀かっおポヌルを撃ち、柱からの匟䞞はナタヌシャに跳ね返ったこずがわかりたした。 どうする 銃をアむドル状態に充電したすか 靎を亀換したすか 柱を取り倖すこずにしたした。 「ルゞェフスキヌ䞭Liが死亡したした。」ずいうメッセヌゞが衚瀺されたす。 次の章では、圌はもはやポヌルに傟いおいるこずがわかりたす...



この話のポむントは䜕ですか、理解できたず思いたす。 システムのいく぀かの新しいブロックを蚭蚈するずき、たたは叀いブロックを線集するずきは、正しい結論を匕き出すこずが重芁です-より前向きに考え、あなたの改蚂がもたらす可胜性のある結果の包括的な研究に時間を費やすこずを怠らないでください。 あなたは蚀う、これにはテスタヌがいたす、そしお、そのような倱敗を芋぀けるこずは圌らの仕事です。 はい、その通りですが、埮劙な違いがありたす。



金融取匕が行われるリ゜ヌスをホット線集し、テスタヌがあなたず同じようにあなたの仕事を扱ったず想像しおください。 リ゜ヌスのナヌザヌである䌚瀟は金銭的損倱のリスクがあり、これらの損倱の理由はあなたです。 私の個人的な䟋では、開発者がIMオンラむンストアで割匕を導入した堎合がありたしたが、圌に知られおいる1぀の理由で、圌はそれを逆にしたした。぀たり、補品の割匕は5ではなく95でした。 圓然のこずながら、゚ラヌをすぐに発芋しお修正したしたが、もっずひどいものだったかもしれたせん。



危険な䞖界



コヌドを蚭蚈するずき、および/たたはプロゞェクトの開発チヌムの䌚議に参加するずきは、プロゞェクトが敵察的な環境にあるず事前に考えおみおください。 そしお、それを䜿甚する人の䞭には、あなたのプロゞェクトを壊そうずするか、そこからデヌタを匕き出そうずする人がいたす。 前のケヌスず同様に、私は自分の緎習からいく぀かの䟋を挙げたす。



か぀お、私たちにBitrix 1Cを積極的に課そうずしおいるマネヌゞャヌが私たちの䌚瀟に来たしたコンピュヌタヌ甚語でAIDSである理由に぀いおの議論をスキップし、私たちの䌚瀟に入れるべきではありたせん。 このマネヌゞャヌは倧きなプレれンテヌションを行い、デモサヌバヌに行くために特別なナヌザヌ名ずパスワヌドが䞎えられたした。



マネヌゞャヌは、それが健党な補品であるずいうガむドを耳にすりこみたしたが、新しい補品を远加し、その説明にJSスクリプトぞのリンクを含めたした。 そしお1分埌、私たちは皆、補品カタログのペヌゞで蛇を挔奏したした。 私はそこで止めず、すぐにJSスクリプトを䜜成したした。数分埌に圌にBitrixぞのログむンを匷制し、ナヌザヌ名ずパスワヌドを受け取りたした。



もちろん、この埌、プレれンテヌションは最終的にむラむラし、非垞に思慮深い衚情のマネヌゞャヌはなくなりたした。 圓然、その埌、䌚瀟の経営者は、補品の説明に埋め蟌たれたそのようなスクリプトの1぀が、ナヌザヌがデヌタを盗み、圓瀟に倚倧な損害を䞎える可胜性があるずいう疑問を提起したした。



同様の状況は、請負䌚瀟が私たちの地域の医療機関に導入する予定の補品のプレれンテヌションでもありたした。 プレれンテヌションには保健倧臣のみが出垭し、結果は請負業者にずっお悲しいものでした。プロゞェクトは非垞に長い間やり盎さなければなりたせんでした。



したがっお、い぀でもそのような穎に遭遇する可胜性があるずいう事実に備えおください。 httpsず蚀いたすか 安党な接続 私を信じお、この皮の悪甚質問の䟡栌は、システム党䜓で少なくずもいく぀かの修正を行うこずができる人ぞの賄briの䟡栌ですタむトルのテキストの通垞の線集でさえ、結果は予枬できたせん。



れロで割らないでください、若いパダワン



倚くの堎合、プログラマは、開発されたシステムが動䜜するずきにサヌバヌが生成する゚ラヌログの詳现な分析を無芖したす。 「たあ、通知ず譊告は害を及がさない」ず蚀う人もいれば、間違っおいる人もいたす。 各通知たたは譊告では、むンタヌプリタヌが゚ラヌログに曞き蟌む必芁があるためです。 したがっお、1぀の゚ラヌのみを生成するサむクルがあり、このサむクルで400回の反埩がある堎合、そのようなサむクルを1回「回す」ずログに50キロバむトのゎミが発生し、さらにスクリプトの実行時間の玄3分の1がかかりたす。



経隓からの䟋ある情報システムには倚くの分析レポヌトが含たれおいたしたが、そのうちの1぀では、れロで陀算できる操䜜があり、この゚ラヌを排陀し、レポヌトの生成を数倍高速化したした。 たた、マルチナヌザヌシステムがあるずしたすか この堎合、゚ラヌログファむルの倖芳は刀断の察象ずなりたす。恐れお、発生するすべおの゚ラヌを垞に修正しおください。



あなたの兄匟のようなgitが倧奜き



最初の日から、バヌゞョン管理システムを䜿甚したす。 これは、すべおではないにしおも、適切で正しいプログラマの99が䜿甚する重芁なスキルです。 制埡システムはたくさんありたす-遞択はあなた次第です。 理解すべき䞻なこずは、非垞に良い習慣です。 バヌゞョン管理システムを䜿甚する胜力の重芁性を説明する写真があるのも䞍思議ではありたせん。





「火灜の堎合フィヌドしお実行したす。」



私の経隓では、GitHubずHerokuの2぀のシステムに決めたした。 前者が非垞に有名な堎合、埌者はほずんど知られおいない。 䞻な利点は次のずおりです。無料のプロゞェクトプラむバシヌずプロゞェクトぞの䞀意のhttpsリンク。 ずころで、Telegramボット甚のWebhookを開発する際の非垞にクヌルな゜リュヌション。



JSONの友達



開発のどちらの偎面をずったかは関係ありたせん。デヌタを転送するずきにJSONを䜿甚しおみおください。 ポゞティブな感情以倖は䜕も埗られない䜜品から、非垞に䟿利で䟿利なもの。



あなたが倧芏暡なWebプロゞェクトのバック゚ンド開発者である堎合、小さな兄匟フロント゚ンド開発者にJSON圢匏のデヌタを提䟛するこずを考える必芁がありたす。



たた、フロント゚ンド開発者がランダムにデヌタを提䟛する堎合は、この圢匏を䜿甚するように圌に教えおください。 私の経隓を信じおください。これにより倚くの問題が軜枛され、フロントず゚ンゞン間のデヌタ転送がより柔軟になりたす。



オヌドjQuery



おそらくjQueryは、フロント゚ンド開発者にずっお最も有名で人気のあるラむブラリです。 倚くのラむブラリが無芖され、ラむブラリなしで動䜜する堎合、jQueryはあなたの忠実なツヌルです。 jQueryで曞かれたものはすべお玔粋なJSで曞くこずができるず蚀っお、誰かが私に反察するかもしれたせん。 これは本圓に頭痛からあなたを救い、あなたの問題の倚くを解決したす。 これはJSラむブラリの䞖界では「スむスナむフ」であり、倚くの人がこれに同意するでしょう。



フレヌムワヌクずOOPに぀いお䞀蚀



OOP-オブゞェクト指向プログラミング。 開発者の進化の非垞に正確で必芁なコンポヌネント。 そしお、進化がチェヌン党䜓に沿っおあなたを導くこずを芚悟しおください玔粋な手続き型→機胜型→オブゞェクト型、このチェヌンの最初たたは途䞭で停止するず、業界は生きおいない生き物ずしおあなたを砎壊したす。 しかし、初心者ず経隓豊富な開発者の䞡方が考慮すべき点が1぀ありたす。OOPは必芁な堎合に適切です。



私の実践では、どのような状況でも、この分野で知識を掻甚しようずする同僚に䜕床も䌚いたした。 以䞋に簡単な䟋を瀺したす。 サポヌトされおいる情報システムの1぀に、䌚瀟のアプリケヌションのナヌザヌにPUSH通知を送信するモゞュヌルがありたした。 したがっお、7000ナヌザヌの堎合、手続き型コヌドは5〜6分で配垃を行いたした。コヌドがむデオロギヌ䞊の理由でOOPに曞き換えられたずき、配垃には10〜15分かかりたした。



私たちの倚くは倖囜語を知っおいたすが、どんな状況でも倖囜語を話したせん。 必芁なずきにだけ話したす。 このルヌルは、OOPずプロゞェクトのフレヌムワヌクの遞択の䞡方で機胜したす。 これらを無芖するこずは䞍可胜です。どちらも特定の状況で特定の問題を解決するように蚭蚈されおおり、䞍必芁に䜿甚する必芁はありたせん。



私はすでに、フレヌムワヌク愛奜家の巚倧な軍隊がホリバヌを手配したいずいう欲求から燃え䞊がっおいるず感じおいたす。 萜ち着いおください、これは悪いこずではなく、必芁でもないずは蚀わなかったので、すべおがその堎所にあるず蚀いたした。 たた、フレヌムワヌクを䜿甚しない高品質のテンプレヌトプログラミングの経隓は非垞に高䟡であり、その重さは最新のラむンを知るこずずたったく同じです。 そしお、私自身の経隓から、次のフレヌムワヌクになる可胜性のある小さな修正を加えたプロゞェクトに繰り返し出䌚ったこずがありたす。



繰り返しになりたすが、開発者の進化的開発におけるこの重芁なポむントを芁玄するず、次のようになりたす。



OOPずフレヌムワヌクの高品質な䜿甚方法を孊習したす-これは重芁ですが、どこでも、特に実際には必芁ない堎合は、それらを䜿甚する必芁はないこずを芚えおおいおください。



良いツヌルキットを持っおいる



プログラマは、技術専門家ず同様に、特定の問題を解決するのに圹立぀優れたツヌルのセットを持っおいる必芁がありたす。 これは、コヌドを蚘述するIDEず、デヌタベヌスで管理するDBManagerの䞡方に適甚されたす。 さたざたな開発ツヌルの長所ず短所のトピックに぀いお延々ず議論するこずができたす。したがっお、この堎合、私は私の経隓に䟝存したす。



PHPで開発するための最も優れたIDEはPhpStormであり、それらのほずんどはおそらくそれに粟通しおおり、これたでのずころ、私は自分の手でこれ以䞊良いものを持っおいたせん。 そしお、SQLデヌタベヌスでの䜜業で芋た䞭で最高ののはHeidiSQLです。 ここで、喘鳎たで議論する準備ができおいたす。 デヌタベヌスにリモヌト接続する機䌚がある堎合-phpMyAdminを氞遠に忘れお、そこで行うすべおのこずを5分かけお、HeidiSQLで1分でできたす。



さたざたな皮類のナヌティリティツヌルに぀いおは、ここですべおの専門家が時間の経過ずずもに独自のパレットを取埗したす。 䞊蚘では、ほずんどの専門家が䜿甚する基本セットのみを掚奚したした。 もう䞀床、私はあなたが私ず議論したいずいう願望を持っおいたのを芋たす。 答えたす。



スペシャリストは、慣れおいるものだけでなく、時間、神経、䜓力を節玄できるものも䜿甚する必芁があるこずを理解するこずが重芁です。



すべおコメントする



同僚によるコヌドの分析を倧幅に簡玠化するか、しばらくしおからこのコヌドを芋るずメモリを高速化するため、コヌドのほがすべおの郚分にコメントするこずに慣れおください。 これは非垞に正しい習慣であり、最初の日から開発する必芁がありたす。 私のためにすべおを蚀う玠晎らしい写真がありたす。



もちろん、垞にプロゞェクトに取り組むずは限らないこずを念頭に眮いおおく必芁がありたす。そのため、読み取り可胜なコヌドは優れおいたすが、コメントの圢でフォロワヌの良いトヌンを忘れおはなりたせん。







なぜTHAI



短くお明確。 そしお悪。 これは私が自分自身に蚀うこずです。 たたは自分自身に。 プログラマは、テラリりムの条件を必芁ずする「動物」です。 それらを人工的に䜜成する方法はたくさんありたす。 「バルマヌピヌク」、グヌグル、そしおはい、これはドヌピング刺激因子であり、グヌグルのようなむデオロギヌむンキュベヌタヌで終わるず思いたす。 その䞭で、開発者は䌚瀟に䜏んでおり、したがっお、定期的に「コヌディング攻撃」に陥り、適切なタむミングで適切な堎所にいるこずに気づきたす。 そしお、これは䌚瀟に非垞に高い効率をもたらしたす。



しかし、他の畜産ず同様に、無料の牧草地にある動物からより倚くの利益を埗るこずができ、私にずっおは、タむはこれに非垞に適した堎所です。 私はそこに行っお珟圚この暑い囜で働いおいる倚くの同僚を知っおいたす。 そしおその䞭でも、私も。



人事マネヌゞャヌや䌁業幹郚の誰かがこの蚘事を読んだ堎合、10〜18のオフィスに座っおいるプログラマヌは人為的に䜎い効率のプログラマヌです。



私の実務では、䌚瀟の所有者の1人がこれを理解し、プログラマは10から14で働いおいたした。オフィスで時間がかかるずきではありたせん。 しかし、これは私の意芋ず私の緎習からの経隓です。 たぶんあなたの堎合、あなたは10から19たでの蒞し暑いモスクワのオフィスが奜きです。これはあなたの遞択です。



プログラマヌを愛し、それらの䞖話をしおください。そうすれば、あなたの䌚瀟はより良い補品を受け取り、「Huyak-huyak and production」のような緎習はなくなりたす。



蚘事の冒頭の質問ぞの回答



1.倚くの人は、孊校や倧孊の数孊コヌスでこのタスクを芚えおいたす。 2぀の解決策があり、それらは非垞に簡単です。 A = 7、B =8。3番目の倉数なしで倀を亀換するには、䜕らかの方法で珟圚の倀の「メモリ」を保存する必芁がありたす。これにより、加算たたは枛算が可胜になりたす。



最初の反埩A = A + B7 + 8 = 15、A = 15、B =8。2番目の反埩B = A-B15-8 = 7、B = 7。 A =15。3番目の反埩A = A-B15-7 = 8、A = 8、B = 7。 乗算ず陀算を䜿甚しおも同じこずができたす。



2.このタスクでは、地球はテヌブル䞊の平らな地図ではなく、球圢の幟䜕孊的図圢であるこずを理解するこずが重芁です。 次に、この球䜓の䞻芁なポむントを比fig的にマヌクしたす。 私たちはコンパスを取り、道を行きたす。 コンパスに沿っお北東方向にのみ進むず、遅かれ早かれ北極点に到達したす。これが問題の状態で瀺された旅の終点になりたす。



3.ここではすべおの゜リュヌションを説明したせん。これには非垞に長い時間がかかるためです。 煙突掃陀のたずえを読むこずをお勧めしたす。 Googleには「ラビず煙突の掃陀」たたは「゜クラテスず煙突の2぀」ず曞いた名前がたくさんありたす。 䞀般的に、読むこずを匷くお勧めしたす。



4.このタスクでは、䞡方向にオブゞェクトを運ぶこず、぀たりそれらを取り戻すこずができないずいう点で、条件があなたを制限しないこずを芚えおおく䟡倀がありたす。 したがっお、たずダギを拟い、反察偎に運びたす。 私たちは戻っお、䟋えばオオカミを取り、それを運び、怍えおダギを取りたす。 ダギを返し、キャベツを拟っおダギを怍えたす。 キャベツを茞送しおダギに戻りたす。 すべおがシンプルです。



5.ここでも、簡単です。 問題の状態では、现菌の数は毎分2倍になり、1200にはペトリ皿䞀杯になるず曞かれおいたす。 したがっお、1159にカップが半分いっぱいになるず簡単に蚀うこずができたす。



6.私たちはタスクからの最小請求曞を持っおいるので-それは50ルヌブルであるので、この数倀に䟝存したす。 130ルヌブルを最も近い50に䞞めるには、次の手順を実行したす。

130は50で陀算され、最も近い敎数に䞞められ130/50 = 2.6 = 3、結果に50が乗算されたす50 * 3 = 150。 できた



115ルヌブル115/50 = 2.3 = 22 * 50 = 100で同様の操䜜を実行したす。 できた 他の番号で確認できたす。



がんばっお。



All Articles