ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

8
最初のプログラミングの仕事に何を期待するべきですか?[閉まっている]
私は最初のプログラミングの仕事に雇われました!私は25歳で、Javaを6年間学術的に使用しています。 採用された今、私のスキルが雇用主が期待するものではないことに不安を感じています。私はプロジェクトに割り当てられ、同僚がアマチュアだと感じる多くの質問をしなければならないのではないかと心配しています。 これは合理的な恐怖ですか?あなたの最初のプログラミングの仕事の経験は何でしたか?私は何を期待すべきですか?どのようなアドバイスをいただけますか? ありがとう。

11
「面白いコメント」は悪い習慣ですか?[閉まっている]
ソースドキュメントに「イースターエッグ」を追加するのは専門的でないかどうかを尋ねたいと思います。おそらく、あなたは読んだのStackOverflowの例えば(パブリックAPIのドキュメントで、この弱いソースドキュメントの面白いコメントを投票して、私は個人的に面白い(またはしない)を含め、私の仕事の間に、多くのそのようなことでつまずいているものBZZZTTを!! 1!の事をAndroidの公開ドキュメントでは、少なくとも12個以上の例を挙げることができます)。 私は自分自身と矛盾する議論をしているので、私は自分自身について最終的な意見を出すことはできません。 プロの議論: それは誰かを元気づけ、彼/彼女の一日をより面白く/より生産的にすることができます。ソースコードの大部分は、とにかくコメントする必要はありません(プロジェクトが適切に行われている場合)。特定の方法(たとえば)が自明であるため、または奇妙なくだらないコードの山である場合、意味のある方法で説明されているので、面白い冗談は、ドキュメントから取得できる情報を害することはありません。 短所の引数: あなたが非常に集中している/欲求不満の場合、最後に必要なことは誰かの愚かな冗談です。文書化されたコード部分について必要な情報を提供する代わりに、それはあなたをさらにイライラさせます。そして、もし誰もがそうし始めたら、ドキュメントがどのように見えるかという考えは恐ろしいです。さらに、冗談を書く人は、それを読むのが面白い/面白く/時間を浪費する価値があると考える唯一の人かもしれません。 どう思いますか?

22
独自のプログラミング言語を使用して仕事をすることには欠点がありますか?[閉まっている]
私は大学を卒業したばかりで、CSの学位を取得しています。そのため、この分野についてもっと学び、専門的な経験を積むことができる仕事を見つけたいです。 社内で独自のプログラミング言語を使用している会社にインタビューしたことがありますが、他の人がそれを使用しているとは思いません。他の言語の使用や、開発環境で使用するものについては言及していません。 このような仕事に就くとき、私は何を心配すべきですか?後で仕事を切り替える場合、言語固有の経験を積んでいないので、エントリーレベルの職を再び探し始める必要がありますか?

12
XMLが非常に悪い場合...なぜ多くの人がXMLを使用するのですか?[閉まっている]
私はXMLの目的を理解していますが、それがいかに悪いのかと不満を言う人はいつもいますか?私はそれについて何が本当に悪いのか本当に理解していませんか?私は通常、「肥大化した」と「遅い」という言葉を投げかけます。 しかし、プログラマーとして、あなたは主に何のためにそれを使用しますか?そして、あなたは本当にそれを「悪い」と考えますか?...それがそうであるならば、ひどい多くの人々がそれをデータの輸送に使用します...

2
どのようにして基本的なスキルを萎縮から守りますか?[閉まっている]
コーディングは、プロのプログラミングの1つの側面にすぎません。私の仕事にはコーディングが必要ですが、他のことを長期間行う必要もあります。コーディングしているだけではなく、数日または数週間経つこともあります。 ミーティングに参加し、アーキテクチャ図を描き、要件に注釈を付けている間、苦労して獲得したプログラミングスキルが萎縮するのを恐れています。(言うまでもなく、コードを理解していない要件を書く人を信用していません。) コーディングに関する本や雑誌を読むことはできません。私は自由時間にいくつかのオープンソースプロジェクトに携わっており、stackoverflowと友人は少し助けてくれます。なぜなら、人々がマイクロ管理せずにプログラミングの問題を解決するのを助ける機会が得られるからですまず、私が簡単に解決できる問題について。 私が見つけたいのは、構造化された一連の演習(どの言語や環境でも構いません)です。 …定期的にできる …ある種の時間要件があるので、私が逃げているかどうかを確認できます …ある種の得点があるので、間違いを犯しているかどうかわかります そのようなことはありますか?スキルを新鮮に保つために何をしますか?

