• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラマとして能力の伸び悩み)

プログラマの能力向上に悩む私の相談

このQ&Aのポイント
  • 私はプログラマ歴3年程の者ですが、技術力の向上に悩んでいます。
  • 仕様書や他者のソースコードの把握に時間がかかり、認識の履き違いが発生してしまいます。
  • アドバイスやトレーニング方法を教えていただきたく相談しています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#217907
noname#217907
回答No.8

補足を読みました。 「仕様の内容•イメージを掴む」「他者のソースを見て内容の把握」が苦手なのに、その対応として「知識を身に付ける」というのはピントがずれていると思いますが、そう思いませんか? 工数や時間がかかる本当の原因は、仕様書に書かれている用語が分からないからですか?ソースに記述されている命令語が分からないからですか?3年やっていて、そいうことでは無いですよね? システム開発を行うとき、「何を実現すれば良いのか(開発の目的)」「何を解決すれば良くなるのか(問題の根本原因)」を最初に明確にします。これが曖昧だったり間違っていると、その開発は必ず失敗します。何をすれば良いのか不明確なままに作業をしても最終目的地にはたどり着けません。根本原因を直さなければ問題は解決しません。 目的・原因を特定して、それへの対応方法を考えるというのがシステム開発の基本です。この基本的な考え方がまだ身に付いていないのではないでしょうか。システム開発と同じように、まず考えるのは自分の技術力が伸び悩んでんでいる本当の原因は何なのかでしょう。原因を特定せずに解決方法を考えてもピント外れにしかなりません。 あなたにとって、「仕様の内容•イメージを掴む」「他者のソースを見て内容の把握」に時間が掛かる本当の原因はなんでしょうか?この質問や補足を読むと、「仕事の目的」「問題点の本当の原因」への理解があいまいなまま仕事を行っているのが伸び悩みの原因ではないかと思われます。 「仕様書(ソース)が書かれた目的」、「仕様書(ソース)に書かれていることのそれぞれの目的」をまず理解して読んでいくと改善していくと思います。目的を把握していれば、仮に「認識の履き違い」をしてしまったとしても、「目的と認識したことのアンマッチ」により自分で気付くことが可能です。そして読む前に「この目的に対して、自分だったらどうする」を考えてから読んでいくと、思考力のトレーニングになりますし、より理解しやすいはずです。

nullnu
質問者

お礼

仕事にも関わらず、私に「中途半端」や「分かったつもり」が多発しているは何故なのかがよく分かりました。 質問させていただいて、本当によかったです。ありがとうございます。

その他の回答 (7)

  • naiina
  • ベストアンサー率66% (10/15)
回答No.7

PG、SE、PMなどいろいろ兼務している者です。 技術力アップとして以下はいかがでしょうか? ・アルゴリズムやクラス図などを書いてみる  →脳内を整理できればいいので、きれいに書く必要はありません。 ・キレイにコードを書く人の真似をする。  →コピペをしがちなコードですが、内容を理解したものだけを真似します。 ・設計やコードのレビューをお願いする  →設計レビューの場合は、実装漏れを未然に防ぎます。   コードレビューの場合は、口頭でコードを説明すると、自分が何を理解している/していないかがわかります。 ・テストファーストの実施  →テストケースを先に書くことで、インタフェースに必要な情報が見えてきます ・自分で何かサービスをつくる(iPhoneアプリとか、WEBサービスとか)  →自宅でも勉強、ということで。 ・本を一冊読みきる  →お使いの技術の言語にもオライリー本などありますよね?   一冊読みきると理解も深まりますし、自信にもつながります。 私見ですが、明らかに「向いてない」と思う人は「理解しないでコードを書く人」のように感じます。 積み重ねが大事ですね。スターエンジニアになるにはセンスも必要ですが 頑張ってください!

nullnu
質問者

お礼

多くの案を頂きありがとうございます。 たしかに、効率よく仕事をするためには、がむしゃらに成果物を作成するだけしてはいけませんね。 それと、作業の工程内に、私の認識以外にも技術力アップの方法があることがよく分かりました。 本を読んだり、自宅でアプリ開発も行ってみようと思います。 「理解しないでコードを書く人」には、ぐさっときました。私はよく「理解しているつもりでいる」事がよくあるようです。これは、悩み解消のコアな部分になりそうです。本当に感謝します!

