深さ優先探索:6つのリートコード例を含むDFSグラフトラバーサルガイド

深さ優先探索:6つのリートコード例を含むDFSグラフトラバーサルガイド

現実の迷路を解いたことはありますか?迷路を解くときに私たちのほとんどがとるアプローチは、行き止まりに達するまでパスをたどり、その後、別の可能なパスを見つけるためにステップをさかのぼって遡ることです。これはまさに深さ優先探索(DFS)のアナロジーです。これは人気のあるグラフ走査アルゴリズムであり、ルートノードから開始し、特定のブランチを可能な限り移動し、探索する別の未探索のパスが見つかるまでバックトラックします。このアプローチは、グラフのすべてのノードにアクセスするまで続けられます。今日のチュートリアルでは、次のTech Giantインタビューで重要なツリーとグラフの質問のいくつかを解決するために使用される、DFSパターンを発見します。同じ一般的な手法を使用して、いくつかの中型およびハードリートコードの問題を解決します。では、始めましょう。実装DFSには再帰的な性質があるため、スタックを使用して実装できます。DFSマジックスペル:ノードをスタックにプッシュしますノードをポップします削除されたノードの未訪問のネイバーを取得し、それらをスタックにプッシュしますスタックが空でない限り、手順1、2、および3を繰り返します。グラフ走査一般に、バイナリツリーには3つの基本的なDFSトラバーサルがあります。事前注文:ルート、左、右またはルート、右、左注文後:左、右、ルートまたは右、左、ルート順番:左、

続きを読む
テスト駆動開発の概要

テスト駆動開発の概要

私はプログラミングを5年間行っていますが、正直なところ、テスト駆動開発は避けてきました。それが重要だとは思わなかったので、私はそれを避けていません。実際、それは非常に重要であるように思われましたが、むしろ私がそれをしなかったのがあまりにも快適だったからです。それは変わりました。テストとは何ですか?テストは、プログラムが正しい入力を受け取り、正しい出力と意図された副作用を生成することを確認するプロセスです。これらの正しい入力、出力、および副作用を仕様で定義します。命名規則を使用してファイルをテストするのを見たことがあるかもしれませんfilename.spec.js。spec仕様の略です。これは、コードが何をすべきかを指定または表明し、それをテストしてそれが実行されることを確認するファイルです。テストに関しては、手動テストと自動テストの2つの選択肢があります。手動テスト手動テストは、ユーザーの観点からアプリケーションまたはコードをチェックするプロセスです。ブラウザまたはプログラムを開き、機能をテストしてバグを見つけるためにナビゲートします。自動テスト一方、自動テストは、他のコードが機能するかどうかを確認するコードを記述しています。手動テストとは異なり、仕様はテスト間で一定のままです。最大の利点は、多くのことをはるかに高速にテストできることです。これらの2つのテスト手法を組み合わせることで、

続きを読む
これらのJavaScriptメソッドは、わずか数分でスキルを向上させます

これらのJavaScriptメソッドは、わずか数分でスキルを向上させます

