web-dev-qa-db-ja.com

プログラミング全般に関するアドバイスを求める初心者

あなたがプログラミングが苦手だったかもしれない時代を思い出してくれる人が必要です...

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

問題は-ビジュアルスタジオを介して、すでに作成されているシステム/ウェブサイトについて学ぶことです。私はいつもとても圧倒され、このラインのどの部分を調べればよいかわからず、全体像を把握するのに多くの問題を抱えています。ビジュアルスタジオ自体は、asp.netフレームワークは言うまでもなく、理解するのが難しいと感じています。

私の同僚は私よりも多くの経験を持っているので、彼らはすべて良い仕事を手に入れているのだという印象を受けます。彼らがもっと学び/創造していることを意味し、私はほとんど何も学び/創造していません。私は意気消沈しており、何も言えないほど怖いです。

私は愚かではなく、基本的なプログラミングの概念をたくさん読んで実践してきました...私はこのいまいましいフレームワークをただ恐れているだけです。私はそれを見て、ただ麻痺しているように感じます。

その結果、私は年配のベテランの男に質問を続け、彼は苛立ち、私を助けて時間を無駄にすることを避けるために、私に簡単/無知/非プログラミングの仕事を与えたいと思います。それで何かがわからないときは、まだ聞いてみるべきか迷って、時間の無駄かどうか迷っています。

私はゆっくりと物を拾うような人ですが、細部に注意を払います。前者は私を無能に見せていると思います。

誰もが私がどこから来たのかを知っているので、何か役立つ情報を言ってください...

28
user974685

新規採用者としての仕事の流れ

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

ドメインの経験がない環境に優しい開発者を急ぎすぎると、あまりにも多くの問題が発生します。新しい男のものを取得する必要があるので、あなたは新しい男のものを取得するつもりです。

頑張れ

17
ist_lion

まず最初に。あなたは初心者です。がらくたの割り当てを取得します。 no方法があります。これは悪意のあるものではないことを理解する必要があります。あなた自身が述べたように、これらの人たちはより多くの経験を持ち、より熟練しています。彼らはまた、おそらくより高い給与水準にもあります。つまり、プロジェクトの観点からすると、彼らの時間は貴重であり、あなたよりも貴重です。したがって、彼らはより最先端の(そして楽しい)割り当てを行うことができ、より平凡な(しかし依然として重要な)作業を残すことができます。

さて、重要なことは永遠にわだちに行き詰まらないようにすることです。手元にあるプロジェクトとツールに慣れるために、可能な限りすべての時間を取ってください。死んだときにマインスイーパをプレイできます。新しいプラットフォームを学ぶことと、既存のプロジェクトに慣れることは、非常に大きな期待です。トリックは、それをより小さな断片に切断し、それらを一つずつ取り組むことです。あなたの靴で私はこのようなことをします:

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

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

14
System Down

私の同僚は私よりも多くの経験を持っているので、彼らはすべて良い仕事を手に入れているのだという印象を受けます。彼らがより多くを学び/創造していることを意味し、私はほとんど何も学び/創造していません。

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

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


それは、「このバグを修正し、一行しか取らない」というようなものであり、それから、その行がどこにあるべきだと思うかを知るだけで年齢をとります。

私のキャリアの中で、そのような話を何十回も聞いて言っています。そのような行について、私はいくつか異なる点を指摘します。

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

  • 一部のコード行は、途方もなく複雑になる場合があります。条件を正しく読み取るのに数回の時間を要するロジックを適用するために、何十ものブラケットが存在するかどうかを確認したことがありますか?私は知っている。

現在どのようなアプリケーションの図があり、さまざまな要素がどのように組み合わされているのか、コードで一般的に使用されている規則、使用されている開発方法論の種類、さまざまなプロセスで使用されているツールなどを検討してください。継続的インテグレーションサーバー、ストーリーボードなどはありますか。

5
JB King

時間がかかる。数ヶ月は短時間です。あなたの現在の会社に未来が見られない限り、私はもっと時間を割くでしょう。

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

あなたの新しい仕事に頑張ってください。

4
Hector Correa

今のところ、自分の過去の自分が未来に運ばれて、今の自分に、programmers.seでこの質問をするのではないかと思ったので、多くの人に代わって話せると思います。これは、彼があなたの靴を履いていたときに私が彼と顔を合わせていた場合、私が過去の自分に伝えることとほとんど同じです。

