• 締切済み

プログラマに必要な物は?必要な考え方は?

ソフト開発の仕事に就いて3ヵ月。 26歳の女子で未経験で入社しました。 入社して2ヵ月間はコンピュータの基本知識やネットワークの基本知識などを勉強しました。 先月の中旬から実際に開発の仕事に携わるようになしました。 難しいと感じるし、1人の力では完成させられません。 自信を無くして落ち込んだり、自分には向いていないのかなぁと感じる事もあります。 辞めてしまいたいと思った事もあります。 けど正直まだ完全に諦められません。 始めようと思った時の気持ちに戻りたいです。 どうにか自信を取り戻したいので、初心に返りたいです。 いいプログラマになる為に必要なモノってなんですか? プログラマにとって必要な考え方って何ですか? 一人前のプログラマになる為のノウハウ本や、教則本があるなら読んでみたいです。 どうか私に自信を取り戻させてくださいっ! 宜しくお願いします。

みんなの回答

noname#30727
noname#30727
回答No.13

難しく考える必要はありません。1年間必死についていければ、比較的簡単な仕事は任されるくらいにはなれます。 最初の半年は皿洗いや雑用と同レベルです。 美しいデータ構造やコードを表現できるようになるには3年は必要です。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.12

>テーマって例えばネットワークだったりでしょうか? >私はアルゴリズムについて知りたいなって思うんですが、こういう事でもテーマ >になるんでしょうか? ここで言う自分のテーマというのは、誰かに強制されたわけではない、自分で選んだ身に付けたいスキルや知識のことです。 したがって、何でもいいわけです。 より幅を持ちたいのであれば、現在の実務では関わりそうにないものが、いいかもしれませんけどね。 ネットワークだって、昨今のシステム屋としては、基本は押さえておくべきですし、アルゴリズムだって重要です。私のお薦めとしては、プログラマという仕事をしているとどうしても、コーディングに知識が偏るので、ネットワークやOSなんかの基盤系の知識を身に付けるといろいろ視野が広くなって面白いと思いますけどね。でも、それは好みの問題でしょう。 ようするに重要なのは、エンジニアという人種は、自分自身に新たな付加価値をつけるために手間やお金を惜しまない類の人なんです。大抵。 程度の問題こそあれ、誰かから仕事や課題を与えられないと成長できない人間は、エンジニアとしては、まず使い物になりません。 放っておかれても、1年後には1段も2段も上にいるくらいじゃないと駄目なんです。 (もちろん私見ですが、多分大きく外してはいないはずです) いつも何かに興味をもって、どうしても手が空かないとき以外は、常に自分で何かを身につけようとしていると、必ずどこかで実務に役に立ちます。 2年後かもしれませんし、5年後かもしれません。 そういうリンクする瞬間が、エンジニアをやっていてたまらなく面白い瞬間のひとつなんですよね。

回答No.11

情報処理系の専門卒で汎用機での物流,金融システムの開発から入った事と結構昔の事なので参考になるか判りませんが、とりあえず1つの情報として。 ある種の矛盾になってしまいそうですが、 >いいプログラマになる為に必要なモノってなんですか その様に物事を枠にはめない考え方が良いと思います。 あと、今現在はまだ並列処理は考える必要がないと思うので、 全ての処理を順次追っていく気力と心構えがあれば あとはノート等にメモしたり自分にあった対応方法を見つければ問題ないでしょう。 しいて言えば、それぞれ暗記するのでなくて理解する様に心掛ける。 何故と疑問に思う事は良い事です。 経験といっても単なる覚えた事の積み重ねでは 応用がききません。 はじめのうちは、その理解する為に必要な知識の暗記だったりしますから なかなか伸びないのも当然です。 そのうち個々に覚えていた物が関連付けられて理解していける様になると思います。 今の方々が大変だろうなと思うのは、 進歩した環境が目の前にあり いろいろな基礎的な事を理解していなくても・・・。 私は汎用機でプログラムが処理をする時のメモリの状態をリスト出力して検証したりしましたので、 データの格納状態や作業域の状態など意識しますし PCも MS-DOS の頃からですから それぞれの OS や言語が新しく出来ると一緒に学んでいったので順次学べましたし。 (なにせ言語がシステム開発に使えるかの評価もしましたし・・・。) たとえば 2+3 という足し算の計算処理。 これがコンピュータではどう処理されているか考えた事はあるでしょうか? この様に疑問を持つ事。 そして、A+B と変数の場合と変化していき それぞれ数値の場合,数字の場合等々パターンが思い浮かぶでしょうか? この様な柔軟な発想を持つ事。 ふと思ったのですが、 プログラムの作り方は習うとして プログラムの読み方,検証の仕方、 新たな事の調べ方などは習うなり知っているのでしょうか。 

  • GRIGO
  • ベストアンサー率15% (9/57)
