プログラミング全般に関するアドバイスを求めている初心者[非公開]


28

プログラミングが苦手だった時代に戻って覚えておく必要があります...

(ソフトウェア開発者として)私の新しい仕事に2か月ほど付き、試用期間を過ぎました。プログラミング経験がほとんどなく(C ++のみ)、現在asp.net MVCおよびsilverlightを使用しています。そのため、同社が取り組んでいるウェブサイトがあり、私はそれを改善し、バグを取り除くなどの努力に参加しています。

問題は-既に作成されているシステム/ウェブサイトについて、Visual Studioを介して学習することです。いつも圧倒され、この行のどの部分を調べるべきか分からず、全体像をつかむのに苦労します。Visual Studio自体は、asp.netフレームワークは言うまでもなく、把握するのが難しいと感じています。

私の同僚は私よりも多くの経験を持っているので、彼らはすべての良い仕事を得ているという印象を受けます。つまり、彼らはより多くのことを学んでいます。私は士気を失い、何も言えないほど怖がっています。

私は愚かではありません、私は多くの基本的なプログラミングの概念を読んで実践しました...私はこのいまいましいフレームワークをただ怖がっています。私はそれを見て、ただ麻痺していると感じます。

その結果、ベテランの老人に質問をし続け、彼はいらいらするようになり、私を助けて時間を無駄にしないように、簡単/無知/非プログラミングの仕事を与えたいと思っています。それから私は何かを理解できないとき、私はまだ彼に尋ねるべきかどうかをaboutし、それが時間の無駄になるかどうかを決定しようとしています。

私は物事をゆっくりと拾うような人ですが、細部にまで気を配っています。前者は私が無能に見えるようにしていると思います。

私がどこから来たのか誰でも助けて何か言ってください....私は数ヶ月か何かで仕事を失うのが怖い...


3
私はasp.net aspspider.com/tutorials pluralsight-training.net/microsoftなどから始めることから始めます。ビデオチュートリアルはすぐに学ぶのに適しています。
ビリー

3
あなたの質問と以下のコメントを読むと、忙しくて年上の男の髪の毛を寄せ付けないために、あなたはただランダムにバグを割り当てられているように思えます。状況としては、すべての「低いぶら下げの果物」がすでに選択されており、開いているバグは非常にとらえどころのないまたは難しいものだけである可能性があります。これらの種類のバグはASP.NETで一般的であるため、落胆しないでください。そうは言っても、年配の男性があまりにも助けになっているようには聞こえませんが、2か月しか働いていないので、本当にたるみを減らす必要があります。ジュニアレベルの開発者であることを忘れていたようです。
maple_shaft

2
C ++のほんの少しの経験でASP.NETジョブを取得したことに対する称賛。私はあなたの将来の販売とマーケティングのキャリアの変化を予測しています:)。
CheckRaise

プログラミング、別の言語で話すことに似ています...問題を解決します。ドイツ語で書かれた問題を解決しようとしているようだから、最初は難しいだろう。
ジェイクバーガー

回答:


17

新入社員として仕事で人々がしなければならないプロセス

  1. 最初にコードを見てください
  2. 小さなバグ修正
  3. より大きなバグ修正
  4. 機能リクエスト-パズルの既存のピースに何かを追加する
  5. 新しいもの-何もないところから何かを作る

ドメイン経験のない環境にやさしい開発者を急ぎすぎて、あまりにも多くの問題を引き起こします。あなたは新しい人のものを取得する必要があるため、新しい人のものを取得するつもりです。

ちょっと待って


ありがとう。小さな機能ではありますが、最大4つまで実行しました。また、既存のシステムに追加するのではなく、通常ゼロから作成します。
user974685

14

まず最初に。あなたは初心者です。がらくたの割り当てを取得します。それを回避する方法はありません。これは悪意がないことを理解する必要があります。あなた自身が述べたように、これらの人はより多くの経験を持ち、より熟練しています。彼らはまた、おそらくより高い賃金等級にもあります。つまり、プロジェクトの観点から見ると、彼らの時間はあなたの時間よりも貴重で価値があります。そのため、彼らはより最先端の(そして楽しい)割り当てを行うことができ、より平凡な(しかしまだ重要な)仕事を残します。

