KLab若手エンジニアの これなぁに?

KLab株式会社の若手エンジニアによる技術ブログです。phpやRubyなどの汎用LLやJavaScript/actionScript等のクライアントサイドの内容、MySQL等のデータベース、その他フレームワークまで幅広く面白い情報を発信します。

2014年05月

2014年技術職新卒研修(六日目)

はじめまして! フィリピン出身の新卒のFです。
今日は主にシェルスクリプトと引き続きナンバーパズルの課題の実習に取り組んでいます。

【シェルスクリプト】

まずシェルスクリプトの講義についてお話ししたいと思います。

私は学生の時、シェルスクリプトやバッチファイルなどは苦手でした。
わかりにくくて、触れたくないという感じでした(笑)
でも、業務に必要になるから講義にまじめに聞いて実習しましたよー

講義(説明)→ 実習(実際にやってみる)の繰り返しのおかげで、基礎は身についたと思います。

具体的の内容は。。
まずバックグラウンド:
【vi】 = Visual Editorの略(UNIX/OSにはデフォルトで入ってます)

※vim/nvi というviのアップグレードバージョンのほうが使われている(vim→Vi Improved)
でもBackspaceが使えなくてつらいかもねー。。と思ったら、 Deleteはできます!

基本のコマンドから。。
D(カット)、yy(コピー)、p(改行貼り付け)、P(改行なし)、u(undo)、yw(単語単位をコピー)、保存:w、別名保存:w newfile
ちょっと「プログラマー的」なコマンド 
置換 :%s/set/Get/g

などなど。。

本題:

【シェルスクリプト】=基本的には、普段実行しているコマンドを並べ、組み合わせる

例えば: ls -l | grep rw-r--r-- | cut -c 45- | sort -r

→一覧を出す|絞り込む|取り分ける|ソートする
→複数のコマンドを一気に済ませることができる

今日は基本の基本から勉強したので、わかりやすかったです。
明日はちょっと難しくなると思うけど頑張ります!^^


【iOSの実習(ナンバーパズルの課題)】

自分も含めて、久しぶりにプログラミングをした人が多くて、プログラムを楽てんでいる姿は見えます(^^)
「実行させたい機能が出るまで席に立ちたくない!」そして何回も試して、実行させたら達成感が大きい。

本当にハマりますよねー。


自分は専門学校でシステム開発を学んできて、ゲーム開発の知識は全くありませんでした。
なので、アニメーションのxとyの計算などに誤って、作っているゲームは変な動きをしてみんなで大笑いをしていました!(笑) 本当に面白かったですよ!
右にスライドしたら、オブジェクトがどこかに飛んでいくとか。。。

パソコンもOSはいつもと違うので慣れていないし、Xcodeも初めてです。
いろいろわからないことが多いけど、インターネットで調べたり、講師やメンターに聞いたり、
お昼休みやちょっとの休憩時間とかに、周りと情報共有をするのもまた楽しいことです。
普通に話すだけでも、新卒はコードの書き方、ロジックに対しての考え方はそれぞれ違っているので、結構勉強になります。
新しい経験、新しい知識が多くて、私達、2014年新卒のエンジニアは毎日だんだん成長している気がします。

締切は明日です。
どこまでできるかを楽しみにしています。

2014年技術職新卒研修(五日目)

こんにちは、新卒Eです。

研修5日目、本日は月曜日から行っているiOS実習の中間発表会で、

朝から少し慌ただしい1日でした。


=========本日のスケジュール=========

正規表現講座

iOS実習

中間発表会

=================================


【iOS実習】

 Objective-Cを触るのが初めてだったので、月曜日あたりは四苦八苦していましたが、

 少しずつ言語に慣れ始め、自分の思ったコードを書けるようになってきました。


 金曜日の締め切りに向け、作業をスピードアップしていきたいと思います。


【正規表現講座】

 本日の講座では、正規表現の基礎部分の勉強と演習を行いました。


 ■本日習ったこと

  1.正規表現とは → 「文字列のマッチングを行う記法」である。

  2.メタ文字 → 「特別な意味を表す文字」である。

  3.選択・グループ化・量指定子


 演習では上記の習ったことを活かし、

 CUI上で、txtデータ内の指定文字列の抜き出しを行いました。


 使い勝手がよく、色々活用シーンが多そうなので、

 しっかり習得していきたいと思います。


