「Webプログラマーを志す学生さんが、学生のうちにやっておきたい11の事」?

http://d.hatena.ne.jp/RyuichiXP/20121208/1354930269

いろいろとツッコミ満載.
Web系なのにMacだったり,PHPなのにIDEだったり.しょぼいWebアプリに挑戦することを推奨してるくせに,(高度な?)数学の復習とか言い出したり.全体として何を目指してるか分からないチグハグさが目立つ.

統合開発環境(IDE)に使い慣れる

言語によって異なるのであまり意味は無い.JavaならEclipseNetBeansくらい使えるべきだが,PHPRubyだと無意味だろう.

むしろEmacsのようなマトモなエディタを駆使できるようになっておくべき.エディタは基本的で強力なツールだが,敷居は高いのでまとまった時間があるうちにやっておかないと,なかなか勉強する機会が無くなる.Emacsのような本物のエディタに比べるとIDEのエディタはオモチャみたいなもの.*1


追記:特にサーバーにrloginして作業する場合は,IDEオンリーな人は「使えない人」に成り下がるがEmacsやviな人はほとんど苦も無く作業できる.開発途中にweb系ならサーバーの設定ファイルをいじくったり,phpのような言語ならソースを編集して様子を見たりすることは頻繁に発生するので,開発をIDEでやる人でもエディタが使えるようにはなっておかないと非常に困る.

さらに行数の長いプログラムの不具合修正や改良に使うのがgrep検索だ。

なんでIDEの文脈でgrepが出てくるんですか...*2