さて、重要なことは、永遠にわだちにつかないことです。可能な限り一瞬にして、手元のプロジェクトとツールに慣れてください。死んだときに掃海艇をプレイできます。既存のプロジェクトに精通するだけでなく、新しいプラットフォームを習得することは非常に圧倒的な見通しです。トリックは、それを小さな断片に切り分けて、それらに一つ一つ取り組むことです。あなたの靴で私はこのようなことをします:

  • 仕事では、まずアプリケーション全体の一般的なアーキテクチャを把握します。まだ詳細に入る必要はありません。コードの主要なブロックを特定するだけです。すなわち、ユーザーインターフェイスはどこですか?どの部分がデータベースにアクセスしますか?どちらがビジネスを決定しますか?周りに尋ねることを恐れないでください。あなたが学ぶことを切望していて、一般に人々が往復することを示してください。適切な(および最新の)ドキュメントがある場合は、それを使用します。
  • これで主要な部分がわかったので、少し掘り下げてみましょう。端の 1つから始めようとしてください。次に、ユーザーインターフェイス、またはデータベースレイヤーが、もう一方の端に向かって進みます。勉強しているビットを全体的に見てください。それがどのように機能するかを感じてください。それが公開する関数とメソッド。詳細は後日発表されます。大量のメモを取り、グラフやフローチャートを描き、後で調べるのに役立つことを何でもします。
  • アプリケーションでロジックがどのように流れるかを理解できた場合にのみ、コードを実際に見ることができます。これは、Visual Studioに慣れる良い機会です。コード内のオブジェクト/関数を右クリックすると、非常に役立つコンテキストメニューが表示されます。「定義に移動」と「すべての参照を検索」は特に便利で強力です。コマンドがわかりにくい場合は、F1をクリックします。
  • 自宅で、または暇なときに、ASP.NET MVCおよびSilverlight(または最終的に使用するプラットフォーム)について詳しく読んでください。具体的には、今日の仕事で目にしたことについて詳しく読んでください。
  • プラットフォームとプロジェクトの理解が深まるにつれて、最終的にはコードに貢献する機会が増えます。それらの瞬間をつかむ!

これが多くの作業のように見える場合、それはそうだからです。しかし、あなたが最終的に集める配当は十分な補償以上のものです。


励ましの単なる同情的な言葉ではなく、OPの問題に取り組む方法について実際に役立つアドバイスを提供してくれた+1。できればもう一度投票します。
グレートウルフ

5

私の同僚は私よりも多くの経験を持っているので、彼らはすべての良い仕事を得ているという印象を受けます。つまり、彼らはより多くのことを学んでいます。

これについてどの程度確信がありますか?一般的に、何か新しいことを始めようとしているときに、気づかないかもしれないあらゆる種類の学習が行われていることを誰かとして尋ねます。Visual Studioにどれほど慣れましたか?1998年に最初に作業を始めたとき、IDEをゼロから学ぶのはかなり怖かったのを覚えていますが、いくつかの点で興味深い時期でした。バグ追跡ソフトウェアをどれだけ知っていますか?チームのさまざまな人々のアイデアをどれだけよく理解していますか?学ぶべき大きなこととは思わないかもしれませんが、おそらくあなたが学んでいることはいくつかあります。

私のアドバイスは、同僚やあなたの上司に、あなたがどれだけうまくやっているかどうかを見ることについて話すことを検討することです。彼らは「うん、元気だよ」とか「あなたはすごい!」と言うかもしれません。それはあなたが受け入れなければならないかもしれないものですが、一部の人は真実を言うことを恐れているのでそれを言っているかもしれません。同時に、これがあなたが立っている場所を見つけて、それについて何かをする場所であることを認識してください。数か月滞在することで、いくつかのことを知って、最初の1週間よりもうまくやれるようになるはずです。


そのような、「このバグを修正し、行をとるだけです」と、その後、私はその行がどこに行くべきかを見つけるだけで何年もかかります。

