2013年8月22日木曜日

お勧めの本とか

IT業界が何たるかを知りたいという方のためのオススメの本をいくつか紹介

興味があればぜひどうぞ

筆者自身あまり本を読まないのとITについては技術書や専門雑誌以外はほとんど読まないのであまり紹介できませんが読んだ中でもぜひと言える本をここでレビューを合わせて紹介します。

IT業界志望者必読

なれる!SE 2週間でわかる?SE入門 (電撃文庫)
IT、特にSI志望者の場合はむしろ必ず読んどけと言っておきたいくらいおすすめです。最近は漫画化もされました。
単純に読み物としても純粋に面白い本ですしSE志望者であれば業界のこと、さらにSEの業務についても読むだけで一気に理解度が深まります。
元SEのライトノベル作家が書いた本でSEの基礎、システム保守、提案・営業活動、プロジェクトマネジメント、カスタマーサポート、客先常駐、案件防衛、プロダクト開発についても分かりやすいストーリー形式で触れられます。

内容としては新卒で都内のシステム開発会社にシステムエンジニア(インフラエンジニア)として入社した主人公、桜坂が未経験で右も左もわからない状態から上司、室見に振り回され社長に仕事を無茶ぶられながらもエンジニアとして成長してゆくもの。仕事を通じてシステム開発、保守運用、顧客への提案・営業、プロジェクトマネジメントやカスタマーサポート、ライバル企業との案件攻防、さらに自社プロダクト開発を通じて経験を積み重ね人脈を広げて成長してゆく物語。
ラノベだけに登場人物も結構美少女系が出てきたりもしますが現実のSIerは筆者を含めむさ苦しいオッサンばっかりなのでくれぐれも誤解しないように。現実って残酷だね☆
いずれの巻も2,3時間ほどでサクッと読めてしまうので読み物としてもおススメです。



まつもとゆきひろ コードの世界‾スーパー・プログラマになる14の思考法
プログラミング言語「Ruby」の開発者であるまつもとゆきひろ氏の著作。
まつもとゆきひろ氏がRubyを開発する際の設計思想やアルゴリズム、言語構造、Rubyの設計・開発の際に何を理想として設計したのかについて説明している本。読むにあたってはオブジェクト指向、C,Java,Rubyなどがある程度分かってる人ならとっつきやすいけどそれ以外の人にはややハードルが高め。
もっともプログラミングに触れたことがある人ならばエンジニア、プログラマがどのような考え方を持っているのかということを知ることができる一冊。



プログラマが知るべき97のこと
世界中で活躍しているプログラマが自身の経験をもとに現場の知見を書き下ろした97本のエッセイ集。特に現場のプログラマが自らの業務の中で知りえたことを自らの後進に伝えるべく書いたことが凝縮されていて非常に濃密な一冊。設計、開発、コーディング、バージョン管理、プロジェクト管理、テスト、保守など多岐の分野の知見が凝縮されています。エンジニアを目指して就活してる学生、新人のエンジニアなら必読。日本語版にはさらに日本人技術者(子飼弾、まつもとゆきひろ、舘野祐一ほか)によるエッセイが10本掲載されてます。



以上がオススメの本の抜粋です。

新たにオススメの本があれば追々追加してきます。

2013年8月17日土曜日

IT業界に対する誤解が意外とあることとそれに対する所感

今回はRaspberry Piから離れて業界ネタ

就職してから早4か月強、新人基礎研修(ITの基礎だったりマナーとかビジネス文書とかの社会人のイロハとか)と技術研修、製品研修を一通り終えてもうすぐOJTの勝又です。

まあ筆者はタイトル通りIT業界でまだ見習いといえどいちSEとして働いてますが以外と大学の同期や後輩らでIT以外の人からはIT業界に対する誤解や勘違いが非常に多いと感じるところ。
そこで実際に業界の中の人(まだ新卒入りたてだけど)が実際どうなのかをコンセツゴテーネーに説明しましょう。

実際に大学の同期(IT以外)や後輩から寄せられた質問形式での説明です

1.「ITのエンジニアってパソコン相手の仕事だからコミュニケーション能力とか必要ないよね?」(男性/20代/金融)