grep Pocket Reference: A Quick Pocket Reference for a Utility Every Unix User Needs (Pocket Reference (O'Reilly))

grep Pocket Reference: A Quick Pocket Reference for a Utility Every Unix User Needs (Pocket Reference (O'Reilly))

6.PHP+MySQL等でフォームや掲示板を作ってみる

PHPのような糞言語でなく,できればJavaのようなまともな言語を勉強して使いこなせるようになっておいた方がよい.*3これもまとまった時間がないとなかなかできない.ついでにRailsとかJQueryとかもやっておいた方がいいかもね.

PHPはオマケ程度で十分.むしろできない方が幸せになれるかもしれないくらいの超糞言語だ.*4 *5

4:GitHubに登録し、ソースコードを人に見せる準備を整える

最近ではWeb系企業等を筆頭に、GitHub等に公開されているプログラムのソースコードを見て採用の判断をする会社もある。

これについては賛否両論.

  • id:hyakuhyaku その人が1人で作ったものがあれば、中身を見なくてもある程度はわかるんだけど、オープンソース丸パクリとか、マイナーライブラリ呼んでるだけとかいうパターンもあるのでなかなか油断できない
http://b.hatena.ne.jp/entry/d.hatena.ne.jp/tagomoris/20110608/1307502071

http://d.hatena.ne.jp/JavaBlack/20110619/p2
持ってきたコードを見ただけでの判断は危険.その場でコードを書かせるというのは良いアイデアだけど,時間や設備の関係で実践は難しい.そもそも面接官のスキルが低すぎることが多いし.

3.Subversion(svn)やGitHubなどのバージョン管理ツールに慣れる

やっておいたほうがいいけど,無くてもどうってことない.まともなプログラマなら3日もあれば使えるようになる.

企業に入るとソースコードの管理にバージョン管理ツールを使う事があり

というか,必需品.もう何年も前から.

まだ使ってない会社は技術スキルが非常に低いので,そんな会社は避けた方が無難だ.ブラック企業の可能性が非常に高いと思って良い.

さてバージョン管理ツールはプログラムの変更箇所を、後から見返し易いようにする為の物だ。又何かエラーがあったとき、素早く前の状態に戻すためのツールでもある。

「ブランチを作る」「マージする」という発想は無し?まあいいんだけど.

9.macを導入する

Macが必要なのはWebより,むしろiPhone/iPadアプリ開発ではないか.Webではmacである必要は無いと思われる.クライアントはLinuxでもWindowsでも特に問題は無い.

IEでの動作確認が必須になることが多いので,開発現場には動作確認のためのWindows環境は必須.ただし必ずしも開発マシンがWindowsである必要は無い.個人で趣味でやってる限りはIEでの動作確認なしというのも有りだろう.

簡単に言えばプログラムを始め易いと言う事に尽きる。1は、Windowsの場合だとCygwin等をインストールしなくてはならない事が多い。2は「sudo port install ****」と打ち込めば大抵のプログラムのライブラリはインストールできる。

そのくらいの基本ツールのインストールもできない人は,Web開発を諦めた方がいいんじゃないか?

7.3.1:クラスの使い方や変数の修飾子の使い方に慣れる

……プログラミングの基本じゃん.ていうか,それ無しで何を作る気だったのやら.

10:数学の復習も忘れずに(線形代数解析学、確率統計、グラフ理論等)

一方でこんな話も勧めている.わけがわからない.

上の話を見ると非常に低レベルな底辺IT企業への就活用の話だ.そんな世界では,高度な数学など使う機会はない.また仮に機会があったとしても,あなたにはそれをプログラム上で活用するスキルは無いだろう.

プログラムとそれを支える数学とは一体で不可分.高度な数学を使うのであれば,数学単体で勉強するのではなく,応用分野,プログラミングテクニック,プログラム実装,アルゴリズムとデータ構造,これらとこれに必要になる数学とを一緒に学び,作っていかなければ意味が無い.さらにその専門研究を必要とする会社に入社しない限り,豚に真珠になるだろう.

8.基本情報技術者試験を受験する

これはイラネ.これを取るくらいならTOEIC 700点でも取っておけ.*6


最後に,「英語を必死で勉強する」も追加して欲しい.

これの優先順位としてはかなり上.これもまとまった時間があるうちにやっておかないと難しい.Kindle Paperwhiteもでたことだし,洋書をバンバン買って片っ端から読んで見るべし.

Kindle Paperwhite Wi-Fi (第5世代)

Kindle Paperwhite Wi-Fi (第5世代)

もし買うなら,一番安い3GなしのWi-Fiオンリー版で十分.
The Google Resume: How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, or any Top Tech Company

The Google Resume: How to Prepare for a Career and Land a Job at Apple, Microsoft, Google, or any Top Tech Company

How Google Tests Software

How Google Tests Software

  • 作者: James A. Whittaker,Jason Arbon,Jeff Carollo
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2012/03/23
  • メディア: ペーパーバック
  • 購入: 1人 クリック: 19回
  • この商品を含むブログを見る
97 Things Every Programmer Should Know: Collective Wisdom from the Experts

97 Things Every Programmer Should Know: Collective Wisdom from the Experts


そうそう.「業界研究を兼ねてなれるSEを読んでおく」というのがあったな.

http://book.akahoshitakuya.com/b/4048868535
http://d.hatena.ne.jp/JavaBlack/20120815/p1
http://d.hatena.ne.jp/JavaBlack/20101018/p1
死にたい奴だけがIT業界を目指せば良い.*7

Q:SEになることをめざしている大学一年生です.将来に向けて今からやっておいたほうがいいことはなにかありますか?

A:SE以外の職種につけるよう,幅広い就活準備をしておくことだと思います.

http://nareru-se.dengeki.com/consultation/?no=13#02


参考書籍についても,駄本屑本っぽいのがチラホラ.*8

名著として、「新・明解C言語によるアルゴリズムとデータ構造(柴田望洋)」がある。

新・明解C言語によるアルゴリズムとデータ構造

新・明解C言語によるアルゴリズムとデータ構造

名著?ご冗談を.


アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)

アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書)

アルゴリズムイントロダクション 第3版 第2巻: 高度な設計と解析手法・高度なデータ構造・グラフアルゴリズム (世界標準MIT教科書)

アルゴリズムイントロダクション 第3版 第2巻: 高度な設計と解析手法・高度なデータ構造・グラフアルゴリズム (世界標準MIT教科書)

Introduction to Algorithms (MIT Press)

Introduction to Algorithms (MIT Press)

  • 作者: Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest,Clifford Stein
  • 出版社/メーカー: The MIT Press
  • 発売日: 2009/07/31
  • メディア: ペーパーバック
  • 購入: 5人 クリック: 90回
  • この商品を含むブログ (19件) を見る
アルゴリズムクイックリファレンス

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

http://d.hatena.ne.jp/JavaBlack/20110923/p1

「独習PHP」の第十一章にセキリュテイ対策に具体的に書いてあるのでそれを読んでみて欲しい。

独習PHP 第2版

独習PHP 第2版

独習シリーズはなあ…….

初心者向けに低レベルな内容で,入門者以外にはお勧めできないんだが.


プログラマのためのSQL 第4版

プログラマのためのSQL 第4版

SQL in a Nutshell: A Desktop Quick Reference Guide (In a Nutshell (O'Reilly))

SQL in a Nutshell: A Desktop Quick Reference Guide (In a Nutshell (O'Reilly))

SQL Tuning: Generating Optimal  Execution Plans

SQL Tuning: Generating Optimal Execution Plans

MySQL Cookbook

MySQL Cookbook

HTTP: The Definitive Guide (Definitive Guides)

HTTP: The Definitive Guide (Definitive Guides)

  • 作者: David Gourley,Brian Totty,Marjorie Sayer,Anshu Aggarwal,Sailu Reddy
  • 出版社/メーカー: O'Reilly Media
  • 発売日: 2002/09
  • メディア: ペーパーバック
  • 購入: 1人 クリック: 34回
  • この商品を含むブログ (1件) を見る
SQLアンチパターン

SQLアンチパターン

SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers)

SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers)


Programming PHP: Creating Dynamic Web Pages

Programming PHP: Creating Dynamic Web Pages

PHP Cookbook (Cookbooks (O'Reilly))

PHP Cookbook (Cookbooks (O'Reilly))


Professional JavaScript for Web Developers (English Edition)

Professional JavaScript for Web Developers (English Edition)

コアjQuery+プラグイン/jQuery UI 開発実践技法 (Programmer's SELECTION)

コアjQuery+プラグイン/jQuery UI 開発実践技法 (Programmer's SELECTION)

The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws

The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws

The Database Hacker's Handbook: Defending Database Servers (English Edition)

The Database Hacker's Handbook: Defending Database Servers (English Edition)

http://b.hatena.ne.jp/entry/d.hatena.ne.jp/RyuichiXP/20121208/1354930269

  • id:oskimura まともな情報学科がある学校の情報学科に入って単位落とさないようにしましょう
  • id:tuki0918 大学は普通科志望な奴が行くもんだと思ってて専門学校行っちゃた奴です、後悔してます、はい。

これが一番かな.

  • 演習課題もレポートも自分でやる.分からないことは放置しない.
  • アルゴリズムとデータ構造,OOPGoFなど,プログラミングテクニックは習熟しておく.
  • 英語は必死にやる.やり過ぎるということはない.
  • EmacsVIMのようなエディタを使いこなせるようになっておく.*9
  • 予備機で中古PCでも買ってきて,Linuxサーバーを一からインストールしてみる.
  • DBMSTomcat等の基本操作に慣れておく
  • その上で初歩的なWebアプリを作ってみる.各種Webフレームワーク, SQL, HTTP, HTML4/HTML5, CSS, JavaScript, JQuery などの基本も一通り見ておく.
  • 弄くって壊しては,問題分析,修復,デバッグを自分でやってみる.

こんな感じかな.

  • id:joker1007 なんか、Webプログラマー志向と書きながら、書いてる内容がSIerチックな所があるような…。個人的にMacは単にコスパが良くて、持ち運びしやすいからで、開発環境として勧めるなら最初からLinux入れてる方がいい。
  • id:neuecc ザ・ペチパーという感じ。。。 #これはひどぅい

労基法は経営者が勉強すべき所だと思う.

twitter


そんなことも知らない先輩など要らんわ.

みねこあ

http://d.hatena.ne.jp/minekoa/20121228

突っ込みどころは多いけれど、一言でいえば いろいろ チグハグだなぁ、という感想。いろいろというのは、11項目の組み合わせとか、項目間の視点とか、項目内のコンテキストとか、ほんといろいろ。

チグハグになるのは、経験は浅いけれども、それでも自分が知った精一杯を、背伸びつま先立ちで後人に紹介しているから。なるほど、これが「社二病」なのかしら。

「受験者半減で岐路に立つITパスポート 「いつでも受験できる」が裏目に」

http://itpro.nikkeibp.co.jp/article/COLUMN/20121130/441207/
http://alfalfalfa.com/archives/6141821.html
ついでにメモ

なぜ、試験制度が変わったことで受験者が半減したのか。試験を実施している情報処理推進機構IPA)の須藤義治IT人材育成本部情報処理技術者試験センター企画グループリーダーは、「いつでも受験できるようにしたら、いつまでも受験しない状況になった。以前のような締め切り効果がなくなったことが大きい」とみる。

だが、それだけで受験者数が元に戻るとは考えにくい。ITベンダーの人材育成コンサルタントは、「いつでも受験できるからすぐに受験しない、という程度の魅力だったということ」と指摘する。「取得するメリットが分かりにくい」という人事担当者の声も少なくない。

*1:http://d.hatena.ne.jp/JavaBlack/20120218/p1

*2:一瞬,自分が何か大きな勘違いをしてるのかと不安になったわ.そっか.最近の若い者は,「ぐぐる」は知ってても「grep」は知らないのか.grepでぐぐればすぐに分かるじゃん.

*3:RubyでもPythonでも良いと思う.PHPほどに酷い言語の方が珍しいわけで...

*4:http://d.hatena.ne.jp/JavaBlack/20091031/p1

*5:とはいえ求人の質はともかく,数の上ではPHPは多い.お勧めはしないけど.

*6:http://d.hatena.ne.jp/JavaBlack/20120901/p1

*7:http://d.hatena.ne.jp/itoyosuke/20071101/1193932945
http://d.hatena.ne.jp/JavaBlack/20071102/p1

*8:憂鬱本ほどの悪書はなさそうだけどね.

*9:プログラミングテクニックや英語はまとまった時間がないと難しいから,なるべく学生のうちにやっておいた方がいい.エディタについても仕事はIDEで自宅でだけエディタを使ってチマチマやってると学習効率が悪いので,昼も夜も常に使い続ける方が良い.しかし慣れないエディタでは仕事にならならないし,特に新人の頃は他にも覚えることが山ほどあるのでエディタの学習にまで手が回らない.