今日構築しているアプリケーションのほとんどは、何らかのデータ収集の変更を必要とします。コレクション内のアイテムの処理は、発生する可能性が最も高い一般的な操作です。+)のfor-loopような従来の方法を忘れてください(let i=0; i < value.length; i+。クイックヘッズアップ、constinfor-loopを使用すると、エラーが発生します。理由は、実行ごとに値を再宣言するため、iによって変更されるためですi++。したがって、constまたはのいずれかを使用することを考えるときはいつでもlet、自問してください—この値は再宣言されますか?答えがはい、のために行くlet、とあれば何のために行くんconst。より詳しい情報。製品

続きを読む
Elasticsearch、Logstash、Kibanaを使用してPythonでログをリアルタイムで視覚化する方法

Elasticsearch、Logstash、Kibanaを使用してPythonでログをリアルタイムで視覚化する方法

ロギングとは何ですか?ソフトウェア製品を開発しているとしましょう。リモートで動作し、さまざまなデバイスと対話し、センサーからデータを収集し、ユーザーにサービスを提供します。ある日、問題が発生し、システムが期待どおりに機能しなくなりました。デバイスを識別していないか、センサーからデータを受信して​​いないか、コードのバグが原因でランタイムエラーが発生した可能性があります。どうすれば確実に知ることができますか?ここで、システムコードにチェックポイントがあり、システムが予期しない結果を返した場合に、フラグを立てて開発者に通知することを想像してみてください。これがロギングの概念です。ロギングにより、開発者はコードが実際に何をしているのか、ワークフローがどのようになっているのかを理解できます。ソフトウェア開発者の生活の大部分は、監視、トラブルシューティング、およびデバッグです。ロギングにより、これははるかに簡単でスムーズなプロセスになります。ログの視覚化さて、あなたがかなり長い間ソフトウェアを開発して作成してきた専門の開発者なら、ロギングは大したことではなく、私たちのコードのほとんどはDebug.Log('____')ステートメントに含まれていると思うでしょう。それは素晴らしいことですが、ロギングには他にもいくつかの側面があります。特定のログデータの視覚化には、次の利点があります。システムの動作

続きを読む
ブラウザでURLをクリックするとどうなりますか

ブラウザでURLをクリックするとどうなりますか

この記事では、読者にWebの世界の非常に基本的な概念を理解してもらいたいと思います。以前は、Angularジャーニー、Reactの基本など、今日の市場のファンシーなものに関する記事を書いていました。しかし、今日は、読者がURLにアクセスしたときに最初に遭遇するジャーニーに参加してもらいたいと思います。トピックは自明なので、URLにアクセスするとどうなりますか?- はじめましょう!URLにアクセスした後に何が起こるかを説明する前に、URLが実際に何であるか、およびURLのさまざまな部分が何を意味するかを確認する必要があります。時間を無駄にすることなく、URLについてもっと理解しましょう。URL –ユニフォームリソースロケーター完全な形式を見ると、それは自明です。アクセスしたいリソースの場所があります。これは、私たちが情報をやり取りしたり見つけたりするために行きたい場所の住所です。あなたの日常を見てみましょう。仕事や情報を得るために友達の家を訪ねたい場合は、友達の住所が必要です。同じことがこの大きなウェブの世界にも当てはまります。アクセスしたいウェブサイトのアドレスを指定する必要があります。ウェブサイトでは、家のようなもので、URLがアドレスです。URLの構造これで、URLが何であるかはわかりましたが、URLの一部についてはまだわかりません。行こう!例を見てみましょう://www.exam

続きを読む
タグのHREF属性を使用してHTMLハイパーリンクを作成する方法

タグのHREF属性を使用してHTMLハイパーリンクを作成する方法

Webサイトは、Webページのコレクションです。そして、これらのページは何かによってリンクまたは接続されている必要があります。そのためには、HTMLで提供されるタグであるタグを使用する必要がありますa。このタグは、あるページから別のページにリンクするために使用されるハイパーリンクを定義します。また、a要素の最も重要な属性hrefは、リンクの宛先を示す属性です。このガイドではhref、aタグの属性を使用してHTMLハイパーリンクを作成する方法を説明します。リンクとは何ですか?内部リンクを作成する方法同じレベルのページを参照する別のフォルダにあるページを参照するフォルダにあるページからルートまで参照します外部リンクを作成する方法アンカーリンクを作成する方法同じページに移動する別のページに移動結論リンクとは何ですか?リンクはクリック可能なテキストで、あるページから別のページへ、または同じページの別の部分へと閲覧できます。 Web開発では、リンクを作成する方法がいくつかありますが、最も一般的な方法は、aタグとhref属性を使用することです。最後に、リンクの宛先アドレスを指定します。このaタグは、内部リンク、外部リンク、アンカーリンクの3つの主要な種類のリンクを作成するのに役立ちます。そうは言っても、次のセクションで内部リンクを作成する方法に飛び込むことができます。内部リンクを作成する方法ウェブ

続きを読む
Twitchでのライブコーディングの最初の年からの教訓

Twitchでのライブコーディングの最初の年からの教訓

去年の7月に初めてストリーミングを始めました。Twitchのストリーマーの大多数が行うゲームの代わりに、私は自分の個人的な時間に行うオープンソースの作業をストリーミングしたかったのです。私はNodeJSハードウェアライブラリにかなり取り組んでいます(それらのほとんどは私自身のものです)。私はすでにTwitchのニッチにいたので、JavaScriptを利用したハードウェアのように、さらに小さなニッチにいませんか;)自分のチャンネルにサインアップして以来、定期的にストリーミングを行っています。もちろん、これを行うのは私が最初ではありません。Handmade Heroは、私がオンラインでコードを視聴した最初のプログラマーの1人であり、すぐにTwitchでNuclearThroneをライブで開発したVlambeerの開発者が続きました。特にVlambeerに魅了されました。私が実際にそれをすることができることを望んでいたことの端を私にひっくり返したのは、私の友人であるノーラン・ローソンの功績によるものです。ある週末、彼がオープンソースの作品をストリーミングしているのを見ましたが、それは素晴らしかったです。彼は途中でやっていたことすべてを説明した。すべて。GitHubの問題への返信、バグのトリアージ、ブランチでのコードのデバッグなど、名前を付けます。Nolanは多くの使用と活動を行うオープンソー

