トップページphp
183コメント81KB

【Perl】何をやれば「出来る」といえる?【PHP】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/03(日) 21:00:11ID:???
就職・転職などにおいて、PerlやPHPが「出来る」といえるレベルは、
何処までスキルが必要なのか?をみんなで意見を交換し合うためのスレです。

「こういう事が必須だ」というものは、人によって考え方が異なりますので
必ずすれ違いが出てきますが、自信を持って言えるかを客観的に見る
きっかけにはなると思います。
0002nobodyさん2008/02/03(日) 21:33:29ID:???
> 自信を持って言えるかを客観的に見る
> きっかけにはなると思います。

えらそうだな。お前には教えてやんないw
0003nobodyさん2008/02/03(日) 21:37:41ID:???
まず、ソートが出来るとか、関数の設計が出来るとかは前提として。
PHPの場合は、OOPは必須だと思う。フレームワークを使う場合は、
OOPの理論までを理解していないと、応用性が厳しいと思う。
0004nobodyさん2008/02/03(日) 21:40:11ID:???
「xx作れ」って言われた時に
・可能である場合に納期を割り出せて
・時間がかかる部分を説明して納得させ
・作って
・デプロイして対価得る事

もしくはそういう役割を担っている先輩の役に立てる事。
0005nobodyさん2008/02/03(日) 21:43:56ID:???
・できる
入力に対して必要な処理を行って出力できること
・つかえる
一通り把握していて、周りのやり方に文句を言わないこと
・つぎのぷろじぇくとできる
設計に拘り過ぎて違う違うと喚き散らして納期前に徹夜で作り直してエンバグさせる馬鹿
0006nobodyさん2008/02/03(日) 21:45:33ID:???
やった事の無い言語でも、その仕様を調べて、ライブラリの概要を
1週間程度で掴めるくらいの経験は必須だと思う。
言語ってすぐに変わっていくからね。
0007nobodyさん2008/02/03(日) 21:49:37ID:???
インストール
0008nobodyさん2008/02/03(日) 21:53:05ID:???
>>4
SEやPMに近いスキルですよね。
「いつまでに出来るのか?」を的確に答えきれるスキルは必須ですね。
システム構築の経験数はどれくらい必要だと思いますか?
0009nobodyさん2008/02/04(月) 02:22:57ID:???
名指しかいなw

ウチけっこ曲がってるけど、まあ参考までに。
とりあえず新人にはphpかレガシーASP(VB)でテストDB扱う日報管理システム作らせてみてるよ
DB正規化を考えるアタマがあって、正規化し過ぎない人間であり、かつ
言語はともかく処理を実装できるなら、「とりあえず」使える範疇に
数えて、現場の引き継ぎ担当者に投げます。それ以外は孫請けの採用枠紹介するか、切るかの二択。
自分から積極的に学ぶ奴や、自前の設計でリプレースシステムのデモとかプレゼンしてくる奴は、勤労年数無視してさっさと昇格試験に推薦します。
言語問わず、俺が個人的に「xx言語が出来ます」と言っていいレベルの人物ってこの段階の人だと思う。
トレンド技術に追いついてない人であれ、OOPの理解がヘタってる人であれ、俺の経験した範疇では例外なくそのうち勝手に覚えるタイプだから。

八割は使えんな。OOP以前に、なんでこの業種を志したのか分からん奴ら。
もっぱら選別して辞めさせる仕事なので、胃が痛いところ。
「俺Perlできますよ」とか言われても黙れ青瓢箪、言語云々じゃねえ、と説教する立場。
ただ残りの出来る奴ら見てると本気で慌てるね。
手あかで汚れたHaskell本をデスクに置いてる奴がいたりすると、「俺はいつかこいつに抜かれるな」とか思う。

ってウチみたいな糞フローやってるとこの人間の発言なんて参考にならんと思うわ。申し訳ない。

システム構築ってのが、もしxoopsやら既成アプリ入れて設定できるだけの人を差してたら何百やってても実績には数えませぬ。
拡張モジュール開発したとかなら、一応話は聞いておく方向ですね。