回答No.10

#3です。 >「自信」でなくて「意欲」でした。 意欲は大事です♪ 以前新人研修を担当したとき、無駄に自信のある新人がいて、手を焼きまして^^; 「自信がある」といわれると過剰に反応してしまいます。お気を悪くなさらずに^^; >自分の作ったソースを上司にチェックしてもらうと悲惨な結果です。 >こういう事が経験む事によって、未然に回避できるようになるんでしょうね。 ええ、4年目辺りで私に文句言ってた上司の指摘を覆しましたよ(笑)相手のスキルからすると…4年目が早いか否かは分かりませんが…。 他の方も言ってますが、遊び心も大事です。 マインスイーパとか非常にロジカルで楽しいゲームですよ。論理的思考で見えない数字を見る…まあ、運に頼らざるを得ない場合が多々ありますが。完全にロジカルに解けるときも、かなりまれにありますし(笑)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.9

プログラマには ・論理的な思考 ・ひらめき ・根気 が必要です。(もちろん他にも必要でしょう。) 論理的な思考は、普段からそういう思考をする訓練をしていないと身につきません。訓練と言っても「特訓」は必要ありません。パズルが好きだとか、そういう程度のものです。(そもそも「特訓」しないとダメそうな人は、もともとダメ。)要は「状態」や「順序」をちゃんと考えられる頭を持っているということです。 ひらめきもかなり重要です。プログラマなら必ず、開発中に「なんでこうなるんだー!?」「どうやったらいいんだよ??」と悩むことが必ずあります。(ない人もいるのかな・・・尊敬します。)そういうときに助けてくれるのは、仲間(こういうQ&Aサイトも仲間のうちでしょうが)を除けば、自分のひらめきだけです。 根気はプログラマに絶対必要なものですが、でも根気を使う方向性を間違えると最低最悪のプログラマに簡単になってしまうので注意が必要です。良いプログラマは問題を解決することを目標とし、それが可能となるプログラムを作成します。悪いプログラマは問題解決のことをあまり考えず、たくさんプログラムを作成することに注力します。(良い例えが思いつきませんでした。どなたか、すっきりきれいに表現していただけないでしょうか。)

noname#25358
noname#25358
回答No.8

>作ってみたいって思うような、ヒントになるような物  ネットワークの勉強をなさってるのなら、インターネット上のHTTPにも興味はおありでしょう。  ならば、定番ですが掲示板やブログなんかを自前で作って、自分で使ってみてはどうでしょうか。あの系統のツールは言語感覚を養うにも最適です。  また、日々パソコンを使っていて、「いちいち操作するのが面倒くさいから、○○をオートメーション化したい」と思うこともあるかもしれません。  そのようなことを思った覚えがあるなら、ぜひ実現してみてください。  ウィンドウズであれば、WSHという言語が組み込まれています。これを使って色々な操作をオートメーション化できます。

  • siokara
  • ベストアンサー率41% (7/17)
回答No.7