結構これはIT以外の人から言われるがこれはウソ。かくいう筆者も当初はそのように考えてた時期もあったが就活だったりOB訪問だったり同じく業界人である親父の話や入社後に上司や先輩社員の話を聞いてそれは違うということを知った。
システム開発や構築においては上流工程(要件分析やクライアントの業務分析)と下流工程(実際にプログラム書いたりテストやったりの開発とその後の運用)に分かれますが上流工程(とくにNTTデータのような大手SIerやベンダー)ほど開発よりも顧客との泥臭い交渉やチームのマネジメントや情報共有(これは開発もですが)など必然的にメインとなりエンジニアというよりも営業に近くなります。従ってエンジニアにはコミュニケーションが不要と言うのは嘘。

ちなみに以下のいずれかに一つ以上当てはまる人は上流工程SEに向かない人と言われてます。
(念のため当てはまるからSE適性がないというわけではない)
①人間嫌いな人
②1日中パソコンだけ相手にしていたい人
③一度受けたストレスや屈辱は相手に直接返さないと気が済まない人
④急な予定変更に対応できない人

もし心当たりがあれば早急に習慣や行動などを日常で地道に改善することを推奨します

2.「IT業界ってブラックばっかりなんでしょ?仕事がどの業界よりもハードって聞いたけど…」(女性/20代/インフラ)


これも嘘、といえばまた嘘になるが、あえて言うなら半分は本当、半分は嘘、といった感じか。
まあ何を以てブラックとするかですが大抵の場合は単に激務なだけだったり給料が他に比べて多少安い(会社にもよりけりですが極端に安いのならそれはそれでブラックである)とかですがね。

恐らくITがブラックと言われるのは業界の構造によるものだったりもします。

最近になって少しずつ変わってきてもいますが以前まで「ITゼネコン」という言葉に表されるように一番上に大手のベンダーやSIerがデンと座りそこから下へ下へと行くにつれて子会社・孫会社や下請けと続くピラミッド構造。上層部は案件・要件とプロジェクトの管理だけをやって開発を下請けに丸投げするというもの。これで実は結構中抜きが行われているのも事実。(つまりどういうことかといえば客が元受ベンダー・SIerに1億円で発注→元請が一次請けに5000万円で発注→一次請けが二次請けに2000万円→二次請けが三次請けに1000万円→三次請けがさらにその下請けに500万円…な具合)

上の立場の会社は下請けに丸投げをしそして丸投げされた側は一気にそのしわ寄せを受けるしさらに中抜きでカネのロスも大きい。

あと労働環境の観点でもブラックかどうかの差も大きいです。
メーカー系・ユーザー系大手のSIerやその系列においては多くの場合研修制度も整い待遇や福利厚生も充実していたりコンプライアンスが厳格な分サービス残業もないところが多いです。(筆者の会社においても残業も勤怠にキッチリ記録され深夜残業や休日出勤においては事前に勤怠システムで申請し上司の許可がないとできない、残業と言っても現在ではグループ全体でも経営層のトップダウンにより残業の削減や有給取得の推進など労働環境も大幅に改善されている)、ただ中小をはじめとするソフトウェアハウスではデスマーチやサービス残業の常態化や低賃金などブラックな環境が多いのもまた事実です。(ただスキルを磨けば転職などで抜け出せますがヤバいと思ったら自分でスキルを磨いて脱出の用意を)

3.「情報処理とかの資格試験の話を聞くけど資格がないとダメなの?」(男性/20代/学生)


情報処理関連では必ず耳にするのが基本情報や応用情報といった「情報処理技術者試験」、他にもMicrosoftやOracleなどのベンダー製品技術者資格などいろいろですがないと仕事ができないというわけではない。
基本的に資格は「独占資格」(医者、弁護士、会計士など該当資格がなければ業務に従事できないもの)、「認定資格」(英検、漢検、簿記などある特定の分野における知識や能力を証明するもの)に分けられ情報処理技術者試験などは後者に当てはまる。
最も資格がないとできないならば最初から「文理不問」とか「未経験者歓迎」な求人は最初からあるわけがないですが。
最も大抵の会社は入社後に資格取らせたり受験料を会社が負担してくれたりさらには資格取得報奨金というボーナスも付いたりとか転職の際に業務と関連付けてアピールしたりと美味しいことだらけなので取って損はない、ていうか取らなければ損。
資格の詳細についての説明はここでは割愛するけど覚えていたら多分別記事で書く。

