タグ付けされた質問 「training」

オフトピックの質問はサポートされていません!教育アドバイスはこのサイトのトピックから外れています。トレーニングとは、理論的および実践的なスキルを教えることによる知識の習得を指します。

9
コンパイラエラーの用語集がないために不満な初心者プログラマ
私の家族の友人が、プログラミング(C言語)を学ぶときに少し助けを求めました。私たちが話していたとき、彼はコンパイラー(GCC)がエラーを起こしたときに彼に与えるエラーメッセージを理解するのに苦労していることにフラストレーションを表明しました。彼は、使用されているすべての用語を理解していません。また、それらの組み合わせが理解できない場合もあります。「コンパイラのドキュメントに、エラーメッセージの詳細な説明が含まれていないのはなぜですか?」-そして、私は彼に良い答えがありませんでした。 私自身-より経験豊富なプログラマーとして-この状況ではめったにありませんが、これらのまれな出来事は起こります-私が以前に遭遇したことのないいくつかのエキゾチックなエラーメッセージ。私は検索エンジンでエラーメッセージを探すことで何とかやっていくことができますが、どうやらそれは彼のために常に機能するとは限りません-特に彼が遭遇するエラーはより一般的であり、彼が彼に関連するトラブルを抱えている複数の異なるケースで発生するため自分の。 それでは、初心者プログラマはコンパイラエラーメッセージを理解するという課題にどのように取り組むべきでしょうか?具体的には、CとGCCの組み合わせで?

20
開発者はビジネスドメインを理解する必要がありますか、それとも仕様は十分ですか?
私は、電子工学の高度な技術であるためにドメインを理解するのが本当に難しい会社で働いていますが、これは複雑なドメインでのソフトウェア開発に適用できます。 私が取り組んでいるアプリケーションには、ドメインでの経験がなければ理解が難しい多くの情報、グラフ、およびメトリックが表示されます。開発者は、特定のチャートにこの種のメトリックを表示する必要があることを指定するなど、ソフトウェアが何をする必要があるかを記述する仕様を使用します。このメトリックは次の算術式です。 この方法では、開発者は実際にビジネスと彼がこのタスクを行っている理由を理解していません。仕様が非常に詳細な場合でも問題ありませんが、仕様が詳細でない場合、または作成者がユースケースを忘れた場合、開発者が解決策を見つけるのは非常に困難です。 一方、すべての開発者をすべてのビジネス面でトレーニングすることは非常に長く困難な場合があります。 詳細な仕様をもっと重視する必要がありますか(しかし、私たちが知っているように、完全な仕様は存在しません)、またはビジネスドメインを理解するようにすべての開発者を訓練する必要がありますか? 編集:会社は外部の開発者を使用でき、すべてのドメインの編成は約2週間になる可能性があることを念頭に置いてください

15
アマチュアが優秀なプログラマーになることは可能ですか?[閉まっている]
プロのフルタイムプログラマは、自分の仕事から継続的に学習することで素晴らしい仕事をすることができます。アマチュアプログラマーはどのようにして優れたプログラマーになるために訓練できますか? **音楽を演奏したり歌ったりするのが好きな人は、それがあなたの趣味であり、あなたが興味を持っているので、それを行うことができます。しかし、プロの歌手になる必要も、生計のために歌う必要もありません。これはプログラマにも当てはまりますか?有名なアマチュアプログラマーはいますか?
46 training 

20
プログラミングを教えることであなたはより良いプログラマーになりますか
私自身は中級のPythonプログラマーであり、初心者のPythonプログラミングクラスのトレーナーになる機会を提供されています。 これでプログラミングのレパートリーが本当に広がるのではないかと思っていました。人々のグループのトレーニングに成功した後、誰かが啓発的な経験をしたことがありますか? それはそれらの人々にも依存していますか?彼らがプログラマーであろうとnoobの学生であろうと?(私の場合、彼らは中級の.NETおよびJavaプログラマーです) 彼らに何を期待すべきですか? 私の恐怖の1つは、彼らの1人がもつれた質問をしたときに詰まったらどうなるかです。これは正常ですか?

