• 締切済み

新入社員プログラマーですが周りについていけません

ozelの回答

  • ozel
  • ベストアンサー率100% (1/1)
回答No.59

まだ満足のいく回答を得られていないみたいなので二度目の回答を 一回目の回答で文系と書きましたが、それは世の中から法則性を見付け定式化できる能力があるかどうかという意味です Jiamari459さんは、RPGなどのコンピューターゲームはしますか? するとしてキャラクターのレベルが上がって強くなったとき、将来どれくらい強くなるか知りたいと思いますか? そして知りたいならどうやって知ろうとしますか? インターネットで検索するのが一番早くてスマートな問題解決方法かもしれません でも、私の場合なら幾つかのレベルのサンプルから計算式を推測します (武器のレベル+キャラクターの能力値)×技による倍率-敵のレベル+乱数 といった感じです こうして次のレベルの数値を予測しレベルを上げて計算式の正しさを証明していきます これは科学的手法そのもので、いわゆる理系と呼ばれる人達はこの能力が長けています 掛け算九九のコメントがありましたが、私ならどのように思考するかできるだけ細かく書いてみます (1)算数の知識より九九は81個の数の集合であり、9の数列を9束ねたものであると解る (2)一の段に注目すると1から始まり前の値に1足すことの繰り返しで表せると解る (3)二の段は2から始まり前の値に2足すことの繰り返しで表せると解る (4)三の段以降も初期値と足す値に1足せば表せると予測できる (5)プログラミング言語の知識より数の集合は配列、繰り返しはfor文や再帰呼び出しの組み合わせで表せると解る 理系の人はこれくらいのことが一瞬で解ります 実際はこれほど明確に考えているわけではなくて、何となくできそうだと"感じる"のです こういう感覚は一朝一夕では身に付かないと思いますし、生まれつきのものが大きいです 例えば、理系の人はこの手のゲームが得意です http://iqtest.dk/ これが苦手だからといって、落ち込む必要はありません プログラマーには向かないというだけのことです 身長が低くてプロバスケットボール選手には向かないというようなものです 逆に体が小さければ、ジョッキーやF1ドライバーには向いています Jiamari459さんは、論理的に考え他人に解りやすい文章を書くことができるようなので、IT業界ならヘルプデスクや講師、翻訳家などが向いていると思います ヘルプデスクも法則性を見付ける能力があるにこしたことはないですが、そういうのは得意な人に引き継げば十分やれると思います それでもプログラマーになりたいと思うなら、プログラムは二つの要素しかないということを覚えてください 「処理」「分岐」です 処理は本来の仕事(計算)です 仕事が終われば次の仕事に取り掛かります 分岐は次にどの仕事をするか予め決めた条件に従って判断します 「順次」「反復」「分岐」などと書く場合がありますが、分岐の位置によっては必ずしも順にならなかったり反復しなかったりするので独自の書き方をしました オブジェクト指向でも関数型でも結局はこの二つの組み合わせでしかありません 先ほどの九九を考えてみます 分岐の条件を考えるのは難しいので、まずは処理だけに注目します 表を表示するのですからまず1という数字を表示する処理を書きます printf("1"); 2、3と続くので printf("1"); printf("2"); printf("3"); これを81個書かなくても規則性に気付くのではないでしょうか printf()が何度も出てきてくどいですよね 幸いなことに表示する文字が数字限定で数値の変化に規則性があります "規則的に変化する数値"は変数として置き換えます ここでは変数nとしましょう 次に変数nがどのように変化するか考えます 最初は1です 初期値などと呼びます したがって、 n = 1; となります 次は2です n = 2; こうしてしまうと、最初の数字との関係が表せていないので変数にした意味が無くなってしまいます 1ずつ増えるという規則性があるので1を足してみます n + 1; これだけだと変数nは変化していません 計算結果を変数nに反映させるには n = n + 1; となります これでnは2になりました 次は3ですが同じ式を使えることが解るでしょう ここまできたらあとは、この計算を繰り返せば良いだけです 繰り返しにはfor文を使います for (初期値; 繰り返す条件; 繰り返す式) 処理; なので条件と処理は無視して、これまで出てきた式を当てはめます for (n = 1; 繰り返す条件; n = n + 1) 処理; 繰り返す条件とは「分岐」の条件のことです 分岐しなければ、永遠と1を足し続けることになります 九九の場合は「一の段の間」が条件です それを具体的に言い直すと「9までの間」となり、さらに「変数nが9以下」となります これを式で表すとn <= 9となり for (n = 1; n <= 9; n = n + 1) 処理; こうなります 繰り返したい処理はprintf()なのでprintfの引数を変数に置き換えます printf("%d", n); よって for (n = 1; n <= 9; n = n + 1) printf("%d", n); 区切りの文字が入っていないなどの問題はありますが、一応一の段が完成です 同様に二の段三の段を考えます for (n = 1; n <= 9; n = n + 1) printf("%d", n); for (n = 2; n <= 18; n = n + 2) printf("%d", n); for (n = 3; n <= 27; n = n + 3) printf("%d", n); またここでも規則性が見付かります 規則性が見付かったら変数に置き換えれば良いのです 今度は変数mに置き換えてみましょう 1、2、3と増えているところは単純な置き換えができます 問題は繰り返す条件です 9、18、27は1ずつではなく9ずつ増えています これはその段の最後である9をかけた数なのでこう考えることができます for (n = 1; n <= 9 * 1; n = n + 1) printf("%d", n); for (n = 2; n <= 9 * 2; n = n + 2) printf("%d", n); for (n = 3; n <= 9 * 3; n = n + 3) printf("%d", n); これならば、変数mに置き換えられます for (m = 1; m <= 9; m = m + 1) { for (n = m; n <= 9 * m; n = n + m) printf("%d", n); }; m = m + 1は頻繁に書くのでm++か++mで置き換えることができます(二つの違いについてはここでは説明しません) 区切り文字を表示する処理を間に挟んでやれば完成です for (m = 1; m <= 9; m++) { for (n = m; n <= 9 * m; n = n + m) printf("%d ", n); printf("\n"); }; 本来、ここまで変数の数が解ったら配列や再帰での解決を図りたいところです 各段の末尾の区切り文字を無くし、桁もそろえ、何をかけるのか見出しも欲しいところです このように実際に動くコードを書きながら、設計を見直していく手法をプロトタイピングと言います プログラミングは自由なので、正解が一つではありません どのように書けば良いか思い付かないのであれば、こうやって冗長なコードを書いて規則性を見付ける方法もあります しかし非常に効率が悪いので、アルゴリズムの知識や、いわゆる理系の能力が求められるのです

