プロのPHPプログラマーの特徴[終了]


8

私は19歳の学生で、本当にプログラミングを楽しんでいます。ここでの長年の経験を活用したいと思っています。現在、私はあらゆる機会にPHPを勉強しています。正式なクラスを受講したことはありませんが、約3年になります。いつかプログラマーとしてフルタイムで働いて、良いキャリアを築きたいと思っています。

あなたへの私の質問はこれです:あなたはプロのプログラマーの特徴や特徴とは何だと思いますか?主にPHPの分野ですが、PHPは趣味の言語であり、潜在的な雇用主の目には最適な言語ではない可能性があるため、他のより一般的な資格も歓迎されます。私が間違っていたら訂正してください。何よりも価値のないものに時間を費やしたくない。

私は現在、言語としてのPHPの知識にかなりの自信を持っています。必要なものをほぼすべて構築して「機能」させることができることはわかっていますが、デザインコンセプトとコード構造に非常に欠けていると感じています。オブジェクト指向のコードを書くこともできますが、個人的には、適切に構成されていない場合、豆の山の価値はありません。このため、マット・ザンストラの本「PHPオブジェクト、パターン、そしてプラクティス」を購入し、毎日少しずつ読んでいます。

とにかく、私はここで少し脱線し始めているので、元の質問に戻ります。この分野に影響を与えたいと思う意欲的なプログラマーにどんなアドバイスをしますか?

また、余談ですが、私は私の友人とプロジェクトに取り組んでおり、コーディングの賢いところについてかなり良いアイデアが得られるでしょう。リンクを貼るつもりですが、ここで私がプッシュしたりスパムしたりしているように誰にも感じさせたくないので、望まない場合はクリックしないでください。しかし、そこにもフィードバックを提供することに興味がある場合は、githubでコードを確認できます。私はそこでザ・クローとして知られています。

https://github.com/PureChat/PureChat--Beta-/tree/


2
「私はザ・クローとして知られています。」-多分私たちはプロのPHP開発者の爪痕について話している必要があります... :-)
スティーブンC

爪跡..いいね!それはもっと攻撃的に聞こえます... へえ。
スコッティC.

2
私はプロのPHP開発者の
割り当ては

この質問の「耳印」という言葉が多くの人々を混乱させているように思われる場合にのみ、+ 1します。:)
ヘイレム

回答:


13

1.高品質のコード

コードを書くのは簡単ですが、適切でクリーンなコードを書くのははるかに困難です。そして、いいことに、特定のスタイルに一致し、十分にコメントされているが、それほど多くはなく、短いメソッド、変数の自己文書化名などを備えた、読み取り可能なコードを意味します。

2.幅広い知識

1つのプログラミング言語しか知らなければ、プロの開発者とは言えません。異なるパラダイム(オブジェクト指向、機能、反射など)を理解することも必須です。

また、Web開発者として、HTTP、JavaScript、SQL、REST、およびここにリストするには多すぎることを知っている必要があります。プロのWeb開発者は、視覚的なデザインとグラフィックスを除いて、平均的な規模のWebサイトを単独で実行できる必要があります。それは高度に専門化された人々のチームによって作成されたウェブサイトほど良くはないはずですが、それでも受け入れられるべきです。

ツールを知ることも必要条件です。バージョン管理、IDEなどに精通している必要があります。

3.確かな経験

2年間の大学卒業後、専門家になることはありません。10年のプロの経験を持つ人は、プロの開発者と呼ばれる可能性が高くなります。

もちろん、さまざまな種類の経験があります。誰も製品の品質を気にしない小さな会社で働くことはあまり価値がありません。

大規模プロジェクトでの経験も素晴らしいです。小さなWebサイトを構築するのは非常に簡単ですが、サーバーのアレイに展開する必要があるWebサイトになると、キャッシュに大きく依存するなど、Webサイトを正しく構築するのがはるかに難しくなります。

4.個人の動機

