Sona Avetyan が JavaScript とその最もよく使用されるフレームワークについて
公開: 2022-10-06テクノロジーの世界では、誰もがワンクリックで質問に対する答えを見つけることができます。 しかし、ソースのフォーマットに細心の注意を払ったことはありますか? 動画を見たり、記事を読んだり、音声検索したり、一人称から調べたりするのは好きですか? たとえば、ソフトウェア開発や ITO 業界では、ソフトウェア開発者、エンジニア、CTO などの専門家からのインタビューや個人的な話を直接チェックすることは、自分自身を教育するための最もインタラクティブで信頼できる方法の 1 つです。 個人的なストーリーと実際の経験は、教育をより適切で記憶に残るものにします。
CodeRiders では、ソフトウェア開発者へのインタビュー シリーズを開催しています。
テクノロジーの世界では、誰もがワンクリックで質問に対する答えを見つけることができます。 しかし、ソースのフォーマットに細心の注意を払ったことはありますか? 動画を見たり、記事を読んだり、音声検索したり、一人称から調べたりするのは好きですか? たとえば、ソフトウェア開発や ITO 業界では、ソフトウェア開発者、エンジニア、CTO などの専門家からのインタビューや個人的な話を直接チェックすることは、自分自身を教育するための最もインタラクティブで信頼できる方法の 1 つです。 個人的なストーリーと実際の経験は、教育をより適切で記憶に残るものにします。
CodeRiders では、ソフトウェア開発者へのインタビュー シリーズを開催しています。
JavaScript はまた、世界中の採用担当者が最も要求するプログラミング言語として、別の Statista レポートをリードしています。
もちろん、これらの数字の後、JavaScript フレームワークが世界で最も使用されている Web フレームワークのリストをリードすることは明らかです。
Statista によると、2022 年の時点で、Node.js、React.js、および Vue.js は、世界中のソフトウェア開発者の間で最も人気のあるフレームワークのトップ 10 に入っています。
これを念頭に置いて、CodeRiders のフルスタック ソフトウェア開発者である Sona Avetyan との会話を始めましょう。
こんにちはソナ。 ソフトウェア開発者としての知識と経験を共有していただき、ありがとうございます。 始めに、自己紹介をお願いします。
こんにちは。 インタビューのお誘いありがとうございます。 革新的なテクノロジーを使用した Web およびデスクトップ アプリケーションの開発において 3 年以上の専門的な経験を持つ、フルスタック ソフトウェア開発者の Sona です。 CodeRiders ソフトウェア開発会社に入社して以来、私は会社のプロジェクトに参加し、PHP、JavaScript、およびその主要なフレームワークである Vue.js、Node.js、React.js、および MySQL を使用してアプリケーションを提供してきました。
CodeRiders に入社した経緯を教えてください。
IT 業界 (特に CodeRiders) にたどり着いた私のバックストーリーは興味深いものであり、一部の人にとってはやる気を起こさせるものだと思います。 だからこそ、もっと詳しくお伝えしたいと思います。
私は数理科学と数学の修士号を取得しており、キャリアを始めた当初は、この分野で成功した専門家として自分自身を描いていました。 しかし、時が経つにつれて、特にコンピューターサイエンスと情報技術産業がアルメニア経済に大規模な「爆発」を起こした後、私の関心が薄れつつあることに気づきました。 私の大学時代、アルメニアでは IT 分野が花開いていました。 ますます多くの若者が IT に夢中になり、IT には成長と優れたキャリアの機会がたくさんありました。 私は自分の分野でかなりうまくいっていましたが、情報技術業界でまったく新しい分野を始めることにしました。 私の友人は、安定したスタートのために CodeRiders Web 開発学校を信頼するように私にアドバイスし、私は彼らのアドバイスに従いました.
CodeRiders ソフトウェア開発学校を首尾よく卒業した後、アルメニア最大の保険会社の 1 つに技術サポート スペシャリストとして働き始めました。 最終的に、私は成長してチームのリーダーになりました。 私は自分の仕事が好きでしたが、他のソフトウェア開発者やエンジニアが作成したコードをサポートおよび保守するだけでなく、それ以上のことを望んでいることを常に知っていました。 保険会社は、私にとって、より大きく明るいキャリアパスへの「準備」にすぎませんでした。
私は保険会社で 6 年間働いていましたが、その間も CodeRiders のことを考えていました。 ソフトウェア開発学校が CodeRiders ソフトウェア アウトソーシング会社に変わり、アルメニアで最も成功した地元のテクノロジー企業の 1 つになったことを私は知っていました。 私はソーシャル メディアで CodeRiders をフォローし、常に自分が彼らの友好的なチームの一員であると考えていました。 私は会社とその働き方が大好きでした。 2019 年、CodeRiders の創設者から電話があり、素敵なチームに参加するよう招待されました。 それは私のお気に入りの電話の1つでした。 私は興奮し、もちろんその申し出を受け入れました。それがすべての始まりです。 私は会社に慣れ親しんでおり、誰もが非常に協力的でフレンドリーで、いつでも助けてくれる準備ができていたので、すぐにその雰囲気に順応しました。
主な技術スタックと、これらの技術を選択する際に考慮したことについて詳しく話していただけますか?
これが今の私の技術力の「フルパッケージ」です。
- ウェブ: HTML、CSS3、LESS、SASS、Bootstrap、JavaScript、PHP
- サーバー: アパッチ、WAMP
- データベース: MySQL、MSSQL
- 言語: PHP (バージョン 5.6-8.x)、JavaScript、SQL
- テクノロジー/ライブラリ: Vue.js、React.js、Node.js、Laravel、JQuery、Electron.js、ソーシャル API (Google)
- 概念: OOP、MVC
- 環境: Linux (Ubuntu、CentOS 6/7)、MS Windows 10、Git、SVN
私は、プログラミングのキャリアの初期に PHP ソフトウェア開発言語を使用していました。 次に、JavaScript に切り替えました。 どちらも大好きですが、JS が一番好きです。
JS を使用した最初の「ミニ プロジェクト」は、当社のオンライン名刺システムを構築することでした。 すべての従業員は、資格情報を挿入してカスタム名刺を作成できます。 次に、これらの名刺をスキャンして印刷し、携帯電話やコンピューターに転送して、さまざまな場面で使用できます。 フロントエンド開発 Node.js には Vue.js を使用し、バックエンド開発には MongoDB を使用しました。 これは、完全に JS テクノロジに基づく最初のプロジェクトでした。 当時、私はバックエンドに PHP を使用するという選択肢がありましたが、JavaScript とそのフレームワークに非常に興味がありました。 それに、これは私たち自身のプロジェクトだったので、試してみましたが、とてもうまくいきました。
TypeScript を使用しない場合、JavaScript は非常に動的です。これはまさに私が JS について気に入っていることです。 コード遊びを楽しんでいます。 石膏で遊ぶようなもので、多くの場合、特定の決まった手順に従う必要はありません。 Java などの静的言語とは異なり、JavaScript では、インタープリターは実行時の変数の値に基づいて変数に型を割り当てます。 動的 JavaScript は、ページ全体をブラウザーにロードすることなく、Web ページ上でアクションを作成する方法です。 これにより、Web サイトの速度が向上し、ユーザーへの応答性が向上します。 一方、フロントエンド開発のすべての制御は JS テクノロジの手に委ねられているため、JS なしの Web 開発は考えられません。
そのため、JavaScript では、はるかに柔軟にすることができ、多くの場合に役立ちます。 ただし、このダイナミズムは、特に Java や C# などの型付き言語のソフトウェア開発者である場合、多くのソフトウェア開発者を苛立たせることがあります。 JavaScript には何も修正されていませんが、一方、コードを少し「創造的」にしたい場合は、チャンスが与えられます。 一方、JavaScript には、型付き言語に慣れているソフトウェア開発者向けのソリューションもあります。 その柔軟性により、TypeScript を簡単に使用できます。
型付きソフトウェア開発言語と動的ソフトウェア開発言語の違いは次のとおりです。 特定の変数に型を指定すると、その型は固定され、変更できなくなります。 たとえば、特定の変数を文字列、数値、またはその他として定義した場合、元に戻ってその型を変更することはできません。 一方、JS のような動的言語では、「OK、現在の変数は数値ですが、後で文字列にします」と言うことができます。 型付き言語の「厳密さ」は、多くのエラーを回避できるので優れている場合もありますが、一方で、「柔軟性」のダイナミズムは他の多くの場合にも役立ちます。 そのため、どちらが優れているとは言い難いです。 主に、特定のソフトウェア開発者と特定のプロジェクトの特徴に依存します。
要約すると、特定のプロジェクトの技術スタックを選択する機会があれば、そのプロジェクトの「本質」に細心の注意を払います。 プロジェクトの本質、その構造、およびその便宜の可能性を理解することは非常に重要です。これらは、プロジェクトに特定の技術スタックを選択する前に考慮すべき主な要因であるためです。 同様に、データベースに SQL または MongoDB を使用する必要がありますか? フロントエンド開発に Vue.js を使用する方が良いのはなぜですか? バックエンド開発用の Node.js や PHP などはどうですか?
JavaScript とそのフレームワーク (Node.js、Vue.js、React.js) の好きなところを教えてください。
- JavaScript のダイナミズム
- JS とそのフレームワークの操作は、家を建てるようなものです
先に述べたように、ダイナミズムは私の一番のお気に入りです。 私は JS フロントエンド フレームワークが一番好きです。 JavaScript フロントエンド フレームワークを使用すると、自由に想像力を働かせることができます。
私はよく、JS とそのフレームワークを使った作業を家を建てることに例えます。 最初に建物の「スケルトン」を構築し、すべてのフロアに特定のアイテムの場所 (玄関ドア、部屋、窓など) をすでに確立しています。 各フロアですべてを再構築する代わりに、すべてのフロアで形状を変更するだけです。 家の中のすべての石は構成要素であり、すべての階段やエレベーターは経路です。 たとえば、この建物では、すべてのフロアが Web サイトのページであり、階段とエレベーターが経路 (あるページから別のページに移動するとき) であり、壁、椅子、窓などの他のすべてのアイテムは変更可能なコンポーネントです。
家のゲストはユーザーであり、居住者はあなたと一緒に働く他のソフトウェア開発者やエンジニアです。 居住者のゲストは、あなたの家を訪問するときに快適に感じる必要があります。
最高の JavaScript フレームワークはどれですか?
これは非常に興味深い質問であり、もちろん具体的な答えはありません。 特定の JavaScript フレームワークに言及する代わりに、最も人気のある JS フレームワークを比較し、決定するのはあなたに任せます。
Vue.js と React.js はフロントエンド開発に使用され、Node.js はバックエンド ソフトウェア開発に使用されます。
Vue.js と React.js は非常に似ていますが、同時に非常に異なっています。 React.js を知っていれば、Vue.js やその逆を学ぶのはとても簡単です。 これらの 2 つのフレームワークは相互に補充されています。 たとえば、入力と変更を処理する場合、React.js よりも Vue.js を使用する方がはるかに簡単です。
React.js では、Vue.js よりも多くのコードを記述する必要があります。 コード構造も Vue.js の方が整理されていますが、コードの書き方にも大きく依存します。
一般に、JS フレームワークはコンポーネントで構成されており、簡単に操作できるため最適です。 「自分を繰り返さない」パターンを考慮します。 すでにコンポーネントを作成している場合は、書き直す代わりに複数の場所で使用できます。
たとえば、「ボタン」のコードを記述する必要がありますが、このボタンの構造は、ボタンの色やホバーの色などの小さな変更を除いてすべて同じです。 ソフトウェア開発者は、これらの小さな変更を加えたい場合、コードを最初から書き直すことはありません。 彼らは色を担当する特定のコンポーネントを取り、クライアントの要件に従ってさまざまなページでそれを変更します。 したがって、すべてのページで、これを「カラー コンポーネント」と呼びます。
バックエンド開発では Node.js を、フロントエンド開発では React.js と Vue.js と共に使用していますが、これら 3 つのテクノロジの組み合わせはまさに理想的です。 私はこの組み合わせを、内面も外見もゴージャスな理想の人にたとえて冗談を言います。
Node.js フレームワークでは、Express.js や Nest.js を楽しんでいます。 私は、まもなくリリースされる新しいウェブサイトの開発中に Nest.js を使い始めました。
今日の IT 業界における JavaScript の重要性をどのように評価しますか?
JavaScript なしでの Web 開発は想像できません。 もちろん、現在、IT 産業は非常に急速に成長していますが、JS も同じ成長速度を持っています。 最新のIT開発に応じてソリューションを調整します。 だから私は、JS が何十年も IT 業界に留まると確信しています。
CodeRiders で最も「記憶に残る」ソフトウェア開発プロジェクトについて教えてください。
私の好きなように、私の最初の「大規模で複雑で巨大な」プロジェクトについて話します。 このプロジェクトは、経験豊富なソフトウェア開発者として私を形成しました。
このカスタム ソフトウェア開発プロジェクトを一言で説明するのは難しいです。 クライアントは、マーケティングおよび分析ソフトウェア ソリューションを備えたメディアおよびエンターテイメント ソフトウェア ソリューションなど、複数の業界で事業を展開しています。 クライアントは、ユーザーが会社の広告の効果を登録、実行、追跡し、従業員の作業制限を定義し、結果を確認するための巨大なプラットフォームを提供します。
このプロジェクトは、CodeRiders の同僚や、他の国からのリモート ソフトウェア エンジニアと一緒に取り組みました。 このプロジェクトは、新型コロナウイルスのロックダウン中に全員が在宅勤務を行っていた時期に取り組みました。 CodeRiders チームに受け入れられてからわずか数か月しか経っていません。 初めての大規模なプロジェクトだったので、CodeRiders のソフトウェア開発者仲間と一緒に午前 2 時まで遅くまで残業していたので、スムーズに開発プロセスに参加することができました。 これは、私にとって CodeRiders のチームスピリットへの「入門」でした。
私たちの目標は、バグのない高品質のコードを開発することであり、誰のタスクに取り組んでいるかは問題ではありませんでした。 私の同僚は皆、ビデオ通話を開始してコードをレビューし、アドバイスを提供していました。 CodeRiders での私たちのモットーは、「私たちは望み、一緒に達成します」です。そうです、それは真実です。このアプローチのおかげで、私はチームに溶け込み、ソフトウェア開発の分野で経験を積むことができました。
このアプローチは、他のリモート ソフトウェア開発者にも有効でした。 問題が発生したときはいつでも、誰がエラーを引き起こしたかは関係ありませんでした。 私たちの最優先事項は、問題をできるだけ早く修正することでした。 だから、私たちの一人ができるだけ早くそれをするでしょう。 その後、緊急電話をかけ、問題と問題の原因について話し合い、将来このような問題が発生しないようにします。
JavaScript の長所と短所をいくつか挙げてください。
利点
- JavaScript は理解しやすく、習得しやすい言語です。
- JavaScript は最新のブラウザをすべてサポートしているため、同等の結果が得られます。
- ソフトウェア開発者は、リッチなインターフェイスを作成するチャンスがあります。
- 他のプログラミング言語と完全に連携するため、すべてのプロジェクトに簡単に実装できます。
- グローバル企業はコミュニティ開発を優先し、重要なプロジェクトに投資します。 良い例は、Angular フレームワークによって作成された Google と、React.js によって作成された Facebook です。
- JS は他の技術言語と非常にうまく連携します。
- Node.js サーバーを介して JS を使用するさまざまな方法があるため、最初から最後まで JavaScript のみを使用して完全なアプリケーションを開発することができます。
- 最後になりましたが、非常に人気があり、巨大なコミュニティがあります。 利用可能なコースがたくさんあるので、JS の知識を簡単に広げることができます。
短所
- JavaScript コードは誰でも見ることができます。 誰でもコードを検査できます。
- ブラウザによって JavaScript コードの解釈が異なるため、クロスブラウザ コードの読み書きが困難になる場合があります。
- JS では、デバッグは HTML エディターでサポートされていますが、C/C+ などの他のエディターほど効率的ではありません。 これは、問題を検出する際の開発者の仕事を複雑にする可能性があります (重大な欠点ではありません)。
CodeRiders での典型的な 1 日について教えてください。
CodeRiders での私の典型的な 1 日は、おいしいコーヒーを飲みながら、同僚と朝の温かいおしゃべりをすることから始まります。 その後、誰もが自分の仕事に行きます。 1日に数回会議を行う場合があります。 月曜日であれば、一日の終わりにチーム全員が集まって大きな会議を開きます。 誰もが、自分が行ったこと、現在取り組んでいること、および行う必要があることを表しています。 誰かが問題を抱えている場合は、チームと共有し、アドバイスを提供します。
私が CodeRiders で気に入っているのは、仕事をしていて仕事の質に責任を負っているにもかかわらず、それによってプレッシャーを感じていないことです。 さらに、雰囲気がとてもリラックスしているので、仕事の効率も生産性も向上しています。
CodeRiders は、在宅勤務かオフィス勤務かを柔軟に選択できることを知っています。 どちらが好きですか、なぜですか?
はい、在宅勤務とオフィス勤務のどちらかを選択する機会がありますが、私はオフィス勤務が大好きです。 どちらの方法も私にとっては生産的ですが、チームメイトやオフィス全般が恋しいです。 オフィスで仕事をしていると、ポジティブな感情をたくさん感じます。
クライアントとのインタビューがあるとしましょう。 クライアントからプロジェクトを紹介されましたが、この時点では、特定の技術要件はありません。 彼らは提案を受け入れます。 会話をどのように進めていくか説明していただけますか?
正式に仕事に入る前に、私はクライアントと多くのインタビューをしました。 クライアントは、採用しようとしているスペシャリストが適切であることを確認したいので、これは当然のことです。
これらのインタビューでは、ほとんどのクライアントが、ソフトウェア開発者の決意、仕事へのアプローチ、および個人の価値観を理解したいと考えています。 私はいくつかの小さなテスト タスクも受け取りましたが、これは頻繁に発生するものではなく、クライアントが私たちの会社に慣れていない場合にのみ発生します。
クライアントから技術的な質問をされたことがありますが、そのときは答えがありませんでした。 ただし、ほとんどのクライアントはそれに集中していません。課題に対するあなたの反応を理解することがより重要です。 クライアントが必要とする具体的な技術がわからないこともありましたが、なんとか面接を通過しました。 そのような場合、クライアントはおそらく、必要な技術をすばやく習得したいという私の熱意を理解しています。
これまでで一番好きなプロジェクトは何ですか? その理由は何ですか?
私のお気に入りのプロジェクトは、上で説明した最初の大きなプロジェクトです。 なんで? それが、私が今持っているすべての経験とプロ意識を手に入れたときだからです。 さまざまな機能に取り組み、複数の知識をテストし、さまざまな技術を実践しました。 最後に、私はこれらのプロジェクトで多くのことを経験しました: 眠れない夜と長い電話。 やがて、彼らは私の人生の一部になりました。
ITの未来はどの技術言語だと思いますか?
これは明確な答えがない質問です。 それぞれのテクノロジーはそれぞれの意味で重要であり、正しく機能するために適切な場所で使用する必要があります。 たとえば、データ サイエンスと AI には Python を使用していますが、これは機能します。 ただし、Python はバックエンドの Web 開発に最適なソリューションではありません。 一部のプロジェクトはそれほど大きく複雑ではありませんが、間違った言語で書かれており、作業が不必要に複雑になっています。
情報技術業界でキャリアを始めたばかりのソフトウェア開発者にアドバイスをお願いします。
一度だけ学んで、その知識をキャリア全体で活かすと考えるなら、ソフトウェア開発ではそうではありません。 キャリアサイクル全体を通して、新しいことを学び、知識を更新およびアップグレードする準備ができている必要があります。 したがって、IT 業界では働きながら学ぶ必要があります。さもないと、取り残されることになります。
Sona さん、時間を割いて私たちと話をし、豊富な専門知識を共有していただきありがとうございます。
さらに、人気のあるフレームワーク (React.js、Vue.js、および Node.js) を使用する JavaScript ソフトウェア開発者は、最近非常に人気があります。 今日の世界的な IT 人材不足の中で、JavaScript、Vue.js、React.js、および Node.js ソフトウェア開発者を手頃な価格で見つけるのははるかに簡単です。特に、ソフトウェア アウトソーシングに関心があり、評判の良い技術ハブでリモート ソフトウェア開発者を探している場合はなおさらです。 .
JavaScript 開発者を雇うために、チーム CodeRiders との無料相談を提供しています。 ソフトウェアのニーズについて話し合うためにお問い合わせください。また、ソフトウェア開発者向け料金をご確認ください。