続きを読む
10分でReactチャットアプリを構築する方法を学ぶ-ReactJSチュートリアル

10分でReactチャットアプリを構築する方法を学ぶ-ReactJSチュートリアル

この記事では、React.jsを使用してチャットアプリケーションを作成するための最も簡単な方法を紹介します。Chatkit APIにバックエンドを処理させるため、サーバーサイドコードなしで完全に実行されます。あなたは基本的なJavaScriptを知っていて、以前にReact.jsに少し遭遇したことがあると思います。それ以外に前提条件はありません。注:React.jsチャットアプリの作成方法に関する無料のフルレングスコースもここで作成しました。このチュートリアルに従うと、最後に独自のチャットアプリケーションが作成され、必要に応じてさらに構築することができます。始めましょう!ステップ1:UIをコンポーネントに分割するReactはコンポーネントを中心に構築されているため、アプリを作成す

続きを読む
Facebookにインターンシップをしました。これが私が学んだいくつかの秘訣です。

Facebookにインターンシップをしました。これが私が学んだいくつかの秘訣です。

最近、Google、Microsoft、Dropbox、Yelpなどにインタビューした後、Facebookからのオファーを受け入れました。何が私を際立たせたのかを考え、考えました。プロセスのさまざまな部分によって分類されたいくつかのヒントを次に示します。面接を受ける:履歴書の作成会社とその採用チームの目を引く上で最も重要な要素は、おそらくあなたの履歴書です。3年前に業界に参入して以来、経験を積むにつれて履歴書は進化してきました。履歴書が変更されたため、年々、企業からの回答率が大幅に向上しました。毎年、インターンシップ申請への返信とフォローアップが増えています。本当に、私の履歴書にはほんの少しの大きな変更がありました。以下に3つを強調します。研究。これが私にとってより多くの扉を開いたものだと思います—研究を始めてから学期に企業から約75%多くの回答を得ました。教授や大学院生の下で働く機会があれば、それを利用してください。短期間で非常識な量を学び、この分野で最も優秀な人々から指導を受けるだけでなく、(履歴書で)教室を超えて学ぶ情熱と意欲を示します。研究を行うことは、学界と産業界の両方に存在する困難で複雑な問題に取り組むための考え方を発達させます。企業は、参入して影響を与える可能性のある人々を求めています。適切な考え方と適切な経験を持っていることを示すことは、正しい方向への第一歩です。オープ

続きを読む
ブロックチェーン開発で使用される最も人気のあるプログラミング言語

ブロックチェーン開発で使用される最も人気のあるプログラミング言語

