• 締切済み

文系出身プログラマが基礎をやりなおしたい

経済学部出身でプログラマの端くれをしています。 もともと趣味でプログラムを書いてきて、ゲームを作るだとか、未知の画像フォーマットを解析するだとか変わったことができます。プログラミングの壁にぶち当たってはいますが、いわゆるポインタって何とかそういう感じのぶつかり方ではありません。気合いでゴリゴリコードを書くタイプで、ある意味では結構書けると自負しています。 私は大学で情報工学の教育を受けていません。周りの人は、例えば「ダイクストラ法で」とか言えばすぐにわかりますが、私は習ったことがないので、検索をしてなんとか対応していました(すぐに出てきます)。 ただ、やはり具体的なアルゴリズムの名前がわかっていれば検索も簡単ですが、そうでないときにはどうしても時間を使って効率が悪いのです。現在は問題にぶつかる度に1つ1つ調べて何とかしていますが、系統立てて勉強した方が効率的だと思うのです。 そういうわけで、今更ですが基礎をやり直したいと思います。基礎はやはり大学などで使う教科書を読むのがよいと思うのですが、数がたくさんあり選択で悩んでしまいます(例えばAmazonでアルゴリズムと探すとたくさん出過ぎる)。 余暇を見つけてやっていますので、何十冊も読むほどは時間もお金も余裕がありません。私のように趣味プログラマ上がりで、自称プログラミングは得意だけど基礎ができていない人向けによい本をご存じでしたら紹介していただけないでしょうか?

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

残念ながら私も高度な事まで載っている教科書的なものは知りません。なので思いつくままに紹介させてもらいます。 とりあえず存在と使いどころだけは知っておいた方が良いアルゴリズム。 http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0#.E4.BB.A3.E8.A1.A8.E7.9A.84.E3.81.AA.E3.82.A2.E3.83.AB.E3.82.B4.E3.83.AA.E3.82.BA.E3.83.A0 見ずに組めなくても良いから、知っていると役に立つアルゴリズムが見つかる本。 http://www.amazon.co.jp/dp/4874084141/ http://oku.edu.mie-u.ac.jp/~okumura/algo/ 今さら、このレベルは不要ですよね? http://books.yahoo.co.jp/book_detail/AAP54648/ そういえば、この連載も面白いです。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070109/258278/

tatsuoka
質問者

お礼

ありがとうございます。奥村先生のアルゴリズム辞典は大学入学前(中学生くらい?)から愛読しております。データ構造は普段から使いますので、そういう類のアルゴリズムはそれなりに理解しているつもりです。 もともとパズルとかを解くためにプログラミングを始めたので、連載は面白く読ませていただきました。ありがとうございます。