回答No.6

お世話になります。 私はプログラマとして雇われたものの、3ヶ月間全く伸びがないと言われ切られました。 たかだか、プログラミングという作業ですらまともに出来ないのに、仕様書を読むという 工程作業にまで手を付けられるのは正直すごいなと思いました。 また、アドバイスとしては、こんな私が言うのも変ですが、 学生時代に一番伸びた勉強法が、国家資格の基本情報技術者試験を勉強して取得したことでした。 このような過程で作業するんだとか、この方が効率が良いんだとか、きちんと正解があるので、 教科書に沿って設問(特に午後)を勉強されると良いと思いました。

nullnu
質問者

お礼

いえ、私はなんだかんだで運よく生き残っているだけで、いつ切られてもおかしくない状況です。 基本情報技術者試験、その発想は全くありませんでした。私がいかに固定概念にとらわれていたかが分かりました。 私は基本が身についていない恐れが多いにあります。 学生時代の基本情報技術者試験のテキストを開いてみようと思います。 ご回答ありがとうございました!

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.5

内容的には「思い込み」で悩んでいらっしゃると思います。 やはり基礎知識の絶え間ざる吸収と、 自分の発想にない考えを受け入れる柔軟な姿勢が必要でしょう。 私はよく提唱するのが「最初に言葉ありき」 IT辞書をボロボロになるまで読むべしですね。 知っていると思っていた言葉も、知らない別の意味もあったりします。 何時でも読める状態にしただけではいけません。 頭に叩きこまなければ。 言葉は概念です。より多くの概念が頭の中に無ければいけません。 論理思考の推奨。and,or,notで内容が矛盾なく整理できるか常に考える。 これが出来る様になると、仕様の矛盾とかビシビシ指摘できるように なります。 専門誌なども記者レベルが書く内容は、如何に間違いが多いかも分かります。 裏も考える。 仕様などの理解には条件を2項目づつの表に整理すると分り易いです。 例えば、賢い人間とバカな人間がいます。 働き者と怠け者がいます。 賢くて働き者は…… バカで怠け者は…… とあったとします。 しかし、     賢い バカ 働き者 怠け者 と線を引いて表にすると、賢くて怠け者、バカで働き者の組合せも あります。 頭の中だけで考えると、このような非常識に感じるものを見落とします。 裏も考えることにより、表がよりくっきりもします。 これが出来る様になると、あとは抽象化の技術で大きな問題も 単純化して4つの組合せを常に考えて行き、思い込みを防ぎます。 まあ、後は本を読むべし。 知識でもあるし、人生の疑似体験でもあります。 どのような本が良いのかは人それぞれ、自分で見つけるしかありません。 一週間にざっとでも10冊位は目を通したいところです。 良い物があれば1冊に暫く集中します。

nullnu
質問者

お礼

私はこれまで知識を溜め込む努力はしましたが、確かに「辞書を片っ端から頭に叩き込むレベルで学習したか」と言われましたら、答えは、いいえになります。 おっしゃる通り、自分に無い発想や、固定概念にとらわれない考えも吸収する必要がありますね。 本を読む事も積極的に行おうと思います。 凄くためになりました。 ありがとうございます!

  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.4

少々辛口の意見ですが。 私は昔ある大手企業のシステム部門のマネージャーをしていました。 私自身は実務はしませんが、部下の仕事の評価はできます。 その立場から言うと3年たてば多くの人は普通にはできるようになります。 人間に遅咲き早咲きということはあっても3年もかかれば花は咲きます。 それでもよい花が咲かないというのは、たぶん向いていないのかなと思います。 私の部下でも個人ごとのスキルは非常に差があり、一を言えば10やってくれるものと、10を言っても5しかできない者がいます。 プログラマーならばある程度は使えてもSEになってくるとセンスの差は歴然です。 センスは努力で身に付く部分と、持って生まれた才能でできる部分があり、後者がない人は時間をかけてもあまり良くなりません。 私は結局こういう部下はほかの部門に変わってもらったことがあります。ところが彼はその後IT以外で思いもかけない才能を発揮し、今はある上場会社の役員をやっています。 グログラマーやSEは多くの仕事の一つにすぎません。上司との面談等を通じて他の道も検討されてはいかがでしょうか。長期的にはその方が幸せかも知れません。