17
プログラミングスキルに自信を持たせるにはどうすればよいですか?[閉まっている]
プログラミングは私にとって異質ではありません。私は最初にマークアップ(HTML、今は笑わないでください)を12歳のときに始め、13歳のときに少しBASICを使いました(この時点でフローチャート、擬似コードについて多くを知っていました)が、その後、高校での生物学。したがって、C、Javaなどの言語の「実際の」プログラミング知識を逃していました。UG BEのCSを取り上げました(BSに似ていますが、より理論的な方法です)。私は自分でCとC ++を(程度は低いが)学びました(私の教授は完全な痛みであり、クラスはコードジョックでいっぱいでした(学校で既に学んでいたため、クラスに注意を払わず、私のようなより低い定命の者にクラスに注意を払わせてください))、素晴らしい加算または乗算プログラム(今では幼稚園児でさえも) 私の主な問題は、限られたプログラミングスキルに常に不十分で首を絞められ、コードジョックに軽視されていることです(信じられませんが、私はこのサイトに何年も前に出会ったことがありますが、実際に投稿する勇気を築くことができただけです)質問)そして、時にはその無能さをめぐってさえ落ち込んでいます。ほとんどの人は、プログラミングは必ずしも言語ではなく、その人の心の状態と問題/問題を解決するために使用する技術に関するものだと言います。私はそのような感情に同意しますが、そのような「心の状態」を獲得することはできますか?そのような場合、「プログラミング/コーディング」にどのようにアプローチする必要があり、「Zen」を達成するための最も設定された方法と手順がある場合コーディング」。どうすればいいですか?また、ある聖人がこの虐げられた$#!^の一部を指導したいと思っても害はありません。 PS私は自分の時間の価値があると考える人に永遠に感謝し、ボーナスとして彼らの後に出荷する私の最初のソフトウェアの名前を付けます。(私が1つを出荷するようになったら、つまり) TL; DR:「プログラミング/コーディング」を実際に学んだことはありません。私が試みても問題を解決できません。助けて!

8
建築の匂いはありますか?
Webには、コードのにおいを参照し、リストするリソースが山ほどあります。しかし、建築の匂いに関する情報を見たことはありません。これはどこかで定義されていますか、利用可能なリストはありますか?アーキテクチャの欠陥、およびプロジェクトの速度、欠陥などへの影響について正式な調査が行われましたか? 編集:私は本当に答えのリストを探していませんでしたが、アーキテクチャに関する臭い(ウェブ上または本)のドキュメントを探していました。

11
「バブルパラドックス」とc ++
ここで記事を読んでいた:http : //www.paulgraham.com/avg.htmlそして「blub paradox」に関する部分は特に興味深いものでした。主にc ++でコーディングしているが、他の言語(主にHaskell)にさらされている人として、これらの言語ではc ++で複製するのが難しいいくつかの便利なことを知っています。質問は、主にc ++と他の言語の両方に習熟している人に対するものですが、c ++のみで記述している場合は概念化や実装が難しい言語で使用する強力な言語機能やイディオムはありますか? 特に、この引用は私の注意を引きました: 帰納法により、さまざまな言語間の力の違いをすべて見ることができるプログラマーは、最も強力な言語を理解しているプログラマーだけです。(これはおそらく、Eric RaymondがLispを使ってより良いプログラマーにしたことを意味するものです。)他の人の意見は、Blubパラドックスのために信頼できません。彼らがプログラムについて考える方法。 私がc ++を使用することで「Blub」プログラマと同等であることが判明した場合、次の質問が発生します。他の言語で遭遇し​​た概念化が難しいと思われる有用な概念やテクニックはありますかC ++で書いているか、「考えている」? たとえば、PrologやMercuryなどの言語に見られるロジックプログラミングパラダイムは、キャスターライブラリを使用してc ++で実装できますが、最終的には概念的にPrologコードの観点から考えており、これを使用する場合はc ++の同等物に翻訳しています。プログラミングの知識を広げる方法として、C ++開発者としては知らないかもしれない他の言語でより効率的に表現される有用な/強力なイディオムの他の同様の例があるかどうかを見つけようとしています。思い浮かぶもう1つの例は、Lispのマクロシステムです。プログラム内からプログラムコードを生成すると、いくつかの問題に対して多くの利点があるようです。これは、c ++内から実装して考えることは難しいようです。 この質問は、「c ++ vs lisp」の討論や、あらゆる種類の言語戦争型の討論を意図したものではありません。このような質問をすることが、私が知らないことを知らないことを知ることができる唯一の方法です。