私たちは現在、ブロックチェーン開発を伴う新しい急成長産業の真っ只中にいます。ブロックチェーンテクノロジーは非常に初期段階にありますが、この破壊的テクノロジーはすでに世界を席巻し、最近では他に類を見ないブームを経験しています。現在、多くの資金が豊富なプロジェクトがブロックチェーンネットワークを構築し、その上に分散型アプリケーションをデプロイすることを熱望しているため、有能で有能なブロックチェーン開発者が大幅に不足しています。このセクターに数十億ドルが注ぎ込まれているため、ブロックチェーン開発者の需要と需要は、市場に残されている最高のブロックチェーンの才能を引き付けるために互いに入札するプロジェクトによってエスカレートしています。このゴールドラッシュにより、一部の開発者は、この業界に飛び込むために必要なものがあるかどうか、特にこの新しい業界で最も求められているプログラミング言語があるかどうか疑問に思うかもしれません。ブロックチェーン業界では、ほとんどすべての一般的なプログラミング言語が使用されていますが、特定のブロックチェーンプロジェクトやアプリケーションでは異なる言語が使用されているため、開発者はどのような種類の開発を行うかを検討する必要があります。これは、この業界を深く掘り下げたいと考えている人々の基本的な理解と基盤として役立つためにそれらを利用しているさまざまな言語とプロジェクトの簡

続きを読む
Redhat / CentosLinuxにFTPサーバーをインストールして構成します

Redhat / CentosLinuxにFTPサーバーをインストールして構成します

FTPはファイル転送プロトコルの略です。Abhay Bhushanによって作成され、1971年4月16日にRFC114として公開されました。すべてのオペレーティングシステムとブラウザでサポートされています。これは、クライアントサーバーアーキテクチャ上に構築されています。Redhat / CentosLinuxにFTPサーバーをインストールして構成する方法ステップ1:マシンにlocalhostを使用してftpサーバーをセットアップします。ステップ2:vsftpd(非常に安全なFTPデーモン)パッケージをインストールします。yum install -y vsftpd手順3:システムの電源が入っているときにFTPサーバーを起動します。systemctl enable vsftpd.serviceステップ4:ftpサーバーのステータスを確認するsystemctl status vsftpd.service手順5:vsftpdパッケージを構成します。編集します/etc/vsftpd/vsftpd.conf。Change the line which contain anonymous_enable=NO to anonymous_enable=YESThis will give permit any one to access FTP server with authentication.Cha

続きを読む
ダミーのためのニューラルネットワーク:この魅力的な分野の簡単な紹介

ダミーのためのニューラルネットワーク:この魅力的な分野の簡単な紹介

誰もが話しているこれらすべてのニューラルネットワークが何であるか疑問に思ったことはありませんか?まあ、もう恐れることはありません!この投稿の終わりまでに、どの会議にも参加して、新しく取得した流行語でランチテーブルを魅了することができます。ここ数年でブラウザを開いたことがあれば、「ニューラルネットワーク」という表現を数百回見たことがあるはずです。この短い読み物では、ドメインと物自体に関するいくつかのコンテキストを提供します。次の5分でこの分野の世界の専門家になることはありませんが、重要なオンボーディング段階を通過します。また、特に最後の読書リストに従う場合は、夕食の席で家族を感動させるいくつかの流行語を学びます。機械学習とは何ですか?ニューラルネットワークを理解するには、まず機械学習を理解する必要があります。そして、機械学習を理解するために、最初に人間学習、つまり「古典的なプログラミング」について話しましょう。古典的なプログラミングでは、開発者である私は、解決しようとしている問題の側面を理解し、解決するためのすべてのルールを正確に知る必要があります。たとえば、プログラムに正方形と円の違いを認識させたいとします。次に、それを処理する1つの方法は、コーナーを検出できるプログラムを作成し、それを適用してコーナーをカウントすることです。プログラムに4つの角が表示されている場合、この形状は正方形で

続きを読む
Python Itertools --- chain、isSlice、およびizipの例で説明

Python Itertools --- chain、isSlice、およびizipの例で説明