私は自分のキャリアの中で、そのような行を何十回も聞いて言ったことがあります。このような行について、いくつかの異なる点があります。

  • それは推定値である可能性があり、そのため人は、修正が一握りの行になるような風変わりなケースを忘れている可能性があります。「どういうわけか1行のコードでそれを行うべきだ」と思ったことがあったが、後で見逃したものを発見した。

  • コードの一部の行は途方もなく複雑になる可能性があります。条件を正しく読み取るのに数回かかったロジックを実行するために、数十個の括弧があるifを見たことがありますか?私は知っている。

現在どのようなアプリケーションの状況があり、さまざまな部分が一致しているのか、コードで一般的に使用される規則、使用される開発方法論の種類、さまざまなプロセスに使用されるツールなどを検討してください。継続的統合サーバー、ストーリーボードなどがあります。


確かに、私は以前よりもはるかに優れていますが、それでも役に立たないと感じています。そのような、「このバグを修正し、1行だけをとる必要があります」。その後、その行がどこに行くべきかを見つけるために何年もかけて調べます。どうもありがとう。現在、できる限りのものを読み込もうとしていますが、何を読むべきかを正確に知ることは必ずしも容易ではありません!
ユーザー974685

4

時間がかかる。数ヶ月は短い時間です。あなたの現在の会社に未来が見えない限り、私はもっと多くの時間を与えます。

既存の製品で作業することは一般的です。実際のところ、新しいシステムよりも頻繁にそれを行います。すでに運用されている既存のシステムを改善するには、多くのスキルが必要です。それは必ずしも悪いことではありません。

新しい仕事で頑張ってください。


5
また、まったく新しいシステムで作業することは、必ずしもひび割れているわけではありません。バグ修正はイライラするかもしれませんが、多くの利点があります。あなたがすべきことはより明確であり、締め切りはより緩和され、非常に貴重な他人のコードを扱う方法を学びます。
ミリムース

はい、私はバグ修正から学ぶべきことがたくさんあることを知っています...私は遭遇する非常に多くのバグが、おそらくスキッピングする方法を知ることができなかったバグであることに私をイライラさせていると思います-asp.netでは、何かメインプロジェクト設定/web.config/たとえば、その存在がわからないキャッシュファイル。基本的にそれはまだ「魔法」のようです
...-user974685

@ user974685これが、フレームワークとしての唯一の意図が開発者にとってとらえどころのない、透明なものであるため、ASP.NETプロジェクトを最初から恐ろしいことだと思う理由です。HTTPの本来のリクエスト/レスポンスステートレスの性質を隠し、開発者にとってWin Formsアプリケーションのように感じさせようとします。実際には、キャッシングバグに遭遇したり、奇妙なグラフィカルな不具合が発生したりすると、上級レベルの開発者にとっても不快になります。
maple_shaft

@maple_shaft:ASP.NETについてWebの本質を隠すことについてあなたが言ったことは、ASP.NET WebFormsには当てはまりますが、ASP.NET MVC(user974685が使用しているもの)には当てはまりません。ステートレスな方法でWebアプリを作成します。
ヘクターコレア

@Hector申し訳ありませんが、ユーザーがASP.NET MVCを使用していると述べた質問を逃しました。
maple_shaft

2

質問をし続けますが、イニシアチブも示します。尋ねる前にできる限りのことをしてください。Stack Exchangeで質問するようなものです。


2

asp.netおよびおそらく.netフレームワークでも優れた本を入手し、就業時間外に十分に読んでください。それらを読んだら、仕事にかなり自信を感じるでしょう。あなたが学んでいることに実質的に取り組むことも驚くべきことです。このコードは、読み進めるうちに意味をなしていくので、読むことももっと楽しくなります。あなたが今持っている時間を最大限に活用すべきであり、多くのタスクがあなたに投げられていないので、この時間を賢く使ってください。


2

私は、過去の自分が未来に移動して、現在の自分にこの質問をプログラマーに問いかけるのではないかとしばらく思ったと言って、私たちの多くのために話せると思います。これは、彼があなたの靴を履いていたときに彼と顔を合わせていた場合、私が過去の自分に言うこととほぼ同じです。

落胆しないでください -それは難しいだろうし、いくつかの日はあなたがやっていることを嫌い、あなたが庭師または同様に非プログラミングである何かになりたいと思うでしょう。あなたが元気になり、あなたがする仕事が良くなるので、地面から自分自身を拾い上げ、自分自身をほこり、そして続けてください。