3
今日の(複雑な)Web環境向けにジュニアプログラマをトレーニングするにはどうすればよいですか?
現在、当社は、ほとんどの場合、Ruby on Rails WebサーバーとJavaのキオスクシステムからC / C ++の組み込みデバイス(標準Webブラウザーのインターフェースを含む)までのさまざまなRESTクライアントで構成されるアプリケーションを開発しています。チームを拡大する必要があり、優秀なシニアプログラマを見つけることができなかったため、会社とともに成長するジュニアプログラマのトレーニングに力を入れることにしました。 すでにRubyとRailsの本をいくつか提供し、いくつかのおもちゃプログラムを作成するように依頼しましたが、現在のWebプログラミングの学習曲線がいかに急勾配であるかを理解しています。 15年前にプログラミングを始めたとき、DelphiとSource Safeのみを使用し、使用可能なソフトウェアを最初から作成することができました。どちらもシンプルなツールであり、環境の内部構造を掘り下げるのは簡単でした。ゆっくりとサードパーティのフレームワークの使用を開始し、CVS、SVN、そして最終的にGitに切り替えて、HTTP、JavaScript、CSS、RESTなどの今日のWebを構成する要素を学びました。今日、長年の経験の後でも、 Delphiについて過去に行ったようにRuby on Railsが内部でどのように機能するかについても重要であり、私にとって重要なことは、基本的な学習ブロックを使用しているツールに接続できることです。 私が雇っているプログラマーは、チームと統合して使用可能なものを作成するのに長い時間がかかるようです。なぜなら、単一のフレームワーク(レール)を使用することを学ぶことはたくさんあるからです:Ruby、HTML、CSS、JavaScript、 REST、テストケース、データベースアクセス(フレームワーク内に魔法のように構築されたSQLを使用!)、MVC、3つの異なるパッケージマネージャー(Ubuntuに最適、Rubyにgemとbundler)、ssh、git、Apache、Phusion Passengerのデプロイなど ジュニアプログラマーと直接やり取りする必要があるのは初めてなので、私は迷っています。非常に多くの選択肢がある場合に、Web開発の今日のベストプラクティスについてジュニアプログラマーを訓練する最良の方法は何ですか?

10
新しいプログラマーの自習能力を高めるのを助けて、そんなに聞かない?
私は現在、新しいプログラマーとプロジェクトに取り組んでいます。彼の仕事をスピードアップするにはどうすればいいですか?彼はよく私に質問をしますが、私は彼と、backbone.js(プロジェクトの一部)でプログラミングしました。 今、私は彼にプロジェクトを自分で処理してもらい、他のことに集中してプロセスをスピードアップできるようにします。彼は、物事をグーグルにしたり、問題が発生した場合にフォーラムで質問したりしたくない。彼はちょうど私のところに来ます。彼は何をすべきか?私は何をすべきか?私が彼を強制すると、彼はすぐに物事をします。自分でもっと仕事をするように彼をやる気にさせるにはどうすればいいですか?

7
シニアメンターは何人のジュニアですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私たちのショップのサイズは動的に増加するため、いくつかの新しいジュニア開発者を雇う予定ですが、あまりにも多くの指導とトレーニングでシニアを圧倒したくはありません。シニアがまだ効果的にタスクを実行できる間に、シニア開発者のメンターになれる(通常は大学を卒業したばかりの)ジュニア開発者は何人いますか?

