プロが教えるわが家の防犯対策術!

ITスキルの身につけ方、SE・PGの適性について

長文で大変申し訳ありません。
SES企業入社2年目の者です。
(プログラミング未経験で入社しました。)
最近悩んでいることがあり、相談をさせていただきたいです。

今まで異動が4回あり、仕事を覚えてきた頃になって異動となることが多く、
正直たらい回しにされている感じがしています。

私はこれまで、ほとんどドキュメントの作成、修正、ログの採取、
ソースコードを見ない結合テスト等、
簡単な作業ばかり行ってきました。

経験が浅い人は簡単な作業が中心になるのは仕方がないと思うのですが、
そういった作業を覚えた頃になる度に異動となるため、
また1から覚え直しとなることが多く、
もう2年経ちますが全然成長している気がしません。

SE定年35歳説の理由として、「段々最新の技術についていけなくなるから」というのが定説です。
しかし本当の理由は、「SES企業の社員がスキルの身につかない現場でしか働いてこなかったため、
入社して間もない頃は良かったが30代半ばになるとどこの現場にも入場できなくなるから」
という話を聞いたことがあります。

私もそのうちそうなってしまうのではないかと危惧しており、
何かスキルを自発的に身につけないとまずいと感じています。

そこで、
①スキルの身につけ方
②SE・PGの適性

について質問させていただきたいです。

①とりあえずJavaとC言語の初心者用参考書を買ってきて、
本に書かれてあるサンプルコードを自分で書き写して動かしてみました。
JavaとC言語の基本的な概念(オブジェクト指向、ポインタ等)は理解できたと思います。
そのため、参考書にあるような短いコードは理解できます。
しかし、現場で数百行もあるような長いソースコード(Java、C言語)を読んでみても、
全然理解ができません。

開発ができるくらいのスキルを身につけるには、
やはりプログラミングスクールに通った方が良いのでしょうか。
独学ではこれ以上スキルアップできる自信が無いです。

②異動が4回あった内、1~3回目はお客さんの予算の都合上で退場となったのですが、
4回目は私の仕事のこなし方が原因でした。
(私の物覚えが悪く、同じ質問を2回することが多いからという理由です。)
仕事内容としては、上に書いたようにスキルのいらないものばかりですが、
システムの仕様等、覚えること・理解すべきことがとても多いです。
メモを必ずとるようにしていましたが、ノートのどこに書いたか忘れてしまったり、
メモをしたこと自体忘れてしまったりして、
同じことを聞くなと注意されることがありました。
(その現場は炎上気味で残業が45hを超えるのが当たり前だったので、
新人の育成をしている暇がなかったというのもあるかもしれません。)

やる気が無い訳ではないのですが、
私は短い時間で理解して覚えるということが少し苦手なところがあります。
プログラミングの勉強をすること自体は嫌いではないのですが、
スキルのいらない仕事すらできない能力の低い人には、
そもそもIT業界なんて向いていないのではないかと自信を失っています。

文が長くなってしまい申し訳ありません。
勉強方法や適性について何かアドバイスをいただけないでしょうか。

以上です。
よろしくお願いいたします。

A 回答 (3件)

現役SEです。



①スキルの身につけ方

これに関しては自分で書いて覚えるのが最も良い方法だと感じています。本を読むだけでは理解が浅く、応用が効かなかったりしますが、まず書き写すことでソースコードの書き方を覚えていけます。

C言語やJavaの基礎文法が一通り載っている本のソースコードを打ち込めば基礎はできます。基礎ができた後に、それらをどれだけ応用できるかは、各自の適正に加えて経験が必要です。

質問文を読む限りでは、C言語のポインタやJavaのオブジェクト指向を独習で勉強して理解していることから、質問者さんにはある程度の適正は備わっているように感じます。後はどれだけ経験を積んで応用力を鍛えていくかになると思います。

仕事で経験を積むのが手っ取り早いですが、それができない場合はご自身で作りたいアプリを作成してみるのが良いです。例えば、教えてgooを利用しているのであれば以下のようなアプリがあると便利ですよね。

(1) 自分の質問に回答があったらメールしてくれる(公式でもその機能がありますが勉強のために)
(2) 自分が回答できそうな質問がされたかを定期的にチェックし、メールしてくれる

上記は二つともネットワーク関連の処理が必要となってくるため、C言語で作ろうとすると標準機能ではなく、OS依存のライブラリを使う必要があります。Javaなら標準でネットワーク機能(ソケット)機能がありますし、HTTPやSMTPライブラリも追加できるため、比較的簡単に開発できます。

最初は簡単な仕様で作成し、使ってみてこんな機能やあんな機能が欲しいと機能アップしていくと、やってみて楽しいですし、何よりも勉強になり、スキルアップにもなります。

プログラミングスクールには通ったことがないので、それに関してはなんとも言えませんが、独習でもどんどんレベルアップは可能です。