StackOverflowとGoogleを使用します。「コピーアンドペーストプログラマー」ではありませんが、SOやWebの残りの部分には、喜んで支援を提供し、喜んで喜んでくれるたくさんの賢い人がいることを理解してください。その上、SOの回答やブログ投稿は、あなたがそれを確実に取得するためにそれらを読み直し続けたとしても、あなたに不平を言ったり、汚い外観を与えたりするつもりはありません。

質問を続ける -できることを理解するために自分の役割を果たしている限り、より多くの知識と経験を持っている人に助けを求めることは何の問題もありません。あなたの同僚がそれについて気になりたいなら、あなたを助けてくれる他の同僚を見つけるか、他の人が言ったように、彼または彼女と一緒にそれを持ち出し、彼らの言うことを見てください。このような状況での少しのコミュニケーションは大いに役立ちます。

試してみてください -それをあきらめないでください。プログラミングは難しいですが、それは報酬の一部です。新しいツール、フレームワーク、言語、パラダイムなどを学ぶには多くの時間と労力がかかりますが、それは価値があります。あなたがするたびにあなたは良くなり、その学習経験を押し進める行為はあなたをよりよく準備するからです次回に直面したとき。私は最初の仕事よりもはるかに大きなコードベースで作業していますが、その過程で学んだことのおかげで、より迅速にそれを見つけることができました。

自分にクレジットを与える -C ++の経験をASP.NET MVCとSilverlightで動作する仕事に変えることができました。プログラマを探しています。stackexchangeが助けを求めています。あなたは仕事をしており、改善するためにできることをしようとしています。あなたは正しいことをしていて、プログラミングの仕事を得ることができたという事実によって、あなたはすでにそこの方法のかなりの部分です。それを維持し、それ簡単になります。

側でやるべきことを見つける -難易度が高すぎたり、ありふれたプログラミングをしたり、クラフトの楽しさをすぐに損なうようなことをしてください。仕事とは別に自分で取り組むことができるプロジェクトを見つけましょう。それほど難しいものではありませんが、プログラミングに興味を持ち続け、ワクワクするようなプロジェクトを見つけてください。コーディングを嫌うことからあなたを救うだけでなく、あなたが書くコードのすべてはあなたがあなたのスキルを磨くのを助けます、そして、あなたがこの仕事があなたに合わないと決めるならば、個人的なプロジェクトは履歴書でよく見えます。

これがあまりにも気の遠くなるような話だとすみません。私はあなたの靴を履いたばかりで、どのように感じるか知っています。願わくば、これと、ここにいる人々からの他のアドバイスがあなたの助けになることを願っています。ああ、もう一つ-あなたはこの行で質問を始めました:

need some of you to remember back to a time when you might have been bad at programming...

私はまだです!われわれは皆!私たちはそれに取り組み続け、毎年吸う量を減らしようとしています。


1

それはプログラミングのすべての人に起こります。長年の経験を積んだプログラマーでさえ、長年にわたって導入されてきた複雑なシステムに直面すると、かなりの学習曲線を持ちます。必要なほとんどすべての知識を持って仕事に就くことはめったにありません。比較的新しい会社/部門または非常に単純なシステムで100%の新しい開発に取り組んでいない限り、しばらくの間は圧倒されると予想できます。


1

あなたの懸念は本当に有効だと思います。しかし、あなたはあまり心配するべきではありません

もちろん、新しい従業員として、誰もやりたくないタスクを取得します。行うべきタスクのように、より機械的で不快なタスク。

私のようにここにいるすべての人がすでにそこにいたからです。あなたが必要とするのは、物事を早くし、できる限り最善を尽くすことです。

このように:人々は、あなたがより一生懸命やることができることを見るでしょう、あなたは本当にあなたのベストを尽くし、あなたは本当に良くなり、あなたはさらに良いパフォーマンスと良い印象を残すことができます(正しい方法で)。

また、我慢してください。少し時間がかかりますが、それだけの価値があります。


1

