アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

posted by fanblog

1年以上かけてやっと開発案件へ。その道のり。

先日、やっと、開発案件に入れていただきました。
とはいっても、他の人がやったら1日で終わる内容を3日くらいもらって、
かつ質問もできるという高待遇でのお仕事。
まさに、仕事をやらせていただいている。
といった感じで感謝しながらやらせていただきました。

半年くらい前にも書いたUT(ユニットテスト)をやっています。
テストと言えば、開発の中でも下流工程ですが、コードが読める事、
コードの中身を追える事、フレームワークでの実装を理解する事、
ユニットテストを行える事(JUnitやMockなどを理解している事)などなど。
入門書レベルのJavaの教科書を一通りやっただけでは理解できない領域です。

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB DB PRESS plus)

新品価格
¥3,564から
(2014/8/12 21:45時点)





一通り、Webアプリケーションについては、下記の教科書で学習しました。

独習Javaサーバサイド編 第2版

新品価格
¥3,888から
(2014/8/12 21:47時点)




とっても分かりやすかったです。一通り学習し終わるまでには、
1〜2カ月かかるかもしれませんが、実際のWebアプリケーションのテストをする際にも、

・Webアプリケーション独特の階層構造を読み取りやすい。
・JSTL、XML、プロパティファイルなどの概念を理解しやすくなる。
・MVC(Model View Controller モデル・ビュー・コントローラ)の流れが分かりやすい。


などなど…、実際の案件に入って勉強して良かったなぁ…しみじみ。と思うわけです。
Javaの入門書って、分厚いですよね。オライリーしかり、他の教科書でも。
それでも名前の通り入門なんですよね。プログラミングをやりたい!と思う人が挫折してしまうのは、

・教科書の分厚さに眩暈
・楽しいと思えるまでに時間がかかる
・コーディングの細かいお作法にげんなり
・オブジェクト指向の壁


などなど、原因はたくさんあるんですよね。

特にWebアプリケーションを作りたい!!と思っている人が、
ここをどれだけの人が見ているかはわからないですが、
(半数以上は、LPIC関連できていただいていると思っています)
上記の問題たちを乗り越えた(とりあえずわかったかな?といったレベルでも)先には、

・jsp、サーブレットを学習
・Tomcat、Glassfishなどのサーブレットコンテナを学習
・データベースを学習
・JSTL、MVC、beansなどを学習
・デプロイメントディスクリプタを学習
・セキュリティプログラミングを学習
・アプリケーション(サーブレットコンテナ)を動かすためのサーバ知識を学習


と、これから勉強したいな。とりあえず簡単なものを作りたいなと言う人の
夢と希望をぶち壊す勉強内容が待っています。
おわ、敷居が高い…。と思うのが普通で、
私も勉強を開始した時に全貌が見えていたわけではありませんでした。

では、私自身が最初どんな意識でいたかと言うと、

・プログラミングがしたい(できればWeb系)
・Webで公開するには、apache,tomcatを最低限分かっていた方がいいな。

たぶん、これくらいです。
そして、どんなふうに勉強してきたかと言うと、
細かく書くと違うけど以下のような感じ。


シェルスクリプト

オライリー

Webアプリケーション構築入門

LPIC

JAVA

CISCO

OSS-DB

Java入門

AWS

オライリー

JavaEE

これで、学習時間だけを抜粋すると約1年でしょうか。
私はこれくらい学習すれば、プログラミングは普通に肩を並べて行えると思っていた。
けど、やっとスタートラインなのですね。

詰め込みが得意なだけではプログラミングは出来ない。
と感じたのは、結構早い段階からで、今でもそれは感じています「。

まず早いうちに気付いたのは、

あ、俺、オブジェクト指向を受け入れられない!といった事。

次に感じたのは、

設計がろくにできず、最初に考えていたものとは、ほぼ違うものになっている事。

頭に思い描きながら修正しながら一つのものを作り上げていく手法は、
実際のプロジェクトでは許されるわけがありません。
まず仕組みをしっかり作り、どういう実装をしていくと実現できて、
そのためには、各クラスとメソッド、プリミティブ変数を利用しとしっかりと計画を立て、
ドキュメント化した上で、紙上でシステムを作り上げる。
その後、修正が出てしまったものは紙上でも修正し、1つのものを作り上げなければいけません。

目指すべきは、SE領域もできてこその、プログラマなのです。

私も昔はSEの仕事の役割も理解していませんでしたが、
SEって、システムエンジニアの名の通り、システムを作り上げる人なので、
逆に設計ができない人(アプリケーションでもインフラでも)は、システムエンジニアではないですよね。
プログラマなのか、オペレータなのか、サーバエンジニア(SE)なのか。
プログラム書いたことないけど、SEしているっていう人って、ある意味凄いですよね。
プロジェクトに入ってみて、コードの書き方知らないのに、設計できるって、頭脳の作りがすごいな。

説明書を読まずにゲームを始めたり、ベッドを組み立て始めたりと、30年くらいそんな感じでやってきましたが、
開発にかかわる以上は、お作法や段取り、仕様作成など1つ1つの仕事を丁寧に確実におこなう事も必要なんです。

ただし、こればっかりは少しずつ身につけて、私生活も見直しながらやるしかないですね。

オペレータ的な仕事ばかりやってきたので、
「オペレータ独特の、独断で判断して失敗する可能性があるなら、エスカレーションして、自分はやらない。」
といった仕事ばかりしてきたので、調査→検証→実装といった段取りを当たり前にできないのです。
失敗のリスクがあると、リスクばかりが先行して先の事を考えられなくなってしまうのです。
オペレータの仕事も的確に責任範囲の中で確実に行うと言う意味では難しいのですが、
開発をやりたいと少しでも思う人には、ぜひ開発の仕事ができる場所への転職をお勧めします。
私もいろんな会社を経験しましたが、オペレータから開発職(インフラ構築)へスキルアップを
推奨はしているものの、実際に行っている会社は見た事がありません。

脱線してきてしまいましたが、プログラマとして仕事をこなすには、
まだまだだぞっていう位置にいるってことでした…。

まだまだ報告したいことはたくさんあるので、別の機会に書きたいと思います。

コメント

お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのコメント

azithromycin tablets
Ashley|2020年09月05日(Sat) 09:51
prednisone deltasone 10 mg tablet
[url=https://bvsinfotech.com/#]prednisone[/url]
Juan|2020年04月12日(Sun) 02:36
   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。