• 締切済み

そこそこ出来るプログラマを見抜くためのコーディング

そこそこ出来るプログラマを見抜くために 採用時に簡単なコーディングをさせようと思っています。 ある会社では、「3の倍数でアホになって、5の倍数でイヌに なるプログラム」を書けと言われて書けた人が、20分の1だった そうです。(もちろんプログラムが本当にアホになる訳では無いw) これでもよいのですが、ちょっとこれは算数かな?と思ったので、 「そこそこ出来るプログラマ」を見抜くために簡単なお題を 下さい。 良く聞くバブルソートとかは、センスが無いので却下。 ちなみに言語は問わない。シンタックスエラーは無視する。がルールです。

みんなの回答

  • chubou3
  • ベストアンサー率23% (264/1130)
回答No.5

自分で新人を雇い育て上げるのがベストです。

cybert
質問者

補足

確かにおっしゃる通りですが、 新人を育てる余裕がないのと、あくまでコーダーとして雇いたいのです。ようは、社員を雇う余裕がないのですよ。。。。

全文を見る
すると、全ての回答が全文表示されます。
  • sinjou
  • ベストアンサー率13% (492/3662)
回答No.4

自分が職場で経験した事ですが・・・ 大学や大学院でUNIXを使っていた方 入社後に初めてプログラミングを始めた方 に、同じ仕事をお願いした所、後者の人は出来なくて、 結局、前者がスイスイと、やって下さいました。 上流工程職に移って20年近く経ってからも、 「指が寂しい・・・」 と、自宅で夜中にプログラミングをして遊び、睡眠を削るSEさんを選ぶと良いみたいです。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

古典的名著「ソフトウェアテストの技法」という本の最初にでてくる問題に 三角形の3辺の長さを表す3つの整数を読み込みその三角形が不等辺三角形、 二等辺三角形、正三角形のうちどれであるかを表示するプログラムが存在する。 このプログラムが正常に動くかどうかテストするためのテストケースを提示せよ というものがあります。 この問題をそのまま出してもいいですし、例示されているプログラムを作らせて 後から本人にテストケースを作らせるというのも面白いかもしれません。 ちなみに解答例として挙げられているテストケースは14個ですが 十分に経験を積んだ専門プログラマの平均点数が7.8個だったそうです。 答えは本を購入することをお勧めしますが「ソフトウェアテストの技法 三角形」で 検索すると紹介されているページがかなりでてきます。

全文を見る
すると、全ての回答が全文表示されます。
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

ソフトウェア開発者採用ガイド:Joel Spolsky著に以下のような問題が紹介されていますね。もちろん、これができたからって「そこそこ出来る」とは言えないでしょうが、少なくとも「HTMLがプログラム言語」だなんて勘違いな人を選り分けられるでしょうね。 1.文字列が大文字のアルファベットA-Zではじまるかどうかを調べる関数。 2.与えられた半径を持つ円の面積を求める関数。 3.配列の要素の値を加え合わせる。 ちなみに、本書では、そういうプログラマを採用するには、 1.こちらから出向く 2.インターンシップ 3.自分のコミュニティをつくる(例えば、○○県Rubyユーザーズグループとか) と書かれていました。

cybert
質問者

お礼

基本的なとこがクリアできそうですね、 >ちなみに、本書では、そういうプログラマを採用するには、 そうなんですよ、、、良い人に出会えないなぁ。 3.自分のコミュニティをつくる(例えば、○○県Rubyユーザーズグループとか) 私も色々な勉強会に参加して、物色中ですがなかなか。。

全文を見る
すると、全ての回答が全文表示されます。
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