nullnu
質問者

お礼

ご回答ありがとうございます。 下記の文章はyosifuji20さんを否定しているわけではありません。むしろ私はそのような考え方もあると、回答に対し感謝しています。 それを前提で、ご覧頂けたら光栄です。 学生時代のバスケット部だったころの話です。 私はスポーツの才能があり、学生時代は部室で昼寝しているだけでも好成績を残しておりました。その時代の私は、凄く嫌な人間でして、努力を重ねたにもかかわらず私に劣る選手を心の中で見下していたことがよくあります。 しかしずっと負けを知らなかった私でも、本当に自分の全てを掛けて努力した選手に敗れ、どんなに才能があっても、中途半端な努力しか人間は、才能が無い人間に劣る事があると実感しました。 その日私は改心しました。 私はSE、PGの才能は皆無です。しかし昔の根性が腐った自分を打破するためにも、前述した、私を倒した選手のように努力を持ってこの職種で生き抜きたいのです。

回答No.3

Q、能力の伸び悩みを打破するには? A、時期が来るのを待つのみ。 花の苗に水や肥料をやり続けても、すぐに花が咲くわけではありません。暖かい春の陽射しを受けた時間の量的蓄積があるレベルに達した時に桜は開花します。このように、草花は、じっとその日を待って美しい花を咲かせます。質問者も、時期が来るのを待たれることです。さすれば、ある日、霧が晴れたように仕様書の全体像が手に取るように理解でき、かつ、各細部も全体の有機的な構成部としてイメージできるようになります。野の花ですら体験すること。まして、質問者ならば・・・。 と、思いますよ。

nullnu
質問者

お礼

長年続いた私の心の暗雲は本当に晴れる日がくるのかと、とても不安になっていました。 もちろん努力あっての開花ですが、とても励みになりました。 ありがとうございます!

noname#217907
noname#217907
回答No.2

まず、今までどんな解決方法を試したのですか? 「仕様の把握能力ですが他者とくらべて遅い」ことに対して、どんな対処法を行っていますか? 「他者のソースを見て内容の把握にも時間が凄く掛かってしまい」に対して、どんな対処法を行っていますか? いろいろ考えてやっているけれど効果が無いのと、何も考えずにやっていて出来ないのは全く違う話で、ここでの回答も違うものになります。 もし万が一、「何も考えずにやっていて出来ない」のであれば、「作業のアドバイスやトレーニング方法を教えていただける方がおりましたら、救いの手を差し伸べて頂けませんでしょうか。」という姿勢が一番の問題です。自分で全く考えること無くなんでも他人の知恵を借りるやり方ではプログラマという知的作業はできません。 出来ないことを認識した後、それを今まで自分でどう克服しようとしたかを書かないと、有効な回答はもらえませんよ。

nullnu
質問者

補足

気軽に質問できる場と、私に質問の仕方に甘えがあったようです。申し訳ありません。 今までは、知識を身につければ物の把握に掛かる工数が短縮できると思い、仕事やエンジニアトーク等にて分からない事が発生したら質問するか、ネットで検索する事を徹底していました。 しかし、知識が先行するだけで先述した悩みが解決できない現状でして、どうした物かと悩んでおります。

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>私はプログラマ歴3年程の者(システム設計も行います)ですが、技術力が伸び悩んでいまして、自分自身で解決方法が見つかりませんでしたのでご相談させて下さい。 いままで、技術力アップするため、どういう勉強、努力をしてきたのですか? それが書かれていないから、回答しずらいです。

nullnu
質問者

補足

失礼しました。 今までは先ずは知識と思い、分からない事が発生したらメモを取り、質問するか、ネットで調べる事を繰り返しておりました。

関連するQ&A