paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

VSCodeとPaizaCloudで超簡単に高機能な開発環境を構築する

もじゃ(@s10akir)です。情報系の専門学校に通いながら、paizaラーニングでプログラミング学習動画制作のアルバイトをしています。

先日、MicrosoftからVisual Studio Code(以下VSCode)向けの「Remote Development」という拡張機能がリリースされましたね!

「Windows Subsystem Linux」「Dockerのコンテナ」「Linuxサーバ」にVSCodeから接続し、その中の実行環境を使って開発ができちゃう(!) というトンデモ拡張機能です!大変な環境設定などをしなくても、VSCodeの強力な支援機能を生かしたまま、手元で開発ができますな。

環境設定ってOSや言語、フレームワークによっては非常に大変で、初心者の方だと挫折してしまうことも多いですよね。また「ちょっと試してみたいけど、極力手元の環境はクリーンに保っておきたいのだが…」という私のようなオタクの方もいると思います。

その気になればDockerに開発環境を閉じ込めたり、サーバにsshで接続してvimでちまちま開発したり…といったこともできなくはないですが、やっぱり高機能なエディタの持つ支援機能が恋しくなっちゃいます。

というわけで今回は、PaizaCloudとVSCodeを使って、簡単に高機能な開発環境を構築してみたいと思います。

PaizaCloudとVSCodeで環境構築やってみた

PaizaCloud」では、各種プログラミング言語やフレームワークなどが使えるLinux開発環境をブラウザ上で簡単に用意できるクラウドIDEです。ssh越しに作成した開発環境に接続することも可能です。

この「簡単に構築できるLinux環境」と「VSCodeの強力な支援機能」が合わされば…簡単に強い環境が作れてヤバヤバのヤバな気がするぜ!

というわけで、ここからは実際にPaizaCloudとVSCodeで開発環境を構築していきます。

1. PaizaCloudのコンテナを作成する

PaizaCloudの利用には会員登録が必要です。無料プランでも試せます。(※無料プランの場合「24時間で環境が削除される」「ページを閉じると環境が一時停止する(最大連続4時間)」という点に留意してください。無料プランではVSCodeから接続している間も、ブラウザを閉じてはいけません。)

f:id:paiza:20190520134006p:plain

必要な環境を選び、新規サーバ作成をクリックしましょう。今回は例として、Node.jsの実行環境を選択しました。

ちなみに、ベーシックプランだと「常時起動」にチェックを入れておけばいつでもVSCodeから接続できるのでとっても便利です!

すでにsshの公開鍵を持っている方は、このとき「SSH利用」にチェックを入れて公開鍵を登録しておくと、これ以降に出てくる 3. の手順もスキップできます。

2. sshのキーペアを作成する

PaizaCloudにsshで接続する際は、公開鍵暗号化方式という認証方式を用います。秘密鍵と公開鍵のペアを作る必要があるので、事前に作成しておきましょう。(※すでに自分の鍵を持っている方はこのステップは飛ばしていただいて大丈夫です)

f:id:paiza:20190520140710p:plain

公開鍵暗号化方式について詳しくはこちら
qiita.com

PaizaCloud上でターミナルを起動し、次のコマンドでキーペアを作成します。

$ ssh-keygen -f ~/id_rsa

この際、パスフレーズを設定するように言われるかと思います。なしの場合はそのままEnter2回でも大丈夫なのですが、念のため設定しておくことをおすすめします。

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

これで /home/ubuntu に秘密鍵と公開鍵のペアが作成されました!

ファイル名 鍵の種類
id_rsa 秘密鍵
id_rsa.pub 公開鍵

公開鍵は名前の通り公開するものですので、そこまで厳重に管理しなくても問題ありません。一方、秘密鍵はその名の通り「秘密にしておくもの」です。このファイルをうっかり公開してしまうと、第三者に不正なアクセスを許してしまう可能性がありますから、厳重に管理しましょう。

f:id:paiza:20190520142141p:plain

これらの鍵はあとでまた使いますので、右クリックしてダウンロードしておきましょう。ちなみに、同じ鍵をGithubなどのほかのサービスで使うこともできます。

3. PaizaCloudにsshで接続できるようにする

さきほど作成した「公開鍵」の方のファイルを開き、中身をコピーしておきましょう。

f:id:paiza:20190520142221p:plain

f:id:paiza:20190520142233p:plain

左上のメニューから「SSH設定」を選択し、開いたダイアログの下のフォームへ貼り付け、SaveボタンをクリックすればOKです。