この業界は一見、華やかに、かっこよくにみえて実は・・というところがあります。 実際は細かい作業の塊で、一つ一つコツコツと・・ もう終わってしまいましたが、ドラマで「恋に落ちたら」の島男くんみたいなプログラマは 日本に存在しないと思って結構です(笑)。 ・・全然関係ないお話でした。まぁ、前置きです。 >いいプログラマになる為に必要なモノってなんですか? 皆さんの言われているように、「やる気」、「努力」がやっぱり重要でしょう。 ただ私は、プログラマに必要な資質、相性は特別これといってないと考えてます。 (つまり誰でも持っているものだということです) ・我慢強い人 プログラムは地道にコツコツ作るものですよね。 ・些細な事に気を配れる人 詳細設計やエラーパターンの洗い出しなんか強みになるんじゃないかな。 ・面倒くさがりな人 めんどくさいことをプログラム(自動化)したりするのです。 まずその作業がめんどくさいと思うかどうかですよ。(我慢強い人と反対の強みです) どれも重要でしょ? そう考えると、あとはやる気次第なんですよ。 なんか諭してルナ。。 >ゲームじゃないとすると、便利なツールを作るって感じでしょうか? >作ってみたいって思うような、ヒントになるような物って、何かないでしょうか? 日常の業務で、これがあったら便利だよねーと思うものってあるでしょ? この作業いちいちめんどいなーって思うもの。 まずはそんなところからはじめてみるといいですよ。 >けれど寝るのも忘れるくらい没頭できません。 >休みの日は自分のプライベートが大事です。 それでいいと思いますよ。(私は) これだけ偉そうな事言って実はあなたと同い年です^^;。 では、頑張って下さいね。

nazenani-machine
質問者

お礼

ありがとうございます。 ・我慢強い人 ・些細な事に気を配れる人 ・面倒くさがりな人 なるほど~。 正直自分はどれにも当てはまらないようで、別の意味では当てはまっているような気もします。 みなさんからのアドバイスを見ていて思った事は、私はプログラムで何が出来るか分かっていないようなきがします。 「日常の業務で、これがあったら便利だよねー」っていう物が、プログラムでどれ位可能になるのかとか分かってません。 それを知れば、私が自分で作ってみたいものっていうのが見えてくるような気がします。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.6

未経験から、半年や1年できちんと物になるほど甘いものではないでしょう。 しかし、一人前と周りから認められるまでの時間を短くするのは、毎日の積み重ねと工夫次第です。 これは、私の私見ですが、勉強と実践の反復を、どれだけできるかが成長へのカギだと思っています。 闇雲にコーディングばかりしていても、独り善がりなコーディングにしかならないし、本ばかり読んでいても、プログラムは書けるようになりません。 どちらも必要なものだと思います。 ペースは自分のペースでいいでしょう。 しかし、時間が有限である以上、早く一人前になろうと思えばプライベートな時間を裂くしかありませんね。 少なくとも、今は実務に入っているのですから、お給料もらってますよね? 額の大小は問題ではありません。 ようは、質問者さんが一人前にならない間は、会社はその給料を捨てているのといっしょなんです。 他の方とは微妙に視点が違うとは思いますが、そういう点も忘れてはいけないものだと思います。 どんな分野であれば、プロフェッショナルであるということは、そういった意識を忘れないものだと思います。 「給料分だけ働けばいい」ではありません。 「給料負けしない働きをしよう」です。 個人的には、会社に出勤したときに実務以外の勉強をしているのは、いかがなものかと思っています。 要求されるスキルが足りないのは、自分の責任ですから、業務時間外にどうにかしようというのがプロフェッショナルとしての意識では無いかと。 すでに一人前と認められてる人が、新しいプロジェクトに必要な情報を集めているのとはわけが違いますよね。 まあ、この辺りの捕らえ方はかなり個人差もあると思いますが。 私自身は、あまりセンスに恵まれなかったせいもあり、ひたすら勉強と実践を、仕事でもプライベートでも繰り返しました。 まあ、今でもそれは続けていますが、通勤電車で専門書を読んで、家に着いたら読んだことを実践し、朝も本を読んで、会社についたら(隠れて)仕事に直接関係無いこともいろいろ試しました。 現場でプレッシャーを受けながら、一時期は食べ物がのどを通らなくなるくらいでしたけどね。 それでも、半年くらいすると、いろいろ見えてくるものがあって、それなりに回るようになりましたが、周りからそれなりに認められるまでには2年はかかりました。 他の方も書いていますが、下手に自信なんて今は持たない方がいいと思います。 身の丈の合わない根拠の無い自信にしかなりません。 謙虚さを忘れず、常に学ぶ姿勢を忘れず、一つ一つ勉強していくことが一番大事だと思います。 後一つ。 会社の業務や、会社から出された課題とは別に、自分自身のテーマを見つけて、並行して勉強していくことをお薦めします。 まあ、仕事が回らないうちは、無理かもしれませんが、こういう活動をしていないと、自分の頭で考えるエンジニアにはなれないかもしれません。 言われたことしかできないエンジニアもまた、先々潰しがききませんので。 ご参考までに。