ちなみに、勤めている会社でC言語が使えると明らかにプラスになるということがはっきりしている場合以外は、Javaを優先的に学習していった方が良いです。理由は以下の通りです。
・C言語では標準機能でできることが少ない。ネットワーク(ソケット)などを使う場合はOS依存のライブラリを使うことになり、学習したことがそのまま仕事で使える確率が低い。JavaではOSに関係なく、同じコードが動く。
・C言語よりもJavaの方が生産性が高い(短い期間で同等のアプリが作れる)ため、業務ではJavaが採用されるケースが非常に多い
・デバッグが簡単。C言語でミスをするといきなりプログラムが落ちてどこが悪いかわかりにくい(調べる方法はあるが開発環境によって方法はまちまち)が、Javaではどこが悪いか行番号が出るため、学習をしやすい。

②SE・PGの適性

質問文を読む限り、質問者さんばかりが悪いわけでもなさそうです。

新しい現場に行くと、そこだけで通用するルールや知識がたくさんありますから、入ったばかりではなかなか把握仕切れないものです。それに忙しいとやはり教育まで手が回らないというのも(本当は良く無いのですが)現実問題としてあります。

人を使う側から見ると、その人に教える手間よりもその人が仕事をこなしてくれる量の方が多ければ助かるわけで、私個人としては何度も聞いてきて多少手間がかかったとしても、その人がそれに見合う仕事をこなしてくれるなら何も言いません。さらに、質問があることでその人がどんなことを考えているか、どのレベルまで理解しているか使う側がわかるので、まともな質問をしてくる人に対しては、成果物もまともなものができそうだと安心感があります。

個人的に最悪だと思うのは、メモもとらず、再度質問もせず、曖昧な記憶を頼りに適当に仕事をこなす人です。信じられないかもしれませんが、そういう人がいるのは事実です。上の人間も完璧な人ばかりではないので、指示が完璧ではなかったりします。作業中にそれに気づいても、確認や質問をせずに突っ走って残念な成果物を作成してきます。そうすると、その作業がやり直しになって作業者の時間が無駄になるばかりではなく、上の人間が意図しない成果物となる可能性も高いため、変な間違いが無いかチェックに余計に時間がかかることになります。


質問文を読む限り、向上心もあり、ご自身でアクションも起こしているのでこのまま勉強を続けて行けばもっと伸びていくと思います。ただ、業務上の実績があまりないために回りからいまいち信頼されていないのかもしれません。スキルも信頼も1日や2日で構築できるものではありません。日々の積み重ねが大切です。コツコツがんばってスキルアップし、プログラミングが任せてもらえるとと良いですね。
    • good
    • 0
この回答へのお礼

詳しいご回答ありがとうございます。

>仕事で経験を積むのが手っ取り早いですが、それができない場合はご自身で作りたいアプリを作成してみるのが良いです。

技術の勉強をすることばかり今まで考えていて、自分自身であったら便利だと思う機能を作ってみるというのは頭にありませんでした。
手段が目的になっていた感じがします。
モノを作るのは難しそうですが、自力でできるところまでやってみて、
疑問点が出てきたら質問するという形で頑張ってみたいと思います。

>ちなみに、勤めている会社でC言語が使えると明らかにプラスになるということがはっきりしている場合以外は、Javaを優先的に学習していった方が良いです。

4箇所いた現場の内、3箇所はJava、1箇所はC言語が使われていたのでとりあえずJavaとC言語を勉強しました。
とりあえずJavaでできそうなものを作ってみたいです。

>個人的に最悪だと思うのは、メモもとらず、再度質問もせず、曖昧な記憶を頼りに適当に仕事をこなす人です。

実は曖昧な記憶なまま作業を進めてしまって、後で時間を無駄にしてしまい注意されたことがありました。
それ以来、質問や確認ばかりするようになってしまい、やたらと慎重になって同じような質問をしてしまったというのがあります。
質問しないのもいけないし、質問しすぎてもいけないし、その辺りの塩梅を早く見極められるようになりたいです。

お礼日時:2018/03/18 18:19

>簡単な作業ばかり行ってきました。


「ドキュメントの作成、修正、ログの採取、ソースコードを見ない
結合テスト等」は簡単な作業では有りません。
ユーザーの視点と開発者の視点の両方を持ち、プログラマーが作成
したプログラムが仕様通りに動作するか、イレギュラー操作により
動作不良を起こしたりしないかをチェックする為の最後の砦です。
その防壁に穴が空いていれば、ユーザーの前で障害が発生し大問題
になります。

>開発ができるくらいのスキルを身につけるには
大手の会社では「自分はSEだからコーディングはできなくても良い」
と豪語していた人もいましたが...
ドキュメントを作成するという作業は、ユーザーに対して理解できる
形で説明するという、ある意味では仕様そのものを作成しているのと
同じです。
その作業を軽視しているのは、もったいない話です。