上の行に出ているコマンドは、あとで必要になります。どこかへメモしておいてもよいですし、もう一度この画面を開けば確認できます。

4. Visual Studio Code Insidersをインストールし、拡張機能を追加する

code.visualstudio.com

「Remote Development」は、まだプレビュー版の機能なため正式公開されていませんが、テスト版の位置付けであるVSCode Insidersは利用できます。

Insiders版は独立した環境ですから、すでにVSCodeを利用中でも、そちらに影響が出ることはありません。安心!

f:id:paiza:20190520142604p:plain

VSCode Insidersを起動したら、左側拡張機能のメニューから「Remote Development」で検索し、該当の拡張機能をインストールしましょう。

このように、インストール後に新しいアイコンが表示されていればOKです!

f:id:paiza:20190520142640p:plain

5. SSHの設定を行う

ここで、3. でメモっておいたコマンドが必要になります!

ssh -p 数字 ubuntu@設定したコンテナ名.paiza-user.cloud

上記コマンドには、下記のような意味があります。これらの情報を用いて、PaizaCloudへ接続します。

項目 対応する部分
ホスト名 @より後ろ 設定したコンテナ名.paiza-user.cloud
ユーザー名 @より前 ubuntu
ポート番号 -pの次の数字 59123など、環境によって変わります

この情報をsshの設定ファイルへ追記しましょう。

f:id:paiza:20190520142911p:plain

f:id:paiza:20190520142929p:plain

VSCodeでF1キーを押し、開いたコマンドパレットから「>Remote-SSH: Open configuration File」を実行しましょう。

表示された選択肢の中から設定ファイルを選択しますが、何を選択するかはOSによってファイル名や場所が異なります。

OS 選択するもの
Windows C:\Users\ユーザ名\.ssh\config
Mac /Users/ユーザ名/.ssh/config
Linux /home/ユーザ名/.ssh/config

ちなみに、秘密鍵id_rsaの保存先はこの.sshフォルダと同じ場所にしておくと何かと便利です。

これらのファイルを開いたら、下記の内容を追記しましょう。

Host 接続先の名前(好きな名前)
    HostName ホスト名
    User ユーザー名
    Port ポート番号
    IdentityFile 秘密鍵の保存先  # 例 ~/.ssh/id_rsa

f:id:paiza:20190520143118p:plain

このファイルを保存し、再びF1でコマンドパレットを呼び出して「Remote-SSH: >Remote-SSH: Connect to Host」を実行しましょう。登録した接続先が選択肢にあればOKです!

6. 実際に接続してみる

実際に接続先を選択してみましょう。もう一つ新しいVSCodeのウィンドウが立ち上がり、しばらくしてから左下の緑の部分に接続先名が出ていれば成功です!

ターミナル

それでは、実際に使ってみましょう。