【iOS実習 中間発表会】 

 実習中は各々個人作業だったため、

 それぞれの制作状況がわかりづらかったのですが、

 今回遂に初お披露目となりました。


 それぞれ制作過程に個性が出ており、

 ゲームロジックから作っている人や、OpenGLやアニメーションなどの描画周りから作っている人など、

 各々アプローチ方法が違ったので、非常に楽しい中間発表会でした。


 短い期間での制作でしたが、

 既にゲームロジックが完成している人もおり、

 本発表会では、完成度の高い作品が出てきそうな予感です。


 締め切り間近なので、自分も頑張って制作していきたいと思います。

2014年技術職新卒研修(四日目)

こんにちは新卒Dです。

14年度新卒、技術研修は今日で4日目です。

本日も引き続きiOSでパズルゲームを作成しながら、

iOS,Objective-Cについて学んでいます。


講習としてはKLabの案件紹介、Linuxの基礎の後半を行いました。


-------------------------------------------------

【iOS実習】

-------------------------------------------------

iOSの実習として、パズルゲームの作成を行っていますが、

私自身がiOSプログラミングがかなり久しぶりのため、

覚えていない部分、変更のあった部分が多くあり四苦八苦しております。


Objective-Cは他の言語と比べるとメソッドの呼び出し方やインスタンス変数の扱い

などで違いがあり基礎的なことで躓くことも多いです。


例えばObjectを初期化する際に

Object *object = [[Object alloc] init];

と書かないといけないところで

*が抜けていたり、allocを忘れていたり。


メソッドを呼びだす際に

[object method];

と書くところ.で記述してしまったりと

他の言語とは違う仕様で戸惑う部分がありました。


今回はiOSとAndroidの両方で同じパズルゲームを作るため

ゲームのロジック部分をUIとできるだけ分けて使いまわせる部分が

多くなるように設計を考えていますが勝手がわからない部分もあり、

適宜チューターの方に質問して教えてもらっています。


プロジェクトのコードはgithubで管理しているのですが、

gitの扱いについて苦労している人も多いようです。

今回は個別で管理していますが、複数人で使った方が実際の業務に近い形で行えるため

良いとは思いますが、それぞれの配分に差が出てしまったり、

プログラム以外の部分で多く時間を使ってしまうような気もします。


都度git statusやgit remote show、git diffなどを行い

現在の状況を把握するようにすることが重要だと感じました。


あとiPhoneシミュレーターはAndroidのエミュレータと比べかなり軽快に動くため

開発はし易いと感じました。


-------------------------------------------------

【案件紹介】

-------------------------------------------------

KLabのゲーム事業について、

その流れについて説明してもらいました。


案件の裏話や立ち上げ時のなどのストーリーを聞くことができ、

有意義だったと思います。


-------------------------------------------------

【Linuxの基礎】

-------------------------------------------------

Linuxの基礎の講習については免除対象だったのでiOS実習の作業を続けていました。

OS Xで基本的なコマンドはある程度使えるため基本的な事項については確認程度で大丈夫でした。


Linuxの設定としてはシェルをzshに設定し、

プロンプトに常にカレントディレクトリを表示するようにしています。


またリモートではtmuxを入れて表示することが多いです。


WindowsでdebianのVSを立ち上げておりますが、sshクライアントがあんまり使いやすいとはいえず、OSXのterminalで作業すると楽さを感じます。




iOS/Androidの実習のあとはUnityやDBの実習が続きますが、

様々な技術を吸収していけるように頑張りたいです。

2014年技術職新卒研修(三日目)

初めまして!3日目のブログ担当になりました新卒Cです。

よろしくお願いします。

2日目までは基礎的な座学が中心でしたが、今日から実習がメインになっていきます。


3日目のスケジュールは、以下の通りです。

急にザックリです(笑)


Linuxの使い方

iOSでアプリケーション制作実習


先に「Linuxの使い方」の講習についての話をしたいと思います。


この講習では主に「Linuxの歴史」と「Bashのコマンド」についての内容でした。


今まで全く気にしていなかったのですが、実は私とLinuxは同い年なんです。

1991年生まれ。

大元のUNIXは1970年と考えると若いほうでしょうか。

いやしかし、時が経つのは早いですね。もう23年目です。

(こんなこと言ったら年上の方々に怒られそう)


その他駆け足でLinuxの歴史を学びましたが

詳しく語り始めると凄く長くなってしまうのでここでは割愛します。


次に、Linuxで一般的に使われているBashとコマンド(シェルコマンド)について学びました。