メモを取っても活用できなければ意味はありません。
サッカー選手がメモを見ながら試合をするでしょうか?
短い時間で覚えられないなら、時間を掛けてでも覚えれば良いだけ。
基礎が不安定なままでは、その上にどんな建物も建てられません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>「ドキュメントの作成、修正、ログの採取、ソースコードを見ない
結合テスト等」は簡単な作業では有りません。

私が行っていたドキュメントの作成というのは、設計書の作成というよりは、本番環境に入室してリリースをする際に必要な入室許可の書類をいくつも作成していたことが多いです。

>ドキュメントを作成するという作業は、ユーザーに対して理解できる
形で説明するという、ある意味では仕様そのものを作成しているのと
同じです。その作業を軽視しているのは、もったいない話です。

ユーザーに説明をするような、仕様の根幹部分に係るようなドキュメント作成は行ったことはほとんどありません。
いずれ上流の仕事もできるようになるために、今はとりあえず技術の勉強をしてみたいと思います。

お礼日時:2018/03/18 18:44

>>しかし、現場で数百行もあるような長いソースコード(Java、C言語)を読んでみても、


全然理解ができません。

書籍にあるサンプルコードソースは、短いこともありますが、何をやるプログラムなのかが書籍に書かれていますよね?
だから、理解しやすい。

でも、業務のプログラムは、1本で数千行なんてものもあります。さらに、何を処理するプログラムか?どういうふうにそれを実現しているか?などを記載したドキュメント(仕様書)を読まないでは、理解できなくとも不思議ではありませんよ。

>>開発ができるくらいのスキルを身につけるには、
やはりプログラミングスクールに通った方が良いのでしょうか。

プログラミングスクールがどんなことを教えてくれるのか知らないので、何とも言えませんね。

>>独学ではこれ以上スキルアップできる自信が無いです。

私の場合は、独学で覚えましたね。
情報処理試験の御前中の問題ででてくるようなプログラミング理論を書いた書籍を何冊か買って、それらを読みながら、勤め先にあったIBMの大型コンピュータに自分で作ったプログラム(COBOLやPL/I)を暇な時間に実行させて勉強しました。
それ以外にも、コンピュータの名著といわれる書籍を、理解できなくなったら後戻りしながら、半年がかりで読んだりしました。

現在なら、市販の10数万のパソコンで、その当時の大型コンピュータ(CPU部の値段は1億円、プリンタは2億円だった)の何10倍も大きなメモリとハードディスクが装備されていますから、十分に勉強の環境が整えられますね。

>>メモを必ずとるようにしていましたが、ノートのどこに書いたか忘れてしまったり、
メモをしたこと自体忘れてしまったりして、同じことを聞くなと注意されることがありました

理解できてないことは、いくらメモしても覚えられませんね。理解できていることなら、足りない部分だけを追加で覚えればいいので、負担が少なくなります。
まあ、最初は仕方ない面があると思います。

>>私は短い時間で理解して覚えるということが少し苦手なところがあります。

私もそうです。本で何度も読んで、しばらくしてから「ああ、そういう意味だったのか!」と納得することがちょくちょくあります。

テニスでスピンサーブの打ち方を書籍から学んで、何週間もサーブの練習しても、それらしいサーブは打てませんが、ある日、突然にスピンサーブが打てるようになったりします。
頭と体では違いがあるのですけど、やはり理解するには、どちらも繰り返しとそれなりの時間が必要ってことだと思っています。

>>スキルのいらない仕事すらできない能力の低い人には、
そもそもIT業界なんて向いていないのではないかと自信を失っています。

私の経験からすれば、情報系大学などで学ぶような内容を知らないまま、総合テストなどばかりをやっていても、スキルアップは無いと思います。

>>勉強方法や適性について何かアドバイスをいただけないでしょうか。

私はプログラマは、大工さんと同じような職人だと思っています。
学びも必要だし、トレーニング(開発実習)も必要な仕事。どちらが欠けてもダメだと思っています。

以前、大学主催のセミナーで、情報系の学科のある大学に対して、経済界が「卒業生が使いもんにならん!なんとかしてくれないか?」なんてクレームを入れたことがあったと聞きました。
それを受けて、各大学が授業内容を変更しようと努力したらしいのですが、その後どうなったのか調べてないので分かりませんが・・・。

まあ、「プログラミングが好き!」ってのが適正ではないでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>さらに、何を処理するプログラムか?どういうふうにそれを実現しているか?などを記載したドキュメント(仕様書)を読まないでは、理解できなくとも不思議ではありませんよ。

実装方法を記述した仕様書はあまり私の業務とは関係ないと思って、読んでいませんでしたが、コードを読めるようになりたいので、やはり読んでみます。

>私はプログラマは、大工さんと同じような職人だと思っています。
学びも必要だし、トレーニング(開発実習)も必要な仕事。どちらが欠けてもダメだと思っています。

参考書等で技術を学ぶということは自分でやっていましたが、トレーニング(開発実習)が足りなかったと思います。
自分でトレーニングを積みたいと思います。

お礼日時:2018/03/18 18:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!