ソフトウェア開発に本当に動機付けられている人は、それを示すことができるはずです。プログラミングに情熱を持ち、ソフトウェア開発で15年の経験があるが、「プログラミングに関連する最後の個人プロジェクトについて話してください」という単純な質問には答えられない人にインタビューすると、何か問題があることがわかります。この候補者と。

ソースコードをダウンロードできるオープンソースプロジェクトを用意します。ブログを持っています。Stack Exchangeに参加してください。これらすべては、自分をプロの開発者として提示するときに価値があります。


1
+1。チームワークを追加します。小さなチーム/ショップでの開発は、たとえ大きなチーム/ショップ内の小さなチームのメンバーである場合でも、大きなチーム/ショップでの開発とは異なります。
Marjan Venema

これは素晴らしいものです、ありがとう!私はこのページをブックマークして定期的に参照します。あなたが提案したように、私はRESTについても調べます。:)
スコッティC.

いい答えです。しかし、私にとって、適切なコードには正しいものも含まれます:)
marktani '11 / 11/12

9

私はPHPを使って8年間開発を続けてきました。16歳のときからです。あらゆる年齢、形、サイズ、背景を持つ人々に出会います。MainMaのほとんどの点に同意しますが、私の強調点といくつかの点を追加します。

情熱と動機

これは断然最も重要なことです。最高になるように努力してください(あなたは最高になることができます)。それはあなたの技術の問題解決と磨きに真の情熱を必要とします。誰かが情熱的であるかどうかは、5秒でわかります。あなたが彼らに質問をするとき、彼らは即座に関与しますか、それとも彼らは2つの言葉で返答しますか?あなたが何かを勧めた場合、彼らは戻ってきてそれについてあなたに話しますか?

献身

ソフトウェア開発は、習得するのに数十年かかる可能性のある技術です。何かを習得するには1万時間かかると言われていますが、ソフトウェア開発のような動くターゲットを扱う場合、それはもっと多いと思います。フルタイムで仕事をしていると、数年ごとにその基準に達して、常に自分自身を再発明できるようになります。この長い間何かにこだわることができるには、多大な忍耐と情熱が必要です。信じられないほどの10/15年の経験を持つ人々に注意してください。彼らは献身的ではなく、おそらく10年前に情熱を失いました。15年の経験は、1年の経験15回と同じではありません。

知識への飢え

絶え間ない学習と敗北が必要です。前年度のコードを見て恥ずかしい/落ち込んでいるはずです。そうでなければ、十分な学習ができていません。トップにいる人を見つけ、彼らからあなたができるすべてを学びます。通常、これは主要なオープンソースコントリビューターです(PHPの場合:Symfony、Zend、PHPUnit / Behat / etc。開発者)。彼らは他の皆を訓練するものです。XがYより優れていると誰かが言ったときは、自分で調査してください。彼らは通常、5年前にそれを説き、まだそれを説教している羊です。私は実際にこのサイトを素晴らしいリソースにしています。通常は同じ主要人物またはプリンシパル(Martin Fowler、Uncle Bobなど、DDDなど)につながる非常に幅広いコンテンツを見つけました。

PHPサック

なんでも。人々があなたやPHPをぼろぼろにしたいのなら、あなたを落胆させないでください。主要な開発原則に従い、実際にソフトウェアを構築する場合は、続けてください。PHPは長い道のりを歩んできました。かつての醜いアヒルの子ではありません。他の言語から学び、たまに他の言語をいじってください。あなたはそれらをもっと好きかもしれないし、そうでないかもしれません。どちらの方法でも、知識が広がり、PHPで一般的ではない、あるいはPHPでさえ不可能である新しいパターンやプラクティスが紹介されます。

通信網

あなた自身のためのブランドを構築し始めます。ブログ。ミートアップ/会議に参加します。Twitterで他のユーザーに連絡します。関与するコミュニティ/ニッチを見つけます。オープンソースプロジェクトに貢献する。現在、プログラミングは非常に社会的な仕事です。自分を孤立させないで、あなたの仕事を知らせてください。これを行うのが早ければ早いほど、彼らの翼の下にあなたを連れて行く素晴らしい開発者との関係を築くのが早くなります。


