要するに、学習するための最良の方法は、あなたが学ぶことができる誰かとたむろして、一般的であるから、。自分のスキルが一向に上がらないと感じた場合、自分よりも優秀な人と時間を過ごすことが最善です。確かに、自分自身をさらに引き離して隔離するよりもはるかに優れています。
ただし、非常に単純化された誤解を招く絵を描いていると思います。すべての「専門的に教えられた」プログラマーとはほど遠く、本当に良い人です。彼らが何かをするからといって、それが正しいことだとは限らない。
そして、あなたが言っていることの多く(しかしすべてではない)は、本当にあなたが彼らに 1つか2つのトリックを教えることができる人のように聞こえます。
私はオブジェクト指向よりも機能的な側面に傾いていますが、抽象的なエンティティとして何かがより理にかなっている場合にオブジェクト指向の使用を見ます。
それは私には素晴らしいですね。最高のコーダーは、仕事に適切なツールを使用するコーダーです。私は常に両方のパラダイムを知っている人を選び、宗教的に1つのパラダイムのみを使用する人よりも理にかなっているそれぞれを使用します。
次に、私は何かをするときも簡単なルートに行きます。対照的に、プロのプログラマーから見たコードは、そのために複雑な場合があるようです!
繰り返しますが、シンプルさは良いです。複雑になる必要があるまで、コードを複雑にしないでください。一部の人々は、エレガンスに関する誤った考えから、または「後でこの追加機能が必要になる」ために、物事を複雑にする傾向があります。一般的に、あなたの問題を解決する最も簡単なことをする方が良いです。
私は多くのクロージャーを使用しています。良い。それが彼らがそこにいる理由です。彼らは1990年代とJavaの時代遅れの準OOPモデルで立ち往生した一部の人々を怖がらせますが、実際にはそれが彼らの問題です。
そして最後に、私は最高のコメント者ではありません。
何をコメントする必要があり、どのように、非常に主観的です。そこには本当の「正しい」または「間違った」ものはありませんが、チームで作業するときは、コードの作成者だけでなく、チーム全体が理解できるコードを書くことが重要です。また、チームのコーディングスタイルに準拠するために妥協が必要になる場合があります。それは必ずしもあなたがより多くのコメントを書く必要があるという意味ではなく、単にあなたとあなたのチームが同意しなければならないものであることを意味します。
専門的な訓練を受けたプログラマーが単体テストのようなことを続けていると聞きます。これまでに使用したことがないものなので、それらが何であるか、またはどのように機能するのかについても微妙な考えすらありません。
さて、彼らに聞いてください。:)コードのテストは不可欠であり、単体テストはこのための一般的で便利なツールです。
たくさんのアンダースコア「_」は、本当に私の好みではありません。
コメントと同様に、それは主観的であり、言語に依存します。CおよびC ++では、lowercase_with_underscores
かなり一般的な命名規則です。他の多くの言語では、アンダースコアはほとんど表示されません。しかし、結局のところ、それは本当に重要ではありません。関数が呼び出されたかどうwrite_to_log
かWriteToLog
、実際に違いを作るつもりはありません。誰かがそれを吸い上げて、チームがそこに同意したものに従う必要があります。
MVCについては何も知りません。backbone.jsのようなものについてはよく耳にします。アプリケーションを整理する方法だと思います。ただ私を混乱させているのは、今では自分の組織構造を作ったからです。
単体テストと同様に、学習を止めないでください。あなたは、あなたが知らないことを知っていて、あなたとは異なるバックグラウンドから来た人々と一緒に働きます。お互いから学ぶ。あなたがそれらを教えることができることは明らかにありますが、あなたが知らない、または聞いたことがないこともあります。それはあなた(または彼ら)が悪いプログラマーであることを意味しません。優れたプログラマーとは、改善を図り、他者から学ぶことを目指しているプログラマーを意味します。
完全なオブジェクト指向プログラミングは本当に私の口に悪い味を残します
ここも同じです。私はあなたが「専門的に訓練された」(CS学位)と呼んでいます。プログラミングを教えられた人は、独学した人と同じくらい違います。あなたは本当にいくつかの新しいトリックを学ぶ必要がある人たちと働いているようですね。
実際、私は人々が最終的に私のコードをチェックアウトするという事実をかなり恐れています。これはプログラマーが経験する普通のことですか、それとも本当に自分のテクニックを変更する必要がありますか?
両方。もちろん、あなたが作ったものを他の人に見てもらう(そして判断する)のは怖いです。しかし、それは非常に教育的でもあります。彼らは、彼らがそうしなかった場合に何をしたか、または彼らがそうしなかった理由をあなたに伝えることができます。彼らはあなたが改善するのを助けることができ、彼らは自分自身で何かを学ぶかもしれません。「優先」ソリューションが行うよりも問題を解決するコードを見せてください。うまくいけば「ああ、それはすてきです。どうやってそれを知ったのですか?これを何と呼んでいますか?私はこのテクニックを自分で使うべきです」 」