関連するQ&A

  • プログラマーに転職して2ヶ月目。かなり難しい課題を

    学生の頃2年間プログラミングの勉強をしてきました。 しかし、最初に就いた仕事はプログラミングが必要としない仕事で2年半働いてきました。 しかし、プログラミングをしたくて8月に転職し、研修期間もあります。 しかし、急に難しい課題を出されて困っています。 社内システムを作って欲しいと。 しかも研修中に勉強したての言語でかなり困っています…

  • 新入社員に最低限知っておいてほしいもの。

    どちらに質問をして良いのかわからなかったので、こちらで質問をさせていただきたいと思います。 私は、文系の大学に通う大学4年生で、プログラミングに興味があり、職種をSEに絞って就職活動を行い、希望通り、SEとして、内定をいただくことができました。 しかし、いくらプログラミングに興味があり、個人的に勉強をしていたとは言え、明らかに、専門学校の人やましてや理系の人と比べると能力が劣っています。就職まで時間はあり、大学の単位もほとんどとり終えているので、今年の1年間はプログラミングの勉強を中心にしていきたいと考えております。 今、システム関係の会社で働いており、新入社員の教育をしている方または教育をする方で、新入社員に最低限知ってておいてほしい知識と、これを知っていると「コイツ使えるな!」と思うような知識がありましたら、教えていただけないでしょうか。よろしくお願いします。 ちなみに、今、私が勉強している言語はc言語とJAVAです。

  • プログラマを目指してます

    現在中学2年生なんですが、SEやプログラマといったPCを使う職業を目指しています。 今までは「こういう仕事になりたい」と思っていただけなんですが、先週から何か夢にむかって実行しようと思い、JAVA言語を勉強し始めました。 そしてJAVAを勉強しながらわからないことを調べてるうちにC#(?)やC言語は必要。という記事を目にしました。 なにもわからないままJAVAを勉強しているんですが、これでいいのでしょうか? こういう仕事を目指すには、まずなにを勉強すればいいのでしょう? プログラミング用語以外にも、なんでもいいので学んだほうがいいことがあれば教えてください。お願いします。

  • 新米プログラマの相談:理解に時間がかかる。いい方法はありませんか?

    未経験からプログラマに採用され、C言語の研修を受けていますが、理解するのに時間がかかります。 例えば、他の研修生が3時間で終わる課題が、私は6時間かかる…といった具合です(もっとひどいかもしれません)。 まったく理解できないわけではないのです。 時間をかければわかるようになるんですが、 どうにも時間がかかりすぎて、いたたまれなくなりますし、こんなことで実務について大丈夫か?と心配です。 とはいっても、プログラミングが嫌いなわけでもないし、今のところは諦めるという選択は考えていません。何とか効率を上げて頑張って行きたいのですが、どうすればいいのやら。 お勧めの勉強方法、仕事の進め方、心構えなど、アドバイスをいただけないでしょうか。

  • プログラマー

    将来プログラマーを目指している15歳です。 そのために、高専に入学しました。 やはり初めのうちはプログラミングはやらずに情報系の勉強ばかりをしています。 自分的には開いた時間でプログラミングの勉強をしたいと思っています。 パソコンの知識はそこそこありますが、プログラミングに関しては全くの初心者です。 自分的にはC言語から始めてみようかなと思っています。 しかし、どんな勉強をすればいいのかが分かりません。 どのような勉強をすればいいか、またどんな本がオススメかを教えてください。 もう一度言いますが、全くの初心者です>< よろしくお願いします。

  • プログラマになるためのアドバイスをお願いします。

    プログラマの仕事に転職を考えているのですが、まずはC言語の知識が必要と聞いたので、本のやWebの情報を調べて方針を考えています。 しかし、コンピュータの世界は難しく、幅が広いため、どういう方針でいけばよいのか解らない状態でいます。 今の現状としては、C言語の勉強をしながら、Webの転職サイトで未経験でも研修でプログラマになれる会社を調べています。 ここでの未経験というのは、どの程度のものなのかよくわかりません。 やはり独学では難しいところがあるのでしょうか?コンピュータスクールに通わないと無理なのでしょうか。 独学でプログラマの道を実現させた方の苦難・成功の体験を知りたいです。 何かこれからの方針として、アドバイスしていただきたく思います。 よろしくお願いいたします。

  • 30歳、プログラマーへの転職。

    現在30歳です。 未経験(文系)からプログラマー職に転職したい考えているのですが、 まず何から勉強した方が良いでしょうか? 転職エージェントさんからは、まず市販のテキストで勉強するように、と言われました。 しかし、JavaとかC言語とかPHPとか色々あって、何を勉強して良いかわかりません。 ITパスポートを持っているので、基本情報技術者を目指すのも選択肢としてありかなとは 思うのですが、あまり資格にこだわらなくても良いなという気持ちがあります。 まずは、転職先で必要な言語を学習してキャリアアップしていくのが一番良い とは思うのですが、他にもIT業界経験者様の視点からアドバイスや見識があれば 教えて欲しいと思い質問をさせて頂きました。 ざっくりした質問で申し訳ありませんが、よろしくお願いします。

  • プログラマーへの転職について

    32歳女性です。プログラマーの仕事に転職したいのですが、スクールでC言語やJAVA言語を勉強してから就職活動したほうが有利なのでしょうか?

  • プログラマの仕事

    現在転職活動中でして、以前にC言語の習い基本的なことはわかります。そして、以前勤めていた会社でトヨタ系の設備メーカーの製造の仕事をしていたこともあり、シーケンスも少し勉強しました。 しかし、C言語もシーケンスも実際の業務経験はありません。 これらの両方を活かす仕事があれば、転職したいんですが、なかなか見つかりません。 シーケンスならば電気設計、C言語ならカーナビや組み込み系の仕事などしかありませんでしょうか? 年齢は28歳なのですが、なかなか未経験の私を雇ってくれるとは思いませんが、両方活かせるような仕事はあれば頑張りたいのですが。 それで質問なんですが、C言語、シーケンスを両方活かすような仕事はありますか?あった場合、28歳未経験が転職できますか? 最悪の場合、少しスクールに通い、JAVAや.NETを習い、業務系の仕事も探そうかとも思います。 ちなみに甘いかもしれないんですが、できたら土日休みを希望します。どなたか詳しい方教えてください。

  • プログラマへの道

    わたしはプログラミングの経験も知識も皆無なのですが 職業にできたらいいな、と考えています。 実際に仕事にするために (1)未経験者でも雇ってくれる会社へ「即」応募する (2)プログラミングの基礎的スキルをスクールなどで 最低限身につけてから未経験OKの会社へ応募する (1)、(2)どちらが望ましいと考えられるのでしょうか。 また学習する言語についてですが (3)C言語はプログラミングの基礎なので勉強するべき (4)C言語(を用いる業種?)は競争が激しいので初心者は避けるのがベター …などの意見をこれまでネット上で見てきました。 VBAやJavaScriptが取り組みやすいようにも聞くので こういったところからプログラミングに慣れるべきなんだろうか、 とも迷います。 わたし的には、アプリケーションソフトやインターネットの分野で プログラミングの職に就きたいと考えています。 20代半ばとあまり時間が残されている年齢ではないので 賢明な選択をしたく思い、先輩方のご意見をおうかがいします。