1
昨年のコードについてのコメントが好きです。私は毎年、大規模な計画の中で実際にほとんど何も知らないことを常に思い出していますが、毎年、古いコードに対する嫌悪感を少なくするための渇望があります:)
Simon Whitehead

お奨めは、この投稿は本当に私にとって物事を展望するのに役立ちました。特に、私をそこに置き、1つまたは2つの良い確立されたプロジェクトに参加するための部分。それは非常に理にかなっています。そして、私は間違いなくこれを長い間行っており、難しい質問への答えを知っている人々のグループを見つけるように努めます。私がたむろしている場所で、たとえば複合パターンについて質問すると、人々はその宇宙人のような表情を見せてくれます。xD
Scotty C.

3

もののほかエイドリアン・シュナイダーMainMaが(両方とも良いである)書かれている、私はプロのプログラマーの1つの特徴では、言語に関係なく、あると思いますコードは非常に長い半減期を持っていることを実現はるかに長い私たちより-それを書いているときに一般的に実現するか、そのために期待します。

はい、50年前にシステムがアクティブに使用されている極端なケースがあります(1960年代から1970年代にCOBOLで記述されたビジネスクリティカルなアプリケーションがまだ使用されています)が、それほど極端である必要はありません。もちろん、もう1つの極端な例は、一度だけ実行されるように作成されたアドホックコードです。私が取り組んでいるアプリケーションの1つは、基本的にはWebベースのCRUDアプリケーションです。たくさんのテーブルビュー、いくつかの特殊なビュー、いくつかのレポート、いくつかの周辺のオッズとエンド。本当に、物事の壮大な計画にはそれほど凝ったものはありません。コアクラスとデータベース・コードデートバックのいくつかの10年以上現在、私はそれが中央値にかなりうまく合うと信じています。言語とフレームワーク(この特定のケースではC#.NET)はもちろんその間に進化し、関係者はそれを使用する経験を積んでいますが、古いコードは機能し、十分に機能するため、適切な場所にあります。時々変化しますが、ほとんどの場合、システム全体が依存する基盤を提供します。それ以前の私の仕事は、シングルユーザー向けに設計されたエージングシステムを15年以上前に書かれた部品で、もう少しモダンなものに置き換えることを中心としていました。言い換えましょう。システムの最も重要な部分のいくつかは、時代遅れのWindows 3.0の交換を任されていました。

プロのプログラマーではなく、コードの書き込みになる際に明示的に使い捨てのコードのコードsが/彼は今日はおそらく長年にわたって何らかの形で残るの書き込みという事実は、非常に特定の1回限りの問題を解決するために設計を検討します。それがソフトウェアのコア部分である場合、それは製品の寿命のかなりの部分にわたって残る可能性があります。元の開発チームとは何の関係もないプログラマによるメンテナンスが今後必要になる可能性があります。一体、それを最初に書いたプログラマによるメンテナンスさえ必要かもしれません!(それがわからない場合は、6か月前に作成したコードが他の誰かによって作成された可能性もあるということを考慮してください。6か月ではなく6年間試してください。)

これが実現していますからそのコードのニーズを読み、理解しやすいように簡単に変更すると、拡張しやすい新しい用途や出会い変化する要件に適合すること。また、する必要があります簡単にデバッグが好ましく、同様に従うことを簡単に することなく、インタラクティブデバッガを通してそれを実行しています。


+1。あなたが自分で製品をフリーランスまたは構築する場合、これは特に当てはまります。あなたは個人的に責任を負います。50年ほど極端ではありませんが、5〜8年前から古いクライアントや顧客が戻ってきて、私が構築した製品の更新を求めています。私の立場は?あなたが良ければ、あなたは交換可能になりたいでしょう。通常、長いメンテナンス契約でクライアントを悪用していません。(ビジネスはビジネスだと思います)
Adrian Schneider
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.