これも一つずつ詳しくやっているととても長くなってしまうので、

端的に説明すると


cat access_log | grep -o ‘GET [^? ]*‘ | sort | uniq -c | sort -nr | head -10


↑のコマンドが何なのかを理解しました。

何も知らない人には呪文のように感じるかもしれませんが、しっかりとしたコマンドです。


cat access_log : access_logファイルを表示し

grep -o 'GET [^? ]*' :正規表現‘GET [^? ]*‘にマッチした文字列を抽出し

(正規表現は後日また講義がありますのでここでは割愛)

sort : 昇順で並び替え

uniq -c : 重複行を数え

sort -nr : 重複の多い行から並び替え直し

head -10 : その先頭10行を表示する


このような意味です。

(Linuxはちょっとしか触ったことがないので私も呪文に見えます)


今回は入門編という感じでしたが、使い慣れていない私はもう少し日常的に触る必要がありそうです。



その他の時間はiOSのアプリ制作の実習時間でした。


やっとコードが書けます!


お題が出され、それを1週間かけてコーディングしていき完成を目指します。

気になるお題は、数字を使ったパズルゲームを作ろう


…ゲームで良かった。。!


早速作業にとりかかりたい…のですが、一部の人を除いて皆iOSの開発は初めてだったため

開発を始める前にObjective-Cの勉強からスタートしました。


私は何とかOpenGLESを使ってテクスチャの表示まで持っていけましたが、これからどうなることやら。


明日以降、他の人の進捗がこのブログで公開されていくと思いますのでお楽しみに^^

(開発している我々は四苦八苦ですが…!)

linux演習


2014年技術職新卒研修(二日目)

こんにちは、新卒Bです。

14年度新卒、技術職研修は5/23(金)、2日目に突入しました。

まだまだ基礎的な内容ではありますが、基礎だからこそ大切な部分ですね。


-------------------------------------------------

【バージョン管理】

-------------------------------------------------

前日に引き続き、バージョン管理についての研修です。


GitHubのリポジトリからデータをローカルに落として、ブランチを作ってファイルを編集し、コミットするという流れを確認しました。

コマンドラインで実行していきましたが、慣れないうちはコマンドを覚えるだけでも一苦労になりそうですね。

ウッ……覚えることが多すぎて頭がっ……く( >o<)ゞ


自分がどのブランチで作業をしているのか、きちんと確認して、スムーズに開発を行えるよう意識していきたいと思います。


-------------------------------------------------

【エンジニアの心得】

-------------------------------------------------

エンジニアとしてどうあるべきか、どのようにしていくべきかということについての講義です。


【現状を楽しむこと】

・新しいことを知ること、扱えるようになることに楽しみを見出す

・より楽にできるような工夫を考えるのを楽しむ


【食わず嫌いしないで】

・嫌いかどうかは経験してからでも遅くない

・知らないから、経験してないから嫌いはチャンスを潰してしまう


【IT業界のエンジニアが意識すべきこと】

・自分が使っているものの多くは、他人が生み出したもの

・ポジティブに考える習慣をつける

・いろいろな分野に興味を持つ


【情報の活用】

・情報を鵜呑みにせず、きちんと考える

・情報を他人に向けて発信する

・社内だけでなく、社外へも発信する


KLabは、市場価値の高いエンジニアを育てていき、エンジニアが活き活きと仕事ができる場所でありたい。


-------------------------------------------------

【iOS・Android基礎】

-------------------------------------------------

iOS、Androidで今後開発を行っていくにあたって必要な基礎知識の講義です。


iOS、Androidそれぞれのアーキテクチャについて簡単に学んだ後、それぞれの開発に必要な開発環境の設定を行いました。


iOSの開発環境として利用したXcodeでは、ドラッグアンドドロップでオブジェクト間の関連付けができたりと、開発環境の進歩に舌を巻く思いでした。

Androidの開発環境として利用したAndroid Studioでは、無数の端末が存在するAndroidに対応するため、少々設定に手間取ったものの、とても便利でした。


どちらの環境も、プログラマでなくても簡単な製作が行えるような環境が整えられていて、時代の進歩を感じました。


来週以降、実際の製作を行っていくので、頑張って勉強をしていきたいと思いました。



今週は今日で最後になりますので、明日明後日はゆっくり休んで、来週以降の研修に向けての英気を養いたいと思います。

二日目


 KLab若手エンジニアブログのフッター