nazenani-machine
質問者

お礼

ありがとうございます。 「要求されるスキルが足りないのは、自分の責任ですから、業務時間外にどうにかしようというのがプロフェッショナルとしての意識」 これは上司にも言われました。本当その通りですよね。 「勉強と実践の反復」 「謙虚さを忘れず、常に学ぶ姿勢を忘れず、一つ一つ勉強していく」 すごく大事な事ですね。毎日思い起こして忘れないようにしたいと思います。 「自分自身のテーマを見つけて、並行して勉強していく」 これが私にとっての疑問かも知れません。 テーマって例えばネットワークだったりでしょうか? 私はアルゴリズムについて知りたいなって思うんですが、こういう事でもテーマになるんでしょうか?

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.5

私も文系からプログラマ、SEになった者です。今は、やめてしまいましたが。(理由は嫌になったからではなく家庭の事情です) たしかに、最初は理系だったり過去にプログラム経験があったりする人と比べるときついですが、そのうち追いつきます。逆に、私は2年間同じ会社の営業にいたので、コミュニケーション能力がありましたので・・・ 最初の頃はトラブルがあると「口で直してくる」と言われたものです(笑) ただ、プログラムがうまくなるには、まずは模倣です。同じ動きをするプログラムでも、書き方は何通りもあります。誰かが書いたプログラムを解析してみてください(まずは、簡単なもの)。そして、それに改良が加えられるかどうかを考える。そうすると、そのプログラムの欠点や良い点が分かります。 それと、普段の生活でロジカルな考え方をしてみるといいです。プログラムって、定型的な部分を除けば、小さな場合分けの積み重ねってことだと思います。この値が1なら右、2なら真ん中、3なら左に行くと言う仕様書があったとき、単純にその通りにプログラムを書いてそれで良いのかというと、もし、1,2,3,以外が入ったらどうする、値が無かったらどうすると考えられるかどうかが良いプログラムかどうか分かれます。デバックしてみたとき、0を入れてしまったりしたら分かります。(笑) こういう場合はないか?って一歩先が考えつくかどうかです。 ただ、今の段階なら、お手本になるプログラムを良くみて、どうしてこうなるのか考えるのが一番良いですよ。それと、同僚がトラブっていたら、手伝うって言うのは一番勉強になります。(ずるいやり方ですが) 私は新人の頃、上司の使いっ走りで良く簡単な修正プログラムをたくさん作りましたが、上司の失敗のパターンを自然と学べました。かなりこき使われましたが、そういう意味ではこの上司は恩人です。 がんばってくださいね。最初はビリでも最後は一番になると思っていればいいです。 会社だって、最初から難しいことは要求しないですよ。

nazenani-machine
質問者

お礼

ありがとうございます。 「最初はビリでも最後は一番」なんだかすごくいい言葉ですね。 「お手本になるプログラムを良くみてどうしてこうなるのか考える。」 今私に出来る事だと思います。上司にお願いして、参考になるソースをもらってきます。

noname#25358
noname#25358
回答No.4

 プライベートでゲームを作ってみて、余裕があれば自分のホームページでそれを発表してください。  現代のプログラム言語は、残念ながら「仕事でしかやらない」といった考え方で成り立つほど簡単ではありません。  楽しみながら学ぶ手法を工夫することが必要です。  意欲自体はもう充分立派なもんです。(つーかむしろ俺にこそ必要かも。あうあう(笑))  その心意気をずっと持っていられれば、1年もあれば立派に仕事をこなせるようになるでしょう。

nazenani-machine
質問者

お礼

ありがとうございます。 入社当時に持っていた意欲を取り戻す為に、何か結果を残したいとは思っているんですね。 学ぶ手法を工夫する事が必要なんですね。 こんな事言ってはなんですが、私ゲームってやらないんです。あんまり興味ないんですよね・・・。 ゲームじゃないとすると、便利なツールを作るって感じでしょうか? 作ってみたいって思うような、ヒントになるような物って、何かないでしょうか?