12
より良いプログラマーになるために、物理学者として自分自身を教える[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私はいつも物理学が好きで、コーディングがいつも好きだったので、大学で数値物理学(詳細は関係ありません、クラスターのほとんどは並列プログラミング)を行う博士号取得者のオファーを受けたとき、それは無かったです-私にとっては非常に簡単です。 しかし、ほとんどの物理学者として、私は独学しています。オブジェクト指向の方法でコーディングする方法についての幅広い背景知識や、kDツリーでの検索を最適化する特定のアルゴリズムの名前はありません。 これまでの私の仕事はすべて物理学と科学的結果に関心があったため、間違いなくいくつかの悪い習慣があります。それは、自分のコーディングがチームワークではなく自分のものだからです。Cは非常に単純で、「あなたが書くものはあなたが手に入れるもの」なので、私はほとんどCを使用しました-派手な抽象化の必要はありません。ただし、抽象化に伴うパワーについて詳しく知りたいため、最近C ++に切り替えました。これはかなりCに似ています(少なくとも構文的には)。 コンピュータサイエンスの卒業生のように、優れた抽象的な方法でコードを作成する方法を教えてください。 私は自分のコードが効率的であることは知っていますが、エレガントで読みやすいものにしたいのです。抽象プログラミングに関する1000ページの本をいくつか読む時間がないことに注意してください。私は実際の物理学関連の研究に時間を費やす必要があります(上司がプログラムを洗練する方法について考えることに時間を費やしていることを知っていたら、スーパーバイザーは私を笑います)。プログラマーの観点から、自分の仕事も良いかどうかをどのように評価しますか?

5
AntはJavaビルドの「メインストリーム」のままですか?
開発者IDEでコンパイルされたクラスを単純化するバッチコマンドファイル(windows .bat)を、より包括的なAntビルド(つまり、CVSから取得、コンパイル、jar、アーカイブ、電子メールなど)でゆっくりと置き換えています。 Antで多くの時間を学習(および問題のデバッグ)に費やしてきたので、これらのタスクに使用するのが最も快適です。しかし、Antは、私が最初に学習を始めたときと同じように広く使用されているのか、それとも「世界は新しいものに(そしておそらくよりスマートに)変わったのか」と疑問に思います。(たとえば、Mavenビルドマテリアルが配布されるようになりましたが、これは使用したことがありません。) この質問の実際の重要な点は、新しい開発者にAntを学ぶように勧めるかどうか、またはビルドのために他の何かを学ぶべきかどうかです。 私は決してトレンドを熟知しているわけではないので、他のJava開発者から彼らが最高のビルドツールだと思うこと、そして新しい開発者が学ばなければならないと思うことを聞くのは素晴らしいことです。
14 java  training  maven  builds  ant 

8
何年も経った今でも悪いコードを書いている従業員に固執すべきでしょうか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私はこの質問をC ++プログラマーに投げかけています。a)C ++プログラマーだけが、例の技術的なメリットを判断できるからです。b)プログラマーだけが、このようなコードを書く他のプログラマーの気質を感じます。 人事部長と取締役は、単に現場で証拠を見ているだけで問題があることを認識しています。問題のプログラマーにより多くの時間を与えるかどうかは私の呼びかけです。エラーの多くは非常に基本的なレベルです-私の質問(プログラマーにとって)は、上級C ++開発者であると公言する人に、現在のコードのサンプルに基づいて疑いの利益を与えるべきかどうかです。非プログラマー-C ++プログラミング以外の人でも-これについて判断することはできません。 背景として、私は定評のある会社の開発者を管理するタスクを割り当てられました。彼らにはすべてのC ++コーディングを専門とする単一の開発者がいます(永遠に)が、作業の質はひどいものです。コードのレビューとテストにより、多くの問題が明らかになりました。最悪の事態の1つはメモリリークです。開発者はコードのリークを一度もテストしたことがなく、わずか1分でアプリケーションが多くのMBをリークする可能性があることを発見しました。ユーザーは巨大な減速を報告しており、彼の見解は「それは私とは何の関係もありません-彼らが終了して再起動すれば、それは再び良いことです。」 私は彼にリークを検出して追跡するためのツールを提供し、ツールの使用方法、問題が発生した場所、およびそれらを修正するために何をすべきかを実証するために何時間も座っていました。私たちは6か月後、新しいモジュールを作成するように彼に割り当てました。私たちがより大きなコードベースに統合される前に私はそれをレビューし、以前と同じ悪いコーディングを発見することに落胆しました。私が理解できないと感じるのは、一部のコーディングがアマチュアよりも悪いということです。たとえば、彼は別のクラス(バー)のオブジェクトを作成できるクラス(Foo)が必要でした。彼は、フーがバーへの言及を保持することを決めました、例えば: class Foo { public: Foo(Bar& bar) : m_bar(bar) {} private: Bar& m_bar; }; しかし(他の理由で)彼はFooのデフォルトコンストラクターも必要とし、彼の初期設計に疑問を呈するのではなく、このgemを書きました。 Foo::Foo() : m_bar(*(new Bar)) {} そのため、デフォルトのコンストラクターが呼び出されるたびに、Barがリークされます。さらに悪いことに、Fooはヒープから他の2つのオブジェクトにメモリを割り当てますが、デストラクタやコピーコンストラクタを作成しませんでした。したがって、Fooの割り当てごとに3つの異なるオブジェクトが実際にリークし、Fooがコピーされたときに何が起こったのか想像できます。そして、それは良くなるだけです-彼は他の3つのクラスで同じパターンを繰り返したので、1回限りのスリップではありません。非常に多くのレベルで概念全体が間違っています。 これが完全な初心者から来た場合、私はより多くの理解を感じるでしょう。しかし、この男は長年にわたってこれを行っており、過去数か月にわたって非常に集中的なトレーニングとアドバイスを行ってきました。彼はほとんどの時間、メンタリングやピアレビューなしで働いてきましたが、彼は変わらないと感じ始めています。だから私の質問は、そのような明らかに悪いコードを書いている人に固執しますか?