11
人間の脳の乱数生成アルゴリズム?[閉まっている]
人間が(やや「真」の)乱数を生成できる実用的で学習しやすい「インヘッド」アルゴリズムを知っていますか、または考案しましたか?「インヘッド」とは、外部ツールやデバイスがないことが好ましいということです。また、高出力(1分あたり多数の乱数)が望ましいです。 SOでこれを尋ねたが、あまり興味を引かれなかった。たぶんこれはプログラマーにより適しています。

14
競合他社のサイトに脆弱性が見つかった場合はどうすればよいですか?
私の会社のプロジェクトに取り組んでいる間、ユーザーが競合他社のサイトとの間でデータをインポート/エクスポートできる機能を構築する必要がありました。これを行っている最中に、要するに、競合他社のWebサイトでスクリプトを実行できる非常に深刻なセキュリティ上の悪用を発見しました。 私の自然な気持ちは、善意の精神で彼らに問題を報告することです。利益を得るために問題を利用することは私の心を越えましたが、私はその道をたどりたくありません。 それで、私の質問は、彼らを助けるためにあなたの直接の競争に深刻な脆弱性を報告しますか?または、口を閉じたままにしますか?おそらく、私が問題を報告することで彼らを助けているという事実から少なくともいくつかの利点を得るために、これについてより良い方法がありますか? 更新(明確化): これまでのすべてのフィードバックに感謝します。感謝します。問題の競争が市場の巨大なもの(複数の大陸の数百人の従業員)であり、私の会社がほんの数週間前(3人の従業員)に始まったと付け加えれば、あなたの答えは変わりますか?言うまでもなく、彼らは間違いなく私たちを覚えていないでしょうし、もしあれば、彼らのサイトが仕事を必要としていることに気づくだけです(それが私たちが最初にこの市場に参入した理由です)。 これは、道徳的対ビジネス的なやり取りの1つかもしれませんが、すべてのアドバイスに感謝しています。

