プログラミング時のロジックを増やす手法[終了]


21

過去3年間からプログラミングに取り組んでいます。しかし、私はその中に迷い込んでいるようです。毎日コーディングしているのに上手くいくことができません。

私が1つの問題を解決すると仮定して、私は解決策から解決策へとさまよい、いくつかの他の解決策を実装します。あまり集中できません。私が書いたコードには多くの欠陥があります。私は、上司が私を解雇するなど、時間通りに終わらせなければならない理由がわからないコードを恐れています。忍耐力を高める方法は?

多くの優秀なプログラマーのように最高のコーダーになるにはどうすればいいのだろうといつも思っています。これは主観的に聞こえるかもしれませんが、これはプログラマーコミュニティが特に私のような初心者や初心者のプログラマーに上手くいくのに役立つと思います。


8
このように感じることは一般的です。私たち全員がコンパイラを書いたり、筋金入りのプログラマーになるわけではありません。プログラミングの正式なトレーニングは受けていませんが、問題解決が重要です。技術は非常に急速に変化しているため、水上に留まることは非常に困難です。私は継続的な改善に努めています。それが私の目標です。この職業は非常に異なっていることを理解し、最善を尽くして前進し続けるよう努めてください。私は毎週何か新しいことを学び、理解するためにいつも時間をかけています。あなたがその態度を保つ限り、あなたは良くなります。
ジョンレイナー

「コードが怖い...上司が時間通りに終わらせなければ、上司が私を解雇するなど」—それは、プログラミングを楽しむための素晴らしい環境ではなく、したがって、プログラミングが上手になるためではありません。
ポールD.ウェイト

@ PaulD.Waite確かに、それは素晴らしいことではありませんが、非常に一般的です。
Pramesh Bajracharya

回答:


12

個人的には、小さなハードルから始めることをお勧めします。小さいチャンクでコーディングを試してみて、中間の勝利にもっと入ってください。何かが長すぎるか進行状況が表示されない場合、あなたは圧倒されるか退屈しているように聞こえます。私は間違いなく同じ船に乗っていたと言えます。

サンドイッチに取り組むようなものだと考えてください。一口で全部を食べるのではなく、分解します。プロジェクト、タスクなどで同じことを行います。現在のレベルに応じて、上司/マネージャーにそれを分解するよう依頼することもできます。自分の仕事の責任がある場合は、達成可能な小さなフィニッシュラインを設定します(決して到達しない目標を設定しないでください。これにより、やる気がなくなり、望ましくない位置に置かれます)。すなわち、「正午までにこのクラスを定義したい」、「2時までにこのインターフェースを実装したい」などです。

私の会社は、プロジェクトの開始と立ち上げで有名であり、90%のマークに到達してから、下から敷物を外して「次の大きなもの」に進むことができます。私は何も成し遂げられないことを思いとどまり始め、「もしかしたら」「ファンク」に陥ります。最後に、私は後ろに押して、ほぼ完了したことを終えるまで、先に進まないと伝えました。これは私の尊敬、道徳、そしてエネルギーに驚かされました(私の雇用主について同じことは言えませんが:shrug :)


7

私の提案は、メンターになることです。

新しいプロジェクトを取得したら、次に進む道を決定します。全体的なデザインはどのように見えますか。使用するアルゴリズム。早期かつ頻繁にテストできるように、どのように開発する予定ですか。など。

これらの計画をメンターに伝え、彼/彼女と話し合ってください。あなたが間違った道を進んでいる、またはあなたが重要な何かを見逃していると彼らが見たら、あなたの計画を修正して、もう一度やり直してください。

承認された計画ができたので、それに従ってください。何か悲惨な事態が発生しない限り、計画を変更しないでください。その後、計画の修正に戻り、承認を得て再起動します。そうでなければ、あなたの計画に固執し、あなたがやることを決めたものを正確に完了してください。定期的にメンターにチェックインして実装を検証し、途中でテストを作成して使用するようにしてください。

上記のすべてを正常に完了していれば、プロジェクトを予定どおりに配信し、正しい結果が得られます。戻ってプロジェクトの一部をリファクタリングする場合は、ビルドしたすべてのテストと、ビルド元のプログラムの作業コピーがあります。

あなたはほんの少し散らばっていて集中力に欠けているように聞こえます。おそらく、それらの領域を修正し、尊敬する誰かと協力できれば、すぐに軌道に乗るでしょう。

幸運を祈ります。


6