言語も文法も問わないんだったらフローチャートでも書かせるのが公平ですかね? それはともかく、その程度でよいのなら、思いついたところだと… 現在の暦で閏年を計算するフローとかどうでしょう? (ちなみに閏年の計算方法(というか定義)は、「4で割り切れる年」だけでは不正確です) 閏年の定義から1年の長さ(時間)を計算(逆算)するとかもありかも。 曜日計算をするというのも良いカモですね。 まぁ、課題をフローチャートに落とせるんだったらあとはなんとでもなりそうな気がしますが。個々の言語固有の知識・技術は別にして、ですけど。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラマーの仕事について。

    プログラマーの人はなぜそんなにプログラムのことが詳しいのですが。  と言うのは、別に私はプログラマーになりたいとかはないのですが、HTML言語やパソコンに関することでもヒーヒー言っているのに、プログラマーの人はすごいなーっていつも関心します。  センスの問題でしょうか?  センスと言ってもやはり勉強は人一倍しているんですよね?素人の人でも勉強したらプログラマーになれるものなのでしょうか?  プログラマーの人の話やなった経緯など聞かせてもらえると嬉しいです。

  • 世界のナベアツ

    今C言語のプログラミングを勉強しています。 3の付く数字と3の倍数をアホにさせたいのですが、うまくできません。 3の倍数は%3で余りが0になるようにするのは分かるのですが、3の付く数字(135とか)をどのようにプログラムしたら良いのか分かりません。 ぜひ教えてください。

  • CASLIIのプログラム(並び替え)について

    CASLIIのプログラミングで直接選択ソートまたはバブルソートを用いた1~5までの数字の大きい順に並び替え、というものがあります。C言語でしたらわかるのですがCASLIIだといまいちわかりません。直接選択ソート、バブルソートの原理はわかるのですが。 CASLIIのプログラムの形で答えを教えてください。なおプログラムは部分的に        START   BGN BGN          RET DATA    DC    1,4,3,2,5         END となっています。 よろしくお願いします。

  • ソートに関する質問です

    C言語でのプログラム作成の課題が解けなくて困っています。 バブルソートを使って、1000000個の整数データを昇順に並べ替えるプログラムを作成するというものです。 自分なりに作成したプログラムは、mallocでデータを格納する動的領域を確保して、後はシンプルにバブルソートの処理を行っています。 データ数が5,6万程度なら正常な動作が確認できるのですが、それより大量のデータ数だと、処理に時間が掛かりすぎるせいか、もしくは処理しきれずに動かなくなってしまったのか分かりませんが、プログラムの処理がいつまでたっても終わりません。 おそらくバブルソートの2重ループのあたりで、膨大な処理になってしまうのだと思うのですが、この問題についての改善策をどなたかご教授いただけませんでしょうか。

  • あなたのC言語コーディング規約

    勤務先・学校・趣味でC言語を使用してプログラムをしている方の多くは組織内で決めているコーディング規約に沿ってプログラムをしていると思います。 しかし、全てに関して規約化されていることは少なく、ある程度プログラマの裁量に任せていることがあると思います。 そこで、質問です。 「あなたの中で決めているコーディング規約は何ですか?」 「また、その理由は何ですか?」 私が決めているコーディング規約を一例挙げると以下の通りです。 (基本は他人が見ても直ぐに理解できるように心がけてます。) ------ □変数名の前には必ず型を現す文字を書く 理由:観ただけで型が分かるから。 例 :int型は、iData    char配列は、stData    ポインタは、pData □関数の復帰値は、一旦必ず変数に代入する。 理由:代入しないとデバックがしにくい。 例 :iRetCode=func();    switch(iRetCode){      case文    }    の、ように色んな値を試すときに不便。 □if文には、極力「!」(NOT)は使用しない。 理由:複数の論理和・積などが入った場合ややこしいので    elseで代用する。(真の時の処理はわざと書かない) □if文の判定には必ず定数値を左辺に持ってくる。 理由:if(iData=0)とかの"=="を"="にしてしまうミスを防ぐため。    (コンパイラによっては、警告が出るものもありますが…) 例 :if(0=iData)など □while(1)は、基本的に使用しない。 理由:無限ループに陥らないようにするため。 ------

  • 非常に困ってます

    C言語の問題集の回答がないので困っているので誰か教えてください。 私はまだ始めたばかりなので手におえません。 今私が理解しているif文、switch文、for文、while文、do-while文、配列、を 使用してでお願いします。 以下のプログラムに付け足しをしてバブルソートのプログラムを完成させなさい。 バブルソート前とバブルソート後のそれぞれの並びを表示すること。 #include<stdio.h> #define No 11 main(){ int a[No]={2,7,5,1,7,1,8,3,6,4,9}; int i,j,temp; 実行結果例 before 2 7 5 1 7 1 8 3 6 4 9 after large >>>>>>>>>>> small 9 8 7 7 6 5 4 3 2 1 1

  • 無料で協力してくれる共同開発者の募集の仕方

    C 言語暦 10 年のプログラマです。 お金をできるだけかけずに(できれば無料で), PHP でソフトウェアを開発したい案件があります。 簡単な PHP プログラムなら書けます。 自分でコーディングする以外に, 共同開発者を募る方法はありますでしょうか。 報酬はプログラム完成後に収益があった場合にのみ分配したいと考えています。

    • ベストアンサー
    • PHP
  • webプログラマーから転職

    webプログラマーとして約7年経験がある20代後半です。 最近転職を考えています。 というのも自社は超零細で、 派遣のような形でプロジェクト毎に企業へ常駐して仕事をおこなうといった形なのです。 そのため何か自社で教育を受けたわけでもなく、 その時その時で必要なことを自分で勉強してなんとか対応してきました。 20代後半に差し掛かり将来が不安になってきました。 スキル的にも7年経験があるとはいえ、 わからないことが多くて力不足だなって客観的に思ってます。 無駄に時間だけ過ぎていて成長してないって思ってます。 4年前と大差無い位じゃないかと思ってます。 プログラム言語的にはPHP、Perlを主に使ってます。 今後、どうしていったらいいと思われますか。 相当悩んでます。。。 1.自社サービスのweb系プログラマー職に転職  ⇒数社応募したことはあって、書類選考は通るのですが、   面接で質問されると「それはやったことないです」ということが多く、   経験年数の割りに力不足と判断されて断られる。 2.顧客常駐型のSIrでも教育制度のあるところに転職  ⇒こういうところには転職できると思うのですが、   常駐型は今もそうなのですが将来が不安というのがあります。 3.サイト運営や、webディレクターのような職に転職  ⇒プログラマーからこのような職に就くのはどうなんでしょうか?   ある意味、今の自分には身の丈に合ってるんじゃないかって思ってます。   ちょっとした画像更新、HTMLのコーディング、サイト更新作業などがメインだと思うので。 4.違う土俵に転職  ⇒正直、何も思いつきません。。 何かコメントお願い致します。

  • システムエンジニア、社内SE応募

    29歳(あと半年で30歳)プログラマーです。 これまで、1つの会社で5年やってきました。 言語はC言語で、組み込み系の仕事です。 携帯電話の端末や基地局開発です。 やってきた工程は、 プログラム設計(僅かですが)、モジュール設計、 コーディング、各種テスト です。 中途採用の募集をしている企業の募集職種を見ると システムエンジニアとプログラマーと社内SEも考えています。がありますが、 システムエンジニアや社内SEで応募することは可能だと思いますか? この年齢で、プログラミングメインでやるのはどうも不安です。 よろしくお願いします。

  • 低次元なコーディング方法について

    私は一通り書籍でC言語の基礎を勉強しただけの初心者プログラマです。 もっと実力を付けるためにアルゴリズム関連の書籍をいくつか読み始めました。 これならソースを読む力も一緒に鍛えられると思ったからです。 その中で素数を表示するプログラムに興味を持ち自力で一から組んでみました。 (途中でどうしても分からず参考にする部分もあったのですが…) 私のコーディング手順は 1.UMLのアクティビティ図で大まかな処理を確認する。 2.if文だけで一通りの処理を記述。 3.while文を使って繰り返しの処理を追加する。 4.何度もうまくいかずにそのたびに修正していく。 というものです。 1.の部分は大量に書籍が出ているので勉強できるのですがUMLの性質上 それをコーディングしていく解説はどうしてもCのソースを書くこととは次元が違うようです。 かなり低次元なことだからでしょうか、解説している本にも出会えません。 前置きが長くなりました。 今回教えていただきたいのは ・アクティビティ図などで記述したものをソースコードに落とし込む  というかなり低レベルな部分での方法です。 私はオブジェクト指向はまだ勉強していないので Cでその過程などを書いていただけると幸いです。 どうやったらgoto文やフラグを使わずにソースを書けるか、 コツなどあったらぜひ教えてください。 アドバイスの参考になればよいと思い、私が書いた素数表示プログラムの一部を紹介させていただきます。 /**********************************************************/ /* 素数を格納する配列を受け取り最後に-1を格納する関数  */ /* 効率的な演算のために乗除演算回数を表示もおこなう   */ /**********************************************************/ #define  END (-1) #define MAX 1000 void prime_assess(int a[]) {   int j=0;  //ループ用のカウンタ   int x=3;  //検証値   int element_no=1;//配列の中の素数の個数   int arithmetic_no=0;//乗除演算回数   while(x<MAX){     j=0;     arithmetic_no++;     while(x % a[j] !=0 && a[element_no-1] != x){       arithmetic_no++;       if(a[j]-a[j] >= x){         a[element_no++] = x;       }else{         j++;       }     }     x += 2;   }   a[element_no] = END;   printf("乗除演算回数は%dでした。\n",arithmetic_no); } 先ほどの1~4のプロセスで作りました。 できるだけ無駄な演算を避けてみたつもりですがいかかでしょうか。 フラグなどを避けるよう、かなり時間をかけて書いたプログラムです。 乗除演算回数はおそらく2636回になっています。 自分以外の方にソースを見ていただける機会がないものですから、 これはおかしいぞというところも書いていただけたらうれしいです。 皆様からのアドバイスをお待ちしております。