これからプログラミングの基礎力を付けたい方へ

プログラミングを始めて力を付けたいって方、しかし、どんなことができるか分からない、どんなことをしたいか分からない方
情報工学の基礎を楽しく学ぶ方法を伝授します。


この文章は、情報系新入生やパソコンギークになりたい方にお勧めです。(特に競技プログラミングを始めたい方にお勧めかも)
内容自体は、競技プログラミングやるといいよって話です。はい。

競技プログラミングとは

世の中には競技プログラミングと呼ばれるものがあります。数多くの問題が存在し、情報系の基礎力となるプログラミングやアルゴリズムのスキルが身につきます。

ソフトウェアのプログラミングの競技大会のこと。
主に、コンピュータ アルゴリズムに関する問題が数問出題されて、それを数時間以内の制限時間で解く。正しく解けたかどうかは、出題者側が用意したテストデータに対して、正しい答えを返すかどうかで判定されることが多い。
はてなキーワード


最大値はいくつ?とか 最短距離はいくつ?とか
そんな感じの問題ですねー。

オンラインジャッジ

さて、そんな競技プログラマの一般的な練習の場としてオンランジャッジと呼ばれるサービスがいくつかあります。
私の周りではAOJを使って練習している方が多いですね。とりあえずアカウント登録してVolume100をいくつかやってみるといいですよ。


AOJ(Aizu Online Judge)
POJ / SPOJ / UVaOJ

コンテスト

モチベーションを保つにはいくつかコンテストに出場してみるとよいと思います。
TopCoder / JOI / パソコン甲子園 / EPOCH / ICPC などなど


特にTopCoderは月に数回オンラインで開催されており、Twitterなどで盛り上がっています。学生で初心者ならEPOCHあたりがお勧めです。

おすすめ書籍(入門編)

プログラミングの宝箱 アルゴリズムとデータ構造

基本文法が終わったら、データ構造とアルゴリズム!下記は分かりやすくて、面白い題材のある本です。



プログラミングコンテストチャレンジブック

基礎力が整ったら実践を交えて勉強しましょう。競技プログラマ必携です!



基本情報処理技術者

情報工学の視野を広げる。情報工学ったって色々あるんです!情報処理技術者試験で様々な分野の学習が可能です。



おすすめ書籍(ステップアップ編)

Effective C++

中規模以上のソフトウェアを開発するために。C++のルールとマナーについて。



アルゴリズムクイックリファレンス

ただのリファレンスではなく詳しい解説もあり、どのような時にどのアルゴリズムを使うべきか参考になります。


アルゴリズムクイックリファレンス
George T. Heineman Gary Pollice Stanley Selkow
オライリージャパン
売り上げランキング: 171453


おすすめ書籍(闇の軍団編)

Modern C++ Design

闇のC++er軍団への入門書。実に技工に富んだ面白い本だと思います。学部1年の時は読みふけりました。


おすすめ書籍(その他)

vimテクニックバイブル

宗教戦争が起こりそうなのでその他に。Linuxやエディタについての知識を深めると効率上がりますよ。



このように基礎力をしっかり身に付けたあとに、ウェブ系だとかゲーム系だとかやるといいんじゃないですかね。