落胆しないでください -それは困難になるだろうし、何日かあなたがやっていることを嫌い、あなたが庭師や他の何か等しくプログラミングされていないことを望むでしょう。地面から身を持ち上げ、ほこりを払い、続けてください。あなたは良くなり、あなたがする仕事は良くなるからです。

StackOverflowとGoogleを使用する -「コピーアンドペーストプログラマー」ではありませんが、SOおよびWebの残りの部分には、喜んで助けを提供してくれる、喜んでいるたくさんの賢い人々がいることを理解してください。 。さらに、SO回答またはブログ投稿は、あなたがそれを確実に取得するためにそれらを再読し続ける場合、あなたにつぶやいたり、汚い外見を与えたりすることはありません。

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

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

自分にクレジットを与える -あなたはC++の経験をASP.NET MVCとSilverlightを扱う仕事に変えることができました。あなたは助けを求めてprogrammers.stackexchangeにいます。あなたは仕事をしていて、より良くなるためにできることを試みてやっています。あなたは正しいことをしている、そしてあなたはプログラミングの仕事を得ることができたという事実のおかげで、すでにそこへの道のかなりの部分です。それとそれを保ちます 意志 簡単になります。

側でやるべきことを見つける -難しすぎる、日常的なプログラミング、またはクラフトの楽しみがすぐになくなるようなプログラミングを行う。仕事とは別に、自分で作業できるプロジェクトを見つけましょう。それほど難しいことではありませんが、興味を持ち続け、プログラミングに興奮するでしょう。コーディングを嫌うことからあなたを救うだけでなく、あなたが書くすべてのコードはあなたのスキルを磨くのに役立ち、個人的なプロジェクトはこの仕事があなたに合わないと判断した場合に履歴書で見栄えがします。

これがあまりにも大きなペップトークのように聞こえる場合は申し訳ありません。私はあなたの立場に立ったばかりで、その気持ちを知っています。うまくいけば、これとここにいる人々からの他のアドバイスがあなたの助けになるでしょう。ああ、もう1つ-あなたはこの行から質問を始めました:

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

私はまだです!われわれは皆!私達はそれで働き続け、 毎年吸い込みが少ない を試みています。

2
Zann Anderson

質問を続けてください、しかしデモンストレーションイニシアチブですが、質問する前に、できる限りのことをしてください。 Stack Exchangeで質問するようなものです。

2
user25791

Asp.netとおそらく.netフレームワークについても良い本を入手して、勤務時間外に完全に読んでください。あなたがそれらを読んだら、あなたは仕事でかなり自信を感じるでしょう。あなたが学んでいることに実際に取り組むことも驚くべきことです。コードはあなたが読んでいるときにあなたにとって意味のあるものになるので、読書もより楽しくなります。現在の時間を最大限に活用する必要があります。多くのタスクがスローされていないので、この時間を賢く使用してください。

2

あなたの懸念は本当に有効だと思います。しかしあまり心配しないでください

もちろん、新入社員として、誰もやりたくない仕事を手に入れることができます。残されたタスクのように、より機械的で不快なタスク。

私のように、ここにいる全員がすでにそこにいるので、私は本当にあなたの痛みを感じます。あなたがする必要があるのは物事を速く行い、できる限り最善を尽くすです。

このようにして、人々はあなたがますます難しくすることができること、あなたが本当に最善を尽くしていること、そしてあなたが本当に改善し、あなたがより良いパフォーマンスと良い印象を残すことを可能にすることを理解します(正しい方法で)。

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

1
lucasarruda

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

1
MartyTPS

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

1
jfrankcarr

プログラミングは終わりのない学習プロセスです。私はあなたをより良くするものについては触れませんが、私は圧倒されて、そこにいて、時々そのようにまだ感じている感じに取り組みます。 IDEと使用されているテクノロジーIS処理するためのトンです。 VS 2010、C#、WPF、SQL Server、およびMVVMが初めてなので、大量のグーグルなしでは簡単なことはありません。

いくつかのことを考えてみましょう-試用期間を過ぎたので、彼らはあなたが何をするのか好きです。彼らはあなたを従業員として信じています。彼らはまた、あなたが新しいことを知っており、VSを数回開いて10年の経験を吸収することを期待していません。彼らはあなたが成長することができます。あなたの投資と資産-彼らはあなたが失敗することを望んでいない、そしてあなたが進歩と欲望を示すならば、彼らは成功するためにあなたを周りに保つでしょう。

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