長文ごめんな。
2行にまとめると、経験数とかじゃなく適応能力と学習意欲の問題だと思うですよ。
趣味でなければ。
0010nobodyさん2008/02/04(月) 08:18:08ID:???
>>9
レスサンクス。
確かに「学ぶ意欲が大事だ」とは良く聞きますね。
専門学校出てて、Perlの正規表現がばりばりな人が、
PHPの話になると、「ちょっと・・・、Perlの仕事ないですかね・・・」
となったりと、「書き方はほとんど同じで、正規表現の書き方が
若干異なるだけなんだから苦労することじゃないでしょ」と思うことも
ありました。
私もこういうところが、40前で辞めていくかどうかの違いかなと思います。
0011nobodyさん2008/02/04(月) 12:42:10ID:???
マジレスです。

>>1
>就職・転職などにおいて、PerlやPHPが「出来る」といえるレベル

【制作実績】
面接のときに、今まで作ったことのあるサイト、プログラムのデータを持ってきてくれと言われました。
某セレクトショップのWEBサイトを作ったことがあったので、そのデータを持っていきました。
面接担当者が、実際にWEBサイトとプログラム(PHP)を見てくれました。

実際にプログラムを書ける、WEBサイトを作れる=「出来る」レベルと言えます。
0012nobodyさん2008/02/04(月) 12:49:45ID:???
>>8
>手あかで汚れたHaskell本をデスクに置いてる奴がいたりすると、「俺はいつかこいつに抜かれるな」とか思う。

Haskellでプログラムを書くのは簡単だよ?
http://pc11.2ch.net/test/read.cgi/php/1201783642/11-17
>30分あれば、とりあえず今日からアナタもHaskellプログラマーになれる!(・∀・)

不安ならすぐやってみればOK
何だこんなもんか、とすぐ安心できますよw
(Haskellが使えるプログラマー=すごいってのは単なる思い込みでしかない。)
0013nobodyさん2008/02/04(月) 14:21:07ID:???
>>11
レスありがとうございます。
しかし、「Webサイト」というだけだと、単に文字を追記するだけの
掲示板も含まれてしまいますよね。
さらに具体的にどのようなレベルまで?となるのです。
例えば全部のデータが hidden で渡されていたら、改ざんされてしまうわけです。
設計にはOOPを生かしたものが必須なのかなとか、考えていくと、
言語が出来るとは、どこまでなんだろう。となるのです。
0014nobodyさん2008/02/04(月) 16:12:41ID:???
「できる」の水準なんて場合次第で千差万別だし、そのレベルでも「十分できる」場合はあるんじゃないかな。
色んなデータを触って行く事になるけど、どんなアプリも基本は掲示板みたいに入力があって、処理して、出力するものだしなあ。
その上でどういう処理を知っているかで「できる」「できない」を決めるのは難しいと思うな。

OOPは一つの目安だと思う。でもその「OOPができる」の水準も千差万別ですな。
OOPである意味っていうと、最低でもカプセル化と継承を活用した設計ってあたりかしら?
設計面で言えば、言語機能として提供されていなくてもそれなりに配慮できる事なので、
>>3さんの言う、OOPで書かれた道具立てを適用していく事ができるか、って水準が無難だと思う。

もちろんOOPできてもソートアルゴリズム判らないと肝心な時に困ったりするし、直でSQL叩けないと困るだろう。
OOPできるプログラマを一概に「できる人」と言える訳でもないw
アルゴリズム理解の最低ラインは、クイックソートをソラで書けるあたりが良く使われてるかな?
古いかも。今だと高階関数への理解あるか聞いた方が時代に合ってるかな。

セキュリティ面はどうだろ。セキュリティにもトレンドあるから一概には言えないよね。
そもそもイントラオンリーなwebツールみたいにセキュリティある程度無視できる用途もあるけど。
この辺はその手の資格持ちか否かが、判断基準としては無難じゃないかな。
0015112008/02/04(月) 16:30:19ID:???
>>13
面接の時に見せたセレクトショップ(服屋)のWEBサイトは、カタログサイトです。
・PHP+MySQLで構成
・デザインテンプレートエンジンを使用(デザインとロジックの分離)
・管理画面があって、商品データ(商品名、説明文、画像など)の追加、編集、削除ができる。
・JavaScriptで商品写真の表示を切替える。(サムネイル画像にマウスを乗せると写真が変わる)
・お問合せ用のメールフォームがある。(メール内容はDBに格納される)
・店長ブログとしてMovableTypeを入れた。
・トップページにフラッシュのアニメを入れてある。(Flashアニメは友人に作ってもらった)
というような内容です。