「Ctrl + `」でターミナルを立ち上げ、次のコマンドを打ち込みます。

$ uname -a

f:id:paiza:20190520143237p:plain

PaizaCloudで作成したコンテナ名と、「Ubuntu」とありますね。

ほかのコマンドも試してみましょう。今回は環境作成時にNode.jsの実行環境を選択しているので、ちゃんと入っているか確認してみます。(ちなみに今使っている私のマシンには、Node.jsをインストールしていません)

$ node -v

f:id:paiza:20190520143343p:plain

Node.jsのバージョンが表示されました!このターミナルはまぎれもなくPaizaCloudのコンテナのターミナルですね!

ファイル編集

ファイルも見てみましょうか。

左側のファイルツリーから「Open Folder」をクリックし、デフォルトでホームディレクトリ /home/ubuntu が選択されているのでそのままOKを押してみましょう。

PaizaCloudのほうにあるファイル一覧が表示されました!このまま編集もできちゃいます!!すごい!!

なんだかやけにファイルが多いように見えますが、これは普段表示されていない隠しファイルが表示されているからです。(※PaizaCloudでもファイルツリーの設定から表示できます)

f:id:paiza:20190520143525p:plain

試しに書いてみたコードもちゃんとハイライトされて、支援も機能しています。実行も問題ありません。

VSCodeのほかの拡張機能もいつもどおりインストールでき、設定はサーバ側の .vscode-remote というフォルダに保存されるようです。

というわけで、PaizaCloudとVisual Studio Codeで開発環境構築ができました!やったね!もう手元のマシンで開発環境を構築する時代は終わったのでは…?

まとめ

今回の方法では、一度VSCode側の設定さえ整えてしまえば、難しいことを考えずサクッと快適な開発環境が構築できます。

私は、PaizaCloudの強みは「ぽちぽちしていくだけで簡単に開発環境が整えられる」ところだと思っています。今回はその上で、普段使い慣れた高機能エディタも使えるようにできましたので…ヤバヤバのヤバですね…。

PaizaCloudのベーシックプランを使えば、開発したWebサービスをそのまま公開することもできちゃいます。

開発環境構築にハードルの高さを感じている初心者の方はもちろん、エディタにこだわりのカスタマイズがある上級者の方も、ぜひこの機会にRemote Development for VSCodeでPaizaCloudを試してみてください。


PaizaCloud」は、環境構築に悩まされることなく、ブラウザだけで簡単にウェブサービスやサーバアプリケーションの開発や公開ができます。
https://paiza.cloud





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのスキルチェック

面接での失敗を防ぐ・企業がエンジニアのどこを見て何を考えるかの話

f:id:paiza:20190520123302j:plain
Photo by perzon seo
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

転職の面接で、「スキル不足」などの理由で落とされた経験はありませんか?

面接に落ちるのは、採用する企業側と応募者の間で、何らかのズレがあったからです。

このズレを埋めて面接に受かるには、「応募者に対して企業が何を考えているのか」を知っておく必要があります。

今回は、選考中に応募者側と企業側で発生しがちなズレや企業が応募者に期待していること、ズレを埋めるために普段からできる対策などについてお話しします。

応募者側と採用側に多いズレ

職務経歴書やスキルシートなどを書いたときを思い出してください。「何でも書いておけばどれかアピールになるかもしれない!」と考えて、少し触ったことがあるある技術も並べ連ねたり、盛り気味に書いたりしていませんか?

もちろんそれが悪いというわけではありませんし、前向きにアピールをするのはよいことです。

ただ、採用する側が知りたいのは「やったことがあるかどうか」ではなく「できるかどうか」です。特に新卒・第二新卒などではなく、経験者の中途採用の場合、「やったことがある(できるかどうかはわからない)人」ではなく、「できそうな人」がほしい。

たとえば、「DB設計をしてくれる人がほしい…」と思っている企業に「できます!」という人からの応募が来たので面接でよくよく話を聞いたりテストを受けてもらったりしたら、実際はSQLをちょっと書いたことがある程度だった…みたいな事例はよくあります。

これはかなり極端な例ですが、こうした「書類にはできると書いていたけど、実際はできないんだな…」という評価をされて落とされてしまうケースは珍しくありません。

(この場合、もし受かったとしてもズレがある状態での入社になってしまうと入ったあとが非常に大変ではありますが)

中途に求められるのは「再現できる」こと

新卒・第二新卒などの若手であれば、多少経験や技術で足りない部分があったとしても、「これから教育して吸収していってもらえば何とかなりそうかな」といった目で見てもらえる場合もあります。

ただ、これが30代半ばぐらいのエンジニアになってくると、多くの企業が「すでにそれなりの業務経験や実績があり、それを再現できる人」を求めるため、選考時の目線もそれなりに厳しくなります。

特に「30代になるまで転職について全く考えてこなかった…」という方の場合、今まで社内での評価しか受けた経験しかありません。それこそ、社内での役職などもついていると「自分はどこへ行ってもそれなりにできるだろう」と思いがちです。一般的に中途エンジニアとして求められるレベル感を知らずに転職活動を始めてみたら、社外では全く通用しなかった…といったケースもよくあります。

ただ、もちろん中途なら何でもできないと転職できないというわけではありません。何でもできる人なんてそうそういませんし。

選考を通過できる人は、「全体を把握した上で、この部分はできる、この部分はやったことないけどこんな感じだと把握している…などと話せる人」です。次の章でもう少し詳しく説明します。

企業が応募者に期待すること

大前提として開発作業が一通りできる

それなりに経験のある中途エンジニアであれば、ユーザーや社内の要望レベルから、設計や開発に落とし込むところまでできる、もしくは要件を聞くのがうまい人と組んで、要望の120%を超えられるアウトプットができる技術者が求められます。

また、経験者であればその上で「特に専門の得意分野はこの分野です」と、特に詳しい分野、得意な分野についても語れるとよいでしょう。

「Web開発ができます」と言っているのにCLIでの作業ができないとか、「WebブラウザでURLが叩かれてから表示されるまでの流れを教えてください」と言われてざっくりとでも説明できないレベル感の人は厳しいかもしれません。

システムや開発工程の全体像を理解している

厳密にすべての分野について詳しく知っていなくても、「自分がかかわっているサービスやプロジェクトの全体像」がイメージできないと、エンジニアとしての役割を果たすことはできません。

ここがイメージできてない、担当範囲以外は全然知らない、言われた仕事だけやってきた…という状態だと、「中途経験者の割には指示待ちでしか仕事できないのだろうか」と思われ、NGとなってしまう可能性があります。

大きなプロジェクトや受託開発の場合、担当以外の部分について知るのが難しいケースもあるかと思いますが、その場合も「何をどこまで知っているのか、全体についてもどんな想定をしていたのか、その中で自分の役割についてどう考えていたのか」は語れる必要があります。

「担当じゃなかった領域については全然知らないです」という人が評価されるのは難しいでしょう。

「考えない作業者」レベルの人はいらない

中途のエンジニアに求められるのは、ただ言われた通りにプログラミングをするだけの仕事ではありません。プログラミングは、課題解決のために手段です。

課題解決のためにはどんなものを作る必要があるのか、どんなものを作ればユーザーの要望をかなえられるのか、その中で自分がやるべき仕事、果たすべき役割は何なのか…といったことを理解せず、「仕様だったからこう作っただけです」としか言えない人は、NGになってしまう可能性が高いです。

普段からできる選考対策

日頃から課題感を持って業務に取り組む

企業はエンジニアに対して課題の発見・解決に積極的に取り組んでくれることを求めており、その力があるかどうかを見極めるために面接を実施しています。

そのため、面接を突破するには普段からの取り組みも重要です。日頃から課題感を持って開発業務に取り組んでいない人が、面接の場だけ急に取り繕うことはできません。

今からでも遅くはないので、目の前の仕事に対して「この業務にはどんな課題があるのか?」「この仕事で人にアピールできるのはどんな点か?」といった目線を持っておくのが一番の対策になるかと思います。

まとめ

というわけで、選考中に応募者側と企業側で発生しがちなズレや企業が応募者に期待していること、ズレを埋めるために普段からできる対策の話でした。

自分が取り組んでいる仕事に対して、「自分の担当部分だけでなく、システム全体でどんな目的を目指す仕事なのか?」「何が課題なのか?」という目線を持って取り組むことは、転職をする・しないに関わらず、自分のエンジニアとしての価値を伸ばしていくためにはとても重要です。

また外の世界を知るために、技術関連の勉強会に顔を出してみたり、一度企業に応募して話を聞きに行ってみたりするということも有効だと思います。(paizaでは、私服で行けて企業側からも事業内容や開発業務についての話が聞けるカジュアル面談を実施しています)

paizaの「カジュアル面談」について詳しくはこちら

paiza転職について詳しくはこちら
paiza転職






paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

エンジニアが転職で失敗しないために必要な給与と仕事内容の選び方

f:id:paiza:20190516134100j:plain
Photo by CafeCredit.com
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

転職に興味のあるエンジニアのみなさん、企業選びの条件や優先度などについては、きちんと考えられていますか?

たとえば、自分の中で譲れない条件は何なのか、年収はどれぐらい必要なのか…。これらをきちんと考えずに転職してしまった方から

  • 「収入より仕事の楽しさを優先したい!」と思って年収を大幅に下げて転職したら、お金がなくなってきた…
  • 「年収さえ上がればいい」と思って転職したけど、仕事が楽しくなくてつらくなってきた…

などといったご相談を受けるケースもよくあります。

つらい悩みですが、これらは転職前に「自分の中で何が一番重要なのか」「各条件の優先順位はどうなっているか」「転職して何をかなえたいのか」といったことを考えられていれば、避けられた問題かもしれません。

というわけで今回は、こうした転職後のミスマッチを防ぐためには、条件や仕事内容などについて何を考え、検討しないといけないのか?についてお話しします。

最低限満たさないといけない条件は何なのか?

ざっくり考えると、転職にあたって誰もが気になるのは給与面と仕事内容だと思います。

給与面

中途での転職の場合、基本的に求められているのは「今まで身につけてきたスキルを発揮して、なるべく早く成果を出すこと」です。そのため、経験のある分野への転職であれば年収を上げる余地がありますが、逆に経験や知識がない分野への転職を目指す場合は、年収を下げざるを得ないパターンもあり得ます。

誰だってお給料はなるべく高いほうがうれしいかと思います。一方で「年収は自分一人がなんとか暮らしていければいい、それよりも楽しそうな仕事がいい」「ずっとやりたかったあの分野に行けたら年収が下がってもよい」などと考えている人も少なくありません。でも、本当にそれで今後も大丈夫でしょうか?

現職より楽しい、興味の持てる仕事に転職できるのは、とてもよいことです。ただ、人間は生きているとお金がかかります。ごく一般的な社会人であれば、20代、30代、40代…と年をとるほどに、パートナーができるとか、養わなければならない家族が増えるとか、もっと広い家が必要になるとか、ライフイベントの発生、ライフスタイルの変化などが起きて、ふだんの生活に必要な額がだんだん上がっていきます。

20代前半で自分だけ生活できればそれでいいとか、実家暮らしでお金がかからないうちは別に大丈夫だったりしても、年収を下げすぎると途中で「あれっ思ったよりお金がない…」となってしまうケースもあります。それこそ、ライフイベント発生時や家族やパートナーが急に働けなくなったときに気づくケースもあります。(実際にこういったタイミングであわてて再び転職活動を始める方もいらっしゃいます)

仕事内容

もちろん給与だけ上がったところで、仕事がつらくてまたすぐに「辞めたい」となってしまうのは本末転倒です。

エンジニアの場合、向き合うことになるサービスや、メインで使う技術などが「興味を持てるものかどうか」は、企業選びにおいて重要な条件ではないでしょうか。

特に、前職でサービス内容や使っていた技術などに不満があった場合は、もっと興味の持てるサービスや技術分野、開発環境などが使える企業を探すのがよいですよね。

また、前職でのキャリアパス(たとえば開発を離れてマネジメントにまわるしかない…など)に不満があった場合は、応募先にどのようなキャリアパスが用意されているかを聞いた上で、比較検討するのがよいでしょう。

仕事内容ひとつとっても、サービス内容、開発環境、開発の進め方、キャリアパスなど、人によって優先したいことやかなえたいことは異なるはずです。

いろいろな企業の求人票を見比べたり、実際に応募をして情報を集めながら、自分の中で何が一番重要で満たしたい条件は何か、優先順位はどうなっているか…などを考えておくと、最終的に大幅にずれた選択はしないで済むかと思います。

どんな人がどんな会社に向いているのか

転職経験が少ない人の場合、「現職に不満はあるけど、どんな会社に行けばそれが解決されるのかわからない」「自分にはどんな企業が向いているのかよくわからない」という人も多いと思います。

企業の規模や業種によって、どんな特徴、メリット・デメリットがあるのか、どんな人に向いているのか…といったことは以前の記事でも書いています。

paiza.hatenablog.com

paiza.hatenablog.com

ただ、この話はあくまでよくある共通項であり、すべての企業が絶対に当てはまるわけではありません。自分に合う企業かどうかは、求人票などの情報を調べたり、気になる点を面接で聞いたりした上で、見極めるのが重要です。

paizaでは、多くの掲載企業が、私服で行けて企業側からも事業内容や開発業務についてなどの説明が聞けるカジュアル面談を実施しています。カジュアル面談は、一方的に質問をされるだけの面接ではなく、仕事内容や将来的なキャリアパス、必要なスキルなどについて詳しく質問することもできますので、企業や求人の情報収集にも最適です。

paizaのカジュアル面談」について詳しくはこちら

まとめ

というわけで、転職するときに考えておくべきことの話でした。

条件の優先順位や許容範囲、ここは譲れるけどこれは譲れない…などは人によって全然違うので、「自分の中で何が重要なのか」をしっかり考えておくことが重要です。

企業選びの軸の整理や、どんな企業が自分に合うのかわからない…といったときは、paiza転職もお手伝いしますので、ぜひpaiza転職運営事務局の担当者にご相談ください。

またpaiza転職では、求人票を開発ジャンルや使用言語、給与額などだけでなく、イヤホンOK、裁量労働、副業OK、一部在宅勤務可、原則定時退社、時短勤務可、スキル研修が充実…などなど、さまざまな基準や条件で検索することができます。

paiza転職について詳しくはこちら
paiza転職




paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのスキルチェック





※このブログで紹介しているキャンペーンやイベント、およびサイト内の情報については、すべて記事公開時の情報となります。閲覧されたタイミングによっては状況が変わっている場合もございますのでご了承ください。

ITプログラマー・エンジニア転職・就活・学習のpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編AI機械学習入門

エンジニアのためのプログラミング転職サイト|paiza転職

プログラミング スキルチェックエンジニア求人一覧

未経験からエンジニアを目指す人の転職サイト|EN:TRY

プログラミング スキルチェックエンジニア未経験可求人一覧

エンジニアを目指す学生の就活サイト|paiza新卒

プログラミング スキルチェックエンジニア求人一覧

ブラウザを開くだけで エディタ、Webサーバ、DB等の開発環境が整う|PaizaCloud