最も重要なこと-それを発汗しないでください。あなたが努力を傾け、あなたがあなたの行動が好きなら、それはあなたがより良くなり、いつかそのようなチームを率いることを保証します。彼らが賢いなら、彼らはあなたが噛むことができるバイトをあなたに与えるでしょう。

最後に-私は6歳で、まだ学んでいます。すぐに「理解」しないと、自分が少し落ち込んでしまうことがあります。私は、あなたと同じように、自分に言い聞かせるだけです。「落ち着いて、世界は終わっていません。神のための.Netです。」

0
Yatrix

まず、プログラミングが苦手であるという事実を受け入れます。それを受け入れたくない場合は、問題になります。あなたは初心者です。実用的です。自分に正直であること。限目。受け入れられますか?次に読みます。

次に、自分自身(そして他の誰も。私は繰り返しますが、他の誰もあなたではありません)に、あなたがもうnoobではないこと、そして最も不潔で最もひどく書かれたコードをクラック、作成、デバッグできることを証明します。あなたは自分自身を証明することによって、チャートの上位に立つことができ、あなたの良きボスすべてからより高い賃金スケールを期待することができますあなたはもうnoobではありません

それでは、実際の答えを見てみましょう:ぎっしり詰まった労働時間、家族、自由時間の間に、一体どうやってそうするのですか?はい。簡単ではないことを知っています。私のやり方。そして、はるかに、私はそれが最も効果的なものだと思います:

基本を正しく理解する簡単に言うと、OOPの概念は脳の内部に統合する必要があります。

空中のデザインコード(城の代わりに)奇妙に聞こえるかもしれませんが、機能として車のホイールを見ると、人間の脳がコーディングの世界に慣れるのに役立ちます!

Practice on Paper First!教授がこのトリックを教えてくれました。まず紙で練習します。紙の上でプログラムをドライ実行します。それはコンパイラーの流れを理解するのに役立ちます+それはあなたの脳のそれらの論理ゲートを開きます。

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

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

はい。誇りに思って自慢しています!私をからかった先​​輩の顔を見たからです。そのすべての決意は私の友人です!プログラミングはロケット科学ではありません!もしそうなら、あなたは試用期間を経なかったでしょう!それは簡単です!

私の個人的な信念:脳に論理があり、常識を理解していれば、優れたコーダーになれるでしょう。

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

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

0

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

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

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

私の同僚は私よりも多くの経験を積んでいるという印象を受けます。

繰り返しになりますが、すべてのプレーヤーはかつてボールボーイでした。良いことを行うには、まず嫌いなことの価値を証明する必要があります。これはcommonです。すべてのフィールドで、justプログラミングではありません。

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

何があなたを麻痺させますか?フレームワークに戻るのが怖いですかまだ別の機会に、それとも完全にそれを見て嫌いですか?

常に問題を1つ以上の単純なステップに分割するようにしてください。次に、それぞれに個別に進みます。ここに留まることを除いて、ここには魔法の弾丸はありません、そしてそれは重要なことです。

制御に入る

新しい人として、あなたはwillあなたが働いているtoolsを知る上で問題に直面しますwith(VB、ASP etc.)とthingsあなたが働いているon(theframeworkこれは自然。私たちは皆それに直面しています。あなたの主な優先事項は、続けることです。

言語の学習を続け、質問を続け、フレームワークを調べ続けますおよび繰り返し!

0
KK.

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

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

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

その他のランダムな観察:

私はいつもとても圧倒され、このラインのどの部分を調べればよいかわからず、全体像を把握するのに多くの問題を抱えています。

新しいプロジェクトを始めるのが経験で簡単になる主な理由は、あなたが言ったシステムが構成するもののほとんどを使ったので、それらは本当に「新しい」ものではないからです。 「一般的な経験」はありません。非常に多くの概念やフレームワーク、ツールに精通し、慣れ親しんでいるものに関連する問題を理解するだけです。入門レベルのプログラマーが自明ではないシステムに圧倒されることは完全に正常です。 (経験豊富なプログラマーにとって、彼にとって新しいものを十分に備えたシステムで作業するのはそうです。プログラミングは複雑な獣であり、ほとんどのプログラマーは「コンフォートゾーン」を持っています。)

0
millimoose