忍耐。20年前、私が新しい人だったとき、彼らはいつもクラッシュしていたルーターを再起動するためにサーバールームに送り返していました。簡単なヒント:既存のコードがある場合に新しいフレームワークを学習するには、既存のフォームに別のフィールドを追加してから、その影響をデータベース内のどこまでも伝えます。そのフォームに既にある別のフィールドの値をたどる。あなたはトンを学びます。


0

あなたのオプションの中では、あなたが地面に走ることを期待されない仕事を見つけてください。すべての企業がエントリーレベルの仕事に適しているわけではありません。大手コンサルティング会社(DellやAccentureなど)は、通常のプログラマーとしての地位を維持するための魂を消耗させる地獄かもしれませんが、堅実なトレーニングプログラムと、学習スタイルの従業員のオーバーヘッドに対処するためのリソースが必要です。

その結果、現在の雇用主にとってあなたが間違った種類の従業員である可能性が完全にあり、逆もまた同様であるということです。あなたの仕事を失うことは恐ろしい命題ですが、あなたの損失を減らすことが最善かもしれません。

もちろん、あきらめるべきだと言っているのではありません。難易度曲線の最悪の部分を乗り越えて、すべてが「クリック」するポイントに到達するのに、もう少し時間が必要な可能性があります。

ランダムな他の観測:

いつも圧倒され、この行のどの部分を調べるべきか分からず、一般的には全体像をつかむのに苦労しています。

経験を積むことで新しいプロジェクトで着手するのが簡単になる主な理由は、前述のシステムのほとんどを使用して作業するため、実際には「新しい」ものではないからです。「一般的な経験」はなく、非常に多くの概念とフレームワークとツールに精通しており、あなたが精通していることに関連する問題を引き出しています。初級レベルのプログラマーが自明ではないシステムに圧倒されるのはまったく普通のことです。(経験豊富なプログラマーにとっては、彼が新しいものを十分に備えたシステムで作業するのと同じです。プログラミングは複雑な獣であり、ほとんどのプログラマーには「快適ゾーン」があります。)


0

プログラミングは終わりのない学習プロセスです。私はあなたを良くするものには入らないでしょうが、私は圧倒された感じに取り組み、そこにいて、時々そのように感じます。IDEと使用されている技術を学びながら大きなプロジェクトに飛び込むことは、非常に多くのことです。VS 2010、C#、WPF、SQL Server、MVVMを初めて使用する仕事に就いています。だから、グーグルのトンなしでは簡単なことは何もありません。

いくつかのことを考慮してください-試用期間を過ぎたので、彼らはあなたがしていることを気に入っています。彼らはあなたを従業員として信じています。また、彼らはあなたが新しいことを知っており、VSを数回開いて10年の経験を吸収することを期待していません。彼らはあなたが成長できるようにします。あなたは投資と資産です-彼らはあなたに失敗を望んでおらず、あなたが進歩と欲望を見せれば、彼らはあなたを成功させ続けます。

「イライラした」年配の人が行く限り、彼は100%間違っています。あなたが尋ねる前に努力と研究の傾向を示している場合、彼はイライラする理由はありません。リーダーであることの一部がリードしています-誰かがそれが大きな部分だと言うでしょう。=)彼がその貧弱な例によってリードしている場合、彼らは間違った男性(または女性)を選択しました。彼と一緒に主題をブローチし、あなたが助けに感謝していることを彼に知らせてください。開発者は無愛想なタイプであり、多くの場合、自分自身で少しいっぱいになることがあります。彼が問題を抱えている場合は、上司に相談してください。繰り返しますが、あなたは資産であり、誰かがチームを傷つけるべきであるのを助けないことによってあなたの成長を妨げます。

最も重要なこと-汗をかかないでください。努力をして、自分のやることが好きなら、それはあなたが良くなり、いつかそのようなチームを率いることを保証するものです。彼らが賢いなら、噛むことができます。

最後に-私は6年で、まだ学んでいます。時々、すぐに「理解」しないと、自分自身に少し落ち着きます。私は、あなたのように、「落ち着いて、世界は終わっていない。神のために.Netです。」


0

まず、プログラミングが得意ではないという事実を受け入れます。あなたがそれを受け入れたくないなら、それは問題になるでしょう。あなたは初心者です。実用的である。そして、自分自身に正直であること。期間。受け入れましたか?次に読み進めてください。

