私は2004年頃までフリーランスのWeb開発者でしたが、管理ルートをたどり始めたのですが、再び開発(特にJavaScriptおよびHTML5 Web /モバイルWebアプリ)に戻ろうと決心し、本当に優れた印象を得ましたこれらのおよび同様の高速移動テクノロジでは、新しいスキルの学習に加えて、既存のスキルの向上に投資するために一定の時間を確保する必要があります。
物事に戻ってきたので、今は理解しています。かなり急な学習曲線がありますが、そこには多くの人がどれだけ優れているかを見ることができます。そこで立ち上がる唯一の方法は、かなりの時間を費やすことです。
フルタイムの開発者として働いている人にとって、私が理解しようとしているのはこれです。ほとんどの日、オフィスで学習/研究と比較して実際にコードを磨くのにどれだけの時間が費やされていますか。毎日2〜4時間を費やすことで、物事を進めるための最良の方法を身に付けることができました。
フルタイムで雇用されているほとんどの優れた開発者は、スキルを磨く仕事以外にかなりの時間を費やしていますか?
または、私はこれをすべて完全に間違っていると考えていますか?
正直なところ、ニュースフィードリーダーを使用しています。私は数多くのブログやテクノロジー関連のサイトを購読しています。私は昼食時、仕事の前、そして仕事の後でフィードを読みます。しかし、私はそのために私のタブレットを使用しており、ニュース提供元が価値と時間の比率に優れているかどうかを常に検討しています。私はおそらく新しいことについて1日1〜2時間読んでいます。
一般的に、実際の知識の伝達でない限り、コメントを読んだりコメントしたりすることに時間を費やすことはありません。
本当に?これはまだ答えの1つではありませんか?
newThing
について聞いたことがある上司に、特にhideousProblemWeJustHad
を使って会社を助けることができることを提案します。それが私がユニットテストに進出した方法です。それはエッジを超斬新なものではありませんが、私の学校はそれが何であるかを教えるという恐ろしい仕事をしました、そしてそれは私にとって新しいものでした。それを行う時間の一部は、間違いなくそれを正しく行う方法を研究することでした。
そして、これは多かれ少なかれあなたの制御の外にありますが、私はしばしば自分の仕事をするためだけに新しいことを学んでいます。 DO-178とSQLを身につけたのは、それらが当面のタスクに必須であったからです。あなたが本当に新しいものに飛び込みたいなら、新しい仕事を得なさい。
要するに。 学ぶために報酬を得ます。これらの新しいもの(の一部)を使用する実際の正直な理由があります。彼らはより良いので。彼らがより良いなら、それは彼の収益を助けるので、ボスはあなたにそれらを使わせてくれるでしょう。確かにオーバーヘッドがあります。学習プロセスは瞬時ではなく、時間はお金ですが、それだけの価値がなければ、ちょっと、新しいことはそれほど良くはないかもしれません。その場合、それはたわごとです。
私が遭遇した最も有用な情報を Anki デッキに入れました。毎朝、5〜10分かけて資料を調べます。たとえば今週、アンキは私がしばらくは扱っていなかったこの質問を私に尋ねました:
PHP:参照された配列のforeachの後に何をしなければなりませんか?
答えがunset($value)
かreset($value)
かを覚えていなかったので、それが私を鋭くしました。案の定、今朝はコードでそれを使用する必要がありました。
AWS、PHP、Bash、およびそこで使用しているその他のテクノロジーに関する情報の一部を保管しています。少なくとも、Ankiは情報を最新の状態に保つか、忘れてしまった場合でも見つけやすいようにしています。
編集:また、プログラミングはソフトウェア開発のキャリアに発展した趣味でした。キャリアが趣味でもある人は、プロとしての関心だけでなく、個人的な関心として当然ながら遅れをとらない傾向があることがわかります。これは、プログラマーだけでなく、芸術家、医者、庭師、および他のほとんどの熟練した職業にも当てはまります。
時間が限られている場合は、最高品質の素材に集中することをお勧めします。
本(良いもの)は、ブログよりも高品質の素材を持っている可能性が高いです。 Amazonでの顧客レビューの平均スコアが高い本は、通常、最高品質の資料を持っています。 Kindleを入手して、そのテーマに関する数冊の高評価の本をダウンロードしてください。たぶん1日1時間の読書? -それはとにかく私がやっていることです、何が良い時間のガイドラインかわかりません。
サドルに戻って予算がある場合は、キックスタートのためのまともなトレーニングコース(または会議)に参加することをお勧めします。数日間の激しいトレーニング=数ヶ月の読書。
のこぎりを研ぐ は、知識ベースの作業に関わるすべての人にとって必需品です。その方法は個人に任されています。ここにいくつかあります[〜#〜] i [〜#〜]します
率直に言って、はい。良い開発者do仕事以外の時間をプログラミングに費やす。多くの場合、これはペットプロジェクトであり、彼らは新しく興味深いものをいじることができます。多くの場合、仕事に適用できないものは、心を広げ、(比較的)最先端に追いつきます。
AC/DCが言うように:「ロックンロールが欲しいならトップへの長い道のりです」。
トップを目指すのは簡単なことではありません。馬に乗ろうとする主な問題は、時代遅れに感じることです。
TDDを理解しようとすると、Dependency Injection、次にInversion of Controlコンテナーにつまずきます。私のレーダーの下でポップする最新のものはCQRSでした。それらすべてを一度に把握しようとすることは本当に難しいです。小さなステップ。
そしてそれはそれのいくつかがただの流行と見なすことができるという事実を助けません。男の子、私たちはすべての問題を解決するこの新しい光沢のあるものを自慢したいですか?.
試すことのいくつか:
http://www.safaribooksonline.com/ 彼らは月額9.99ドルあたり5スロットのサブスクリプションを持っています(それはちょっと隠されています)。彼らはモバイルアプリを持っています。どこにいても勉強できます。
いくつかのビデオクラスを購読してください。私は http://tekpub.com/ を一度購読して、大好きでした。 https://peepcode.com および http://pluralsight.com も知っています。外出先でも視聴できます。
いくつかの良いニュースフィードを選択し、それに従ってください。量より質を選ぶ。そうでなければ、あなたはあまりにも多くの情報に打ちのめされたと感じるでしょう。
https://getpocket.com を使用して、後で表示したい興味深いページを保存します。新しいタブを開いて後で表示したり、忘れたりするのをやめます。保存されたページを外出先で表示できるモバイルアプリがあります。
https://ifttt.com を使用して、生活を楽にします。 Googleリーダーでアイテムにスターを付けると、Pocketに自動的に保存されるようにするためです。
http://www.class-central.com/ スタンフォードやMITなどの機関が提供するMOOCのリスト。それのいくつかは本当に興味深いものになる可能性があります。
とにかく、最高のプログラマーはおそらく、新しいことを学ぶために、勤務時間外に多くの時間を費やしています。しかし、彼らはコーディングを愛しているので、それをしています。コーディングが好きなときに、コーディングスキルを向上させる時間を見つけるのは簡単です。 :)
「コードを削る」IS最高の学習ツール。新しい方法を使用できるものを与えられたら、私はそれが機能するまでそれを叩きます。顧客が新しい技術を必要とする何かを要求した場合、私は彼らにそれを請求しますが、それが私が習得していなかったものであるなら、私は彼らに請求しません。
ウェブ関連は順調に進んでいます。私の小さな会社では、知らないことや時間がないときにフリーランサーを使っています。通常、彼らは私に教えますが、今日うまくいくことに追いつくのは難しくなりましたが、あなたは昨日は使えなかったか、それが明日働くので、今日そしてそれを何度も学ぶべきです。
Web以外のものについては、より安定していました。 1つのプラットフォームで1つの言語でコードを記述しました。ここで、HTML/CSS/Javascript/Java/SQL/PHP/* nix /これらのすべてのAPIを知る必要があります。そして、Internet Explorerがあります。
一人の開発者にとっては苦労です。
独自のプロジェクトを概念化して構築します。
真剣に。私が学んだことのすべては、私がいくつかの遠いアイデアを思いついて、それから座ってそれを理解しようとすることから来ています。これを十分に長く行うと、継続的な改善への道を進むことになります。
私が何か新しいことを学ぶときに使用する1つのトリックは、StackOverflow(または技術の専用フォーラム)にアクセスし、答えがわからない質問を見つけて、答えを理解することです。また、新しいスキル/テクノロジーを使用して何かを実装しようとしています。たとえば、Windows Phoneのプログラミング方法を学ぶために、妻にどのようなアプリが必要かを尋ねました。そのアプリを作成する過程で、プラットフォームとその方法について詳しく学ぶ必要がありました。
好きなだけ読むことができますが、読んだ経験はありません。
他の人が動かしているのではなく、何があなたを動かしているのかを自問してみてください。
たとえば、モバイルアプリを作成したり、ウェブアプリでの作業を継続したりするのは、過去の経験があるためですか、それともテクニカルコンサルティングを行いたいですか?今後数か月または数年の間に何をしたいかがわかれば、どこから始めればよいのか、何を学ぶ必要があるのかが正確にわかるでしょう。
これは、IT担当者だけが質問する問題ではありません。
ただあなたの自由な時間を最大限に活用してみてください。毎日3時間をかけて新しいテクノロジーについて学びますが、それでもおそらくソーシャルライフを楽しみたいと思うでしょう。したがって、それが最善のアプローチではないかもしれません。
私が通常行うことは、(通常の状態で)私が「怠惰」であるような瞬間に学ぶことです。 (Facebookにいる代わりに)仕事で休憩が必要なときの出典、ランチタイムに同僚とテクノロジーについて話します。
私はこれに時間をかけるための「方法」または「なぜ」のより良い説明を見つけたことがありません Peter Norvigの「Teach Yourself Programming in 10 Years」 。 「時間を作る」という動機を失うと、あなたが指摘したように、誰がそうしませんか?!? -私は彼の記事をもう一度読んでコミットします。 :)
フルタイムの開発者として働いている人にとって、私が理解しようとしているのはこれです。ほとんどの日、オフィスで学習/研究と比較して実際にコードを磨くのにどれだけの時間が費やされていますか。毎日2〜4時間を費やすことで、物事を進めるための最良の方法を身に付けることができました。
私の会社は非常に前向きな考え方をしており、最新のテクノロジーに照らして開発していることを確認したいと思っています。彼らは、その一環として、開発者に新機能やAPIなどに取り掛かる時間を与えなければならないことを認めています。たとえば、最近、Richfaces 3からRichfaces 4に切り替えました。新しい風景を理解する。会社があなたに会社に最新の開発を維持する時間を与えることを約束できない場合、あなたは間違った場所にいる可能性があります。
会社にSafari Booksライセンスを取得してください。それはそこにある最高のテクニカルブックの包括的なリソースです。一連のラフカットと進行中の作業を含みます。一般的にウェブも素晴らしいリソースですが、周囲のノイズや誤報のレベルが高いです。
フルタイムで雇用されているほとんどの優れた開発者は、スキルを磨く仕事以外にかなりの時間を費やしていますか?
また、最新の状態を維持するために、毎晩1時間ほど投資します。時々、私も私の認定資格を更新します。これには、週末に達成するために追加のコミットメントが必要です。
もう一度あなたの会社にあなたがあなたの時間にこれをしていることを知らせて、彼らがあなたの試験料金またはトレーニングのために支払うかどうか確かめてください。または、会社の時間に試験を受けられるようにすることもできます。
答えは簡単です。職場で最新のテクノロジーを使用してみてください。できない場合は、サイドプロジェクトを行ってください
しかし、時間を節約するために、最初に何を学ぶべきかを知る必要があるので、時間を上手に使うことができます。
これは私のために働いたものです
2番目の部分は、効果的に学習して時間を効果的に使用する方法です
Udacity、coursera、codeschool、codecademy、teamtreehouse、edx.org、udemy、net tuts +などのコースは最新のテクノロジーに追いつく傾向があるため、すばらしいリソースであることがわかりました
一方、あなたは私が以前に持っていたように情報爆発に終わり、それについて怒鳴ることができます: http://tilomitra.com/the-crazy-world-of-code/
継続的に使用するリソースとツールを以下に示します。テクノロジーのテーマについては、1日1〜2時間読んでいると思います。
コーディングに費やした時間に対する仕事での読書に費やした時間の比率に関する限り、それが目前の仕事に直接関連している場合(たとえば、その新しいフレームワークを適切に使用する方法など)、私は主題を読むのに時間を費やします。
私は2種類の読書をしています。私が使用している、または将来使用する特定の主題に関する深い読み、または私が使用していないがまだ興味深いと思う他の技術分野を閲覧する広い読書。
ポッドキャスト
RSSリーダー
Safari Books Online
書籍(デッドツリー形式)
スコットハンセルマンは、「個人データストリーム」の扱いに関する優れたビデオを公開しています- http://www.hanselman.com/blog/ItsNotWhatYouReadItsWhatYouIgnoreVideoOfScottHanselmansPersonalProductivityTips.aspx
言われたことに加えて、「計画を立てなさい」と付け加えます。 6か月から12か月ごとに1つまたは2つのテクノロジを選択し、これらのテクノロジを深く理解することを目標としています。次に、実際のタスクを定義してそこにたどり着こうとします。たとえば、いくつかのオンラインチュートリアルを読み、そのテクノロジーを使用してサイドプロジェクトを選び、新しいディスカッションサイトのフォローを開始します(またはStackOverflowの新しいタグをサブスクライブします)など。大量の時間は必要ありませんが、毎週少しずつ前進することで一貫性があります。 (GTDなどの生産性システムを使用している場合、学習目標を通常のプロジェクトと目標計画に含め、定期的に確認することができます)。
ニュースレター!
私は現在 Pycoder's Weekly というニュースレターを書いていますpython開発者向けの毎週のニュースレターは、pythonあなたが追いつけたいかもしれない特定の領域に非常に話題です。
それは実際にはプラグを意図したものではありませんでした。
このメディアは物事に追いつくのに非常に役立ち、多くの開発者にとって優れたリソースだと思います。
さまざまな言語やツールに対応するものが多く、大量のニュースを調べて、興味深いものを見つけるのに時間がかかり、非常に煩わしい場合があります。
新しいテクノロジーを常に把握するために、いくつかのことを行います。
これらは私が行うことのほんの一部ですが、明確なことは、もしあなたが何か新しいことを学び、最新の状態を保ちたいのであれば、時間を投資する用意があるだけです。それはあなたが磨きたい他のスキルと同じです。