3
コードメンテナーの役割からどのように抜け出しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私の最後の3つの仕事では、コードメンテナーでした。3つのすべてのケースで、プロジェクトのコードの大部分が既に書かれた後、私は雇われました。 私は独学のプログラマーです。初めてのプロの仕事を始める前に、私は自分のベルトの下で十数個のプロジェクトを開始し、成功して出荷しました。 新しいコードの作成と既存のコードの保守は、まったく異なる2つの仕事です。航空技術者と航空機整備士を比較するようなものです。 特に、飛行機を何らかの方法で論理的または保守しやすいように設計することを試みなかったエンジニアによって設計された飛行機で作業する航空機整備士である場合、それは残念です。 プロジェクトが最初に開始されたとき、私は周りにいるように感じ始めています。あなたは何らかの形でコンピュータサイエンス分野の人々の残りを超越した特別な人々の一人でなければなりません。その位置にいるには何が必要ですか? この質問には本当に簡単な答えはないように感じますが、誰かが私に洞察を与えることができますか?新しいプロジェクトの1階に行ったことはありますか?そこに着くのに何が必要でしたか?

3
プログラマーの教育とトレーニング全体をどのように改善できますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 先週、私はちょうどSecond LifeのPhillip RosedaleのKevin Roseによるこの素晴らしいインタビューを見ていました。 そして彼らは、優れたプログラマーを見つけ、雇い、特定する方法と、優れたプログラマーを見つけるのがどれほど難しいかについて素晴らしい議論をしました。 これは私たちがプログラマーがどのように学んでいるかを本当に考えるようになった。私自身も含めて、私たちの大半は独学です。プログラマーであることは素晴らしいことであり、誰もがスキルを学び、開発することができます。 しかし、これはまた、優れたプログラマーが何であるかについての本当の基準が存在せず、どのような環境がプログラミングスキルの成長を促進するかを意味します。 これはそれほど質問ではなく、プログラミングの文化やプログラミングの管理者をどのように変えることができるかを知りたいという願望であり、教育と自己改善が奨励されています。 継続的な教育、YouTubeビデオ、書籍、会議には多くの方法がありますが、私たちが行うことの経験的な性質のため、何を学び、習得することが重要かは必ずしも明確ではありません。 The Joel 12 Stepsを見てみましょう。 ジョエルテスト ソース管理を使用していますか? ワンステップでビルドを作成できますか? 毎日ビルドしますか? バグデータベースはありますか? 新しいコードを書く前にバグを修正しますか? 最新のスケジュールはありますか? スペックはありますか? プログラマーは静かな労働条件を持っていますか? お金で買える最高のツールを使用していますか? テスターはいますか? 新しい候補者はインタビュー中にコードを書きますか? 廊下のユーザビリティテストを行っていますか? これらはすべて重要な価値があると思いますが、Experiential Gapと呼ばれるもののために、プログラマーまたはマネージャーがリストの項目を実行しなかったことに対する否定的な結果を一度も経験したことがない場合、そのうちの。 Experiental Gapは、私たちそれぞれが異なる仕事と異なる経験を持っているという私の基本的な理論です。そのため、常に何十人ものプログラマーと連携してきた一部の人にとって、ソース管理は必須です。しかし、常に唯一のプログラマーであった人々にとっては、ソース管理の必要性を想像することはできません。 そして、私たちが学ぶ方法におけるこの大きな欠陥のために、私たちは人々が行うベストプラクティスまたはしないベストプラクティスによって人々を評価し、どちらかの理由が火炎戦争を開始する可能性があります。 私たちは常に自分の分野で人々の行動を評価し、「この男/ギャルがxyzベストプラクティスを実行していない場合、彼/彼女は優れたプログラマーになれないので、時間やエネルギーを無駄にしないでください」 」 これがまさにプログラミングフレイムウォーを抱えている理由です。ExperientalGapのせいで、私たちがしなければならなかった決定をしていない人は想像できません。 そのため、プログラマーをどのように訓練、教育、管理するかを再考する必要があると考えるようになりました。 たとえば、マネージャーの何パーセントが会議に出席するよう奨励しており、それに対して支払いをしていますか? 私にとって、そして多くの人々にとって、これは非常にまれです。多くの人がカンファレンスに行き、詳細を知りたいと思っていますが、それをするためのお金はありません。 したがって、この質問のポイントは、どうすればより良いトレーニング、学習、および管理を行うことができるのか、多くを刺激することですか? 同じ職歴を持たないことで人々をs辱しない学習の新しい文化をどのように作成できますか。 はい、私たち全員が仕事と仕事をしていますが、仕事を上手に行う能力は、スキルの習得を向上させるための私たちの欲求、関心、サポートに依存しています。 今、私たちの文化はかなり混乱しており、エリートをサポートしていますが、良くなりたいと思っている私たちの多くは、自分自身を学び、改善するのに十分なサポートを持っていません。 つまり、私たちは業界として、単なる交換可能な歯車として認識されることを望んでいますか? ありがとうございました...

