はじめまして。Zapshotバックエンドエンジニアの山田梨加子です。
少しだけ自己紹介をしておくと、私は、アメリカカリフォルニア州のシリコンバレーというビッグテックのお膝元でコンピューターサイエンスを専攻しました。
面接官や同期になんで日本?って散々言われました笑
端的に言うと日本がやっぱり好きだからです。今までタイとかアメリカ他州でも住んできましたが、やはり日本が一番です。ご飯美味しいしトイレ綺麗だしバスは時間通りに来るし。
あくまで個人の意見です!
というわけで、ここでは、コンピューターの基本のきであるShell/Linux研修の様子についてお話しします。
コンピューターサイエンスを専攻した方以外は、あまり触れる機会のない分野ではないかと思います。
ですがレアゾン・ホールディングスの新卒研修では必須項目として学びます。
研修の内容が気になる方は、ぜひこの記事を読んでみてください。
研修の概要
研修の概要はオウンドメディアの記事で詳しく紹介していますので、こちらからご覧ください。
テーマの概要
Shell/Linux研修のゴール
サーバー管理やデプロイに不可欠なLinuxに関する基礎知識を身につけ、アプリケーションを動かすための環境を理解すること
これに加え、この講義では、「エンジニアとしての人間力を育てる」という目的も兼ねていたので、チームワークや言語化によせた内容になっていました。
主な研修内容としては、グループで、以下のトピックについて調査/発表後、Hands-on演習を行うというものでした。
-
Linuxの歴史とその特徴
-
各種ディストリビューションの違い
-
KernelやShellの仕組み
発表は、Shell/Linuxについて、講師陣の方々に全く知識がない前提で説明をするという内容でした。
演習問題は全部で15問ほどあり、shellコマンドを打って、指定された作業をするという内容でした。
例えばこんな感じです。
mkdir
、 cd
、 ls
など基本のコマンドから、ping
、curl
などの知っていると便利なコマンドに加え、vim (テキストエディタ)を使ったスクリプトの書き方も教わりました。
技術的なお話
Linuxとは
一言で言うと、UnixライクなオープンソースのOS。 サーバー構築やクラウドコンピューティング、スーパーコンピューターなど様々な用途に使われていて、以下のようなメリットから幅広い分野で使われています。
-
カスタマイズ性
-
安定性
-
用途や目的に合ったディストリビューションが選べる
Kernel、Shell、Terminalとはなんぞや
Kernel:OSのコアの部分で、システムリソースの管理をする
Shell:ユーザーがkernelとあれこれするときに用いるソフトウェア
Terminal:ユーザーがコマンドを入力するときなどに使われるプログラム
学んだこと
発表では、技術的な単語を使いがちなところを、みんな上手くアナロジーを使いながら説明していました。
個人的に難しく感じたのは、深く掘り下げず程よい説明をすることです。
相手にとにかく理解してもらわないとという一心で、冗長に話しがちなので、どこまで説明すべきかを判断するのが難しかったです。
今回の研修で、一度の説明で相手が理解することはなく、わからなければ質問をされるので、その都度より詳細な説明をすればいいのだと気づきました。
この研修で学んだことは実務でも生きています。
相手が必ずしも自分と同等の知識レベルを持っているとは限らないということを知りながら話し合いができると、お互いへの理解も深まるし、連携も取りやすくなります。
技術的な話だと、業務ではIDEなどのGUIを使うことが主ですが、shellを使うと早かったり便利なことも多いので、知っていると得します。
Zapshotで私個人がshellを使うことの多い場面は
-
ちょこっとスクリプトをいじるとき
-
サーバー上のデータベースに接続するとき
-
APIをcurlでshellから直接叩きたいとき
などです。
最後に
レアゾン・ホールディングスの新卒研修は、グループワークが多いのが特徴です。
これは、会社がコミュニケーションが何よりも重要とする考えから来ています。
一人で作業しがちになるプログラミングをみんな知識レベルが異なる中で、一緒に学べるのはとても良い機会です。
この記事を読んで、レアゾン・ホールディングスにさらに興味を持っていただけたら幸いです。
▼採用情報