Itertoolsは、ジェネレーターを返す関数のPythonモジュールです。ジェネレーターは、繰り返されたときにのみ機能するオブジェクトです。鎖()このchain()関数は、引数としていくつかのイテレータを取ります。渡された各イテレータの各要素を通過し、渡されたすべてのイテレータの内容を含む単一のイテレータを返します。import itertools list(itertools.chain([1, 2], [3, 4])) # Output # [1, 2, 3, 4]islice()このislice()関数は、渡されたイテレータから特定の要素を返します。slice()リストの演算子と同じ引数(start、stop、step)を取ります。開始と停止はオプションです。import itertools list(itertools.islice(count(), 5)) # Output # [0, 1, 2, 3, 4]izip()izip() 渡されたイテレータの要素をタプルに結合するイテレータを返します。と同様に機能z

続きを読む
なぜそんなに多くの開発者が仕事を得る前にやめるのか。お願いします—しないでください。

なぜそんなに多くの開発者が仕事を得る前にやめるのか。お願いします—しないでください。

「プロトタイプ、オブジェクト、アルゴリズム…実装方法がわからないステップ間の小さなステップ。Grrr…プログラマーのように考えています。」この文を完成させてください:私の最後のコーディングセッションは…シルクのように滑らか。私は快適に座って、編集者を解雇し、0と1の素敵な世界に飛び込みました。その3時間は30分くらい過ぎました!すっごく退屈。私はかろうじて座ってコーディングすることを余儀なくされました。うまく機能するものはなく、エラーが常に発生していましたが、それでもすべてが私にとって意味があるわけではありません。この30分は3時間のように感じました!私の推測は答え#2です。そして、それが非常に一般的であり、私にも起こったからではありません(8年間のプログラミングの後でも)。答え#1は奇妙です。誰がそのように話しますか?はいはい。プログラミングの圧倒についてお話します。私たちはすべてそこにしてきた知っている-それが起こる方法をあまりにも頻繁に、我々はそれを嫌います。しかし、私はもっと深くしようとしました。過去数年間、私は多くのジュニア開発者と取引をしてきました。一部の人を含む:最近テクノロジーに侵入し、迷子になりました「チュートリアルフェーズ」で立ち往生し、監督なしでコーディングしなければならないたびに身もだえしました実際には才能があったが、面接に失敗したか、電話も受けなかった限界点は

続きを読む
懐かしさとこれまでで最も悲しい小さな言葉を使用して説明されたブラウザモード

懐かしさとこれまでで最も悲しい小さな言葉を使用して説明されたブラウザモード

前回の記事では、Doctypeとは何か、なぜそれが必要なのかについて説明しました。この記事では、ブラウザーが実行できるさまざまなモード(完全標準モード、ほぼ標準モード、および癖モード)の違いについて説明します。これらの2つの記事は非常に関連しているので、最初に前の記事を読んで、私が何をしているのかを理解することをお勧めします。質問:完全標準モード、ほぼ標準モード、および癖モードの違いは何ですか?さまざまなモードはすべて、W3C標準の初期の実装に関連しています。Doctypeは、ブラウザにレンダリングする予定のドキュメントの種類を通知するために導入されました。開発者がドキュメントタイプをHTMLドキュメントに含めなかった場合、ブラウザは処理しているドキュメントのタイプを認識できません。したがって、念のため、ドキュメントを古い(quirk)ブラウザー(Navigator 4、Internet Explorer 4および5)と互換性があるようにレンダリングします。また、古いブラウザは非常に悪いCSSの土地に住んでいたため、これは多くのCSSスタイルが適用されず、サイトが期待どおりに表示されないことを意味します。もちろん、一部の開発者は、さまざまな理由でドキュメントをquirksモードでレンダリングする必要があるため、意図的にDoctypeを省略することを選択する場合があります。たとえば、19

続きを読む
無料コードキャンプにはどのくらい時間がかかりますか?

無料コードキャンプにはどのくらい時間がかかりますか?