第二に、あなたがもう誰でもないことをあなた自身に証明します(そして、あなた以外は誰も繰り返しません)。そして、あなたは最も汚く最も残酷なコードをクラック、作成、デバッグできることを証明します。あなたはチャートを上回り、あなたがもう誰でもないことを自分自身に証明することで、あなたの良いオールボスからより高い賃金スケールを期待することができます。

さて、実際の答えは次のとおりです。厳しい労働時間、あなたの家族、あなたの自由時間の間に、あなたはどのようにそれをすることになっていますか?はい。私は簡単ではないことを知っています。私のやり方。そして、断然、私はそれが最も効果的だと思います

基本を 正しく理解する:OOPの概念を脳内に統合する必要があります。

空中のデザインコード(城の代わりに) それはおかしく聞こえますが、機能として車の車輪を見ると、人間の脳がコーディングの世界に慣れるのに役立ちます!

最初に紙で練習してください! 教授はこのトリックを教えてくれました。まず紙の上で練習してください。ドライ紙の上でプログラムを実行します。これは、コンパイラーのフローに入るのに役立ちます+脳内の論理ゲートを開きます。

はい、独自のプロジェクトを設計してください。CLIベースの電卓になります。独自のコードを設計します。ユニークにします。なぜあなた独自のプログラムですか?それはあなたに「どうやってこれをするのですか?」欲求不満を強いることはありません。疑問がある場合は、ハーバートシルト(スペルが正しくない場合はご容赦ください)またはGoogleに質問するか、ここに質問をドロップしてください。これは、自己学習とスキルの即興のための最良の方法です。

私がCを紹介されたとき、私も苦労しました。特に、構造体nポインターn Blahs n blahsを使用します。時間をかけてこれらのことを学びました。そして、私が壊れたとき、私は希望を失いませんでした。私はリファレンスブックを買って、私がいつも望んでいたプログラムを作り始めました。3か月後(はい、笑えます!)私はついに、入力としてあなたの名前を受け取り、あなたの性格を出力として表示するプログラムのCLIバージョンを作りました。アクロフォノロジー。

はい。私はそれを誇りに思っているので自慢しています!かつて私をm笑していた先輩の顔を見たからです。その決意は私の友人!プログラミングはロケット科学ではありません!もしそうなら、あなたは保護観察を受けていなかっただろう!それは簡単です!

私の個人的な信念:あなたの脳に論理があり、常識が何かを理解しているなら、あなたは良いコーダーになることができます。

良いニュースは、両方持っていることです!あなたがそれを持っていなかったなら、あなたは私たちとあなたの問題を共有することによって正しい一歩を踏み出せなかったでしょうから!

あなたが今気分が良ければ、私は幸せです。そして、はい、あなたは今、この答えの最初の行を無視することができます。乾杯!


0

免責事項:あなたの問題は、プログラマー特有ですが、すべての分野の新しい専門家/開業医が直面していると思います。つまり、最初の数か月は誰も何も知らず、新しい人は常に最悪のタスクを取得します(これらのタスクが非常に重要な場合を除く)。

プログラミングが苦手だった時代

私はまだそれが苦手です。考え直しません。

私の同僚は私よりも多くの経験を持っているからだという印象を受けます。

繰り返しますが、すべてのプレーヤーがかつてボールボーイだったことを思い出してください。良い仕事をするためには、まず嫌いなことで自分の価値を証明する必要があります。これはプログラミングだけでなく、すべての分野で一般的です。

私はそれを見て、ただ麻痺していると感じます。

何があなたを麻痺させますか?もう一度フレームワークに戻るのが怖いですか、それともまったく見たくないのですか?

問題を常に1つまたは複数の簡単な手順に分解してください。次に、それぞれに個別に進みます。ここに魔法の弾丸はありませんが、それを続けることを除いて、それが重要なことです。

制御に入る

新しい男として、あなたはします知ることで問題に直面するツールあなたは仕事(VB、ASPなど)と、物事あなたが仕事上のフレームワーク)。これは自然なことです。私たちは皆それに直面しています。あなたの主な優先事項は続けることです。

言語を学び続け、質問をし続け、フレームワークを調べ続け繰り返してください!

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