私はITのバックグラウンドを持っており、仕事でプログラミング(C#)に入る機会が生まれるまでは、かなり自信がありました。これまでにプログラミングしたことがなく、プログラミングしているソフトウェアは、これまで使用したことがないプログラム(3Dモデリングソフトウェア)です。
あれから6ヶ月。あきらめたくなります。あまりトレーニングを受けていなかった...過去3週間のトレーニングが過去6か月に広がった。
私はプログラミングが得意だと思いますが、この経験は私に私の決断を再考させています。それが私だけなのか、このフラストレーションが正常なのかはわかりません。
プログラミングが適切かどうかはどうすればわかりますか?
プログラミングを始めるにあたって注意すべきことがいくつかあります。
まず、プログラミングに関するすべてを知ることはありません。あなたはおそらく、すべての一部を知ることにさえ近づくことは決してないでしょう。そして、あなたが何かを知っていると思ったら、何か新しいものが出てきて、あなたが知っているものは時代遅れになるでしょう。
したがって、常に新しいことを学び、何をすべきかを自分自身に教えることで、大丈夫である必要があります。多くの学習、研究、および「教育された試行錯誤」を通じて物事を理解することに多くの時間を費やすことに問題がある場合は、プログラミングに取り掛からないでください。
次に、重要なロジックであり、構文ではありません。言語、フレームワーク、テクノロジーを習得するだけでは、優れたプログラマーになるとは限りません。あなたは本当に、コードの背後にあるロジックを理解することができるような心を持つ必要があります-ピースがどのように組み合わされるか、どのようなロジックが使用されているか、そしてコンピュータがコードをどのように解釈するか。
1つのソフトウェアと言語で作業しているように見えますが、他にも多くの言語とテクノロジーがあることに注意してください。それらの1つを使用した経験ですべてを判断しないでください。構文に不満がある場合は、常に他のオプションがあることに注意してください。しかし、コードの背後にあるロジックを把握するのに問題がある場合は、おそらくプログラミングが適切ではない可能性があります。
そして最後に、嫌いな仕事を選ばないでください。確かにプログラミングはイライラするかもしれませんが、非常にやりがいのあるものになることもあります。少しのコードで壁に頭をぶつけたり、フラストレーションでコンピューターからすべてを削除したり、コーディングを楽しんだりすることができるときを処理できれば、あなたは良いです:)
私の友人は何年もの間頻繁にチラシをしていましたが、彼は常に航空会社のパイロットになりたいと思っていました。ある日、ボーイング747を操縦する機会を得ました。約6か月後、彼はあきらめたくなりました。飛行機を操縦するのは得意だと思いましたが、この過去6か月の経験から、彼は自分の決断を再考しました。
もちろん私は冗談です:私にはそのような友達はいません。そしてそれはもっともな理由です:セスナの飛行に数年、続いて複数エンジンの飛行機の飛行に数年、続いて数年の飛行ジェットに費やす前に、誰かが747の操縦を任せるのはどの航空会社もおかしいでしょう。 、続いて747に関する数か月間の広範なトレーニングが続きます。
私の作り話の要点は、最も単純な3Dモデリングパッケージでさえ、ソフトウェア開発者にとって747を飛ばすのと同等であるということです。多くのプログラマーは、業界で10年か2年経った後でも、それを恐れます。不満を感じるのは当然のことです。現在のスキルレベルで間違ったタスクを引き受けたのです。
あなたは何をするべきか?最初に、私は3Dモデリングショップを終了し、プログラミングのオンラインまたは実際のコースを受講して、自分の空き時間に取り組むことができるペットプロジェクトを取得します。コースが終了したら、ビジネスアプリケーション、モバイルアプリ、または洗練されたWebサイトを制作するショップでエントリーレベルのポジションを獲得してください。職場でできる限り学び、自宅で練習してスキルをさらに向上させます。数年後には、3Dモデリング会社に戻って、ほんの少しのフラストレーションなしでそこで働くことができるようになります。
プログラミングを学ぶのに最適な方法を選択していない可能性があります:)
真剣に、3Dモデリングは経験豊富なプログラマにとっても非常に複雑なドメインであるため、最初のプロジェクトとしてそれを実現することは困難です。良い本をいくつか手に入れ、自分で簡単なプロジェクトに取り組むことをお勧めします。あなたがそれらに取り組むのを楽しんだら、それからプラグインを続けて、あなたはそこに着くでしょう。あなたがそれを楽しんでいないなら、それはあなたの損失を減らすための時間かもしれません。
最高のプログラミングの本については議論を始めませんが、プログラミングに関するリファレンスについては、SEで多くの質問が見つかると思います。
FWIW、私は2.xからMS Windowsでプログラミングをしており、既存の3Dモデリングプロジェクトに飛び込んだ場合、しばらくの間もイライラすると思います:)
私自身はかなり初心者のソフトウェア開発者(2年間のパートタイムの仕事)なので、私を続けるのは長期的な視点です。
私が始めるすべての新しいプロジェクトは、それをスムーズに処理する方法をよりよく理解しています。それぞれの新しい言語はそれほど難しくなくなります。私のソリューションは、より完全に感じ始めます。
プログラマーとして続けなければならないことのリストを以下に示します。
それ以外にも、プログラミングを好きになる理由はたくさんあると思います。そうすればするほど、クリエイティブで非反復的な分野で働く喜びを感じるようになります。
編集:何か問題が発生している場合は、問題を正確に特定し、Stack-Exchangeサイトの1つに持って行ってください。質問にまだ回答していない場合は、良い返事。長期的には、プログラミングパラダイム、ソフトウェアエンジニアリング、アルゴリズムについての構造化された本を読むのもよいでしょう。ただし、ほとんどの場合はインポートしてコードを書き続けます-ここでのほとんどの回答が示唆するように、自宅で作業するための独自のプロジェクトを作成することを意味する場合でも、すでに行っていることに関係のないプログラムに取り組む時間を見つけてください。
それは簡単です:あなたはそれを楽しんでいますか?あなたがそれをするために支払われていなかったならば、あなたは楽しみのためにあなたの自由な時間にそれをしますか?答えが「いいえ」の場合、プログラミングはおそらく適切ではありません。
それはあなたがそれをすることで有能に雇われるほど十分にそれをすることを学ぶことができなかったと言っているのではありません。しかし、あなたがそれを好きでなければ、あなたはそれで素晴らしいことは決してないでしょう。そして、あなたがそれを楽しんでいないなら、何の意味がありますか?
プログラミングを始めたのは12歳のときで、やりたかったからやりました。私は生計を立てるためにそれができるかもしれないと思われる前に、私は20歳(そして大学の途中)でした。それは私がそれを愛したので私がしたことだけでした。
何か(何でも)が得意な人のほとんどは、生来のスキルがあるからではなく、そのことに不健康な執着があるからだと思います。
それは私ですか、それとも私は不満を抱いていますか?
あなたが本当に自問する必要がある質問は次のとおりです。
a)プログラミングを楽しんでいますか? b)アプリケーションが機能すると、世界で最も幸せな人を感じますか? -答えはYESの場合、心配するのをやめ、プログラミングのスキルを学び、向上させ続けます。
一般的に言えば、3Dモデリングは完全にプログラミングの世界では異なる領域はゲームプログラミングに似ています。それはあなたを怖がらせたり、興味を引かなかったりするかもしれません。 怖がらないでください、知らないことを学んでモチベーションを維持してください。キャッチアップして学習する必要があることについて、短期的および長期的な目標を設定します。
編集:「3Dモデリングソフトウェア」は、メインストリームのプログラミング領域ではありません。したがって、他の領域(CRM、会計、ヘルスケアなど)で適用されないである非常に具体的な知識/技法を習得していることに気付くかもしれません。興味を引くプログラミングの別のビジネス領域を探します。
私へのアドバイスは、C#とプログラミング全般について、自分で時間を費やすことです。
小さなゲームを作る。写真を整理するシンプルなツールを作成します。本当に何でも作る。
個人で時間を過ごすと、プログラミングを楽しむことができるかもしれません。そうでなければ、プログラミングはあなたのキャリアではありません。どちらにせよ、それで働き続けなさい。
いくつかの概念の学習に役立つ可能性のあるリソース:
http://msdn.Microsoft.com/en-us/library/618ayhy6.aspx (C#リファレンス)
これまでにプログラムしたことがない場合、あなたの背景はどこでしたか?ほとんどのITロールは、パズルの一部を自動化するマクロまたはスクリプトのみである場合、何かをプログラムする機会があります。
あなたには自分の感情に対する権利があります。しかし、より良い質問は、この欲求不満について何をしているのですか?あなたは物事を考え出し、前進していますか?現在の仕事についてどのようなフィードバックを得ていますか?それが素晴らしいというフィードバックを得ているなら、あなたは自分自身に非現実的な期待を抱いているかもしれません。一方、フィードバックがほとんどない、またはまったくない場合は、恐れがあることを理解できました。
あなたは基本的にトレーニングを受けておらず、困難なプロジェクトに追い込まれました。通常、人々は重要なプロジェクトを開始する前に、少なくとも3年間は何かを学びます。恥ずかしいことはありませんし、プログラミングが難しいと感じたとしても、プログラミングが不向きなわけではありません。
プログラミングの4週目で私も苦労しました:P
Commodore VIC20のアセンブラーから始めたことを覚えています。最初は、ゲーム雑誌に掲載されたハックの指示に従って、Jet Set Willyや、私がだまそうとしていたことは何でも無限にできるようにしました。私は好奇心と憧れがあり、自分のハックを作成し、それらがどのようにそしてなぜ機能するのかを理解したいと思いました。これが私の最初のプログラムの作成につながります。
ポイントは、かなり長い間(6か月というわけではありませんが、おそらく3Dモデリングを開始するための機能であることに同意します)、完全に混乱しましたが、その後、ペニーが突然落ちました。私が書いたコードがどのようにCPU命令とメモリ参照に変換されるかを理解し始め、すぐに、非常に優れたアセンブラを作成できるようになりました。もちろん、現在はCPUを20レベル上回っていますが、適性があれば、電球の瞬間は必ず発生します。
本当に相乗効果のあるものを作成するときに、好奇心をかき立て、学び、驚かされるポイントを繰り返し説明していると思います。
アドバイスの1つを与えることができる場合は、「オブジェクト指向プログラミングの基本を根気よく学ぶ」です。幸運を。
あなたの欲求不満は完全に正常です。 3週間のトレーニングでは非常に不十分である可能性があります。給料の支払いを伴う困難なプログラミングプロジェクトに頭から投げ出されて、プログラミングが適切かどうかはわかりません。
プログラミングが「自分に合っている」かどうかを本当に知りたい場合は、暇なときに新しいプログラミング言語を学び、趣味のプログラミングプロジェクトをいくつか行ってください。 これの経験(プログラミングの経験なしの締め切りと頭の中で迫りくる仕事のプレッシャー)を楽しんでいれば、プログラミングはあなたにぴったりです。
今... 特定のプログラミングジョブがあなたに適しているかどうか...私は個人的にnoに傾いています。欲求不満についてマネージャーに相談し、現在のスキルセットにより適した、またはより優れたトレーニングプログラムを約束する仕事を得ることを検討してください。あなたの特定の状況の詳細を知ることはできませんが、十分なトレーニング時間を提供せずにあなたをその地位に雇うことはあなたと会社の両方にとって不快であったように思えます。彼らがより良いトレーニングを提供することを計画していないなら、彼らはあなたを雇うべきではありませんでした。それでも、ハードノックの学校はどの学校よりも優れています。繰り返しますが、ここでの最善の行動は、マネージャーと話し、マネージャーが現在のパフォーマンスをどのように評価し、不満に対応するかを確認することです。
3Dグラフィックスプログラミングは、最も確立されたソフトウェア開発者でさえも入り込まないニッチです。私はOpenGLで多くの仕事をしていて、これを直接知っています。うまくいけば、あなたのすべての仕事はより高いレベルのシーングラフでの作業を伴いますが、あなたが私のようにそれの根底にある場合。新しいプログラマーにとって、それは100メートルのスプリントで走っている赤ん坊のようなものです...ウサインボルトのようなもので...赤ん坊がレースに勝つという現実的な期待を実際に持っている人々のさらなるプレッシャーを伴います。
しかし、奇跡は起こります、そして、すべての希望は失われません。
私はあなたがこれを既にやっていると信じていますが、プログラミングのチュートリアルを行う必要があるだけでなく(これは非常に小さな課題です)、3Dの基礎と座標系について読む必要があります。ポリゴンの描画、平行移動、回転(四元数の場合は神が助けてくれます)、行列などに関連する数学を理解します。
しかし真剣に、あなたはこれを続行してもよろしいですか?あなたにとって何がより重要ですか?この仕事、それとも髪一式?
プログラミングには多くの意欲と、自分が何をしているのかを知っていて、自分の知っていることを行うのに並外れた努力をすることが必要です。
あなたが真に成功するためには、プログラミングが生き方になる必要があります。望ましい職業というよりは。それは、抵抗から始まり、インターネットを構成するネットワーク全体に及ぶ強迫観念に成長する必要があります。
個人的には、私も個人的に苦労したので、それを続けることをお勧めします。コンピューターサイエンスの専攻を始めてから1年と数か月後(多くの場合、1日12時間以上)までは、プログラマーのように考えることはできませんでした。
私はインターネットにコンピューターに関連して理解できるすべてを勉強するだけの時間を費やしました。プログラミングの複雑さを利用して、圧倒されるたびに、より頑固でやる気を引き出しました。私は多くの時間を費やして、他の人のコードを読んで手動で自分で入力しました。わからないことを見つけたら調べてみました。毎日、私の強制的な魅力と執着にどんどん深く潜っていきます。 (私は、バイナリを介してプログラムと通信しているプログラミングの夢を持ち始めました、深すぎる!Lmao)
それはいつも簡単ではありませんでした。私は間違いなくそれをずっと切望していないように感じましたが、ある日、ジャックインしてクレイジーなコーディングを始めることができました。それは、私が想像するすべての行で、私にとってますます理にかなっているようになりました。数時間後には、コードをより最適で効率的な方法でコードを書き直すことができるようになりました。
その後、私がプログラマーになることができるかどうか疑いませんでした。あなたは本当にそれを必要とする必要があります。コンピューターサイエンティストに進化するために必要とされる、猛烈な勢いを克服するために必要な献身をする人は多くありません。
しかし、実際に創造性と創意工夫から生まれた複雑なソフトウェアシステムを構築できるようになると、達成した報酬は、成功するまでの苦労をはるかに上回ります。
自分に問うべき最も明確なことは、「学びたい」ですか。
この簡単な質問で、まともな確率でプログラミングが適切かどうかがわかります。学習が嫌いなら、いや、おそらくプログラミングは好きではないでしょう。プログラミングとは、コードの記述について5%、コードの動作方法の設計について10%、そしてより良いコードを記述してより良い設計を行う方法の学習について85%です。 (そして、それは変わりません!私は8年以上プログラミングをしていて、それでも常に学び続けています!)
もちろん、プログラミングは好きではなく学習を好きになることができますが、学習が好きなので、いくつかのプログラムを作成してみてください!ただし、特に現在 easy 言語が非常に多いため、初期の学習曲線をあきらめることはできません。だから、そこに出て、コードを書いてください!
最近、C#についての本を捨てました-私にとっては価値がないからです。
しかし、私は確認できます。フラストレーションとバグは「正常」と見なされます。
首の後ろにいる締め切りではありませんが、心配しないでください。
一方、魅力的なものになったら、それは本当に楽しいものになります。
並外れた結果を提供するとき-彼らはあなたを「サー」と呼ぶかもしれません:)
それがあなたにとって正しい仕事であるかどうか-これはあなたが毎日新しいことを学びたいかどうか-かどうかにかかわらず、あなたの質問に関して。また、あなたが忍耐力と問題に取り組むためのナッツを持っているなら。
私は常にTDD方法論を適用していますが、これを学ぶには数年かかります。 3週間のクイックスターターコースを受講しても、何の意味もないかもしれません。それはすべて、間違いを犯し、そこから学ぶことです。
誰もがバグや機能不全を嫌っていますが、一緒に成長することができます。つまり、エラーを発生させること(または挑発すること)は必ずしも悪いことではありません。
おそらく、私があなたに与えることができる最良のヒントは、物事をより小さなマイルストーンに分解することです。
あなたが設定した目標が完全に手の届かないところにあるので-これは欲求不満の原因です。
私はニンテンドーSNESでデバッグを学びました-私は鍬のように浮気していて、コンソールマガジンから彼らに新鮮なチートを提供するためのお金を得ました。後でAtari STを取得し、Omikron Basicのコーディング方法を学びました。私はまだここにいます。現在、JSウィザードとして自営業しています:)
説明したように、あなたの状況はむしろ「難しい方法でそれを学ぶ」ことです...私はそれよりもはるかに基本的なアプリケーションでそれを学ぶことをお勧めします。優れた言語リファレンスはすべてのニーズであり、おそらく良い例です。
プログラミングとは、まず問題を解決することです。言語は二次的です。最初のプログラムの作成を任されたら(ちなみに、自分でコードを最初に作成することはありません。コードはすべて作成されているため)、パズルを理解してください...接続を確立すると、あなたがプログラマーになりたいのなら、その場で。