プログラム的には、画像掲示板にさらに機能をつけた感じです。
このプログラムではOOPは特に使ってませんでした。
0016112008/02/04(月) 16:43:38ID:???
>>13
面接でアピールしたこと

【長所】
・DB(MySQL)を使える。=SQL文法は理解しており、サブクエリーとかも書ける。
・OOPを理解している。=Javaの勉強をしていた。PHPのOOP構文、PEARの使い方も分かる。
・デザインテンプレートシステムを使える。=Smarty等を使える。
・Photoshopを使える。
・DreamWeaverを使える。
・JavaScriptが使える。=JavaScriptの勉強をしていた。
・CSSを使える。=CSSの勉強をしていた。
・XMLを使える。=XMLの勉強をしていた。

【短所】
・WEBサーバ構築の知識がない。=Linuxはインストールくらいしかしたことがなく、ほとんど触ってなかった。
・フレームワークの知識がない。=フレームワークを使ったことがなかった。
とかでしょうか。

面接で質問されたときに、即座に答えられた方がいい内容として、
・Shift JISの文字化け対策
・エスケープ(SQLインジェクション対策)
とかがあると思います。
0017nobodyさん2008/02/04(月) 18:09:55ID:???
WordPressのソースコードを自分なりに解説つけて面接官に渡した。
結構時間かかったけどw

たぶん16みたいなのは派遣会社or給料25万ぐらいの会社しか雇われないと思う。
給料がいい会社、在宅OKの会社に入りたいならそれなりに準備しないときびしいよ。

PHPができる=セキュリティ対策、機能が拡張しやすい、可読性
ぶっちゃけテンプレートエンジンとかPearとかOPPなんて過程の話で
16の内容は派遣会社の営業が書いたスキルシート







0018nobodyさん2008/02/04(月) 18:16:28ID:???
>>9でいう 「とりあえず」使える範疇 に入れるかどうかじゃないのこのスレの趣旨は

>>17はデキる!
>>16はできる
0019nobodyさん2008/02/04(月) 18:37:51ID:???
例えば、学校でいう「基礎」と、会社でいう「基礎」の解釈が異なっていたりするのです。
学校では、テストの点数がよくて、「優」が取れれば、その人は「出来る」と評価される
わけですが、その学校のレベルそのものが低い場合は、会社では、「出来ない」と
評価されるわけです。
また、学校で学んだ範囲で、すぐに会社でやる実務で使えなかったりもするので、
面接時に「できる」と自信満々に言って、具体的に話を進めていくと「なんだ、何も
出来ないじゃん」と評価されてしまうこともあるわけです。
0020nobodyさん2008/02/04(月) 18:46:42ID:???
>>14
> その上でどういう処理を知っているかで「できる」「できない」を決めるのは難しいと思うな。
難しいからこそ、いろんなかたのご意見を聞いてみたいと思ったのです。
あと、このスレでいろんな意見を出し合っていると、勉強をする上での目標設定の
基準としても参考になるかなと思ったのです。

> OOPは一つの目安だと思う。でもその「OOPができる」の水準も千差万別ですな。
そうなんですよね。OOPもカプセル化と継承を使えるレベルでも、十分に出来ると
思えるのですが、それだけだと、フレームワークを自作したりは出来ないわけです。
C++のMFCも、「ここにこう書くんだ」程度の割り切った理解で、出来たりするのですが、
その程度の知識だと、何処まで通用できるのか、と不安になることもあります。
0021nobodyさん2008/02/04(月) 18:53:20ID:???
>>14
「アルゴリズム理解の最低ラインは、クイックソートをソラでかける事。」
これは、基準としていいですね。

「直でSQLが叩けること」は、データ操作言語のみに絞って良いの
でしょうか?私はデータ定義言語は、書くことが少ないので、都度、
調べてコピペしてますが。

セキュリティー面は、基準を言うのが難しそうですね。
言語とは違う話ですが、いまさら、PHFバグとか言っても、
「何それ?」の世界ですしね。
0022nobodyさん2008/02/04(月) 19:07:21ID:???
>>15-16
レスありがとうございます。
これだと、実務で使えそうな感じが伝わってきますね。