私は冬の終わりをユタ州北部の太陽光発電のストーブ暖房付きキャビンで過ごしました。シャワーはありませんでしたが、屋上に衛星を設置し、サンフランシスコのアパートよりも高速なインターネットを利用することができました。私はコーディングを学ぶことにしました。アイソレーションを使って何か新しいことを学びたかったのです。私は覚えている限り技術的に気にされてきましたが、過去のコーディングの試みは見事な結果をもたらしました。私は高校でいくつかのC ++を学びましたが、関数を理解していなかったため、ほとんどの場合、巨大で反復的なコードを作成しました。学部でVisualBasic .NETコースを受講しましたが、そこで何が起こったのかについての記憶はほとんどありません。私は数年前、グアテマラのハンモックでCodecademyのJavaScriptコースを受講しました。完全に学習していないというこの曲がりくねった道は、いくつかの点で私を準備したと思います。私はコンピュータグラフィックスの学位も持っています。コンピュータグラフィックスは、コーディングよりもデザイン、アニメーション、モデリングに重点を置いていましたが、HTML / CSSの基礎知識を得ることができました。「なぜコーディングするのか」について多くのことが書かれているので、ここで死んだ馬に勝つことはありません。短いバージョンはこれです:賢い人々は、コ

続きを読む
フロントエンドWebエンジニアとしての私の役割は説明されていますか?

フロントエンドWebエンジニアとしての私の役割は説明されていますか?

こんにちは、私の名前はショーンストーンです。私は英国ロンドンのシニアフロントエンドWebエンジニアです。私はFinTech業界で働いており、自分の仕事が大好きです。この記事では、私の役割について少し説明したいと思います。Web開発のキャリアを追求したい人にとって、これは役に立つかもしれません。私たちが行うこと、仕事の管理方法、キャリアパス、使用する言語とツールについて説明します。結論として、ソフトウェア業界に参入する方法についてアドバイスを提供します。心配しないでください、私は何も売っていません—私が始めたときに私が持っていたかったいくつかのアドバイス。?フロントエンドWebエンジニアは、ユーザーがWebアプリケーションで表示および操作する視覚要素を実装する責任があります。UIを構築しますか?私たちは、当社のWebサイトまたはWebアプリケーションのユーザー向けのUI(ユーザーインターフェイス)の構築に重点を置いています。私たちはいくつかのことを考慮します:アクセシビリティ:ウェブ上では見過ごされがちなアプリケーションは、何らかの障害を持つユーザーに対応するように設計されています。これは、認知障害または器用さの制限である可能性があります。ラジオ入力やチェックボックスなどのクリック可能な領域で苦労している人がその一例です。美学:ボタン、フォント、間隔などのUI要素のスタイル。最近、製品全

続きを読む
ソフトウェアエンジニアリングのインターンシップを上陸させたいですか?ここにあなたを助けるためのいくつかの考えがあります

ソフトウェアエンジニアリングのインターンシップを上陸させたいですか?ここにあなたを助けるためのいくつかの考えがあります

注:この投稿は、私が得たいと思っているアドバイスを共有することを目的としています。あなたが夏のソフトウェアエンジニアリングインターンシップを探している大学生であるか、それを探すのがどのようなものか疑問に思っているなら、この記事はあなたのためです!大学2年生のとき、私はソフトウェアエンジニアになりたいと確信していました。私は大学で2つの入門クラスを受講してそれらを愛し、私が楽しんでいたより高いレベルのクラスにいました。そのため、夏にソフトウェアエンジニアリングのインターンシップを開始して、業界での経験を積み、スキルを向上させたいと考えました。どうやってアプローチしたらいいのかわからなかったので、春まで探し始めませんでした。1月から、オンラインで60以上の企業に応募し、少なくとも20件の自動拒否を受け取りました。私は2回の技術面接を受け(どちらも悲惨な結果になりました)、ソフトウェアエンジニアリングとは関係のない仕事をすることになりました。私の間違いは:春まで始まらないネットワークを利用していない、またはネットワークを拡大しようとしていない技術面接の準備をしていないサイドプロジェクトを行っていない3年生の時、私はもっと上手くやろうと決心しました。私はできる限りネットワークを作り、技術面接と行動面接の練習に時間を費やし、得られるすべての面接を受けました。私の最大の問題はドアに足を入れることだ