4.「就活の時にITの会社でインターンをやってた時があってその時にユーザー系とか独立系とか聞いたけど違いや意味がいまいち分からないけどあれは何?」(男性/20代/公務員)


メーカー系、ユーザー系、独立系、これはこの業界だとよく聞くけど基本知識として押さえておくこと。

①メーカー系…電機メーカーのグループ企業、日立とかNECとか富士通とかの子会社。賃金体系やキャリアパスなども親会社に準ずることが多い。(主な会社:ざっくばらんに言えば名前に「日立」や「NEC」が付いているとこ)

②ユーザー系…ユーザー企業(銀行、商社、電機以外のメーカー、インフラなど)の情報システム部門が分離してできた会社、ユーザー企業である親会社の情報システムの構築や保守といったグループ向け中心のとこもあればグループ以外の企業との取引を積極的に行う会社も多い。(主な会社: 伊藤忠テクノソリューションズ、野村総研、住商情報システム(※)など)

③独立系…上記以外の企業、大手から中小と千差万別、ベンダーやメーカーの制約を受けない、特定のある分野に特化した製品や技術を持つなどの特徴のある企業もあるけど収益基盤や売り上げなど企業間の格差も大きい。特に中小に至っては大手の下請け開発が中心といったことも少なくない。(主な会社: TIS、大塚商会、CSK(※)など)

5.「ITのエンジニアって文系でもなれるの?」(女性/20代/通信キャリア)


