【現在の状況】Windowsユーザーで、Linuxは少しだけさわれます。言語はVBやC#なら書けます。Cは多少。今考えているのはCやC++でWin32 APIを学ぼうかと考えています。また、FEを来年受けようと考えています。
アルゴリズムとデータ構造について知っていると有利になると思います。
明解C言語によるアルゴリズムとデータ構造
Visual C#.NETによる 明解 アルゴリズムとデータ構造
アルゴリズムとデータ構造は肝ですね。確かに勉強する価値あるかも。
どんなプログラマになりたいですか?
OS上で画面に映るソフトウェアだけがプログラムではありません。
OS上で動作する、ワープロソフトなどのアプリケーション。
通信制御、ネットワークなどの機器同士をつなぐソフトウェア。
BIOSなどの機械を直接制御する、ハードウェアに近いもの。
など。
基本的にはC言語をなんの問題もなく使いこなせるようになっていて、アセンブラと結合くらいできて、いまの大学の専門知識を広く知っていればいいと思います。
確かに一般的なソフトウェアだけじゃないですもんね。考えてみます。
普通にみえて、プログラマーから程遠い知識と経験を蓄えてるほうが有利です。
>CやC++でWin32 APIを学ぼうかと考えています。
時間の無駄。ゲームプログラマーになりたいのならこの路線もいみある。
そうですか。様々な分野の知識を吸収できるように頑張ってみます。
長時間残業に耐えれる体力と根性
ほかは採用時には問われません。
労働条件は悪いようですね。よく考えてみます。
プログラマーは芸術家であり、職人だ
こういうのを一度読んでみるといいでしょう
ネットを使ってしらべる
プログラミング言語C 第2版 ANSI規格準拠 (単行本)は読んだほうがいい。
あと、結構英語でマニュアル読む機会があるので英語の勉強はしたほうがよい
情報処理技術者試験の勉強です。
これは、(合格できなくても)勉強した内容は実務にも大いに役立ちます。
http://www.jitec.ipa.go.jp/
超ハイレベルなプログラマを目指すならば、
こういうコンテンストの問題に取り組むことです
http://www.acm-japan.org/icpc-j.html
プログラマは全般的に給与安いし、労働条件良くないよ。
技術は上辺だけ学んでおいて、
話術や権謀術数を磨くほうが賢いかもしれないね。
VBやVCの基礎があるなら.NETかな。
意外とまだ技術者が少ないようなんだよね。
インターネット系だとオープンソースが多いけど、
イントラネット系だと強いよ。
この本がいいとか、これが良いとかってのは、その人を見ないと判らないし、
不適当な場合もあるから、ざっくりとコメント欄ね。
参考: http://japanese.joelonsoftware.com/Articles/FiveWorlds.html
多少強引な例えをすれば、「プログラマになりたいからプログラミングを勉強しなきゃ」というのは「外資系(or英語圏)で働きたいから英語勉強しなきゃ」みたいなものです。そりゃ出来ないと困りますが、重要なのはプログラミングなり英語なりを使って何をするかってところですよね。あ、ちなみにプログラマになるなら英語は出来た方が何かと便利だと思います。多分。
まだ2年生なら、とりあえずどんな業界があるのかを積極的に調査してみるのが良いのではないでしょうか。業界によってはインターンを受け入れてたりアルバイトで潜り込めるところもあります (そういったチャネルが無い業界もあるので、インターンやアルバイトの経験だけでプログラマ全体を判断するのも危険です)。理工学部ならカリキュラムの一環で企業見学などが組み込まれているかもしれません。大都市だとプログラマの勉強会が毎週のように開かれています。プログラマのオンラインコミュニティもあります。そういうところに顔を出して話を聞き、質問していると次第にイメージが掴めてくるんじゃないでしょうか。
自分ひとりでフルスクラッチからプログラミングするのは楽しいですが、他人の書いた何をしたいのか良くわからないコードのバグを修正するのは苦痛です。
人の役に立つ、便利なアプリケーションを作って、使ってもらうのはうれしいですが、これといって何の役に立つかわからない、しかし開発は面倒なアプリケーションを作るのは苦痛です。
デバッグして問題を見つけ、直してちゃんと動いたらうれしいですが、次から次へと既存部分も含めて意味不明なバグが尽きないと苦痛です。
自分の好きな開発環境を使って開発できると楽ですが、よくわからない独自ツールを使わないとビルドできないような構成で開発するのは苦痛です。
設計すべてにかかわって、中身のわかっているアプリケーションならトラブル対応はまかせてくれ、と言いたいですが、ブラックボックスで無駄に複雑なアプリケーションのトラブル対応は苦痛です。
自分が綺麗だと思えるコードを書くのは気持ちいいですが、変な修正履歴やコメントをソースに追記したり気持ち悪いコーディングルールに従ってコードを書くのは苦痛です。
要求どおりのプログラムを計画通りに開発できると達成感を得られますが、プログラムができあがってある程度テストを終えてから要求が変わったり(でも納期はかわらなかったり)するのは苦痛です。
職業プログラマの仕事は、ほぼ後者、苦痛な方です。プログラミングが好きな人ほど向いていない職業ですよ。
会社勤めのプログラマーは苦痛なことが多いようですね。
いろいろ調べたり、インターンに参加したりして情報を集めることにします。
(誰とはあえて言わないが、回答欄のほうにも出現しているので、
ポイント配分で、貴殿のスキルも知れようというもの。均等配分は厳禁ね。)
ポイント配分、気をつけます。
特にOSSを利用している会社は、より技術を重視する傾向があるように感じています。
なぜ上記のようなことを書くかというと、他社(他者)のためにプログラム作成するとなると説明が必要です。
特に素人にもわかるような説明ができる能力が必要となります。
また、逆に相手の業種の業務を知らなければ、業務をプログラムにすることができないため、相手の業務の知識も必要になります。
と、こんなふうにプログラムだけに集中することはできないし、集中すべきではありません。
逆に自社のために自社で開発している会社は、技術がわかる人間が多く、素人相手にコミュニケーションする時間は減らすことができる傾向があるように感じます。
そこではプログラムなどの技術に集中することに対して推奨されることはあっても、止められることはほとんどありません。
その上で、C言語を勉強し、OS・コンパイラあたりのコードを読みまくるというのは良い経験になると思います。
次に、読んだコードをちょっと変更・拡張して遊んでみて、その次に自分でゼロからコードを書いてみてはどうでしょうか。