続きを読む
CSS PositionAbsoluteを一度だけ理解する方法

CSS PositionAbsoluteを一度だけ理解する方法

オブジェクトがどのように配置されているかを理解することで、画面上の要素を失うのを防ぎます要素の配置は、要素自体よりも要素のコンテナの位置に関係します。自分自身を配置できるようにするには、自分自身を相対的に配置する親divを知っている必要があります。以下のコードは、4つのネストされたdivを示しています。で集中しているとだけ。は設定されておらず、ドキュメントフローのデフォルトの位置にあります。.box-1.box-3display: flexmargin: auto.box-4marginpositionプロパティは、すべての要素に設定されていません。body { display: flex;}.box-1,.box-2,.box-3 { display: flex; margin: auto;}自分自身を配置できるようにするには、要素は2つのことを知っている必要があります。そのための座標xとyのいずれかによる位置セットtop、right、bottom、left自分自身をどの親に配置するか要素に適用するposition: absoluteと.box-4、から削除されますnormal document flow。座標が設定されていないため、左上隅の親divであるデフォルトの位置にとどまります。設定することにより、top: 0およびleft:

続きを読む
学生としてソフトウェア開発者インターンシップを見つける方法

学生としてソフトウェア開発者インターンシップを見つける方法

補足:この記事は学生を対象としていますが(私は1人なので、簡単に関連付けることができます)、これらのヒントの多くは、学生ではなく、ソフトウェア開発者のインターンシップを探している人にも役立つと確信しています。前回のインターンシップが終わりに近づいたので、インターンシップを探すときに違ったやり方をしたことをよく考えました。私が知っていることはすべてお話ししますが、最初に自分自身について少し背景を説明する必要があります。約2年半前、私は正式に専攻をコンピューティングサイエンスに変更することを決定しました。その頃、私もインターンシップを探し始めなければなりませんでした。統計学のバックグラウンドから来た私は、テクノロジー業界については無知でしたが、最終的にQA開発者としてのインターンシップを見つけました。これが私が学んだ最初の教訓です-あなたはあなたが得る最初の求人を受け入れる必要はありません。初めてのインタビューでもありました!ワクワクするインターンシップを見つけるのに数ヶ月待つのも悪くありませんでした。でも正直なところ、私は経験が浅く、現場での仕事が本当に欲しかったのです。QA開発者インターンとしてやっていた仕事はあまり楽しめませんでした。それは私には向いていませんでした。しかし、その間、私はソフトウェア開発者になりたいと思い、テクノロジーの求人市場と魅力的なポートフォリオを構築する方法を

続きを読む
バブルソートの説明

バブルソートの説明

泡がガラスの底から立ち上がるのと同じように、泡の並べ替えはリストを並べ替える単純なアルゴリズムであり、低い値または高い値のいずれかを上に泡立てることができます。アルゴリズムはリストをトラバースして隣接する値を比較し、正しい順序でない場合はそれらを交換します。O(n ^ 2)の最悪の場合の複雑さで、バブルソートはクイックソートのような他のソートアルゴリズムと比較して非常に遅いです。利点は、最初から理解してコーディングするのが最も簡単なソートアルゴリズムの1つであるということです。例:let arr = [4, 2, 6, 3, 9]; let sorted = false while(!sorted) { sorted = true for(var i = 0; i < arr.length; i++) { if(arr[i] < arr[i - 1]) { let temp = arr[i]; arr[i] = arr[i - 1]; arr[i - 1] = temp; sorted = false; } } }最初にリストを通過します。から始めて[4, 2, 6, 3, 9]、アルゴリズムは配列の最初の2つの要素4と2を比較します。2<4であるため、それらを交換します。[2, 4, 6, 3, 9]次の2つの値、4と6を比較します。4<6であるため、これらは

続きを読む