コンテンツ
- 01.コーディングはもうそれをカットしません
- 幅と深さ
- 02.大きな警告
- 03.インターネットの言うこと
- 媒体を理解する
- 04.私たちが構築するもの
- 05. Devops
- スタックを理解する
- 不思議な作品
- 便利なツール
- 06.開発者が修正します...おそらく
- デバッグ
- 07.ユーザーが望むもの
- 競争市場
- 08.描画と書き込み
- 09.楽しんでください
- 10.シャープにとどまる
- これが好きですか?これらを読んでください!
開発者は、コードを生成するうなり声を上げる労働者以上のものである必要があります。私たちはデジタルライフの多くを期待しており、それを構築するのはこれらの人々です。それでは、最高の開発者は何を知る必要がありますか?これが私があまりにも多くの開発者から欠けていると思うものです。これは網羅的ではありませんが、合理的なコーダーを素晴らしい開発者に変えるのはこれらの資質です。
しかし、それは1つのことではなく、特にXMLを解析したり、コードを最適化したりする機能ではありません。これは、コードの記述に関する本では教えられていない驚くべきスキルの集まりです。それらは少し余分なものです。
なぜこのようにベントするのですか?開発は重要ですが、開発者はしばしば別の世界に委託されているため、必ずしも自分たちで作っているわけではありません。これは決して機能しません。開発(技術的なものは何でも)は、ノウハウを持っている人がコード以上のものを理解しているときに常に繁栄します。
01.コーディングはもうそれをカットしません
私たちは、コーディングの印象が薄れてきている世界にいます。誰もがサイトを構築し、その中にはコードを作成するものもありますが、そうする必要はありません。サイト、アプリ、機能を作成できるのは、もはやオタクだけではありません。
ウェブが登場し、人々が自分自身を教えることができて以来、独学の開発者がいました。しかし、卒業生でさえ脅威にさらされています。コンピューターサイエンスの学位、AIコース、さまざまなメディア、コーディングを身に付けている人々とCVを取得していますが、まだ何かが足りません。時々多くが欠けています。
私はこれを最初に言ったのではありません。 「コーディングはもうそれをカットしない」はからの第3章のタイトルです 情熱的なプログラマー、などの本と一緒に 実用的な思考と学習 プログラマーに、コードを超えて自分自身を改善するように促します。チームの責任ある完全に人間的なメンバーになること。
幅と深さ
開発者は、幅と深さという2つの点で優れている必要があります。彼らは、チーム内での人間の相互作用の幅と、彼らが構築するものを理解する必要があります。彼らは、O / Sに至るまで、使用しているシステムの深さを理解する必要があります。
そして、このようなものを読むべきなのは開発者だけではありません。開発者と協力している場合は、もっと多くの開発者を期待する必要があると思います。彼らに彼らが話していることをスケッチさせます。彼らに写真、オブジェクト、そして(それは機能する)人々の切り抜きで、それを使用する人間にとってシステムがどのようになるかを正確に説明してもらいます。
02.大きな警告
開発者については否定的に話しますが、私は1人なので、許可されていると思います。また、私がここで話していることの少なくとも1つは、私が出会う多くの開発者に当てはまるからです。彼らの仕事は素晴らしく、彼らは彼らのコードを知っていますが、時代は競争が激しいです。あなたはエッジを持っている必要があります、そしてこれは:
- より技術的になる
そして
- あります 多く より人間的
03.インターネットの言うこと
「基本的なウェブ開発スキル」をグーグルで検索すると、期待どおりの結果が得られます。フレームワークの知識、xブラウザー、CSSおよびJS。それらには、知っておくべきフレームワーク、作成する必要のあるプラットフォーム、注目すべき新しいトレンドがリストされています。
これらは私たちのメディアです。それらは私たちが構築するものですが、プロジェクトを成功させるものではありません。開発者は、システムのすべての詳細を理解し、APIのすべての機能と新しいCSSテクノロジーを教えてくれますが、それでも使用できないものを生み出すことができます。
媒体を理解する
開発者は、誰もがそうであるように、メディアを理解する必要がありますが、ユーザー、チーム、または他の開発者であるオーディエンスも理解する必要があります。彼らは、自分たちの媒体が世界にどのように適合するか(つまり、生産環境)、そしてそれがどのような影響を与えるか(人々がそれをどのように使用するか)を理解する必要があります。
私はこれが「広くて深い」人として説明されているのを見てきました。広い、なぜならあなたは他の人間と一緒に働く人間として世界を理解する必要があるからです。プロジェクトの自分の部分のレベルより下の完全な技術的知識が必要なため、深い。これらの開発者は、プロジェクトを大幅に後押しし、プロジェクトのペースを変更します。そうしないと、技術チームから溢れ出る退屈な詳細に技術者以外のスタッフが行き詰まってしまいます。
04.私たちが構築するもの
私は最近、サイトの構築、ホスティングの管理、作業の実行に使用するすべてのリストを書き留めました。これにより、参加する人々は最初の数週間でテクノロジーのチートシートを学ぶことができます。私たちは、人々がこれらのことを知っていると読んでいたので、新入社員にジャンプスタートを与えるために、私たちが毎日使用するすべてのものをリストしました。
私は半ダースのテクノロジーを期待していましたが、結局ははるかに多くのテクノロジーになりました。このリスト(「私たちが使用するもの」)には、通常のCMS、プログラミング言語、ブラウザーテクノロジーだけでなく、チームが使用したことすら覚えていないツールも含まれています。それはすべて筋肉の記憶でした。コマンドラインで「git」、「phing」、「thor」と入力しても、誰かがそうしないかもしれないとは思っていませんでした。
ビルドツール; CI;バージョン管理用のgitは当然のことと考えられていましたが、CVを振り返ると、これらはほとんど現れませんでした。トレンディなものが表示されますが(特定の機関がそれらを追加すると思うのは皮肉なことですか?!)、具体的な経験がないことがよくあります。
これらのツールはプロジェクト開発を加速するために重要であるため、言語、CMS、およびいくつかのフレームワークよりもはるかに豊富なツールセットがあることを確認してください。展開、テスト、CI、強力なバージョン管理(チーム内-自分ではない)が必要であり、いくつかのチュートリアルではなく、これらのコアコンセプトを理解する必要があります。
05. Devops
これらの追加のツールとトリックは、人々が「devops」と呼んでいるものにうまく適合します。 Devopsは、2つの従来のサイロに直面して飛んでいます。1つは物事を実行し続ける生産、もう1つは新しいものを作成する(そしてしばしば物事の実行を停止する)開発です。サイロは、お互いにほとんど同情のない2つのキャンプになります。
本番環境の知識がない開発者は、本番環境スタックにまだ存在しない構成や機能を使用して、本番環境に適さないコードを作成することがよくあります。彼らは本番環境の問題を認識していないため、本番環境にデプロイするのではなく、機能を完成させるようにコーディングします。
これらの小さな詳細は、サーバー管理を海外に送る傾向によって悪化し、痛みを伴う遅延を引き起こす可能性があります。
スタックを理解する
Devopsはそれ自体が巨大な分野であり、継続的デプロイと多くの自動化が含まれます。これは大まかな要約ですが、開発者が理解する必要がある重要なことは、実行しているスタックです。これをサーバー管理者に委任するだけでは不十分です。プラットフォームがコードに与える影響を理解する必要があります。
Railsで作業している場合は、Railsコードを読んで、RubyがApacheによってどのように実行されるかを理解してください。 Javaで作業している場合は、構成オプションについて知ってください。使用しているのがPerlの場合は、Perlモジュールをインストールして構成する方法を理解してください。
不思議な作品
「私たちが使用するもの」リストには、このようなものがたくさん含まれています。優れた開発者は、この不思議な作業がどのように行われるかを理解するために、それに飛びつきます。そして、彼らがそれを手に入れると、展開はより速く進み、作業はよりスムーズに展開され、誰もがただ幸せになります。
DevOpsの継続的デプロイと関連するプラクティスは非常に標準的になりつつあるため、これを実践していない開発者や企業は、追い抜かれるように設定されています。他の誰かがそれを始めて、それから彼らはあなたより速くなるでしょう。
便利なツール
「devops」をグーグルで検索すると、これらの人が使用しているツールがわかります。 PHPやMySQL、またはRailsについてではありません。それは、ソフトウェアを出荷し、プロジェクトの危険な部分をリスクのない状態に保つことです。彼らは、デプロイメント、自動化、および開発者から実稼働環境へのパイプラインを可能な限り高速に実行し続けることに集中しています。
このスタイルの開発により、お互いに、そして他の部門や企業とよりよく連携する開発者が得られることがわかります。サードパーティのAPIを使用している場合は、反対側で発生する可能性のある問題を理解できます。サーバー管理者と協力するとき、彼らはインストールする必要があるものを理解し、本番サーバー上のソフトウェアサイトがどのようになっているのかを理解します。これの逆は痛みを伴う可能性があります...
06.開発者が修正します...おそらく
「必須のWeb開発者スキル」を検索すると、QuoraのMichael Greer(The OnionのCTO)から良い答えが得られます。
- 怠惰:2回何もすることを拒否します:スクリプトまたはそのためのアルゴリズムを記述します。
- 臆病者:テストを考え、負荷とコードへの影響を心配
- 無謀さ:常に新しいものを試し、同じ日のアイデアを発表します
臆病は「細部への注意」を表現する良い方法です。デバッグとテストは、開発者がW3Schoolsにアクセスしたとき、またはコンピューティング101コースを開始したときに、誰も言及しなかった開発者の人生の99%です。
アプリを修正するには、コードのデバッグだけでなく、優れた問題解決スキルが必要です。ユーザーが請求書をダウンロードできない場合の解決策は、PDFの生成に1日を費やすのではなく、ページを印刷可能にすることである場合があります。リンクが1週間の開発に置き換わる場合もありますが、開発者が純粋に大量のコード行を記述して問題を解決している場合、その洗練されたソリューションは実現しません。
多くのツールがあるにもかかわらず、テストは多くの開発者にとって素晴らしい盲点です。単体テスト、セレン、負荷テスト、およびxhprofなどのプロファイリングツールを使用します。 New Relicなどから分析して、アプリのフットプリントを小さく保ちます。そして、これは開発者の仕事のすべての部分であると考えてください。それはあなたのコードです。期待どおりに機能するのではなく、意図したとおりに機能することを確認してください。
デバッグ
デバッグも問題です。デバッガーの使用方法ではなく、問題のデバッグ方法です。そのため、MichaelGreerのリストに追加します。
- 焦り:本当の問題を見つけて解決するために、無関係な情報を積極的に無視します
これは、すべてのデバッグ手法の基礎です。無関係を無視し、関連する意味を見つけます。残念ながら、多くの人は無関係なものを何時間も何日も槌で叩き、同じことを10回試みることで問題を解決する傾向があります。
デバッグに関する本はたくさんあり(残念ながら、私が名前を挙げない出版社に売り込んだものではありません)、すべての開発者はそれらすべてを読む必要があります。本当に優れた開発者は、コード行を見なくてもシステムの問題をデバッグできます。
07.ユーザーが望むもの
あなたの周りの人々が何をしようとしているのかを理解してください。コードを楽しんでください– CSSファイルを完全にインデントする、またはRailsアプリを最適化する技術が大好きです–しかし、それはすべて目的のためであることを忘れないでください。
開発者は、自分たちのものがそれを実行するのに役立つので、ビジネス、運用、およびビジネスプロセスを理解する必要があります。この知識を持つ開発者は、ユーザーを支援するソフトウェアやアプリを作成できますが、多くの場合、非常に生産的であるように見えます。これは、高速タイピングやスタックに関する驚くべき知識が原因である可能性がありますが、ユーザーが何を望んでいるかについての知識が原因である可能性が高くなります。
競争市場
私の元のポイントに戻ると、開発が容易になり、優れた開発者の市場は競争が激しくなっています。ビジネス要件を理解し、それらを満たすために優れたものをもたらすことができる開発者は、優位に立つでしょう。市場、顧客、そしてなぜ彼らがお金を手放すのかを理解することはすべて役に立ちます。
データと、それが時間の経過とともにどのように変化するかを理解します。開発者の心の中では、彼らはあなたが現在抱えている、または今後直面するであろう課題に新しいテクノロジーを並べるべきです。このように、MDまたはクライアントに派手な新しいアイデアを提案するとき、それは顧客が本当に望んでいるものに基づいており、予算/時間を得ることができます。 (対照的に、目撃する最悪のことは、開発者が私たちのすべての病気の解決策として彼らの新しいお気に入りのテクノロジーを売り込んでいることです。)
開発者は多くの制御を持っています–データベースの各フィールドがエンドユーザーにとって何を意味するのかを知る必要がありますか?データを変更すると、ユーザーには何が表示されますか?ユーザーを支援するためのより良い方法はありますか?DB管理者の見方は、データベースが現実の世界を悪い表現であるというよりも、世界がデータベースを悪い反映であるという見方が多すぎます。世界は混乱していて、驚くほどエッジケースでいっぱいです。 DB管理者、それに対処してください。
08.描画と書き込み
絵を描くことは、ものがどのようになるかを伝える最も直接的な方法です。開発者は、ホワイトボード、紙、ビールマットにアイデアを描くことができなければなりません。
開発者は、意図を伝えるためだけに、紙にプロトタイプを作成し、スクリーンショットを印刷して落書きできる必要があります。頷く開発者を信用しないでください。彼らは編集者を理解して開いたと言います。
安く失敗する:最良のコーディングは、ラピッドプロトタイプとして描画することから始まります。より頻繁に失敗し、その方法で成功する可能性が高いのと同じように、周囲のすべての開発者が同じことを行うようにします。
09.楽しんでください
また、リンクを移動して問題を解決するために10時間を費やす必要がある場合はどうでしょうか。それを楽しんでください-たとえそれが仕事をやり遂げるという単なる挑戦であっても。
開発者(または誰か)からの最悪の態度は、チームが達成しようとしていることに無関心です。残念ながら、これは一般的です。開発者は、チームが達成していることの範囲外であると自分自身を見ているからです。 ((情熱的なプログラマー 「あなたはあなたの仕事をどれだけ楽しくすることができますか?」という質問を提起します–それを試してください。)
そして、これの逆であるようにあなたの仕事を示す準備をしてください:Rubyに関するいくつかのチュートリアルを試した後、「Rubyの経験」に拡張しないでください!
Webとアプリの開発はまだ若い職業ですが、本当に優れた開発者が必要とするスキルセットは拡大しています。私たち全員が厄介な奥の部屋から出て、創造的なプロセスに参加するのが早ければ早いほど、結果は良くなるので、誰もがより多くの開発者を期待する必要があります。
10.シャープにとどまる
これを素晴らしいラウンド10にするために、最後に1つ追加します。油断するな。競争を見つける。最悪の種類のものは、孤立したものです。
「あなたが参加しているすべてのバンドで常に最悪の男になりましょう。」
最悪の-本当に、非常に悪い-プログラマー、コーダー、デザイナーは彼らのことを学び、彼らの栄光に頼ります。ペースメーカーがないと、速度を落とすのは簡単すぎて、競争を見ずに、平均以上に自分を見るのが習慣になります。
だから、より良いものを見つけることによってあなたができる最悪のことになる。仕事以外のプロジェクトに参加し、貢献してフィードバックや批評を探しましょう。批判が多ければ多いほど、将来的に与える人は少なくなるからです。彼らが何を望んでいるのかを推測するとき、あなたは誰もが望んでいる忍者の開発者です。
Dan Frostは、AWSの公式パートナーであるフルサービスのWeb会社3EVのテクニカルディレクターです。彼はCMSとWebアプリの開発に7年間携わっています。
これが好きですか?これらを読んでください!
- アプリの作り方
- デザイナーのための最高の無料のウェブフォント
- 拡張現実の次のステップを発見する