関連するQ&A

  • プログラマー生き方

    僕は4月からプログラマーとして会社に入社しますが、将来がとても不安です。 プログラマーは、残業が多い、鬱病になる人が多いなど暗い話題しか聞きません。 ちなみに僕は、情報系短期大学を卒業予定ですが、このプログラムを組めといわれれば組めるほどプログラミングはできません。 だからといって死ぬほど勉強するほど、好きでもありません。 そしてこれからやりたいこともないので、プログラマ-として生きていこうと思います。 プログラマーとして、どのように生きていけばいいでしょうか? 参考程度にお願いします。 ちなみに僕はとくに取りえもなく、プログラムの能力も学校の中では中ぐらいで、就職活動の時に、コミュニケーション能力があるから、営業になってくれないかとか言われましたが、僕自身人と話す事はすごく苦手なので、コミュニケーション能力もないとおもっています。 趣味は、ゲームと、最近HP作成を始めました。関係あるのかどうかはわかりませんがいちよう書いておきます。

  • 学生プログラマー (アルバイト)

    私は高専情報科に通う学生です (高専は学生です) 学校で学ぶのとは別に趣味でプログラミングをしています。 四六時中Linuxいじりやプログラミングをしているとプログラマーとして働くというのはどんなものなのか気になります。 また、「学生プログラマー」として働いている人がいると知り合いから聞きましたので、この夏休みを利用してプログラマーとして働いてみたいです。 いくつかの求人サイトで検索しましたが、そもそも数が少ないのと関東での仕事が多いようですが、 僕は関西在住なので、関西圏でないと働けません。 使える言語: C, C++, nasm(Netwide Assembly), Shell Script 一応読める言語: Java, Verilog 自分が使う環境がUbuntuかArch LinuxなのでLinuxとLinuxプログラミングもOKです。 そこで、そもそも僕が使える人材であるかどうかもわかりませんが、 この文脈に合う、求人があるのであればぜひ紹介していただきたいです。

  • プログラマーになるための効果的な勉強法

    今月からプログラマーになるべくjavascriptからプログラミング勉強始めたのですが効率的な勉強法って具体的にどんなのですか? 僕はまずyoutubeで変数関数if文for文配列演算子といった基礎の基礎覚えて次に練習問題解きまくるといった勉強法をとってたのですがなんか違うと感じたんですよ だってペーパーテストみたく点数を競うのがプログラマーの仕事ではないのだから 長くて複雑なコードはいちいち覚えようとしないでコピー元を大量にストックしておいてすぐにコピペできる状態にしておけば良いのではと思ったのですよ で、 現在、コピペしつつ練習問題解きまくってるんですがこれでも何か違うと感じるんですよ 効率的な勉強法って具体的にどんなのですか? また 変数関数if文for文配列演算子をはじめよく使うコードを分かりやすくまとめたコード集があったら紹介してくれると非常に助かります❗️

  • VBプログラマー経験者の方に質問したいのですが・・・。

    はじめて質問します。 僕は今年で33歳になります。31歳で前職(営業)を辞め、将来の為に手に職を就けたいと考えプログラマーを目指すことにし、半年間かけてVBプログラミング能力認定試験2級を取得し、転職活動をして、やっとのことで業務管理系アプリケーション開発を主とするソフトウェア会社に拾われました。ただ、当然業務未経験なので入社してすぐ使い物になるわけがないので5か月間もの間アルバイト生として、座学(主にアルゴリズム)と課題としていくつかの業務管理システムのコーディングなどを勉強してきましたが、会社側が求めるレベル(実際に業務に就かせられるレベル)に達することができず、会社側からもうバイト代を支払うことができないので、自宅で勉強してほしいと打診されました。僕自身も会社に対して何の生産性もない自分が賃金を頂くのは間違っていると思ったので、その打診を受け現在自宅で勉強しております。ですが、未だに普通のプログラマーが一日で作れるというシステムを2週間もかけないと作れないほどの実力しかありません。 どうしたら効率よくコーディングできるでしょうか?(たどえば、わかりやすくアルゴリズムやコーディングの手法を理解する方法や書籍やサイトなど) また、もうこの歳でプログラマーはあきらめた方がいいのでしょうか? プログラマー経験者の方々のご意見をお聞かせいただけないでしょうか。

  • 28歳でプログラマになれますか?

    こんにちは、私は文系の大学を卒業したもので、28歳になっておりますが、画像処理系かゲームのプログラマに転職したいと思っています。 まず、そういったことは可能でしょうか? 可能ならば、どういったスキルが必要になるでしょうか?どんな本を読めば必要なスキルアップができるのでしょうか? 私のスキルですが、 私が今できることは、DirectXでの簡単な処理。 BMPデータをcでfwriteして作成。 C,C++,PHP+MySQL,VBはある程度。 C++はクラスの使い方を多少覚えましたが、 class ko : oya { public:    ko : a(0){}    ~ko(){}    const int a; }; のようなコンストの特殊な初期化みたいな処理を勉強中です。つまりクラスがまともに使えていません。 数学ですが、フーリエ変換でつまずいていて、BMPからJPEGへの変換ができてません。また、波を表現しようといったときに本を読んでもフーリエ変換が理解できないために、先に進めません。それに準じるものもできません。 高校で習う範囲のものでは三角関数やベクトル、微分積分、与えられた数をネイピアの対数に直したり、それを微分して傾向をつかんだりはある程度できると思います。初等数学については、昔大学で習ったマルコフ連鎖のランダムウォークやゼロに吸収される確率のマトリックスなどを思い出したところです。あと、マクローリン展開やベルヌーイ、ポアソン,確率統計のさわりはやりましたがそれ以外の初等数学は知りません。よく本に書いてある待ち行列は数式を知っていて使えますが、マルコフ連鎖の連続地点(待ち行列)で定常状態があるのかないのかはっきりわかっていないような有様です。そしてこれらは必要な知識なのかもあまりわかっていません。 アルゴリズムに関しては、タブの表現の仕方やコッホ曲線やダイクストラ法をやった程度で、まだNクイーン問題などは手を付けていません。 就職できるのであれば、どんな本を読めばいいのでしょうか?どんな知識が必要でしょうか?そのための数学やプログラミングは独学が可能でしょうか?無理ならやはり専門学校などに入りなおさないといけないのでしょうか?

  • 転職するべき?現在プログラマ訓練中

    現在、中小企業でプログラマの訓練をうけている1年生社員です。 しかし、最近自分がこの仕事には向いていないのではないかと思い始めています。 先日、プログラミングのアルゴリズムを考えようとしても、頭が働かないという症状がでました。行きつけの心療内科で、精神安定剤をもらいました。 自分は中高生のころから数学が苦手で、論理を組み立てるのは不得意なほうでした。 反面、英語や社会などの記憶する系の科目は得意でした。 理系の中小企業に就職したのは、理系にあこがれがあったからです。 大学も、理系の学科を卒業しました。 しかし、最近上のようなことになって、自分はプログラマなどの論理を組み立てる仕事は向いていないのではないかと思い始めています。 なにかマニュアルがあって、それにそって体を動かすような仕事のほうが向いているのではないかと思い始めています。 これは間違った考えでしょうか? なんでもいいのでアドバイスください。

  • PCに関する基礎的なことを学習したい

    はじめまして。私はこの九月からプログラマーとして会社に入社した、新社会人です。 プログラマーといっても大学などでプログラミングを習ったことはないし、もちろん独学でもしていません。23年間PCにほとんど触れた事のないため、PC関連の基礎的な知識が全くありません。 会社に入社しC言語の学習を2週間程度、Access用のVBAを2週間程度勉強し、今はデータベース管理の業務を見よう見まねで頑張っている状況です。 そこで、PCに関する基礎的な知識を身につけたいと考えています。 何か勉強になるサイトがあったら紹介してくれませんか。 現在、日経の「なぜ~は動くのか」シリーズに興味があります。 また、こういう事から勉強したほうが良いよってアドバイスがありましたらお願いします。

  • プログラマ・SE志望の大学生です。

    プログラマ・SE志望の大学生です。 理系学部生の2年で、プログラマもしくはSE職に就きたいと思っている者です。 今、院に進むか、3年次に就職活動を始めるか迷っています。 というのは、現在僕が在籍しているのは電気工学科なので、大学で専門的に学ぶことと、就職の希望が少しずれているのです。 もし、進学するのであれば、情報工学科に進むことも可能なので、より就職もしくは就職後に有利になるのかな、と思っています。 一方で、PCをつければ、まずvimとbashを開くというぐらいプログラミングが好きで、プログラミングを独学で学んで来ました(所詮は趣味のレベルですが)し、またこれからも学びつづける自信はあります。 また、1年でも早く就職して、1年でも早く現場で役に立つ人材になって働きたいとも考えています。 しかし、数十分の面接と履歴書だけで、この自信と熱意を採用の方に伝えられる自信は全くありません。 しかも、普通新卒の人は、会社に入ったら研修を行いプログラミング等を学ぶはずなので、むしろ僕のような変な癖のついた人間の方が扱いにくいんじゃないかと思ってしまいます。 そうなると、やはりしっかり大学院でITの技術を学び、研究したというキャリアが必要だと思うのです。また、就職のためだけでなく、IT技術について深く学びたいという意欲もあるので余計に迷います。 僕は進学すべきでしょうか、それとも就職活動をすべきなのでしょうか? アホみたいな質問で申し訳ありません。ご意見宜しくお願いします。

  • プログラミングを行う上での注意点は?

    こんにちは。私は昨年4月からSEとして採用された22歳(♀)です。 現在は下積みとして、ひたすらプログラミングをする毎日です。 プログラミング自体は嫌いではなく、 自分の作ったものが思い通りに動いたときは"、やっててよかった"、と達成感で満たされます。 ただ、まだまだ経験が浅いこともあり、 設計書をもらっても何から手をつけてよいかわからず、 (1)とりあえず書いてみる (2)バグだらけ (3)先輩の手を煩わせてしまう という悪循環に陥りかけています。 "もっと全体像を見ないとダメ""書けても動かないと意味がない"と 先輩からご指導いただいているのですが、 いったん作業に入ると、目先のことにとらわれうまくいきません。 そもそもアルゴリズムが苦手で、 効率のよいプログラムが組めない、という問題もあるのですが…。 そこで、皆さんがプログラミングを行う前、 あるいは最中に必ずされていること、心がけていることはなんでしょうか? 4月からは2年目に突入しますし、 7月から後輩が入ってくることも確定しています。 正直、先輩に頼れるのも今のうち、と焦っています。 現役プログラマーのかた、 あるは趣味でプログラミングをされているかた、どなたでもかまいません。 どうかご教授ください。

  • 全くの未経験、独学からプログラマは無理か?

     25歳の男です。全くの未経験で、学校に通ったわけでもなく、パソコンに関してはインターネットをやる位の知識でしたが、知り合いに勧められて去年の9月からプログラマを目指して勉強しています。しかし、今非常に感じるのは、インターネットで調べれば調べる程、プログラマは中々敷居の高い職業であるという事です。専門用語が非常に多く、また、プログラミング言語もかなりの数があり、相当な勉強を要求される職業で、また、インターネットで検索すればする程労働環境もかなり悪いので、正直戸惑いを感じています。前職は介護職で有料老人ホームにて老人介護職で就業していましたが、あまりの落差に正直愕然とする想いです。全くの未経験で、資格も無く、また、独学の私のような人間にはプログラマは無理なのでしょうか?やはり大学や専門学校で数年程度情報工学を勉強した人間がやる職業なのでしょうか?皆様のご意見をお願いします。