「作るもの」を目標として考えた場合、PHPやPerlが出来るか
どうかを考えると、時代的にSQLがかける事の他、
JavaScript、CSS、XMLがかけることも合わせて必要だと
思いますが、PhotoShopやDreamWeaverも、合わせて
必須だと思いますか?
このあたりは、Webデザイナーとの分担の役割が関係するかと
思いますが、私はこのあたりが、非常に疎いです。
0023nobodyさん2008/02/04(月) 19:10:47ID:???
>>17
アドバイスありがとうございます。
WordPressというものは、初めて聞きました。汗
これについて調べてみて、丁度、「PostgreSQLのコードを読んで
改善した事がある」みたいな意味だと解釈しました。
すごいですね。
これだと、本当に誰もが「出来る」と認めるレベルですね。
0024nobodyさん2008/02/04(月) 19:19:34ID:???
>>18
「できる」と「デキる」は、分かりやすい表現ですね。

こうなると、以下の3つのランクに分けて話を考えるといいかもしれませんね。

ランクA(デキる)
GPLのを解読できるクラス。
就職に困らない(?)

ランクB(出来る)
すぐに実務につけるクラス。
Webでショッピングが出来るものを一人で作ったなど。
DBやJavaScriptあたりも把握している。
プログラムを中心にやって行きたいのなら、このあたりが必須のレベル

ランク外(出来ない)
学校で「優」を取ってうかれているレベル。
実務では使い物にならない事を本人も理解していない。
くじ運が良ければ技術につけるかもしれないが、
いきなり営業にまわされるかもしれない。
0025112008/02/04(月) 20:35:49ID:???
>>17
面接に行った会社は採用してくれた。
入った後に分かったことだけど、ちょうどその時スタッフを大量募集していたみたい。
=振り返って見ると、一定水準を満たしていれば誰でもOKだったのかな?と思っている。

手取りの給料は、だいたいそんなもんだったね。
(残業代とか入れるともう少し多いけど)
0026nobodyさん2008/02/04(月) 20:37:08ID:???
WordPressのコードを批判する人は大勢いるが改善しようとするひとはいない
文句ばっかいって、つばつけてWordPressのシェアが落ちたとき
だからいっただろって人はランクAだな

仕事で精一杯で必死こいてるやつはランクB
土日は家で寝てるタイプw

PHPで動いているオープンソース関連のコードがなんとか読めると
業務もついていける。

つまり面接でPHPできますということだなぁ
0027112008/02/04(月) 20:43:53ID:???
>>22
自分の場合は、WEBデザイン→WEBプログラミングという順番で辿ったので
・Photoshop
・DreamWeaver
は、プログラミングを始める前から使えた。

ゼロから始めるなら、
HTML → PHP → SQL → JavaScript(DOM、AJAX) → フレームワーク → CSS → 画像処理ソフト(Photoshop、Illustrator等)
という順番がいいんじゃないですか?

WEBデザイン(CSSとか画像処理ソフトの話)は、後回しで問題ないと思う。
XMLも、必要になったらそのときやる程度でOKだと思います。(RSSとかAPIとか絡みで)
0028112008/02/04(月) 20:48:33ID:???
設計やコーディングだけじゃなくて、デバッグやテストのやり方/ツールも知っておく必要はあるね。
0029nobodyさん2008/02/04(月) 21:22:09ID:???
>>25
会社の採用は、実力よりもタイミングというケースもありますからね。
職を探す立場だと結構むずかしいものです。

本当の会社の採用基準は、分からないでしょうが、今は技術的に
勉強不足を感じていないのであれば、それだけの技術は十分に
「できる」基準となると思います。
0030nobodyさん2008/02/04(月) 21:26:45ID:???
>>26
日々精進が必要なんでしょうね。
早く帰ってから、のんびりしてるとかと、してない、の違いなんでしょうね。

でも、>>9さんが言うように、ランク外の人はこの業界を志望する人の
8割くらいで、ランクBに入るだけでも結構優秀なのかもしれませんね。
0031nobodyさん2008/02/04(月) 21:31:53ID:???
>>27
なるほど。Webデザインから来た方だったんですね。
XMLやJavaScriptあたりも、何らかの基準を設けないと
いけなさそうですね。しかし、私は、このあたりの事は
入り口くらいの知識しかないので、その基準を探すところから
学ばなければなりませんね。
■ このスレッドは過去ログ倉庫に格納されています