7
C#Dev-Lispを試しましたが、うまくいきません[非公開]
CLと少しのClojureの両方についてLispを学び、遊んだ数ヶ月後、C#の代わりにLispで何かを書く説得力のある理由がまだ見当たりません。 いくつかの説得力のある理由、または誰かが私が本当に大きなものを見逃していることを指摘してほしい。 Lispの長所(私の研究による): コンパクトで表現力豊かな表記法-C#よりも、そうです...しかし、私はそれらのアイデアをC#でも表現できるようです。 関数型プログラミングの暗黙的なサポート-LINQ拡張メソッドを使用したC#: mapcar = .Select(lambda) mapcan = .Select(lambda).Aggregate((a、b)=> a.Union(b)) car / first = .First() cdr / rest = .Skip(1)....など ラムダおよび高階関数のサポート-C#にはこれがあり、構文は間違いなく簡単です。 「(lambda(x)(body))」対「x =>(body)」 Clojureでは、「#(」と「%」、「%1」、「%2」が適切です オブジェクトから分離されたメソッドディスパッチ-C#には拡張メソッドを介してこれがあります マルチメソッドディスパッチ-C#にはこれがネイティブにありませんが、数時間で関数呼び出しとして実装できます。 コードはデータ(およびマクロ)-マクロを「取得」していないかもしれませんが、マクロの概念を関数として実装できない単一の例を見たことはありません。「言語」は変更されませんが、それが強さかどうかはわかりません DSL-関数合成を介してのみ行うことができます...しかしそれは動作します 型なしの「探索的」プログラミング-構造体/クラスの場合、C#の自動プロパティと「オブジェクト」は非常にうまく機能します。 Windows以外のハードウェアで実行します-そうですか?大学以外では、自宅でWindowsを実行していない人、または* nix / Macで少なくともWindowsのVMを実行している人は1人しか知りませんでした。(もう一度、多分これは思ったよりも重要で、洗脳されたばかりです...) ボトムアップ設計のためのREPL-わかりました、これは本当にすてきで、C#では見逃しています。 Lispに欠けているもの(C#、. NET、Visual Studio、Resharperが混在しているため): 名前空間。静的メソッドであっても、コンテキストを分類するために「クラス」に結び付けるのが好きです(Clojureはこれを持っているようですが、CLはそうではないようです)。 優れたコンパイルおよび設計時サポート 型システムにより、渡すデータ構造の「正確さ」を判断できます つづりの間違いはリアルタイムで下線が引かれます。ランタイムまで知る必要はありません コードの改善(命令的なアプローチの代わりにFPアプローチを使用するなど)が自動的に提案されます GUI開発ツール:WinFormsおよびWPF(ClojureがJava GUIライブラリにアクセスできることは知っていますが、それらは私にとってまったく異質なものです。) GUIデバッグツール:ブレークポイント、ステップイン、ステップオーバー、値インスペクター(テキスト、xml、カスタム)、ウォッチ、スレッドごとのデバッグ、条件付きブレークポイント、任意のレベルのコードにジャンプできるコールスタックウィンドウスタック内 (公平を期すために、Emacs + Slimeでの私の仕事はこれの一部を提供しているように見えましたが、VS …
37 clojure  lisp 


7
ASP.NET MVCでできることとRuby on Railsでできないことは何ですか?[閉まっている]
ASP.NET MVCとRailsの使用領域は似ており、同じアーキテクチャを中心に構築されています。どちらのフレームワークも比較的新しく、オープンソースです。 それで、私が知りたいRailsプログラマーとして、ASP.NET MVCができることとRuby on Railsができないこと、そしてその逆のことを知りたいですか?

9
F#を大規模なコードベースとエンジニアリングチームに導入する際の現実的な落とし穴[非公開]
私は、大規模な既存のコードベース(すべてC#)と大規模なエンジニアリングチームを持つソフトウェア会社のCTOです。コードの特定の部分をF#で書くのがはるかに簡単になり、開発時間の短縮、バグの減少、並列実装の容易化など、基本的に私のチームの全体的な生産性の向上が見られます。ただし、F#を導入する生産性の落とし穴もいくつかあります。 1)誰もがF#を習得する必要があり、たとえばJavaからC#に切り替えるほど簡単ではありません。F#を学習していないチームメンバーは、コードベースのF#の部分で作業することはできません。 2)現在(2010年12月)の雇用可能なF#プログラマーのプールは存在しません。さまざまなソフトウェアエンジニアの履歴書データベースで「F#」を検索します。履歴書の1%未満がキーワードを含んでいます。 3)現在(2010年12月)のコミュニティサポートはあまり利用できません。C#のほとんどすべての問題をグーグルで検索し、F#でではなく、すでにそれを処理した人を見つけることができます。サードパーティのツールサポート(NUnit、Resharperなど)も大ざっぱです。 私はこれが少しCatch-22であることに気づきました。つまり、私のような人々がF#を使用しない場合、コミュニティとツールは決して実現しません、など。しかし、私は会社を経営しています。最先端ではありません。 私が検討していない他の落とし穴はありますか?または、私が言及した落とし穴に反論したい人はいますか?これは重要な議論であり、このパブリックフォーラムでの反論を聞いてみたいと思います。反論は、業界によるF#の採用を増やすのに大いに役立つかもしれません。

10
完璧主義のためにどこで線を引きますか?[閉まっている]
プログラミングの場合、完璧主義は良い面と悪い面があります。 問題を解決するとき、いつどこで線を引きますか? ソリューションが過剰すぎる、一般的すぎる、または単に未来的すぎると判断するのはいつですか? 質問が不明な場合はコメントしてください。

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