• ベストアンサー

PHPプログラマとして(未経験からのスタートから半年)

二十代後半より全くの未経験(文系出身)にて会社に入社し、現在WEBプログラマとして半年近くが経ちました。 といっても、実際に自分が携われる案件がいまだなく、ドキュメント作成のみで半年が過ぎた感じです。 研修の間に作ったものはPHPでカレンダーや、掲示板など基本的で簡単なものばかりです。 うちの会社では8割がPHPを使っての携帯アプリや、ホームページ作成(管理ツール)などを作成しています。仕事でなかなかPG組める機会がないので独学で何かを作ってみようと思いました。そこで質問です↓ これから自分が行わおうとしてることは、 1、パソコン(中古)を購入し、そこにLAMP環境を用意する。 2、何かしらのアプリを作る。 です。そこで今の自分の実力(PHP初級、PEAR初級、Smarty初級、オブジェクト志向(なんとなく理解してるいる程度)で次に何を作ったらいいでしょうか? いつか来るであろうPGの仕事へ活かされる、またプログラマとして成長するために何をしたらいいでしょうか? 皆様がどのように学んでいったのかなどアドバイスがあればご教授ください。正直、このままだとこの業界で食っていけるスキル(他の会社で必要とされるようになる)自信がありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.7

フレームワークについては私も知り尽くしてるわけじゃないので 新たに質問してみるか、過去ログ探ってみるのをお勧めします。 会社で使ってるのがOSSならそれを使うのが一番よいとは思います。 勉強目的ならZFがいいかなと思いました。 PHPの特質からかフレームワークに飲み込まれてしまうことは少ないので PEARみたいな感じになってしまうのかもしれません。 MVC回りはともかく、イメージ的にはPEARの各ライブラリを 効率良く連携できるってとこでしょうか。 あとは開発ユーティリティが強力ならその恩恵は受けるかもしれません。 Cakeに興味が湧いたならしばらくやってみればいいと思います。 ちょっと眠くて抽象的ですがドキュメント作成脱出がんばってくださいw

popjump
質問者

お礼

ご回答ありがとうございます。 フレームワーク、MVCあたりについてもっと勉強してみようと思います。 ドキュメント作成脱出できるよう頑張ります。!!

その他の回答 (7)

  • TAI_0824
  • ベストアンサー率54% (6/11)
回答No.8

面白い投稿でしたので、思わず回答したくなりました。 ある程度収入を多く、ということであれば、やはりデータ処理をマスターすることが必要でしょう。 LAMPやLAPP環境下においては、あまり大量のデータを瞬時に更新する、ということは少ないかもしれませんが、大型汎用機に負けない、立派なシステムを組み上げることが出来ます。場合によってはローコスト、ハイクオリティなシステムも実現可能ですね。 どの業種においても、データというのは、やはり資産でお金になります。システムにおけるデータ処理は、それをいかに効率良く行えるかにかかり、私のように8ビット汎用機で育ってきた経験者ですと、PEAR、Smarty、CLASSオブジェクト志向というよりも、速度に重点を置きます。その手法が稼ぎになっていきますので、データ処理をやっておいて損はないと思います。 1秒間に10万レコードを高速処理するにはどうすればよいか、とか、SQLではなく、単なるテキストデータで並べ替えや小計・合計、SUM、AVG、改ページを行う、といった時間をかけた面倒さが、後々役立ちます。 あまり最近のWEB関連システム会社ではやらないことをやっていくことも、生き残る一つの道なのかもしれません。

popjump
質問者

お礼

速度に重点をおくのですか? そこまで考えたことがありませんでした。 しかもそれがお金になるとも知りませんでした。 非常にレベルが高い回答だったので頭の片隅にいれ、余裕が出てきたらチャレンジしたいと思います。 ご回答ありがとうございました。

  • papa987
  • ベストアンサー率19% (21/106)
回答No.6

>一般の中小だと その中小だと社内に自社サーバを用意して管理が必要になるような >サーバ管理者配備 なんていう状況はあまり無いですよ。 レンタルサーバでもVPSや専用サーバにシステム構築する場合で そのVPSや専用サーバがなにも設定されてない状況で自分で構築する場合には多少はLinuxの知識は必要ですが LinuxというよりUNIX系の数種類のコマンドを理解していればできますね。 vi cp cd ls rm ・程度のコマンドとパッケージのインストール方法(OSによっても違うのでLinuxだけわかっていればいいわけではない)、そのパッケージをソースからmakeする方法。 ・サーバの停止。起動方法。 がわかれば構築は基本的な構築はできます。 でVPSや専用サーバでもある程度構築されてレンタルされているサーバの場合 自社独自の管理ツールかWebminなんかのフリーの管理ツール もしくは別途オプション料金でHDEが利用できたりして Web上で必要な設定ができてOSの事なんて知らなくても構築するなんて事も今はできますからね。 サーバソフトの設定さえ知っていれば設定できますからね。 だからWindows環境に該当サーバソフトインストールで十分だったりします。 あまりPHPそのものができない状況で フレームワークを使うとフレームワークを使わないと システム開発ができないPGになる可能性があります。 フレームワークを使わないで同等の物を作れるようになってから フレームワークではこう作ればいいって覚えた方がいいでしょう。

popjump
質問者

お礼

ご回答ありがとうございます。 Linuxに関してはうちの会社ではみなが当然のように使っているので自分も使えるようにならなくてはいけないと思っています。まあ、まだまだサーバー管理するほどのレベルではないでしょうけれど。 フレームワークに関しては自分も今、フレームワークを勉強しても理解できるかどうかはわかりません。まずはMVCについて学ぼうと思いSmartyをやってる状況です。 そこでただ本で勉強してるだけではつまらないので自分の家で環境を作りアプリを作ろうと思った次第です。

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.5

はぁ、なんで私がつっこまれてるのやら。 なんと言われようと私は相手にできないので否定されても意味ありません。 私は質問者じゃないですよ。 専門家を雇えるようなとこならいいんでしょうが、一般の中小だと 二役、三役こなさないと回らないとこが多いんじゃないでしょうか? プロジェクトごとにPG、SE、サーバ管理者配備なんてうちではなかなか厳しいですね; LAMP環境を作ると言い出してるってことは、そういうことなんだと推測しましたが 違ってたらすいません。 PHP初級、PEAR初級、Smarty初級ってことはそれなりに組めると思うのですが ZendFrameworkあたりだとMVCもわりとシンプルだし和訳もあるし オブジェクトの使い方も参考になるとこあると思いますよ。 やらなきゃ始まらないです。

popjump
質問者

お礼

ご回答ありがとうございます。 何かつっこまれてしまいましたね。笑 tanyさんがおっしゃるようにうちの会社は中小なのでプロジェクトごとにPG、SE、サーバー管理者と分けてはいませんね。 自分以外はみな長く(最低でも5年以上)やってる方ばかりなので設計からPG、サーバー管理までやってます。 自分の会社での環境も仮想サーバーでLINUXを使ってます。といっても、基本的なコマンドしかまだ使えません。なんといってもずっとドキュメント作成ですから~~。 自分も次、何かを作るときはオブジェクト指向を使いたいと考えており、フレームワークにも興味があります。今、現在MVCについてちょい学んでる感じです。 そこで再度、質問(もし答えて頂けるならですが)フレームワークの種類っていくつかあると思うのですがtanyさんはZendFrameworkをお勧めのようですね。Cakephpが中規模の開発には向いてると聞いたことはあります。Cakephpはいかがですか?その前に、フレームワークをまだ勉強していないのでなんかイメージが掴めていないのですが、ある決まった機能のソースを再利用するということでいいのですか?もしそうであるとしたらそれってPEARと何が異なるのですか?

  • papa987
  • ベストアンサー率19% (21/106)
回答No.4

追記 >そしてなにかしらフレームワークを使った方がよいと思います。 その手のフレームワークは一通りプログラムを組めるようになってからやるべきですね。 中途半端な知識のままやると後が大変ですよ。

  • papa987
  • ベストアンサー率19% (21/106)
回答No.3

>PHPがそこそこ組めてもLinux全然わかりませんじゃ相手にできません。 はっきり言ってプログラマならLinux知っている必要は全くない。 せいぜいパーミッションくらいわかっていればいい。 既存のWindows環境があるならXAMPPあたりでサクッと環境構築すればいい。 それとLinuxはサーバの選択肢の一つと言うだけで BSD系(FreeBSD/NetBSD/OpenBSD)やSolarisやもちろんWindowsなど 多種多様です。 サーバ管理者になる気ならLinuxも含めて各種OSが使えるようになる必要はありますけどね。 >2、何かしらのアプリを作る。 だったら >研修の間に作ったものはPHPでカレンダーや、掲示板など基本的で簡単なものばかりです。 これらを拡張して予定表システムを作り その次にの予定表システムを拡張してグループウェアでもつくったらどうですか?

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

参考意見っすが >1、パソコン(中古)を購入し、そこにLAMP環境を用意する。 これはよいことだと思います。 PHPがそこそこ組めてもLinux全然わかりませんじゃ相手にできません。 なにか作るといっても、掲示板、チャット、ブログ、CMS、SNS、 ポイント制会員サイト、出会い系サイトくらいしか思いつきませんが 作ってみたいものを作った方が良いと思います。 そしてなにかしらフレームワークを使った方がよいと思います。

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

基礎中の基礎のお勉強。 某お笑い芸人の元ネタとなった(であろう) Fizz Buzz(フィズ・バズ)を作ってみてください。 classだとか、Smartyだとか、PEARだとかを使いこなす以前の基礎です。 仕様。 1から100までの数字を表示する。 ただし、下記の条件に従った表示をすること 条件1 3で割り切れる場合は、数字のかわりに、Fizz と表示。 条件2 5で割り切れる場合は、数字の変わりに、Buzz と表示。 条件3 3でも5でも割り切れる場合は、数字の変わりに、FizzBuzzと表示。 ただし、条件1と条件2は当てはまらないものとする。 出力結果(例) 1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, FizzBuzz, 31, 32, Fizz, 34, Buzz, Fizz, ・・・ プログラム暦○年です!とか言っておきながら、こういった基礎中の基礎が出来ない人が多く居ます。 これが出来たら、バブルソートをやってみてください。 バブルソートってなに?って状態ならば、改めて質問しなおしてください。

popjump
質問者

お礼

ご回答ありがとうございます。 早速、今日会社で上司の目を盗みながら芸人のブログラムは作りました。以前、カレンダー作成でうるう年などのアルゴリズムを考えたので難なくできました。  そして、バブルソートというのをwikiで調べたら配列の中でランダムな数字を昇順、降順に並べ替えるアルゴリズムですね。実はこれは上司から考えてこいと言われもう終えていました。   厚かましいようですがもし、次の段階にステップアップするための問題やら心得でも何でもいいので教えてください。

関連するQ&A