4
命令型プログラマーに宣言型プログラミングを教えようとするとき、いくつかの良い習慣は何ですか?
私は自分の会社でF#のトレーニングを少し行うことを申し出ましたが、彼らは興味を示しているようでした。彼らは通常、プログラミングにあまり情熱を傾けないVB6およびC#プログラマーです。そうは言っても、機能的なことを考えると正しいコードを書く方が簡単だと思うので、彼らは間違いなく何らかの利益を得るはずです。 誰も私がこれにどのようにアプローチするべきかについていくつかのアドバイスを提供できますか? アイデア 構文に集中するのではなく、代わりにこの言語とそれが促進するイディオムをどのように使用できるかに集中してください。 命令的な方法で書くのは苦痛だが、宣言的な方法で書くとエレガントなコードに変換される例を試してみてください。

4
DVCSで間違ったブランチにコミットする開発者の停止
問題 私は約10人の開発者がいるソフトウェアプロジェクトに参加しており、Mercurialを介してソースコードを共有しています。リリースごとに開発ブランチと本番ブランチがあります。プロジェクトの過程で、1つのブランチ(v1など)からのソースコードが、ソフトウェアの以前のリリース(v2)のパッチブランチとメンテナンスブランチに入りました。 これにより、間違ったコミットのバックアウトに時間を費やしたり、コードが間違ったブランチに入ったことに気付かなかった場合、間違った(おそらくQAdでない)コードが間違ったブランチに到達してデプロイされます。 ブランチとマージの設計/方法 v1-test v1-patch1 v1-patch2 ^---------^-----------^ v1-prod / / \ \ -----------------------/ \ \ v1-dev \ \ \ --------------------------\ v2-dev \ \ \ ^-------^------------- v2-prod v2-test v2-patch1 したがって、準備ができたと判断されるまでリリース開発ブランチに取り組み、すべてのリリースとメンテナンスが行われる単一のテスト/ UAT /生産ブランチに分岐します。タグは、このブランチのリリースをビルドするために使用されます。v1のテスト中に、v2のブランチが作成され、開発者は新しい機能の開発を開始します。 起こりがちなのは、開発者がv2-devブランチの作業をv1-devまたはv1-prodにコミットすることです。さらに悪いことに、v2-devをv1-prodにマージします(または同様のミス)。 ほとんどの開発者は-prodブランチにアクセスしないように指示しますが、コードはまだ潜入しています。 v2は開発を開始したばかりですが、v1には問題を修正するための非常に大きなパッチがまだ残っている可能性があることに注意してください。つまり、v1は単に奇妙な小さなパッチを取得しているだけではありません。 これまでに試したこと ゲートキーパーを備えた、独立した-prodブランチがあります。-prodブランチはその名前を通じて警告を発するはずであり、ほとんどの開発者はそのブランチにいる必要はありません。これは実際に問題を軽減していません。 開発者の間でこの問題に対する意識を高め、彼らをより警戒させようとしました。繰り返しますが、これはあまり成功していません。 開発者が間違ったブランチにコミットする場合に考えられる考えられる理由 ブランチデザインが複雑すぎる 複数のブランチを並行して積極的に開発する。(プロジェクトは、雪崩モデルを使用するという症状を示します。) 開発者はDVCSを十分に理解していない ある程度関連性のある私が読んだ質問 私は間違ったブランチにコミットしないことについてこの質問を読みました。視覚的なキューに関する答えは役に立つかもしれません。しかし、私たちが経験している問題は、より根本的な問題の症状ではないと完全に確信しているわけではありません。 視覚的な手がかりを使って、それらをコマンドラインに簡単に組み込むことができますが、チームの約半数が日食を使用していますが、視覚的な手がかりを組み込む方法はわかりません。 質問 ソフトウェア、プロジェクト管理、またはガバナンスの形で、間違ったブランチへのコミットを減らして(理想的には停止して)時間を浪費したり、デプロイされたコードを汚したりするために、どのような方法を使用できますか? 上記のように貢献していると思われる理由に関する特定のコメントをいただければ幸いですが、これは返信を制限するものではありません。

4
働きながら勉強する時間をどうやって管理するのですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私は会社で8年間プログラミングを行ってきました。ビジネスインテリジェンスソフトウェアシステムを構築します。働くことは学習だと思っていたので、週60時間働いている間、会社で何をしていたかを常に研究してきました。しかし、最近、私は雇用のために新しい会社を探しています。私は、主に他の分野の知識の不足のために頻繁に就職の面接に失敗するので、思考は馬鹿げたアイデアであることがわかります。もちろん、私はまだ自分自身を改善したいと思っており、本当に努力しています。しかし、週に多くの時間を費やしている間、追いつくための十分な学習時間を見つけることができません。 私がこれについて心配しているのは私だけではないと思うので、あなたのキャリアのために勉強する時間をどのように見つけているのか尋ねたいのですが?他の分野の勉強に何時間割り当てますか?時間管理スキルが不足していますか?

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