勿論なれます、事実筆者が文系卒SEなので。でなけりゃ筆者も就職してませんしそもそも未経験者歓迎とか文理不問なんて求人も(ry
文系理系云々というよりは地頭のよさや切れ(もっともこれはその人の生まれつきのものなのでどうしようとも言えないのですが)、物を論理的に考えることができるのか、あとはコンピュータやテクノロジーに興味・関心を持ち続けることができかつ常にそれを学び続ける意欲があるのか、がこの業界で働くための適性といえます。(もっとも論理的に考える力や前提知識等の観点では理系、特に数学・機械・電気・電子・情報系などがアドバンテージがありますが)
事実文系の同期でも在学時から統計処理やデータ処理やWebアプリや趣味でバリバリコードを書いている人もいればソーシャルゲームのコンテストで最優秀賞に入賞する人もいるので人それぞれです。私の職場でも文系卒の方も多くいます。
ただIT業界に関心を持つためやその際のヒントになる本については後々紹介します。

結構ITというとまだまだ業界一般でも他と比べて歴史が浅いことや常に新しい技術が出て変化が激しいこと、まだまだ一般に広く認知されてないこともあって先入観や誤解も多く技術者に対する勘違いや誤解も多いものですがその技術者に対する誤解が取り払われ尊敬される仕事になることを願うばかりです。


※…住商情報システムとCSKは2011年10月1日に合併しSCSKとなり現在に至る

2013年8月14日水曜日

Raspberry Piハッカソンなんてものをやってみる

昨日の記事でもRaspberry Piで何かやろうと言いましたがメディア研時代の先輩が「ひとりハッカソン」なるものをやってたのでワタクシメもそれにヒントを得てラズベリーパイハッカソンをやろうと考え付きました。
※ハッカソン(英語: hackathon、hackとmarathonの合成語)…ソフトウェア開発分野のプログラマやグラフィックデザイナー、ユーザインタフェース設計者、プロジェクトマネージャらが集中的に共同作業をするソフトウェア関連プロジェクトのイベント
-Wikipedia「ハッカソン」2013-8-13-21:49UTC
PG、デザイナ、UI設計者、PMらが集まって集中的に共同作業といってもこんな大それたわけではなく今回はタイトル通り一人でRaspberry Piをひたすらいじくりまくって何かするだけのものです。

今のところ何をするのかまでは具体的に定まってないもののPythonで自然言語処理とか機械学習他もろもろの実機上での勉強メインでやってみようという方針です。

Raspberry Piの環境ですが標準でPython、IDLEなどPythonの開発環境が非常に充実しているのでPythonの勉強にももってこいのものというのもありますがね。

プログラミングに関しても仕事ではまだまだ研修中で本格的な開発まではやっておらず家でもグダグダなために今回はハッカソンという形でブログで宣言して成果物を随時発表し半強制的にプログラミング学習のモチベーションを引き上げようというのも狙いです。

流れとしては
まずはやる、最低週一回以上
・とりあえず技術書に書いてある内容は実行する
・やったことや成果をこのブログでリポートする
・自分で書いたコードなら随時Githubなどでも公開する
・Python以外の内容の勉強も(情報処理とかC#とかSQLとかも)

以上の具合

といっても内容によってはちょこちょこTwitterなどでもつぶやくかもしれませんがね。

とりあえず今週までの常駐研修が終われば1週間夏休みなのでたっぷり時間が取れるのでトコトンやりこめますがね。ゲーセンこもったりしない限りは

2013年8月13日火曜日

ラズベリーパイ料理記録

ども、久しぶりです。

3ヶ月前にRaspberry Piを買ってからすっかり放置してました。

ええ研修忙しかったり資格試験の勉強に追われたりjubeatとポップンとリフレクとボルテと弐寺の解禁作業に追われたりとにかく超絶多忙な毎日なためにRaspberry Piを触ってる余裕がなかったんですよ。

まあそんなこんなでしたがこの日曜で本格的にセットアップして開発などでいじくりまわせるようにしましたよ。

まずは起動用SDカードへのOSイメージの書き込み

Disk Imagerというイメージ書き込みツールで起動ディスクを作成。SDカードの該当ドライブを選択しRaspbianのイメージファイルを選択した状態で「Write」を選択、途中警告メッセージが出るが無視でよい。
書き込み完了、ついでハードの準備も。

で、これが調理器具(ハード)一式

キーボードと起動用のSDカードと電源用microUSBケーブルは購入、モニタはVAIO時代に使ってたサブディスプレイを、電源アダプタはiPhoneのを、マウスは普段使ってるのを流用。
一通り配線完了、マウスのそばの小さい箱がRaspberry Pi本体。
配線ぐちゃぐちゃで汚いが気にしない。
あとは電源を入れる(と言ってもコンセント挿せば勝手に電源入る)
起動開始、起動ファイルの読み込みメッセージあたりLinuxの流れである。

タイムゾーンなどの必要な構成設定を済ませてOSのアップデートの後X Windowの起動
無事起動
カードサイズの超小型でありながらもフツーのPCと遜色ない環境。
ブラウジングもこの通り。

ただ標準では日本語環境がないため別途日本語環境のインストールが必要。
この日は日本語環境セットアップを途中まで済ませて終了。

そんなこんなでグダグダではありますがこれからこのRaspberry Piでトコトン料理しまくりますよ。

なんかオラ、すっげーワクワクしてきたぞ(´∀`)

とりあえず今後は最低週一以上のペースでRaspberry Piでハックしてきます

久しぶりにプログラミング周りの記事書きましたわ。

2013年5月19日日曜日

ラズベリーパイ始めました

やべぇ、こっちのブログ完全に放置してた(ii´Д`)

お久しぶりです、見習いエンジニアとして研修中のKatsumataです。

会社の研修も佳境に入ってきました(と言ってもまだまだ技術研修とか続きますが社会人のイロハとかコンピュータのイロハといった基礎研修はもうすぐ終わりです)、4月以来寝て起きて会社行って帰って寝ての繰り返しでまともにPC周りをいじってませんし技術系の文系新米ペーペーの見習いエンジニアなのでネタすらありませんでしたが今日ようやく個人的に一歩進みました。

買いました

ラズベリーパイを

ラズベリーパイ(Raspberry Pi)…ラズベリーパイ財団が英国で開発したARMプロセッサを搭載したシングルボードコンピュータ。カードサイズとものすごく小型で$35~40程度と非常に安くそれでいて高性能、エンジニア界隈では昨年あたりからトレンドになってる模様。とりあえず詳細は各自ググれ。

そんな筆者も今日秋葉原でついに買いました。面白そうなのとプログラムとか開発の勉強をするのも兼ねてで。
本体はこんな感じ、本当に小さい。アナログビデオ出力ポート、オーディオポート、USB2.0ポート、HDMI、LAN、そしてSDカードコネクタとパソコンとしても申し分のないスペック
本体だけでは汚れだったりハードの傷などの恐れもあるので専用ケースに格納。クリアケースなのでガジェット好きにはこれがたまらない。

と、一先ずセットはできましたが問題はここから

OSのインストールと電源がない

当然ですが動かすにはOS(Debian)が必須

で、調べたところ本体以外にも、
・HDMIorコンポジット対応のモニタ+接続用ケーブル(これはウルトラブックに付いてたアナログ15ピン変換アダプタとサブディスプレイがあるのでクリア)
・SDカード(4GB、前述のOSインストール用)
・USBキーボード&マウス
・microUSB電源(5V700mA以上)

まだまだRaspberry Piいじりへの道は遠い…


2013年3月16日土曜日

ブログ変更のお知らせ

お知らせですが、今まで「学生プログラマの備忘録」と言った感じでまとめてましたがこの度大学の卒業と同時にエンジニアとして4月から都内のソフトウェア会社で働くにあたってタイトルや説明とかアドレスを始めブログのマイナーチェンジを行いました。

まあ、今後とも適当に更新してきますよ。

2013年2月8日金曜日

ご報告

えー、改めまして中央大学の勝又と申します。

この度ですが都内のユーザー系SIerのグループであるシステム会社に内定をいただきました。

まだ正式な連絡ではないのですが一区切りです。


大学の卒業が確定すれば無事春から社会人として働けそうです。

取り急ぎ報告です




やっと終わった就活(ヽ'ω`)…

2013年2月7日木曜日

PhonecleanでiPhoneのクリーニング

長らくiPhoneを使用していると結構アプリの動作が重く感じる人が多いと思います。

以前の記事でアプリの再インストールでアプリの動作をリフレッシュすると書きましたが今回はそれよりもさらに楽にできるツールが出ました。

PhonecleanというiOSデバイス専用のユーティリティでワンクリックでリフレッシュさせるのです。

↓入手はここから↓
http://www.imobie.com/phoneclean/

インストールしてすぐ使えます。

iPhoneをUSBで接続した上でユーティリティを起動するとこんなかんじで情報画面が出る
インターフェースはこんな感じ
ここで'StartScan'ボタンを押すだけで後はiPhone内の不要なファイルをスキャンしてくれます。
使用状況にもよるがスキャンは大体2,3分~思い人だと10分以上かかることも。
ちなみに筆者も初めて使った時は15分近くかかった。

スキャン終了、最初にクリーニングした時からさほど時間は立ってないもののおよそ200MBほど溜まってる模様。初回の時は2GB近くもたまってた(!!)、当然スキャンだけで12分程かかりました。
後は'Clean Up'ボタンでクリーニングをするだけで終わり。


結構これ、アプリの動作も体感的に軽くなりました。

定期的にこれでメンテナンスしませう。

勉強記録【MySQL】:MySQLの基本的な機能と操作(1)

勉強記録つけつつ勉強すると言いながら放置するという失態をやってしまった。

DBとかRubyもちまちまやってたが就活(終わらせたい…)とか卒論とかもありそっちのけになってしまうも一応一段落したのでこれから本腰を入れる。

これまでやったのは基本的なこととあとDBの設計(リレーション、正規化、バックアップ)についてやや齧ったところ。

やったことといってもMySQLの基本中の基本
・DBの作成
・テーブルの作成と操作
 ・テーブル名の変更
 ・データ型の変更
 ・列名の変更
 ・列の削除
 ・テーブルの削除
・テーブルへのデータの挿入
・SELECT文によるDBの検索
・テーブルの結合
・データの検索、変更と削除と論理演算子

SQLによる操作として
・DBの作成
CREATE DATABASE DB名;
・作成したDBへのアクセス
USE DB名;
・テーブルの作成
CRATE TABLE テーブル名 (カラム名 データ型 ※データのオプション,PRIMARY KEY()); ※PRIMARYKEYは主キーの列
・テーブルの操作
ALTER TABLE テーブル名 コマンド;
テーブル名の後のコマンド
RENAME 新テーブル名…テーブル名の変更
MODIFY カラム名 データ型…データ型の変更
※MODIFYコマンドは列の順序の指定が可能
ADD カラム名 データ型…カラムの追加
新カラム名 旧カラム名 新カラム定義…カラム名の変更
DROP カラム名…カラム削除
・テーブルの削除
DROP TABLE テーブル名; 

以上が基本的な操作のまとめ
次回はこの続き(DBの検索、テーブルの結合、データの操作)のまとめを記述する予定。