私はあなたとまったく同じ立場にいると思うし、そこにいるのは良くない。それは時として不滅になり、正直言ってかなり憂鬱になることがあります。しかし、他のことと同様に、これを軽減するためにできることはいくつかあると思いますので、より健康的で幸せな仕事のキャリアに進みます。

  1. 変えて良くなりたいと思う必要があります。このように感じているが、スキルを向上させるためにハードヤードに入れる準備ができていない場合は、ツール/プロセスがあなたのためにできる人はほとんどいません。

  2. 自然に素晴らしい人もいます。優秀になるために一生懸命働く人もいます。ほとんどの人は、一生懸命に働いて素晴らしい人になるよう努力しています。あなたが自然に才能がない場合(プログラミングなど)、努力すればそこに到達できます。ハードワークのレベルだけが異なります。不可能はない。

  3. あなたの反抗を受け入れ、改善を期待してください。私が見る最大のハードルの1つは、自分のやり方が良い方法ではないことを受け入れることを恐れているため、アドバイスを求めたり、他のやり方を議論したりしないことです。したがって、彼らはより良い実践を決して学ばないので、同じ間違いを何度も繰り返し続けます。

  4. 優秀なプログラマーだと思う人にアドバイスを求めてください。同僚に相談したり、アドバイスを求めることを恐れないでください。ただし、常にアドバイスを額面通りに受け止め、同意するかどうかを自分で決めてください。どんなに優秀な人でも、ループをプログラムする方法は常にたくさんあります。

  5. 読んで、読んで、読んで。ニュースグループを読む。このようなサイトに質問を投稿してください(よくできました)。聞いたことがある本を購入するか、そうでない場合は推奨事項を尋ねてください。

  6. 設計の原則を小さなステップで明示的に適用し、自分が行ったことを誇りに思います。コーディングに誇りを持っている場合、エラーやバグの余地はほとんどありません。

  7. 提案とヘルプを開きます。一次元の思考に閉じた。多くの可能性と方法に開かれています。すべてに一つの方法があると思う人を探してください。4のようなビット。

  8. 優秀なプログラマーであることは、優秀な従業員であることと同じではありません。優秀なプログラマーであることが必要な場合は、正直に言うと決してそこに到達しないかもしれません。しかし、誰もが私が素晴らしい従業員と人であると信じている能力を持っています。あなたがそこに着くのを助けることができるものに取り組んでください。


素晴らしい答え。これらのポイントのような音は素晴らしいメンターから来ています。先輩に気づいてください!! _ / _
Pramesh Bajracharya

4

3年間の毎日のコーディングの後、基本に苦労している場合、これがあなたにふさわしい職業ではない可能性を真剣に検討する必要があります。

これは悪いことではありません。プログラミングは万人向けではなく、自分が得意なことを見つけてそれを行うのではなく、自然ではない何かを自分に押し付けるのではありません。

あなたの言っていることが本当なら..あなたは決して「例外的なプログラマー」にはならないでしょう。大丈夫です、受け入れてください。


コメント者:コメントは明確な説明を求めるためのものであり、詳細な議論のためではありません。独自のソリューションがある場合は、答えを残してください。この答えが良いと思うなら、投票してください。あなたがそれが良いと思わないなら、それをダウン投票してください。他の人とこの質問について話し合いたい場合は、チャットを使用してください。詳細については、FAQを参照してください

さあ、3年間で誰も「例外的」になることはありません。
ジャックB

3

心の流れの状態に自分を取得してみてください。それが、私が優れた開発者であると見た最も重要な要素です。これを行うには、自分ができることはわかっているが困難な課題に取り組む必要があります。あなたはそれに挑戦するために適切なレベルの挑戦を見つける必要があります。良くなるにつれて徐々に増やすことができます。簡単すぎる、または難しすぎるタスクは有害です。


3

それを小さなチャンクに分割します。
PB&Jサンドイッチの作成の使用方法を説明します。

全体的な基本プロセスを把握します。

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

次に、これらをそれぞれ分解します

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

関連するロジックを完全に理解するまで、ブレークダウンプロセスを繰り返します。

これにより、理解しやすくなります。また、一般的なプロセスを簡単に特定できます。コーディングを開始する前に、ロジックがすでに理解されていることを確認してください。間違いを犯すのは大丈夫というだけではありません。それらを実装する前にそれらを見つけることは、はるかに簡単に修正できます。

多くの場合、ロジックはプログラミングの最も難しい部分です。その理由は、誰もがそれをやりたくないということです。ロジックを楽しんでいないがUIデザインを愛しているなら、それに特化した役割があります。それには何の問題もありません。個人的には、UIよりもロジックを好みます。あなたがなりたい場所を見つけたい場所がロジックではない場合、他の役割もあります。


2

この種の問題は以前にもありました。それは、燃え尽きる直前に起こり、その後1年近く、生産的なレベルでプログラミングできませんでした(当時私は19歳でした)。

とにかく、振り返ってみると、私が抱えていた問題は、方向性と管理の欠如でした。1〜2か月間、何かを実装する作業をしていましたが、それがほぼ完了したとき、突然完全に異なる方法で行う必要があります。私が書いたコードのすべての行を非常に誇りに思っているので、これは私の自尊心に大きな打撃でした。また、経営陣は、主に何かがどのように機能するかについての数時間の議論と、何も議論しない数日間から成り立っていました。もちろん、これのいくつかは私のせいでもありました。これは、ある時点で作業が非常に退屈になり、コードを入力するだけで、実際にはまったく創造的ではないように感じたという事実によっても悪化しました。

一般的なガイドライン:

  1. 方向性がないように感じたら、それを持ち出します。物事がどこに向かっているのか、より多くの構造について上司に尋ねてください
  2. 常にコードを削除する必要がある場合(リファクタリングのような良い方法ではない場合)、実装する前に構築されたより完全な計画がない理由を真剣に疑問に思う
  3. 超小規模のスタートアップで「リード」デベロッパーとして機能している場合、明らかに経験がない場合は、プライドを飲み込んで、マネージャーが本当にジュニアデベロッパーであることを伝えてください。
  4. Tediumは通常、仕事が終わっていないように見えることによってもたらされます。タスクをより小さく噛み、進捗状況を追跡します。これはあなたが何かを成し遂げていると感じるのに役立ちます
  5. 他のすべてが失敗した場合、特にマネージャーがあなたが燃え尽きに向かっているかもしれないと思われる場合は、他の場所で応募を開始することができます

-1

Zendoのような帰納論理ゲームを見つけて、暇なときにプレイしてください。真剣に。帰納論理はデバッグの中心です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.